Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gassafety
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
耿迪迪
gassafety
Commits
7017e306
Commit
7017e306
authored
Aug 24, 2021
by
yaqizhang
Browse files
Options
Browse Files
Download
Plain Diff
合并冲突
parents
49d6da3a
15c9e30b
Show whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
2974 additions
and
766 deletions
+2974
-766
THiddenTroubleController.java
...b/controller/riskManagement/THiddenTroubleController.java
+17
-8
SysUserController.java
...a/com/zehong/web/controller/system/SysUserController.java
+12
-0
THiddenTrouble.java
...rc/main/java/com/zehong/system/domain/THiddenTrouble.java
+110
-28
DeviceAlarmVo.java
.../main/java/com/zehong/system/domain/vo/DeviceAlarmVo.java
+20
-43
HiddenTroubleVo.java
...ain/java/com/zehong/system/domain/vo/HiddenTroubleVo.java
+296
-0
THiddenTroubleMapper.java
...n/java/com/zehong/system/mapper/THiddenTroubleMapper.java
+8
-0
ITHiddenTroubleService.java
...ava/com/zehong/system/service/ITHiddenTroubleService.java
+11
-2
TDeviceAlarmServiceImpl.java
...m/zehong/system/service/impl/TDeviceAlarmServiceImpl.java
+24
-8
THiddenTroubleServiceImpl.java
...zehong/system/service/impl/THiddenTroubleServiceImpl.java
+170
-6
THiddenTroubleMapper.xml
...src/main/resources/mapper/system/THiddenTroubleMapper.xml
+45
-11
user.js
gassafety-web/src/api/system/user.js
+8
-0
trouble.png
gassafety-web/src/assets/images/trouble.png
+0
-0
element-ui.scss
gassafety-web/src/assets/styles/element-ui.scss
+15
-2
fonticon.scss
gassafety-web/src/assets/styles/fonticon.scss
+16
-3
markerInfoWindow.vue
gassafety-web/src/components/PopWindow/markerInfoWindow.vue
+1
-1
lineInfoWindow.vue
gassafety-web/src/components/PopWindowGis/lineInfoWindow.vue
+2
-2
lineInfoWindowWarn.vue
...ty-web/src/components/PopWindowGis/lineInfoWindowWarn.vue
+2
-2
markerInfoWindow.vue
...fety-web/src/components/PopWindowGis/markerInfoWindow.vue
+1
-1
markerInfoWindowWarn.vue
...-web/src/components/PopWindowGis/markerInfoWindowWarn.vue
+1
-1
troubleInfoWindowWarn.vue
...web/src/components/PopWindowGis/troubleInfoWindowWarn.vue
+312
-0
workerManInfowindow.vue
...y-web/src/components/PopWindowGis/workerManInfowindow.vue
+1
-1
workerManView.vue
gassafety-web/src/components/PopWindowGis/workerManView.vue
+1
-1
gaodeMap.js
gassafety-web/src/utils/gaodeMap.js
+16
-3
gaodeMapView.js
gassafety-web/src/utils/gaodeMapView.js
+47
-8
index.vue
gassafety-web/src/views/dataMonitoring/alarmdetail/index.vue
+81
-64
index.vue
gassafety-web/src/views/dataMonitoring/deviceAlarm/index.vue
+1
-1
index.vue
...ety-web/src/views/dataMonitoring/realtimedetail/index.vue
+28
-28
index.vue
gassafety-web/src/views/device/map/index.vue
+484
-61
index.vue
...y-web/src/views/deviceInspection/inspectionPlan/index.vue
+9
-17
index.vue
...web/src/views/deviceInspection/inspectiondetail/index.vue
+2
-2
CreateWorkTrouble.vue
...views/enterprise/mapView/components/CreateWorkTrouble.vue
+152
-0
index.vue
gassafety-web/src/views/enterprise/mapView/index.vue
+362
-298
index.vue
...fety-web/src/views/riskManagement/hiddenTrouble/index.vue
+414
-163
index.vue
...eb/src/views/riskManagement/hiddenTroubleDetail/index.vue
+305
-0
index.vue
gassafety-web/src/views/workOrder/detail/index.vue
+0
-1
No files found.
gassafety-admin/src/main/java/com/zehong/web/controller/riskManagement/THiddenTroubleController.java
View file @
7017e306
package
com
.
zehong
.
web
.
controller
.
riskManagement
;
import
java.util.List
;
import
com.zehong.system.domain.vo.HiddenTroubleVo
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -41,19 +43,19 @@ public class THiddenTroubleController extends BaseController
public
TableDataInfo
list
(
THiddenTrouble
tHiddenTrouble
)
{
startPage
();
List
<
THiddenTrouble
>
list
=
tHiddenTroubleService
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
List
<
HiddenTroubleVo
>
list
=
tHiddenTroubleService
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
return
getDataTable
(
list
);
}
/**
* 地图初始化隐患
* @param
tHiddenTrouble
* @param
* @return
*/
@GetMapping
(
"/getMapHiddenTroublelist"
)
public
AjaxResult
getMapHiddenTroublelist
(
THiddenTrouble
tHiddenTrouble
)
public
AjaxResult
getMapHiddenTroublelist
()
{
List
<
THiddenTrouble
>
list
=
tHiddenTroubleService
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
List
<
HiddenTroubleVo
>
list
=
tHiddenTroubleService
.
getMapTHiddenTroubleList
(
);
return
AjaxResult
.
success
(
list
);
}
...
...
@@ -66,8 +68,8 @@ public class THiddenTroubleController extends BaseController
public
AjaxResult
export
(
THiddenTrouble
tHiddenTrouble
)
{
tHiddenTrouble
.
setDealStatus
(
"3"
);
List
<
THiddenTrouble
>
list
=
tHiddenTroubleService
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
ExcelUtil
<
THiddenTrouble
>
util
=
new
ExcelUtil
<
THiddenTrouble
>(
THiddenTrouble
.
class
);
List
<
HiddenTroubleVo
>
list
=
tHiddenTroubleService
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
ExcelUtil
<
HiddenTroubleVo
>
util
=
new
ExcelUtil
<
HiddenTroubleVo
>(
HiddenTroubleVo
.
class
);
return
util
.
exportExcel
(
list
,
"隐患信息数据"
);
}
...
...
@@ -76,9 +78,16 @@ public class THiddenTroubleController extends BaseController
*/
@PreAuthorize
(
"@ss.hasPermi('riskManagement:hiddenTrouble:query')"
)
@GetMapping
(
value
=
"/{troubleId}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"troubleId"
)
int
troubleId
)
public
AjaxResult
getInfo
(
@PathVariable
(
"troubleId"
)
int
troubleId
)
throws
Exception
{
return
AjaxResult
.
success
(
tHiddenTroubleService
.
selectTHiddenTroubleById
(
troubleId
));
HiddenTroubleVo
hiddenTroubleVo
=
null
;
try
{
hiddenTroubleVo
=
tHiddenTroubleService
.
selectTHiddenTroubleById
(
troubleId
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
Exception
(
"获取隐患信息详情失败"
);
}
return
AjaxResult
.
success
(
hiddenTroubleVo
);
}
/**
...
...
gassafety-admin/src/main/java/com/zehong/web/controller/system/SysUserController.java
View file @
7017e306
...
...
@@ -67,6 +67,18 @@ public class SysUserController extends BaseController
return
getDataTable
(
list
);
}
/**
* 获取用户列表不分页
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:allList')"
)
@GetMapping
(
"/allList"
)
public
AjaxResult
allList
()
{
SysUser
user
=
new
SysUser
();
List
<
SysUser
>
list
=
userService
.
selectUserList
(
user
);
return
AjaxResult
.
success
(
list
);
}
/**
* 获取巡检员列表
*/
...
...
gassafety-system/src/main/java/com/zehong/system/domain/THiddenTrouble.java
View file @
7017e306
...
...
@@ -10,7 +10,7 @@ import com.zehong.common.core.domain.BaseEntity;
* 隐患信息对象 t_hidden_trouble
*
* @author zehong
* @date 2021-0
7-21
* @date 2021-0
8-20
*/
public
class
THiddenTrouble
extends
BaseEntity
{
...
...
@@ -19,20 +19,29 @@ public class THiddenTrouble extends BaseEntity
/** 隐患信息id */
private
Integer
troubleId
;
/**
设备id
*/
@Excel
(
name
=
"
设备id
"
)
private
Integer
deviceId
;
/**
隐患类型
*/
@Excel
(
name
=
"
隐患类型
"
)
private
String
troubleType
;
/** 设备类型(0管道,1调压阀,2阀门井,3流量计,4压力表) */
private
String
deviceType
;
/** 隐患名称 */
@Excel
(
name
=
"隐患名称"
)
private
String
troubleName
;
/** 隐患级别 */
@Excel
(
name
=
"隐患级别"
)
private
String
troubleLevel
;
/** 工单id */
@Excel
(
name
=
"工单id"
)
private
String
orderId
;
/** 地址 */
@Excel
(
name
=
"地址"
)
private
String
address
;
/** 设备id */
@Excel
(
name
=
"设备id"
)
private
Integer
deviceId
;
/** 设备类型(0管道,1调压阀,2阀门井,3流量计,4压力表) */
@Excel
(
name
=
"设备类型"
,
readConverterExp
=
"0=管道,1调压阀,2阀门井,3流量计,4压力表"
)
private
String
deviceType
;
/** 经度 */
@Excel
(
name
=
"经度"
)
...
...
@@ -42,14 +51,30 @@ public class THiddenTrouble extends BaseEntity
@Excel
(
name
=
"纬度"
)
private
BigDecimal
latitude
;
/** 是否作废(0正常,1作废) */
@Excel
(
name
=
"是否作废(0正常,1作废)"
)
private
String
isDel
;
/** 处理状态(1不需处理,2已处理完成,3未处理完成) */
@Excel
(
name
=
"处理状态"
,
readConverterExp
=
"1不需处理,2已处理完成,3未处理完成"
)
private
String
dealStatus
;
/** 地址 */
@Excel
(
name
=
"地址"
)
private
String
address
;
/** 备注 */
@Excel
(
name
=
"备注"
)
private
String
remarks
;
/** 图片地址 */
@Excel
(
name
=
"图片地址"
)
private
String
pictureUrl
;
/** 上报人(用户id) */
@Excel
(
name
=
"上报人"
,
readConverterExp
=
"用户id"
)
private
Long
reportMan
;
public
void
setTroubleId
(
Integer
troubleId
)
{
this
.
troubleId
=
troubleId
;
...
...
@@ -59,6 +84,24 @@ public class THiddenTrouble extends BaseEntity
{
return
troubleId
;
}
public
String
getTroubleName
()
{
return
troubleName
;
}
public
void
setTroubleName
(
String
troubleName
)
{
this
.
troubleName
=
troubleName
;
}
public
void
setTroubleType
(
String
troubleType
)
{
this
.
troubleType
=
troubleType
;
}
public
String
getTroubleType
()
{
return
troubleType
;
}
public
void
setDeviceId
(
Integer
deviceId
)
{
this
.
deviceId
=
deviceId
;
...
...
@@ -68,15 +111,15 @@ public class THiddenTrouble extends BaseEntity
{
return
deviceId
;
}
public
String
getDeviceType
()
{
return
deviceType
;
public
void
setTroubleLevel
(
String
troubleLevel
)
{
this
.
troubleLevel
=
troubleLevel
;
}
public
void
setDeviceType
(
String
deviceType
)
{
this
.
deviceType
=
deviceType
;
public
String
getTroubleLevel
()
{
return
troubleLevel
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
...
...
@@ -86,15 +129,6 @@ public class THiddenTrouble extends BaseEntity
{
return
orderId
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
public
void
setLongitude
(
BigDecimal
longitude
)
{
this
.
longitude
=
longitude
;
...
...
@@ -104,6 +138,15 @@ public class THiddenTrouble extends BaseEntity
{
return
longitude
;
}
public
void
setDeviceType
(
String
deviceType
)
{
this
.
deviceType
=
deviceType
;
}
public
String
getDeviceType
()
{
return
deviceType
;
}
public
void
setLatitude
(
BigDecimal
latitude
)
{
this
.
latitude
=
latitude
;
...
...
@@ -114,6 +157,14 @@ public class THiddenTrouble extends BaseEntity
return
latitude
;
}
public
String
getIsDel
()
{
return
isDel
;
}
public
void
setIsDel
(
String
isDel
)
{
this
.
isDel
=
isDel
;
}
public
void
setDealStatus
(
String
dealStatus
)
{
this
.
dealStatus
=
dealStatus
;
...
...
@@ -123,6 +174,15 @@ public class THiddenTrouble extends BaseEntity
{
return
dealStatus
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setRemarks
(
String
remarks
)
{
this
.
remarks
=
remarks
;
...
...
@@ -132,21 +192,43 @@ public class THiddenTrouble extends BaseEntity
{
return
remarks
;
}
public
void
setPictureUrl
(
String
pictureUrl
)
{
this
.
pictureUrl
=
pictureUrl
;
}
public
String
getPictureUrl
()
{
return
pictureUrl
;
}
public
void
setReportMan
(
Long
reportMan
)
{
this
.
reportMan
=
reportMan
;
}
public
Long
getReportMan
()
{
return
reportMan
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"troubleId"
,
getTroubleId
())
.
append
(
"troubleType"
,
getTroubleType
())
.
append
(
"deviceId"
,
getDeviceId
())
.
append
(
"
deviceType"
,
getDeviceType
())
.
append
(
"
troubleLevel"
,
getTroubleLevel
())
.
append
(
"orderId"
,
getOrderId
())
.
append
(
"address"
,
getAddress
())
.
append
(
"longitude"
,
getLongitude
())
.
append
(
"deviceType"
,
getDeviceType
())
.
append
(
"latitude"
,
getLatitude
())
.
append
(
"dealStatus"
,
getDealStatus
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"address"
,
getAddress
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"remarks"
,
getRemarks
())
.
append
(
"pictureUrl"
,
getPictureUrl
())
.
append
(
"reportMan"
,
getReportMan
())
.
toString
();
}
}
gassafety-system/src/main/java/com/zehong/system/domain/vo/DeviceAlarmVo.java
View file @
7017e306
...
...
@@ -2,7 +2,9 @@ package com.zehong.system.domain.vo;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.zehong.common.core.domain.BaseEntity
;
import
com.zehong.system.domain.TDeviceInfo
;
import
com.zehong.system.domain.TDeviceReportData
;
import
com.zehong.system.domain.TPipe
;
import
java.math.BigDecimal
;
import
java.util.Date
;
...
...
@@ -33,21 +35,15 @@ public class DeviceAlarmVo extends BaseEntity
/** 设备编号 */
private
String
deviceCode
;
/** 经度 */
private
BigDecimal
longitude
;
/** 纬度 */
private
BigDecimal
latitude
;
/** 坐标 */
private
String
coordinates
;
/** 物联网编号 */
private
String
iotNo
;
/** 设备监控数据列表(用于详情折线图) */
private
List
<
TDeviceReportData
>
deviceReportDataList
;
/** 设备列表(用于展示设备详情) */
private
List
<
TDeviceInfo
>
deviceList
;
/** 管道列表(用于展示管道详情) */
private
List
<
TPipe
>
pipeList
;
/** 工单id */
private
String
orderId
;
...
...
@@ -112,44 +108,28 @@ public class DeviceAlarmVo extends BaseEntity
this
.
deviceCode
=
deviceCode
;
}
public
BigDecimal
getLongitude
()
{
return
longitude
;
}
public
void
setLongitude
(
BigDecimal
longitude
)
{
this
.
longitude
=
longitude
;
}
public
BigDecimal
getLatitude
()
{
return
latitude
;
}
public
void
setLatitude
(
BigDecimal
latitude
)
{
this
.
latitude
=
latitude
;
}
public
String
getCoordinates
()
{
return
coordinates
;
public
List
<
TDeviceReportData
>
getDeviceReportDataList
()
{
return
deviceReportDataList
;
}
public
void
set
Coordinates
(
String
coordinates
)
{
this
.
coordinates
=
coordinates
;
public
void
set
DeviceReportDataList
(
List
<
TDeviceReportData
>
deviceReportDataList
)
{
this
.
deviceReportDataList
=
deviceReportDataList
;
}
public
String
getIotNo
()
{
return
iotNo
;
public
List
<
TDeviceInfo
>
getDeviceList
()
{
return
deviceList
;
}
public
void
set
IotNo
(
String
iotNo
)
{
this
.
iotNo
=
iotNo
;
public
void
set
DeviceList
(
List
<
TDeviceInfo
>
deviceList
)
{
this
.
deviceList
=
deviceList
;
}
public
List
<
T
DeviceReportData
>
getDeviceReportData
List
()
{
return
deviceReportData
List
;
public
List
<
T
Pipe
>
getPipe
List
()
{
return
pipe
List
;
}
public
void
set
DeviceReportDataList
(
List
<
TDeviceReportData
>
deviceReportData
List
)
{
this
.
deviceReportDataList
=
deviceReportData
List
;
public
void
set
PipeList
(
List
<
TPipe
>
pipe
List
)
{
this
.
pipeList
=
pipe
List
;
}
public
void
setOrderId
(
String
orderId
)
...
...
@@ -218,9 +198,6 @@ public class DeviceAlarmVo extends BaseEntity
"alarmId="
+
alarmId
+
", deviceId="
+
deviceId
+
", deviceType='"
+
deviceType
+
'\''
+
", deviceName='"
+
deviceName
+
'\''
+
", deviceCode='"
+
deviceCode
+
'\''
+
", iotNo='"
+
iotNo
+
'\''
+
", orderId='"
+
orderId
+
'\''
+
", alarmType='"
+
alarmType
+
'\''
+
", alarmValue='"
+
alarmValue
+
'\''
+
...
...
gassafety-system/src/main/java/com/zehong/system/domain/vo/HiddenTroubleVo.java
0 → 100644
View file @
7017e306
package
com
.
zehong
.
system
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.zehong.common.annotation.Excel
;
import
com.zehong.common.core.domain.BaseEntity
;
import
com.zehong.system.domain.TOrderFeedback
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 隐患信息对象 t_hidden_trouble
*
* @author zehong
* @date 2021-08-20
*/
public
class
HiddenTroubleVo
extends
BaseEntity
{
/** 隐患信息id */
private
Integer
troubleId
;
/** 隐患类型 */
@Excel
(
name
=
"隐患类型"
)
private
String
troubleType
;
/** 隐患名称 */
@Excel
(
name
=
"隐患名称"
)
private
String
troubleName
;
/** 隐患级别 */
@Excel
(
name
=
"隐患级别"
)
private
String
troubleLevel
;
/** 工单id */
@Excel
(
name
=
"工单id"
)
private
String
orderId
;
/** 指定执行人员姓名 */
private
String
appointInspectorName
;
/** 下发时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
allotTime
;
/** 反馈信息列表 */
private
List
<
TOrderFeedback
>
feedbackList
;
/** 设备id */
@Excel
(
name
=
"设备id"
)
private
Integer
deviceId
;
/** 设备类型(0管道,1调压阀,2阀门井,3流量计,4压力表) */
@Excel
(
name
=
"设备类型"
,
readConverterExp
=
"0=管道,1调压阀,2阀门井,3流量计,4压力表"
)
private
String
deviceType
;
/** 设备名称 */
@Excel
(
name
=
"设备名称"
)
private
String
deviceName
;
/** 经度 */
@Excel
(
name
=
"经度"
)
private
BigDecimal
longitude
;
/** 纬度 */
@Excel
(
name
=
"纬度"
)
private
BigDecimal
latitude
;
/** 是否作废(0正常,1作废) */
@Excel
(
name
=
"是否作废(0正常,1作废)"
)
private
String
isDel
;
/** 处理状态(1不需处理,2已处理完成,3未处理完成) */
@Excel
(
name
=
"处理状态"
,
readConverterExp
=
"1不需处理,2已处理完成,3未处理完成"
)
private
String
dealStatus
;
/** 地址 */
@Excel
(
name
=
"地址"
)
private
String
address
;
/** 备注 */
@Excel
(
name
=
"备注"
)
private
String
remarks
;
/** 图片地址 */
@Excel
(
name
=
"图片地址"
)
private
String
pictureUrl
;
/** 上报人(用户id) */
private
Long
reportMan
;
/** 上报人姓名 */
@Excel
(
name
=
"上报人姓名"
,
readConverterExp
=
"上报人姓名"
)
private
String
reportManName
;
public
void
setTroubleId
(
Integer
troubleId
)
{
this
.
troubleId
=
troubleId
;
}
public
Integer
getTroubleId
()
{
return
troubleId
;
}
public
String
getTroubleName
()
{
return
troubleName
;
}
public
void
setTroubleName
(
String
troubleName
)
{
this
.
troubleName
=
troubleName
;
}
public
void
setTroubleType
(
String
troubleType
)
{
this
.
troubleType
=
troubleType
;
}
public
String
getTroubleType
()
{
return
troubleType
;
}
public
void
setDeviceId
(
Integer
deviceId
)
{
this
.
deviceId
=
deviceId
;
}
public
Integer
getDeviceId
()
{
return
deviceId
;
}
public
void
setTroubleLevel
(
String
troubleLevel
)
{
this
.
troubleLevel
=
troubleLevel
;
}
public
String
getTroubleLevel
()
{
return
troubleLevel
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getOrderId
()
{
return
orderId
;
}
public
String
getAppointInspectorName
()
{
return
appointInspectorName
;
}
public
void
setAppointInspectorName
(
String
appointInspectorName
)
{
this
.
appointInspectorName
=
appointInspectorName
;
}
public
Date
getAllotTime
()
{
return
allotTime
;
}
public
void
setAllotTime
(
Date
allotTime
)
{
this
.
allotTime
=
allotTime
;
}
public
List
<
TOrderFeedback
>
getFeedbackList
()
{
return
feedbackList
;
}
public
void
setFeedbackList
(
List
<
TOrderFeedback
>
feedbackList
)
{
this
.
feedbackList
=
feedbackList
;
}
public
void
setLongitude
(
BigDecimal
longitude
)
{
this
.
longitude
=
longitude
;
}
public
BigDecimal
getLongitude
()
{
return
longitude
;
}
public
void
setDeviceType
(
String
deviceType
)
{
this
.
deviceType
=
deviceType
;
}
public
String
getDeviceType
()
{
return
deviceType
;
}
public
String
getDeviceName
()
{
return
deviceName
;
}
public
void
setDeviceName
(
String
deviceName
)
{
this
.
deviceName
=
deviceName
;
}
public
void
setLatitude
(
BigDecimal
latitude
)
{
this
.
latitude
=
latitude
;
}
public
BigDecimal
getLatitude
()
{
return
latitude
;
}
public
String
getIsDel
()
{
return
isDel
;
}
public
void
setIsDel
(
String
isDel
)
{
this
.
isDel
=
isDel
;
}
public
void
setDealStatus
(
String
dealStatus
)
{
this
.
dealStatus
=
dealStatus
;
}
public
String
getDealStatus
()
{
return
dealStatus
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setRemarks
(
String
remarks
)
{
this
.
remarks
=
remarks
;
}
public
String
getRemarks
()
{
return
remarks
;
}
public
void
setPictureUrl
(
String
pictureUrl
)
{
this
.
pictureUrl
=
pictureUrl
;
}
public
String
getPictureUrl
()
{
return
pictureUrl
;
}
public
void
setReportMan
(
Long
reportMan
)
{
this
.
reportMan
=
reportMan
;
}
public
Long
getReportMan
()
{
return
reportMan
;
}
public
String
getReportManName
()
{
return
reportManName
;
}
public
void
setReportManName
(
String
reportManName
)
{
this
.
reportManName
=
reportManName
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"troubleId"
,
getTroubleId
())
.
append
(
"troubleType"
,
getTroubleType
())
.
append
(
"deviceId"
,
getDeviceId
())
.
append
(
"troubleLevel"
,
getTroubleLevel
())
.
append
(
"orderId"
,
getOrderId
())
.
append
(
"longitude"
,
getLongitude
())
.
append
(
"deviceType"
,
getDeviceType
())
.
append
(
"latitude"
,
getLatitude
())
.
append
(
"dealStatus"
,
getDealStatus
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"address"
,
getAddress
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"remarks"
,
getRemarks
())
.
append
(
"pictureUrl"
,
getPictureUrl
())
.
append
(
"reportMan"
,
getReportMan
())
.
toString
();
}
}
gassafety-system/src/main/java/com/zehong/system/mapper/THiddenTroubleMapper.java
View file @
7017e306
...
...
@@ -27,6 +27,14 @@ public interface THiddenTroubleMapper
*/
public
List
<
THiddenTrouble
>
selectTHiddenTroubleList
(
THiddenTrouble
tHiddenTrouble
);
/**
* 地图显示隐患信息列表
*
* @param
* @return 隐患信息集合
*/
public
List
<
THiddenTrouble
>
getMapTHiddenTroubleList
();
/**
* 新增隐患信息
*
...
...
gassafety-system/src/main/java/com/zehong/system/service/ITHiddenTroubleService.java
View file @
7017e306
...
...
@@ -2,6 +2,7 @@ package com.zehong.system.service;
import
java.util.List
;
import
com.zehong.system.domain.THiddenTrouble
;
import
com.zehong.system.domain.vo.HiddenTroubleVo
;
/**
* 隐患信息Service接口
...
...
@@ -17,7 +18,7 @@ public interface ITHiddenTroubleService
* @param troubleId 隐患信息ID
* @return 隐患信息
*/
public
THiddenTrouble
selectTHiddenTroubleById
(
int
troubleId
)
;
public
HiddenTroubleVo
selectTHiddenTroubleById
(
int
troubleId
)
throws
Exception
;
/**
* 查询隐患信息列表
...
...
@@ -25,7 +26,15 @@ public interface ITHiddenTroubleService
* @param tHiddenTrouble 隐患信息
* @return 隐患信息集合
*/
public
List
<
THiddenTrouble
>
selectTHiddenTroubleList
(
THiddenTrouble
tHiddenTrouble
);
public
List
<
HiddenTroubleVo
>
selectTHiddenTroubleList
(
THiddenTrouble
tHiddenTrouble
);
/**
* 地图显示隐患信息列表
*
* @param
* @return 隐患信息集合
*/
public
List
<
HiddenTroubleVo
>
getMapTHiddenTroubleList
();
/**
* 新增隐患信息
...
...
gassafety-system/src/main/java/com/zehong/system/service/impl/TDeviceAlarmServiceImpl.java
View file @
7017e306
...
...
@@ -76,16 +76,24 @@ public class TDeviceAlarmServiceImpl implements ITDeviceAlarmService
if
(
"0"
.
equals
(
tDeviceAlarm
.
getDeviceType
())){
TPipe
pipe
=
tPipeMapper
.
selectTPipeById
(
tDeviceAlarm
.
getDeviceId
());
if
(
pipe
!=
null
)
{
deviceAlarmVo
.
setDeviceCode
(
pipe
.
getPipeCode
());
deviceAlarmVo
.
setDeviceName
(
pipe
.
getPipeName
());
deviceAlarmVo
.
setCoordinates
(
pipe
.
getCoordinates
());
List
<
TPipe
>
pipeList
=
new
ArrayList
<>();
pipeList
.
add
(
pipe
);
deviceAlarmVo
.
setPipeList
(
pipeList
);
}
}
else
{
TDeviceInfo
deviceInfo
=
tDeviceInfoMapper
.
selectTDeviceInfoById
(
tDeviceAlarm
.
getDeviceId
());
if
(
deviceInfo
!=
null
){
deviceAlarmVo
.
setDeviceCode
(
deviceInfo
.
getDeviceCode
());
deviceAlarmVo
.
setDeviceName
(
deviceInfo
.
getDeviceName
());
deviceAlarmVo
.
setIotNo
(
deviceInfo
.
getIotNo
());
deviceAlarmVo
.
setLongitude
(
deviceInfo
.
getLongitude
());
deviceAlarmVo
.
setLatitude
(
deviceInfo
.
getLatitude
());
List
<
TDeviceInfo
>
deviceList
=
new
ArrayList
<>();
deviceList
.
add
(
deviceInfo
);
deviceAlarmVo
.
setDeviceList
(
deviceList
);
}
// 查询当前设备开始报警时间前后一小时的数据
TDeviceReportData
tDeviceReportData
=
new
TDeviceReportData
();
...
...
@@ -136,12 +144,20 @@ public class TDeviceAlarmServiceImpl implements ITDeviceAlarmService
if
(
pipe
!=
null
)
{
deviceAlarmVo
.
setDeviceCode
(
pipe
.
getPipeCode
());
deviceAlarmVo
.
setDeviceName
(
pipe
.
getPipeName
());
List
<
TPipe
>
pipeList
=
new
ArrayList
<>();
pipeList
.
add
(
pipe
);
deviceAlarmVo
.
setPipeList
(
pipeList
);
}
}
else
{
TDeviceInfo
deviceInfo
=
tDeviceInfoMapper
.
selectTDeviceInfoById
(
alarm
.
getDeviceId
());
if
(
deviceInfo
!=
null
)
{
deviceAlarmVo
.
setDeviceCode
(
deviceInfo
.
getDeviceCode
());
deviceAlarmVo
.
setDeviceName
(
deviceInfo
.
getDeviceName
());
List
<
TDeviceInfo
>
deviceList
=
new
ArrayList
<>();
deviceList
.
add
(
deviceInfo
);
deviceAlarmVo
.
setDeviceList
(
deviceList
);
}
}
...
...
gassafety-system/src/main/java/com/zehong/system/service/impl/THiddenTroubleServiceImpl.java
View file @
7017e306
package
com
.
zehong
.
system
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.List
;
import
com.zehong.common.core.domain.entity.SysDictData
;
import
com.zehong.common.core.domain.entity.SysUser
;
import
com.zehong.common.utils.DateUtils
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.system.domain.*
;
import
com.zehong.system.domain.vo.HiddenTroubleVo
;
import
com.zehong.system.mapper.*
;
import
com.zehong.system.service.ISysDictTypeService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.zehong.system.mapper.THiddenTroubleMapper
;
import
com.zehong.system.domain.THiddenTrouble
;
import
com.zehong.system.service.ITHiddenTroubleService
;
/**
...
...
@@ -19,6 +27,18 @@ public class THiddenTroubleServiceImpl implements ITHiddenTroubleService
{
@Autowired
private
THiddenTroubleMapper
tHiddenTroubleMapper
;
@Autowired
private
TDeviceInfoMapper
tDeviceInfoMapper
;
@Autowired
private
TPipeMapper
tPipeMapper
;
@Autowired
private
SysUserMapper
sysUserMapper
;
@Autowired
private
TWorkOrderMapper
tWorkOrderMapper
;
@Autowired
private
TOrderFeedbackMapper
tOrderFeedbackMapper
;
@Autowired
private
ISysDictTypeService
iSysDictTypeService
;
/**
* 查询隐患信息
...
...
@@ -27,9 +47,66 @@ public class THiddenTroubleServiceImpl implements ITHiddenTroubleService
* @return 隐患信息
*/
@Override
public
THiddenTrouble
selectTHiddenTroubleById
(
int
troubleId
)
public
HiddenTroubleVo
selectTHiddenTroubleById
(
int
troubleId
)
throws
Exception
{
return
tHiddenTroubleMapper
.
selectTHiddenTroubleById
(
troubleId
);
HiddenTroubleVo
hiddenTroubleVo
=
new
HiddenTroubleVo
();
THiddenTrouble
tHiddenTrouble
=
tHiddenTroubleMapper
.
selectTHiddenTroubleById
(
troubleId
);
BeanUtils
.
copyProperties
(
tHiddenTrouble
,
hiddenTroubleVo
);
SysUser
sysUser
=
sysUserMapper
.
selectUserById
(
tHiddenTrouble
.
getReportMan
());
hiddenTroubleVo
.
setReportManName
(
sysUser
.
getNickName
());
if
(
StringUtils
.
isNotEmpty
(
tHiddenTrouble
.
getTroubleType
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_type"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
tHiddenTrouble
.
getTroubleType
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleType
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
StringUtils
.
isNotEmpty
(
tHiddenTrouble
.
getTroubleLevel
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_level"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
tHiddenTrouble
.
getTroubleLevel
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleLevel
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
StringUtils
.
isNotEmpty
(
tHiddenTrouble
.
getDealStatus
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_deal_status"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
tHiddenTrouble
.
getDealStatus
()
==
null
){
hiddenTroubleVo
.
setDealStatus
(
"暂未处理"
);
}
else
if
(
tHiddenTrouble
.
getDealStatus
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setDealStatus
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
tHiddenTrouble
.
getDeviceId
()
!=
null
){
if
(
"0"
.
equals
(
tHiddenTrouble
.
getDeviceType
())){
TPipe
pipe
=
tPipeMapper
.
selectTPipeById
(
tHiddenTrouble
.
getDeviceId
());
hiddenTroubleVo
.
setDeviceName
(
pipe
.
getPipeName
());
}
else
{
TDeviceInfo
device
=
tDeviceInfoMapper
.
selectTDeviceInfoById
(
tHiddenTrouble
.
getDeviceId
());
hiddenTroubleVo
.
setDeviceName
(
device
.
getDeviceName
());
}
}
if
(
tHiddenTrouble
.
getOrderId
()
!=
null
&&
!
""
.
equals
(
tHiddenTrouble
.
getOrderId
()))
{
TWorkOrder
tWorkOrder
=
tWorkOrderMapper
.
selectTWorkOrderById
(
tHiddenTrouble
.
getOrderId
());
hiddenTroubleVo
.
setAllotTime
(
tWorkOrder
.
getAllotTime
());
// 获取巡检员姓名
SysUser
appointInspector
=
sysUserMapper
.
selectUserById
(
tWorkOrder
.
getAppointInspector
());
hiddenTroubleVo
.
setAppointInspectorName
(
appointInspector
.
getNickName
());
List
<
TOrderFeedback
>
orderFeedbackList
=
tOrderFeedbackMapper
.
selectTOrderFeedbackByOrderId
(
tHiddenTrouble
.
getOrderId
());
if
(
orderFeedbackList
.
size
()
!=
0
){
hiddenTroubleVo
.
setFeedbackList
(
orderFeedbackList
);
}
}
return
hiddenTroubleVo
;
}
/**
...
...
@@ -39,9 +116,96 @@ public class THiddenTroubleServiceImpl implements ITHiddenTroubleService
* @return 隐患信息
*/
@Override
public
List
<
THiddenTrouble
>
selectTHiddenTroubleList
(
THiddenTrouble
tHiddenTrouble
)
public
List
<
HiddenTroubleVo
>
selectTHiddenTroubleList
(
THiddenTrouble
tHiddenTrouble
)
{
return
tHiddenTroubleMapper
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
List
<
HiddenTroubleVo
>
list
=
new
ArrayList
<>();
List
<
THiddenTrouble
>
tHiddenTroubleList
=
tHiddenTroubleMapper
.
selectTHiddenTroubleList
(
tHiddenTrouble
);
if
(
tHiddenTroubleList
.
size
()
!=
0
)
{
for
(
THiddenTrouble
trouble
:
tHiddenTroubleList
)
{
HiddenTroubleVo
hiddenTroubleVo
=
new
HiddenTroubleVo
();
BeanUtils
.
copyProperties
(
trouble
,
hiddenTroubleVo
);
SysUser
sysUser
=
sysUserMapper
.
selectUserById
(
trouble
.
getReportMan
());
if
(
sysUser
!=
null
)
{
hiddenTroubleVo
.
setReportManName
(
sysUser
.
getNickName
());
}
if
(
StringUtils
.
isNotEmpty
(
trouble
.
getTroubleType
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_type"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
trouble
.
getTroubleType
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleType
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
StringUtils
.
isNotEmpty
(
trouble
.
getTroubleLevel
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_level"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
trouble
.
getTroubleLevel
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleLevel
(
sysDictData
.
getDictLabel
());
}
}
}
list
.
add
(
hiddenTroubleVo
);
}
}
return
list
;
}
/**
* 地图显示隐患信息列表
*
* @param
* @return 隐患信息集合
*/
@Override
public
List
<
HiddenTroubleVo
>
getMapTHiddenTroubleList
()
{
List
<
HiddenTroubleVo
>
list
=
new
ArrayList
<>();
List
<
THiddenTrouble
>
troubleList
=
tHiddenTroubleMapper
.
getMapTHiddenTroubleList
();
if
(
troubleList
.
size
()
!=
0
)
{
for
(
THiddenTrouble
temp
:
troubleList
)
{
HiddenTroubleVo
hiddenTroubleVo
=
new
HiddenTroubleVo
();
BeanUtils
.
copyProperties
(
temp
,
hiddenTroubleVo
);
SysUser
sysUser
=
sysUserMapper
.
selectUserById
(
temp
.
getReportMan
());
if
(
sysUser
!=
null
)
{
hiddenTroubleVo
.
setReportManName
(
sysUser
.
getNickName
());
}
if
(
StringUtils
.
isNotEmpty
(
temp
.
getTroubleType
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_type"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
temp
.
getTroubleType
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleType
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
StringUtils
.
isNotEmpty
(
temp
.
getTroubleLevel
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_trouble_level"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
temp
.
getTroubleLevel
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setTroubleLevel
(
sysDictData
.
getDictLabel
());
}
}
}
if
(
StringUtils
.
isNotEmpty
(
temp
.
getDealStatus
()))
{
List
<
SysDictData
>
sysDictDataList
=
iSysDictTypeService
.
selectDictDataByType
(
"t_deal_status"
);
for
(
SysDictData
sysDictData
:
sysDictDataList
)
{
if
(
temp
.
getDealStatus
()
==
null
){
hiddenTroubleVo
.
setDealStatus
(
"暂未处理"
);
}
else
if
(
temp
.
getDealStatus
().
equals
(
sysDictData
.
getDictValue
()))
{
hiddenTroubleVo
.
setDealStatus
(
sysDictData
.
getDictLabel
());
}
}
}
list
.
add
(
hiddenTroubleVo
);
}
}
return
list
;
}
/**
...
...
gassafety-system/src/main/resources/mapper/system/THiddenTroubleMapper.xml
View file @
7017e306
...
...
@@ -6,35 +6,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap
type=
"THiddenTrouble"
id=
"THiddenTroubleResult"
>
<result
property=
"troubleId"
column=
"trouble_id"
/>
<result
property=
"troubleName"
column=
"trouble_name"
/>
<result
property=
"troubleType"
column=
"trouble_type"
/>
<result
property=
"deviceId"
column=
"device_id"
/>
<result
property=
"
deviceType"
column=
"device_type
"
/>
<result
property=
"
troubleLevel"
column=
"trouble_level
"
/>
<result
property=
"orderId"
column=
"order_id"
/>
<result
property=
"address"
column=
"address"
/>
<result
property=
"longitude"
column=
"longitude"
/>
<result
property=
"deviceType"
column=
"device_type"
/>
<result
property=
"latitude"
column=
"latitude"
/>
<result
property=
"isDel"
column=
"is_del"
/>
<result
property=
"dealStatus"
column=
"deal_status"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"address"
column=
"address"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"remarks"
column=
"remarks"
/>
<result
property=
"pictureUrl"
column=
"picture_url"
/>
<result
property=
"reportMan"
column=
"report_man"
/>
</resultMap>
<sql
id=
"selectTHiddenTroubleVo"
>
select trouble_id,
device_id, device_type, order_id, address, longitude, latitude, deal_status, update_time, create_time, remarks
from t_hidden_trouble
select trouble_id,
trouble_name, trouble_type, device_id, trouble_level, order_id, longitude, device_type, latitude, is_del, deal_status, update_time, address, create_time, remarks, picture_url, report_man
from t_hidden_trouble
</sql>
<select
id=
"selectTHiddenTroubleList"
parameterType=
"THiddenTrouble"
resultMap=
"THiddenTroubleResult"
>
<include
refid=
"selectTHiddenTroubleVo"
/>
<where>
and is_del = '0'
<if
test=
"troubleName != null and troubleName != ''"
>
and trouble_name like concat('%', #{troubleName}, '%')
</if>
<if
test=
"troubleType != null and troubleType != ''"
>
and trouble_type = #{troubleType}
</if>
<if
test=
"deviceId != null "
>
and device_id = #{deviceId}
</if>
<if
test=
"
deviceType != null "
>
and device_type = #{deviceType
}
</if>
<if
test=
"
troubleLevel != null and troubleLevel != ''"
>
and trouble_level = #{troubleLevel
}
</if>
<if
test=
"orderId != null and orderId != ''"
>
and order_id = #{orderId}
</if>
<if
test=
"longitude != null "
>
and longitude = #{longitude}
</if>
<if
test=
"deviceType != null and deviceType != ''"
>
and device_type = #{deviceType}
</if>
<if
test=
"latitude != null "
>
and latitude = #{latitude}
</if>
<if
test=
"dealStatus != null and dealStatus != ''"
>
and deal_status = #{dealStatus}
</if>
<if
test=
"address != null and address != ''"
>
and address = #{address}
</if>
<if
test=
"remarks != null and remarks != ''"
>
and remarks = #{remarks}
</if>
<if
test=
"pictureUrl != null and pictureUrl != ''"
>
and picture_url = #{pictureUrl}
</if>
<if
test=
"reportMan != null "
>
and report_man = #{reportMan}
</if>
</where>
</select>
<select
id=
"getMapTHiddenTroubleList"
resultMap=
"THiddenTroubleResult"
>
<include
refid=
"selectTHiddenTroubleVo"
/>
where is_del = '0' and (deal_status is null or deal_status = '3')
</select>
<select
id=
"selectTHiddenTroubleById"
parameterType=
"int"
resultMap=
"THiddenTroubleResult"
>
<include
refid=
"selectTHiddenTroubleVo"
/>
where trouble_id = #{troubleId}
...
...
@@ -43,44 +61,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert
id=
"insertTHiddenTrouble"
parameterType=
"THiddenTrouble"
useGeneratedKeys=
"true"
keyProperty=
"troubleId"
>
insert into t_hidden_trouble
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"troubleName != null"
>
trouble_name,
</if>
<if
test=
"troubleType != null"
>
trouble_type,
</if>
<if
test=
"deviceId != null"
>
device_id,
</if>
<if
test=
"
deviceType != null"
>
device_type
,
</if>
<if
test=
"
troubleLevel != null"
>
trouble_level
,
</if>
<if
test=
"orderId != null"
>
order_id,
</if>
<if
test=
"address != null"
>
address,
</if>
<if
test=
"longitude != null"
>
longitude,
</if>
<if
test=
"deviceType != null"
>
device_type,
</if>
<if
test=
"latitude != null"
>
latitude,
</if>
<if
test=
"dealStatus != null"
>
deal_status,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"address != null"
>
address,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"remarks != null"
>
remarks,
</if>
<if
test=
"pictureUrl != null"
>
picture_url,
</if>
<if
test=
"reportMan != null"
>
report_man,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"troubleName != null"
>
#{troubleName},
</if>
<if
test=
"troubleType != null"
>
#{troubleType},
</if>
<if
test=
"deviceId != null"
>
#{deviceId},
</if>
<if
test=
"
deviceType != null"
>
#{deviceType
},
</if>
<if
test=
"
troubleLevel != null"
>
#{troubleLevel
},
</if>
<if
test=
"orderId != null"
>
#{orderId},
</if>
<if
test=
"address != null"
>
#{address},
</if>
<if
test=
"longitude != null"
>
#{longitude},
</if>
<if
test=
"deviceType != null"
>
#{deviceType},
</if>
<if
test=
"latitude != null"
>
#{latitude},
</if>
<if
test=
"dealStatus != null"
>
#{dealStatus},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"address != null"
>
#{address},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"remarks != null"
>
#{remarks},
</if>
<if
test=
"pictureUrl != null"
>
#{pictureUrl},
</if>
<if
test=
"reportMan != null"
>
#{reportMan},
</if>
</trim>
</insert>
<update
id=
"updateTHiddenTrouble"
parameterType=
"THiddenTrouble"
>
update t_hidden_trouble
<trim
prefix=
"SET"
suffixOverrides=
","
>
<if
test=
"troubleName != null"
>
trouble_name = #{troubleName},
</if>
<if
test=
"troubleType != null"
>
trouble_type = #{troubleType},
</if>
<if
test=
"deviceId != null"
>
device_id = #{deviceId},
</if>
<if
test=
"
deviceType != null"
>
device_id = #{deviceType
},
</if>
<if
test=
"
troubleLevel != null"
>
trouble_level = #{troubleLevel
},
</if>
<if
test=
"orderId != null"
>
order_id = #{orderId},
</if>
<if
test=
"address != null"
>
address = #{address},
</if>
<if
test=
"longitude != null"
>
longitude = #{longitude},
</if>
<if
test=
"deviceType != null"
>
device_type = #{deviceType},
</if>
<if
test=
"latitude != null"
>
latitude = #{latitude},
</if>
<if
test=
"isDel != null"
>
is_del = #{isDel},
</if>
<if
test=
"dealStatus != null"
>
deal_status = #{dealStatus},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"address != null"
>
address = #{address},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"remarks != null"
>
remarks = #{remarks},
</if>
<if
test=
"pictureUrl != null"
>
picture_url = #{pictureUrl},
</if>
<if
test=
"reportMan != null"
>
report_man = #{reportMan},
</if>
</trim>
where trouble_id = #{troubleId}
</update>
...
...
gassafety-web/src/api/system/user.js
View file @
7017e306
...
...
@@ -10,6 +10,14 @@ export function listUser(query) {
})
}
// 查询用户列表
export
function
allListUser
()
{
return
request
({
url
:
'/system/user/allList'
,
method
:
'get'
,
})
}
// 查询巡检员列表
export
function
inspectorList
(
query
)
{
return
request
({
...
...
gassafety-web/src/assets/images/trouble.png
0 → 100644
View file @
7017e306
1.67 KB
gassafety-web/src/assets/styles/element-ui.scss
View file @
7017e306
...
...
@@ -69,7 +69,7 @@
// dropdown
.el-dropdown-menu
{
a
{
display
:
block
display
:
block
;
}
}
...
...
@@ -78,6 +78,19 @@
display
:
inline-flex
!
important
;
}
// gis地图里抽屉的搜索样式
.search-input
{
.el-input__inner
{
height
:
28px
;
min-height
:
28px
;
outline
:
#053b6a
;
&
:focus
{
// outline: #053b6a;
border-color
:
#053b6a
;
}
}
}
// to fix el-date-picker css style
.el-range-separator
{
box-sizing
:
content-box
;
...
...
gassafety-web/src/assets/styles/fonticon.scss
View file @
7017e306
@font-face
{
font-family
:
"iconfont"
;
/* Project id 2692138 */
src
:
url('//at.alicdn.com/t/font_2692138_
cd9e8nk8yoo.woff2?t=1627718383904
')
format
(
'woff2'
)
,
url('//at.alicdn.com/t/font_2692138_
cd9e8nk8yoo.woff?t=1627718383904
')
format
(
'woff'
)
,
url('//at.alicdn.com/t/font_2692138_
cd9e8nk8yoo.ttf?t=1627718383904
')
format
(
'truetype'
);
src
:
url('//at.alicdn.com/t/font_2692138_
spittg1q2rr.woff2?t=1629681541408
')
format
(
'woff2'
)
,
url('//at.alicdn.com/t/font_2692138_
spittg1q2rr.woff?t=1629681541408
')
format
(
'woff'
)
,
url('//at.alicdn.com/t/font_2692138_
spittg1q2rr.ttf?t=1629681541408
')
format
(
'truetype'
);
}
.iconfont
{
...
...
@@ -13,6 +13,19 @@
-moz-osx-font-smoothing
:
grayscale
;
}
.icon-reset
:before
{
content
:
"\e616"
;
}
.icon-search
{
}
.icon-search
:before
{
content
:
"\e617"
;
font-size
:
13px
;
}
.icon-zhibanrenyuan
:before
{
content
:
"\e613"
;
}
...
...
gassafety-web/src/components/PopWindow/markerInfoWindow.vue
View file @
7017e306
...
...
@@ -13,7 +13,7 @@
<div
class=
"text-wrapper"
>
<div
class=
"eq-text"
>
设备类型:
<span>
{{
title
}}
</span></div>
<div
class=
"eq-text"
>
设备型号:
<span>
{{
data
.
deviceModel
}}
</span></div>
<div
class=
"eq-text"
>
所属管道:
<span>
{{
data
.
pipe
Cod
e
}}
</span></div>
<div
class=
"eq-text"
>
所属管道:
<span>
{{
data
.
pipe
Nam
e
}}
</span></div>
<div
class=
"eq-text"
>
物联网编号:
<span>
{{
data
.
iotNo
}}
</span></div>
</div>
<div
class=
"pic"
>
...
...
gassafety-web/src/components/PopWindowGis/lineInfoWindow.vue
View file @
7017e306
...
...
@@ -99,7 +99,7 @@ export default {
obj
:
{
typs
:
Object
}
,
}
,
created
()
{
console
.
log
(
"created"
,
this
.
obj
);
//
console.log("created", this.obj);
}
,
mounted
()
{
}
,
computed
:
{
...
...
@@ -110,7 +110,7 @@ export default {
methods
:
{
moment
,
mousedown
(
e
)
{
console
.
log
(
"?"
);
//
console.log("?");
return
;
// console.log(this.$refs.previewImg)
this
.
$refs
.
previewImg
.
showViewer
=
true
;
...
...
gassafety-web/src/components/PopWindowGis/lineInfoWindowWarn.vue
View file @
7017e306
...
...
@@ -115,7 +115,7 @@ export default {
return
{
}
;
}
,
created
()
{
console
.
log
(
"created"
,
this
.
obj
);
//
console.log("created", this.obj);
}
,
mounted
()
{
}
,
computed
:
{
...
...
@@ -136,7 +136,7 @@ export default {
methods
:
{
moment
,
mousedown
(
e
)
{
console
.
log
(
"??"
);
//
console.log("??");
return
;
// console.log(this.$refs.previewImg)
this
.
$refs
.
previewImg
.
showViewer
=
true
;
...
...
gassafety-web/src/components/PopWindowGis/markerInfoWindow.vue
View file @
7017e306
...
...
@@ -22,7 +22,7 @@
设备型号:
<span>
{{
data
.
deviceModel
}}
</span>
</div>
<div
class=
"eq-text"
>
所属管道:
<span>
{{
data
.
pipe
Cod
e
}}
</span>
所属管道:
<span>
{{
data
.
pipe
Nam
e
}}
</span>
</div>
<div
class=
"eq-text"
>
物联网编号:
<span>
{{
data
.
iotNo
}}
</span>
...
...
gassafety-web/src/components/PopWindowGis/markerInfoWindowWarn.vue
View file @
7017e306
...
...
@@ -22,7 +22,7 @@
设备型号:
<span>
{{
data
.
deviceModel
}}
</span>
</div>
<div
class=
"eq-text"
>
所属管道:
<span>
{{
data
.
pipe
Cod
e
}}
</span>
所属管道:
<span>
{{
data
.
pipe
Nam
e
}}
</span>
</div>
<div
class=
"eq-text"
>
物联网编号:
<span>
{{
data
.
iotNo
}}
</span>
...
...
gassafety-web/src/components/PopWindowGis/troubleInfoWindowWarn.vue
0 → 100644
View file @
7017e306
<
template
>
<div
class=
"wrapper"
>
<span
class=
"dot-left"
></span>
<div
class=
"top display-default"
>
<div
class=
"left text"
>
{{
data
.
troubleName
}}
</div>
<div
class=
"right text"
>
<img
src=
"../../assets/images/closeBtn.png"
alt=
""
@
click=
"map.clearInfoWindow()"
/>
</div>
</div>
<!-- 设备信息 -->
<div
class=
"content"
>
<div
class=
"eq-content display-default"
>
<div
class=
"text-wrapper"
>
<div
class=
"eq-text"
>
隐患类型:
<span>
{{
data
.
troubleType
}}
</span>
</div>
<div
class=
"eq-text"
>
隐患等级:
<span>
{{
data
.
troubleLevel
}}
</span>
</div>
<div
class=
"eq-text"
>
处理状态:
<span>
{{
data
.
dealStatus
?
dealStatus
:
"暂未处理"
}}
</span>
</div>
<div
class=
"eq-text"
>
上报人员:
<span>
{{
data
.
reportManName
}}
</span>
</div>
</div>
<div
class=
"pic"
>
<img
v-bind:src=
"data.pictureUrl"
alt=
""
/>
</div>
</div>
<!-- 维修人员 -->
<div
class=
"maintain-content"
>
<el-col
:span=
"11"
>
<div>
<span>
上报日期:
</span>
<span>
{{
moment
(
data
.
createTime
).
format
(
"YYYY-MM-DD"
)
}}
</span>
</div>
</el-col>
<el-col
:span=
"13"
>
<div>
<span>
最后巡检日期:
</span>
<span>
{{
data
.
updateTime
?
moment
(
data
.
updateTime
).
format
(
"YYYY-MM-DD"
)
:
"-"
}}
</span>
</div>
</el-col>
<div>
<span>
隐患所在地址:
</span>
<span>
{{
data
.
address
}}
</span>
</div>
<div>
<span>
备注信息:
</span>
<span>
{{
data
.
remarks
?
data
.
remarks
:
"-"
}}
</span>
</div>
</div>
</div>
<!-- 隐患关联设备状态 -->
<div
class=
"warn-wrapper"
v-if=
"true"
>
<div
class=
"warn-content"
>
<div>
关联设备:
<span>
(
{{
data
.
deviceName
?
data
.
deviceName
:
"-"
}}
)
</span>
</div>
<div>
设备类型:
<span>
{{
data
.
deviceType
?
data
.
deviceType
:
"-"
}}
</span>
</div>
<div
v-if=
"!orderId"
>
工单编号:
<span>
{{
data
.
orderId
}}
</span>
</div>
</div>
<div
class=
"btn"
>
<span
@
mousedown
.
stop=
"deviceMore"
>
<el-button
class=
"elbtn"
type=
"primary"
>
设备详情
</el-button>
</span>
<span
v-if=
"orderId"
@
mousedown
.
stop=
"createWork"
>
<el-button
v-if=
"title == '压力表' || title == '流量计'"
class=
"elbtn"
type=
"primary"
>
生成工单
</el-button
>
</span>
<span
v-else
@
mousedown
.
stop=
"checkWork"
>
<el-button
class=
"elbtn"
type=
"primary"
>
查看工单
</el-button>
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
moment
from
"moment"
;
//line移入时的的infowindow
export
default
{
props
:
{
obj
:
{
typs
:
Object
},
title
:
""
,
data
:
{},
map
:
null
,
},
data
()
{
return
{
deviceType
:
{
1
:
"调压箱"
,
2
:
"阀门井"
,
3
:
"流量计"
,
4
:
"智能燃气表"
,
},
};
},
computed
:
{
orderId
()
{
// 如果已经生成过工单,就不能再次生成了
// return this.data.orderId ? false : true;
return
this
.
data
.
orderId
?
false
:
true
;
},
},
methods
:
{
moment
,
createWork
()
{
// 控制外层弹框
// console.log(this.data.view.$refs.CreateWork);
this
.
data
.
view
.
$refs
.
CreateWork
.
alarmId
=
this
.
data
.
alarmId
;
this
.
data
.
view
.
$refs
.
CreateWork
.
open
=
true
;
this
.
data
.
view
.
$refs
.
CreateWork
.
gaoMap
=
this
.
data
.
view
.
gaoMap
;
// 改变外层回调
// this.data.view.CreateWorkCallBack = this.CreateWorkCallBack;
this
.
data
.
view
.
alarmObjChange
({
alarmId
:
this
.
data
.
alarmId
,
type
:
"device"
,
});
},
// CreateWorkCallBack(e) {
// // console.log("生成工单后传过来的参数", e);
// // console.log("markerCallBack");
// const marker = this.data.view.gaoMap.markers.filter((item) => {
// return item.getExtData().alarmId == this.data.alarmId;
// })[0];
// console.log("marer.getExtData()", marker.getExtData());
// let options = marker.getExtData();
// // 暂时传值,到时候回重新刷新
// options.orderId = e;
// marker.setExtData(options);
// },
deviceMore
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/dataMonitoring/alarmdetail"
,
query
:
{
alarmId
:
this
.
data
.
alarmId
,
dcviceType
:
this
.
deviceType
[
this
.
data
.
deviceType
],
},
});
},
// 查看工单
checkWork
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/workOrder/detail"
,
query
:
{
orderId
:
this
.
data
.
orderId
,
},
});
},
},
beforeDestroy
()
{
// this.data.view.createWorkOpen = false;
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.wrapper
{
width
:
406px
;
max-height
:
430px
;
background
:
#fff
;
border-radius
:
4px
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
overflow
:
hidden
;
.top
{
width
:
100%
;
height
:
51px
;
background-color
:
#ff5a67
;
.text
{
font-weight
:
600
;
font-size
:
16px
;
color
:
#ffffff
;
line-height
:
51px
;
}
.left
{
padding-left
:
22px
;
}
.right
{
padding-right
:
22px
;
img
{
cursor
:
pointer
;
}
}
}
.content
{
position
:
relative
;
max-height
:
300px
;
overflow
:
hidden
;
overflow-y
:
auto
;
padding-bottom
:
2px
;
border-bottom
:
1px
solid
#eeeeee
;
.eq-content
{
// min-height: 156px;
box-sizing
:
border-box
;
padding
:
13px
22px
0px
22px
;
// border-bottom: 1px solid #e2e2e2;
.text-wrapper
{
padding-top
:
1px
;
&
>
div
{
margin-bottom
:
6px
;
}
.eq-text
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#1d1d1d
;
opacity
:
1
;
&
>
span
{
vertical-align
:
top
;
display
:
inline-block
;
// white-space: nowrap;
// text-overflow: ellipsis;
// overflow: hidden;
word-break
:
break-all
;
max-width
:
100px
;
}
}
}
.pic
{
width
:
180px
;
height
:
103px
;
// background-color: black;
img
{
width
:
100%
;
height
:
100%
;
// cursor: pointer;
}
}
}
}
.maintain-content
{
width
:
100%
;
max-height
:
119px
;
padding-left
:
22px
;
// padding-right: 22px;
// padding-bottom: 10px;
// padding-top: 16px;
box-sizing
:
border-box
;
// border-bottom: 1px solid #e2e2e2;
&
>
div
{
margin-bottom
:
8px
;
font-size
:
14px
;
font-weight
:
400
;
span
{
vertical-align
:
top
;
display
:
inline-block
;
word-break
:
break-all
;
max-width
:
280px
;
}
}
}
.warn-wrapper
{
.warn-content
{
box-sizing
:
border-box
;
padding
:
10px
0
2px
22px
;
border-bottom
:
1px
solid
#e2e2e2
;
color
:
#fe5966
;
&
>
div
{
font-size
:
14px
;
font-weight
:
400
;
margin-bottom
:
8px
;
}
}
.btn
{
padding
:
16px
0
;
text-align
:
center
;
span
{
display
:
inline-block
;
padding
:
0
10px
;
.elbtn
{
background-color
:
#053b6a
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
width
:
95px
;
height
:
33px
;
border
:
none
;
}
}
}
}
}
.wrapperEditorPage
{
}
.display-default
{
display
:
flex
;
justify-content
:
space-between
;
}
</
style
>
gassafety-web/src/components/PopWindowGis/workerManInfowindow.vue
View file @
7017e306
...
...
@@ -13,7 +13,7 @@ export default {
},
},
created
()
{
console
.
log
(
"data"
,
this
.
data
);
//
console.log("data", this.data);
},
};
</
script
>
...
...
gassafety-web/src/components/PopWindowGis/workerManView.vue
View file @
7017e306
...
...
@@ -158,7 +158,7 @@ export default {
// console.log("userId",item.getExtData().userId)
return
item
.
getExtData
().
userId
==
this
.
formData
.
userId
;
})[
0
];
console
.
log
(
"target.moveMarker"
,
target
.
moveMarker
);
//
console.log("target.moveMarker", target.moveMarker);
getInspectorLocations
(
this
.
formData
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
// 如果这个时间段没有移动轨迹
...
...
gassafety-web/src/utils/gaodeMap.js
View file @
7017e306
...
...
@@ -34,6 +34,7 @@ class gaodeMap {
mouseTool
=
null
;
myMap
=
null
;
showInfoWindow
=
null
;
view
=
null
;
//构造函数中设置中央点默认值
constructor
(
center
)
{
...
...
@@ -86,6 +87,18 @@ class gaodeMap {
// console.log("缩放开始")
this
.
closeInfoWindow
();
});
this
.
myMap
.
on
(
"moveend"
,
()
=>
{
// console.log("缩放开始")
if
(
!
this
.
onceFlag
)
{
this
.
onceFlag
=
true
;
if
(
this
.
view
)
{
this
.
view
.
backFlag
=
false
;
// 让抽屉不在隐身
this
.
view
.
drawerOpacity
=
true
;
}
}
});
this
.
districtBoundaries
();
}
...
...
@@ -987,10 +1000,10 @@ class gaodeMap {
}
});
let
infoWindow
=
new
AMap
.
InfoWindow
({
isCustom
:
true
,
isCustom
:
true
,
content
:
`<span style='border:1px solid #80d8ff;background:#fff'>
${
pipeName
}
</span>`
,
anchor
:
"left-top"
,
offset
:
new
AMap
.
Pixel
(
20
,
-
20
)
,
offset
:
new
AMap
.
Pixel
(
20
,
-
20
)
});
polyline
.
on
(
"mouseover"
,
e
=>
{
const
options
=
polyline
.
getOptions
();
...
...
@@ -1007,7 +1020,7 @@ class gaodeMap {
map
.
add
(
polyline
);
const
path
=
eval
(
coordinates
)[
0
];
// map.setFitView();
map
.
setCenter
([
+
path
[
0
],
+
path
[
1
]],
false
)
map
.
setCenter
([
+
path
[
0
],
+
path
[
1
]],
false
);
// const lntlat = eval(coordinates)[0];
// map.panTo(lntlat)
...
...
gassafety-web/src/utils/gaodeMapView.js
View file @
7017e306
...
...
@@ -7,6 +7,7 @@ import lineInfoWindow from "../components/PopWindowGis/lineInfoWindow.vue";
import
markerInfoWindow
from
"../components/PopWindowGis/markerInfoWindow.vue"
;
import
removeLineInfoWindow
from
"../components/PopWindowGis/removeLineInfoWindow.vue"
;
import
markerInfoWindowWarn
from
"../components/PopWindowGis/markerInfoWindowWarn.vue"
;
import
troubleInfoWindowWarn
from
"../components/PopWindowGis/troubleInfoWindowWarn.vue"
;
import
lineInfoWindowWarn
from
"../components/PopWindowGis/lineInfoWindowWarn.vue"
;
import
{
delDeviceInfo
}
from
"@/api/device/deviceInfo"
;
...
...
@@ -28,13 +29,15 @@ export const DEVICE_TYPE = {
WORKORDER
:
"6"
,
PRESSUREGAGE
:
"7"
,
INSPECTOR
:
"8"
,
SMALLINSPECTOR
:
"workPoint"
SMALLINSPECTOR
:
"workPoint"
,
TROUBLE
:
"trouble"
};
class
gaodeMap
{
// 所有线的数组
polyLines
=
[];
//值班人员的单独数组,轨迹的时候使用
workerManArr
=
[];
troubles
=
[];
// 值班人员对象的arr
workerManMarkArr
=
[];
// 是否开启新增
...
...
@@ -114,11 +117,14 @@ class gaodeMap {
if
(
!
this
.
onceFlag
)
{
this
.
onceFlag
=
true
;
this
.
view
.
backFlag
=
false
;
// 让抽屉不在隐身
this
.
view
.
drawerOpacity
=
true
;
}
// 每次地图移动结束,就让地图可以缩放
let
options
=
this
.
myMap
.
getStatus
();
options
.
scrollWheel
=
true
;
this
.
myMap
.
setStatus
(
options
);
}
});
this
.
districtBoundaries
();
}
...
...
@@ -268,10 +274,21 @@ class gaodeMap {
this
.
workerManMarkArr
.
push
(
marker
);
}
}
// 隐患
if
(
DEVICE_TYPE
.
TROUBLE
==
markerType
)
{
marker
.
markerType
=
markerType
;
marker
.
data
=
data
;
marker
.
infoWindow
=
infoWindow
;
this
.
troubles
.
push
(
marker
);
}
if
(
DEVICE_TYPE
.
WORKORDER
!=
markerType
&&
DEVICE_TYPE
.
INSPECTOR
!=
markerType
&&
DEVICE_TYPE
.
SMALLINSPECTOR
!=
markerType
DEVICE_TYPE
.
SMALLINSPECTOR
!=
markerType
&&
DEVICE_TYPE
.
TROUBLE
!=
markerType
)
{
// marker.content = this.getMarketContent(data, markerInfoWindow);
marker
.
infoWindow
=
infoWindow
;
...
...
@@ -358,6 +375,7 @@ class gaodeMap {
return
marker
;
}
// 值班人员
wokerManOpen
=
e
=>
{
this
.
markerType
=
e
.
target
.
markerType
;
e
.
target
.
content
=
this
.
getMarketContent
(
e
.
target
.
data
);
...
...
@@ -369,6 +387,8 @@ class gaodeMap {
// infoWindow.close();
this
.
workerManInfoWindow
=
e
.
target
.
infoWindow
;
};
// 隐患
troubleOpen
=
e
=>
{};
// 鼠标移入设备时候实行的函数
infoOpen
=
e
=>
{
...
...
@@ -441,7 +461,7 @@ class gaodeMap {
getMarketContent
(
Data
,
markerInfoWindow
)
{
let
data
=
{
...
Data
};
data
.
class
=
this
;
console
.
log
(
"this.markerType"
,
this
.
markerType
);
//
console.log("this.markerType", this.markerType);
switch
(
this
.
markerType
)
{
case
DEVICE_TYPE
.
REGEULATORBOX
:
{
const
dom
=
createPop
(
markerInfoWindow
,
{
...
...
@@ -504,6 +524,16 @@ class gaodeMap {
dom
.
remove
();
return
html
;
}
case
DEVICE_TYPE
.
TROUBLE
:
{
const
dom
=
createPop
(
troubleInfoWindowWarn
,
{
title
:
"隐患"
,
data
:
data
,
map
:
map
});
const
html
=
dom
.
$el
;
dom
.
remove
();
return
html
;
}
}
}
...
...
@@ -595,6 +625,16 @@ class gaodeMap {
marker
.
setIcon
(
icon
);
break
;
}
//隐患
case
DEVICE_TYPE
.
TROUBLE
:
{
let
icon
=
new
AMap
.
Icon
({
opacity
:
0.1
,
image
:
require
(
"../assets/images/trouble.png"
)
});
marker
.
workerPoint
=
true
;
marker
.
setIcon
(
icon
);
break
;
}
}
}
changeMarkIcon
(
marker
,
iconUrl
)
{
...
...
@@ -779,7 +819,6 @@ class gaodeMap {
// 警告状态时
const
item
=
e
.
target
.
getExtData
().
lineData
;
// console.log("item",item)
if
(
e
.
target
.
getExtData
().
lineData
.
alarmState
==
1
)
{
infoWindow
=
this
.
lineMouseOver
(
polyline
,
lineInfoWindowWarn
,
item
);
}
else
{
...
...
gassafety-web/src/views/dataMonitoring/alarmdetail/index.vue
View file @
7017e306
...
...
@@ -55,7 +55,7 @@
<font
v-if=
"form.orderId == null || form.orderId == ''"
>
未生成工单
</font>
<font
v-if=
"(form.dealStatus == null || form.dealStatus == '') && form.orderId != null && form.orderId != ''"
>
未处理
</font>
暂
未处理
</font>
<font
v-if=
"form.dealStatus == 1"
>
不需处理
</font>
<font
v-if=
"form.dealStatus == 2"
>
已处理完成
</font>
<font
v-if=
"form.dealStatus == 3"
>
未处理完成
</font>
...
...
@@ -63,48 +63,80 @@
</el-form>
</el-col>
</el-row>
<!-- <div style="width: 100%;height: 100px;"> -->
<!-- </div> -->
<el-divider></el-divider>
<el-row>
<el-col
:span=
"16"
style=
"padding: 10px;"
>
<div
style=
"width: 100%;float: left;height: 100%;"
>
<el-table
:data=
"dataListdetail
1
"
style=
"width: 100%"
>
<div
style=
"width: 100%;float: left;height: 100%;"
v-if=
"form.deviceType != '管道'"
>
<el-table
:data=
"dataListdetail"
style=
"width: 100%"
>
<el-table-column
label=
"设备名称"
align=
"center"
prop=
"deviceName"
/>
<el-table-column
label=
"设备编号"
align=
"center"
prop=
"deviceCode"
/>
<el-table-column
label=
"报警类型"
align=
"center"
prop=
"alarmType"
/>
<el-table-column
label=
"设备类型"
align=
"center"
prop=
"deviceType"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.deviceType == 1"
>
调压阀
</span>
<span
v-if=
"scope.row.deviceType == 2"
>
阀门井
</span>
<span
v-if=
"scope.row.deviceType == 3"
>
流量计
</span>
<span
v-if=
"scope.row.deviceType == 4"
>
压力表
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"设备型号"
align=
"center"
prop=
"deviceModel"
/>
</el-table>
<el-table
:data=
"dataListdetail2"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"报警值"
align=
"center"
prop=
"alarmValue"
/>
<el-table-column
label=
"报警开始时间"
align=
"center"
prop=
"startTime"
/>
<el-table
:data=
"dataListdetail"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"物联网编号"
align=
"center"
prop=
"iotNo"
/>
<el-table-column
label=
"所在地址"
align=
"center"
prop=
"deviceAddr"
/>
<el-table-column
label=
"联系人"
align=
"center"
prop=
"linkman"
/>
<el-table-column
label=
"联系电话"
align=
"center"
prop=
"phone"
/>
</el-table>
<el-table
:data=
"dataListdetail"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"安装日期"
align=
"center"
prop=
"installationTime"
/>
<el-table-column
label=
"最后巡检日期"
align=
"center"
prop=
"inspectionTime"
/>
<el-table-column
label=
"图片"
align=
"center"
prop=
"iconUrl"
>
<
template
slot-scope=
"scope"
>
<el-image
:src=
"scope.row.iconUrl"
:preview-src-list=
"[scope.row.iconUrl]"
v-if=
"scope.row.iconUrl != '' && scope.row.iconUrl != null"
style=
"width: 16px;"
></el-image>
</
template
>
</el-table-column>
</el-table>
</div>
<div
style=
"width: 100%;float: left;height: 100%;"
v-if=
"form.deviceType == '管道'"
>
<el-table
:data=
"dataListdetail"
style=
"width: 100%"
>
<el-table-column
label=
"管道名称"
align=
"center"
prop=
"pipeName"
/>
<el-table-column
label=
"管道编号"
align=
"center"
prop=
"pipeCode"
/>
<el-table-column
label=
"管道类型"
align=
"center"
prop=
"pipeType"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.pipeType == 1"
>
地埋管线
</span>
<span
v-if=
"scope.row.pipeType == 2"
>
地表管线
</span>
</
template
>
</el-table-column>
</el-table>
<el-table
:data=
"dataListdetail3"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"报警结束时间"
align=
"center"
prop=
"endTime"
/>
<el-table-column
label=
"处理状态"
align=
"center"
prop=
"dealStatus"
>
<el-table
:data=
"dataListdetail"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"管道压力"
align=
"center"
prop=
"pipePressure"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.orderId == null || scope.row.orderId == ''"
>
未生成工单
</span>
<span
v-if=
"(scope.row.dealStatus == null || scope.row.dealStatus == '') &&
scope.row.orderId != null && scope.row.orderId != ''"
>
未处理
</span>
<span
v-if=
"scope.row.dealStatus == 1"
>
不需处理
</span>
<span
v-if=
"scope.row.dealStatus == 2"
>
已处理完成
</span>
<span
v-if=
"scope.row.dealStatus == 3"
>
未处理完成
</span>
<span
v-if=
"scope.row.pipePressure == 1"
>
低压
</span>
<span
v-if=
"scope.row.pipePressure == 2"
>
中压
</span>
<span
v-if=
"scope.row.pipePressure == 3"
>
次高压
</span>
<span
v-if=
"scope.row.pipePressure == 4"
>
高压
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"管道长度"
align=
"center"
prop=
"pipeLength"
/>
<el-table-column
label=
"管道地址"
align=
"center"
prop=
"pipeAddr"
/>
</el-table>
<el-table
:data=
"dataListdetail"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"安装日期"
align=
"center"
prop=
"installationTime"
/>
<el-table-column
label=
"最后巡检日期"
align=
"center"
prop=
"inspectionTime"
/>
<el-table-column
label=
"图片"
align=
"center"
prop=
"iconUrl"
>
<
template
slot-scope=
"scope"
>
<el-image
:src=
"scope.row.iconUrl"
:preview-src-list=
"[scope.row.iconUrl]"
v-if=
"scope.row.iconUrl != '' && scope.row.iconUrl != null"
style=
"width: 16px;"
></el-image>
</
template
>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col
:span=
"8"
style=
"padding: 10px;padding-left: 0px;"
>
<div
id=
"marbox"
style=
"width: 100%;height: 304px; border: 1px solid rgb(218, 213, 213);float: right;"
>
<div
style=
"width: 100%;height: 100%"
id=
"container"
></div>
...
...
@@ -112,10 +144,7 @@
</el-col>
</el-row>
<
template
v-if=
"$route.query.deviceType!='管道'"
>
<el-row
v-if=
"form.deviceType != '压力表'"
>
<el-col
:span=
"12"
style=
"padding: 10px;"
>
<div
id=
"main1"
style=
"height:300px;background-color: rgb(247 247 247);padding: 5px;"
>
...
...
@@ -148,22 +177,8 @@
</div>
</el-col>
</el-row>
<!--
<div
v-if=
"form.deviceType != '压力表'"
style=
"height: 320p x;width: 100%;margin-top: 15px;padding: 10px;"
>
-->
<!--
</div>
-->
<!--
<div
style=
"height: 320px;width: 100%;padding: 10px;margin-top: 10px;"
>
-->
<!--
</div>
-->
</
template
>
</div>
</div>
</template>
...
...
@@ -182,9 +197,7 @@ export default {
},
data
()
{
return
{
dataListdetail1
:
[],
dataListdetail2
:
[],
dataListdetail3
:
[],
dataListdetail
:
[],
alarmId
:
''
,
// 折线图标题
title
:
""
,
...
...
@@ -534,21 +547,25 @@ export default {
},
getDetail
(){
getDeviceAlarm
(
this
.
alarmId
).
then
(
response
=>
{
const
{
deviceName
,
deviceCode
,
alarmType
,
alarmValue
,
startTime
,
endTime
,
deviceStatus
}
=
response
.
data
;
const
obj1
=
{
deviceName
,
deviceCode
,
alarmType
};
const
obj2
=
{
alarmValue
,
startTime
};
const
obj3
=
{
endTime
,
deviceStatus
};
this
.
dataListdetail1
.
push
(
obj1
);
this
.
dataListdetail2
.
push
(
obj2
);
this
.
dataListdetail3
.
push
(
obj3
);
this
.
form
=
response
.
data
;
this
.
active
=
parseInt
(
response
.
data
.
orderStatus
)
+
1
;
this
.
gaoMap
.
resetMapCenter
([
this
.
form
.
longitude
,
this
.
form
.
latitude
]);
this
.
gaoMap
.
addMarker
(
DEVICE_TYPE
.
WORKORDER
,
this
.
form
);
this
.
form
.
pipeName
=
this
.
form
.
deviceName
;
this
.
gaoMap
.
onlyLine
(
this
.
form
);
if
(
this
.
form
.
pipeList
!=
null
){
let
pipe
=
this
.
form
.
pipeList
[
0
];
console
.
log
(
"pipe"
,
pipe
);
this
.
dataListdetail
.
push
(
pipe
);
this
.
gaoMap
.
onlyLine
(
pipe
);
}
if
(
this
.
form
.
deviceList
!=
null
){
let
device
=
this
.
form
.
deviceList
[
0
];
console
.
log
(
"device"
,
device
);
this
.
dataListdetail
.
push
(
device
);
this
.
gaoMap
.
resetMapCenter
([
device
.
longitude
,
device
.
latitude
]);
this
.
gaoMap
.
addMarker
(
DEVICE_TYPE
.
WORKORDER
,
device
);
}
var
getData1
=
[];
var
getData2
=
[];
...
...
gassafety-web/src/views/dataMonitoring/deviceAlarm/index.vue
View file @
7017e306
...
...
@@ -104,7 +104,7 @@
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.orderId == null || scope.row.orderId == ''"
>
未生成工单
</span>
<span
v-if=
"(scope.row.dealStatus == null || scope.row.dealStatus == '') &&
scope.row.orderId != null && scope.row.orderId != ''"
>
未处理
</span>
scope.row.orderId != null && scope.row.orderId != ''"
>
暂
未处理
</span>
<span
v-if=
"scope.row.dealStatus == 1"
>
不需处理
</span>
<span
v-if=
"scope.row.dealStatus == 2"
>
已处理完成
</span>
<span
v-if=
"scope.row.dealStatus == 3"
>
未处理完成
</span>
...
...
gassafety-web/src/views/dataMonitoring/realtimedetail/index.vue
View file @
7017e306
...
...
@@ -24,20 +24,20 @@
<span
v-if=
"scope.row.deviceType == '4'"
>
压力表
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"标况累计量"
align=
"center"
prop=
"standardConditionAccumulation"
/>
<el-table-column
label=
"标况累计量
(m³)
"
align=
"center"
prop=
"standardConditionAccumulation"
/>
</el-table>
<el-table
:data=
"dataListdetail2"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"工况累计量"
align=
"center"
prop=
"workingConditionAccumulation"
/>
<el-table-column
label=
"剩余量"
align=
"center"
prop=
"residualQuantity"
/>
<el-table-column
label=
"标况流量"
align=
"center"
prop=
"standardConditionFlow"
/>
<el-table-column
label=
"工况流量"
align=
"center"
prop=
"workingConditionFlow"
/>
<el-table-column
label=
"工况累计量
(m³)
"
align=
"center"
prop=
"workingConditionAccumulation"
/>
<el-table-column
label=
"剩余量
(m³)
"
align=
"center"
prop=
"residualQuantity"
/>
<el-table-column
label=
"标况流量
(m³/h)
"
align=
"center"
prop=
"standardConditionFlow"
/>
<el-table-column
label=
"工况流量
(m³/h)
"
align=
"center"
prop=
"workingConditionFlow"
/>
</el-table>
<el-table
:data=
"dataListdetail3"
style=
"width: 100%;margin-top: 20px;"
>
<el-table-column
label=
"温度"
align=
"center"
prop=
"temperature"
/>
<el-table-column
label=
"压力"
align=
"center"
prop=
"pressure"
/>
<el-table-column
label=
"温度
(℃)
"
align=
"center"
prop=
"temperature"
/>
<el-table-column
label=
"压力
(KPa)
"
align=
"center"
prop=
"pressure"
/>
<el-table-column
label=
"上报时间"
align=
"center"
prop=
"reportTime"
/>
<el-table-column
label=
"设备状态"
align=
"center"
prop=
"deviceStatus"
>
</el-table-column>
...
...
gassafety-web/src/views/device/map/index.vue
View file @
7017e306
...
...
@@ -63,7 +63,7 @@
</div>
</div>
<el-input
<
!-- <
el-input
v-model="keyWord"
placeholder="点击输入"
id="tipinput"
...
...
@@ -74,9 +74,9 @@
>
<el-button icon="el-icon-refresh" class="refresh-but" @click="refreshMap()"
>重置</el-button
>
>
-->
<div
class=
"leftBar-wrapper"
>
<
!-- <
div class="leftBar-wrapper">
<div
v-for="item in changeBtnData"
:key="item.value"
...
...
@@ -92,6 +92,150 @@
</div>
<i class="el-icon-check"></i>
</div>
</div> -->
<div
ref=
"drawer"
class=
"drawer"
:class=
"{ back: backFlag,opacity: drawerOpacity }"
>
<div
class=
"switch"
@
click=
"backFlag = !backFlag"
>
<img
v-if=
"!backFlag"
src=
"@/assets/images/l.png"
alt=
""
/>
<img
v-else
src=
"@/assets/images/r.png"
alt=
""
/>
</div>
<!-- 只能动态传入内嵌盒子的高 -->
<div
class=
"scroll"
:style=
"{ height: `${boxHeight}px` }"
>
<el-input
v-model=
"keyWord"
placeholder=
"点击输入"
id=
"tipinput"
class=
"search-input"
>
<
template
slot=
"suffix"
>
<div
@
click=
"search()"
>
<i
class=
"iconfont icon-search"
></i>
</div>
</
template
>
</el-input>
<!-- <el-button class="search-but" @click="search()">搜索</el-button> -->
<el-button
class=
"refresh-but"
@
click=
"refreshMap()"
>
<i
class=
"iconfont icon-reset"
></i>
</el-button>
<div
class=
"leftBar-wrapper"
>
<div
class=
"box-wrapper"
v-for=
"(item, index) in changeBtnData"
:key=
"item.value"
>
<div
class=
"box"
:class=
"{
active: leftBarNum.indexOf(item.value) >= 0,
firstbox: index == 0,
}"
@
click
.
stop=
"arrowRightChange(item)"
>
<span
class=
"upPic"
>
上图
</span>
<div
class=
"left"
>
<i
class=
"iconfont"
:class=
"item.icon"
></i>
</div>
<div
class=
"right"
>
{{ item.label }}
</div>
<i
@
click
.
stop=
"leftBarChange(item)"
class=
"el-icon-check bingo"
></i>
<i
class=
"ju"
></i>
<i
class=
"arrow-right el-icon-arrow-right"
:class=
"{ active: arrowRightNum.indexOf(item.value) >= 0 }"
></i>
</div>
<el-collapse-transition>
<div
class=
"animate"
v-show=
"arrowRightNum.indexOf(item.value) >= 0"
>
<!-- 有数据 -->
<
template
v-if=
"item.list.length > 0"
>
<!-- 设备以及管道 展示内容是一样的 -->
<template
v-if=
"item.value != 9"
>
<div
class=
"list-wrapper"
>
<div
class=
"thead"
>
<div
class=
"no"
>
序号
</div>
<div
class=
"code"
>
设备编号
</div>
<div
class=
"name"
>
设备名称
</div>
</div>
<div
class=
"deviceList"
:class=
"
{ topActive: index == 0 }"
v-for="(iten, index) in item.list"
:key="iten.deviceId + `` + index"
@mousedown.stop="panToo(iten, item)"
>
<div
class=
"no"
>
{{
iten
.
no
+
1
}}
</div>
<div
:title=
"iten.code"
class=
"code"
>
{{
iten
.
code
}}
</div>
<div
:title=
"iten.deviceName"
class=
"name"
>
{{
iten
.
deviceName
}}
</div>
</div>
</div>
</
template
>
<!-- 值班人员 展示不太一样-->
<
template
v-else-if=
"item.value == 9"
>
<div
class=
"list-wrapper"
>
<div
class=
"thead"
>
<div
class=
"no"
>
序号
</div>
<div
class=
"code"
>
人员姓名
</div>
<div
class=
"name"
>
联系电话
</div>
</div>
<div
class=
"deviceList"
:class=
"
{ topActive: index == 0 }"
v-for="(iten, index) in item.list"
:key="iten.deviceId + `` + index"
@click.stop="panToo(iten, item)"
>
<div
class=
"no"
>
{{
iten
.
no
+
1
}}
</div>
<div
:title=
"iten.userName"
class=
"code"
>
{{
iten
.
userName
}}
</div>
<div
:title=
"iten.userPhone"
class=
"name"
>
{{
iten
.
userPhone
?
iten
.
userPhone
:
"-"
}}
</div>
</div>
</div>
</
template
>
<!-- 翻页 -->
<div
class=
"goback"
>
<div
class=
"btn-w"
>
<el-button
class=
"btn backPage"
type=
"mini"
:disabled=
"item.nowPage == 1"
@
click
.
stop=
"pageBack(item, index)"
icon=
"el-icon-arrow-left"
/>
<span
class=
"btn-w-num"
>
{{ item.nowPage }}
</span>
<el-button
class=
"btn goPage"
type=
"mini"
:disabled=
"item.nowPage == item.maxPage"
@
click
.
stop=
"pageGo(item, index)"
icon=
"el-icon-arrow-right"
/>
</div>
</div>
</template>
<!-- 无数据 -->
<
template
v-else
>
<div
style=
"padding-left: 5px"
>
暂无数据
</div>
</
template
>
</div>
</el-collapse-transition>
</div>
</div>
</div>
</div>
</div>
</template>
...
...
@@ -110,8 +254,15 @@ export default {
radio1
:
""
,
// 1新建,2编辑,3删除,点按钮变色
targetNum
:
0
,
backFlag
:
true
,
// 抽屉内的滚动条的高需要赋值赋值
boxHeight
:
""
,
drawerOpacity
:
false
,
// 左边的bar的active判定
leftBarNum
:
[
1
,
2
,
3
,
4
,
7
],
// 右转箭头的样式active判定
arrowRightNum
:
[],
// 新建里的值
iconClass
:
"icon-create"
,
...
...
@@ -122,26 +273,31 @@ export default {
value
:
1
,
icon
:
"icon-gd"
,
label
:
"管道"
,
list
:
[],
},
{
value
:
2
,
icon
:
"icon-tyx"
,
label
:
"调压箱"
,
list
:
[],
},
{
value
:
3
,
icon
:
"icon-fmj"
,
label
:
"阀门井"
,
list
:
[],
},
{
value
:
4
,
icon
:
"icon-llj"
,
label
:
"流量计"
,
list
:
[],
},
{
value
:
7
,
icon
:
"icon-ylb"
,
label
:
"压力表"
,
list
:
[],
},
],
keyWord
:
""
,
...
...
@@ -149,11 +305,13 @@ export default {
},
mounted
()
{
this
.
initMap
();
this
.
boxHeight
=
document
.
body
.
clientHeight
-
81
;
},
methods
:
{
initMap
()
{
let
gaoMap
=
new
gaodeMap
(
"石家庄"
);
this
.
gaoMap
=
gaoMap
;
this
.
gaoMap
.
view
=
this
;
window
.
addEventListener
(
"click"
,
this
.
barClose
);
gaoMap
.
addMouseTool
();
gaoMap
.
searchTips
(
"tipinput"
);
...
...
@@ -360,7 +518,7 @@ export default {
this
.
gaoMap
.
closeAddMarker
();
this
.
gaoMap
.
removeMarkerDragg
();
this
.
gaoMap
.
mapOperateType
=
"normal"
;
this
.
leftBarNum
=
[
1
,
2
,
3
,
4
,
7
]
this
.
leftBarNum
=
[
1
,
2
,
3
,
4
,
7
];
// map.remove(this.gaodeMap.markerOverlays);
},
search
()
{
...
...
@@ -405,8 +563,18 @@ export default {
this
.
targetNum
=
0
;
map
.
clearMap
();
this
.
initMap
();
this
.
leftBarNum
=
[
1
,
2
,
3
,
4
,
7
];
this
.
keyWord
=
""
;
this
.
leftBarNum
=
[
1
,
2
,
3
,
4
,
7
];
this
.
keyWord
=
""
;
},
// 向右的箭头的动画
arrowRightChange
(
item
)
{
const
index
=
this
.
arrowRightNum
.
indexOf
(
item
.
value
);
if
(
index
>=
0
)
{
this
.
arrowRightNum
.
splice
(
index
,
1
);
}
else
{
this
.
arrowRightNum
.
push
(
item
.
value
);
}
},
},
...
...
@@ -420,67 +588,67 @@ export default {
<
style
lang=
"scss"
scoped
>
// 解决地图下拉框
#container
{
#container
{
position
:
fixed
;
top
:
80px
;
bottom
:
0
;
bottom
:
0
;
width
:
100%
;
}
// 左边的bar
.leftBar-wrapper
{
position
:
fixed
;
left
:
100px
;
top
:
150px
;
.box
{
width
:
180px
;
height
:
48px
;
display
:
flex
;
background-color
:
#ffffff
;
box-sizing
:
border-box
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
border-top
:
none
;
cursor
:
pointer
;
position
:
relative
;
>
i
{
position
:
absolute
;
line-height
:
48px
;
right
:
20px
;
color
:
#fff
;
}
&
:hover
{
// background-color: #053b6a;
// color: #ffffff;
// > i {
// color:#fff;
// }
}
&
:hover
.left
,
&
:hover
.right
{
// color: #ffffff;
}
&
.active
{
// background-color: #053b6a;
.left
,
.right
{
color
:
#053b6a
;
}
>
i
{
color
:
#053b6a
;
}
}
.left
{
color
:
#053b6a
;
line-height
:
48px
;
margin-left
:
40px
;
}
.right
{
color
:
#1d1d1d
;
line-height
:
48px
;
margin-left
:
20px
;
}
}
}
//
.leftBar-wrapper {
//
position: fixed;
//
left: 100px;
//
top: 150px;
//
.box {
//
width: 180px;
//
height: 48px;
//
display: flex;
//
background-color: #ffffff;
//
box-sizing: border-box;
//
border: 1px solid rgba(0, 0, 0, 0.1);
//
border-top: none;
//
cursor: pointer;
//
position: relative;
//
> i {
//
position: absolute;
//
line-height: 48px;
//
right: 20px;
//
color: #fff;
//
}
//
&:hover {
//
// background-color: #053b6a;
//
// color: #ffffff;
//
// > i {
//
// color:#fff;
//
// }
//
}
//
&:hover .left,
//
&:hover .right {
//
// color: #ffffff;
//
}
//
&.active {
//
// background-color: #053b6a;
//
.left,
//
.right {
//
color: #053b6a;
//
}
//
> i {
//
color: #053b6a;
//
}
//
}
//
.left {
//
color: #053b6a;
//
line-height: 48px;
//
margin-left: 40px;
//
}
//
.right {
//
color: #1d1d1d;
//
line-height: 48px;
//
margin-left: 20px;
//
}
//
}
//
}
.btn-wrapper
{
position
:
fixed
;
...
...
@@ -668,5 +836,260 @@ input[type="radio"] {
color
:
white
;
background-color
:
#053b6a
;
}
.drawer
{
position
:
fixed
;
top
:
80px
;
bottom
:
0
;
left
:
100px
;
width
:
348px
;
transition
:
0
.2s
linear
;
background
:
#fff
;
// background: red;
opacity
:
0
;
&
.opacity
{
opacity
:
1
;
}
&
.back
{
left
:
-248px
;
}
.scroll
{
// height: 100%;
position
:
relative
;
overflow-y
:
scroll
;
overflow-x
:
hidden
;
&
:
:-
webkit-scrollbar
{
display
:
none
;
}
.search-input
{
position
:
absolute
;
top
:
14px
;
left
:
39px
;
width
:
236px
;
.icon-search
{
line-height
:
28px
;
cursor
:
pointer
;
font-size
:
13px
;
}
}
.refresh-but
{
// position: fixed;
position
:
absolute
;
padding
:
0px
;
height
:
28px
;
width
:
28px
;
top
:
14px
;
left
:
285px
;
// width: 85px;
color
:
white
;
background-color
:
#053b6a
;
.icon-reset
{
font-size
:
13px
;
}
}
}
// 左边的bar
.leftBar-wrapper
{
// position: fixed;
width
:
340px
;
// margin-left: 20px;
margin-top
:
60px
;
// box-sizing: border-box;
.box-wrapper
{
width
:
340px
;
}
.animate
{
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
border-top
:
none
;
width
:
340px
;
.list-wrapper
{
margin-left
:
22px
;
padding-top
:
8px
;
}
.thead
{
display
:
flex
;
font-size
:
14px
;
margin-bottom
:
8px
;
>
div
{
// border-right: 1px solid #cccccc;
box-sizing
:
border-box
;
// padding-left: 5px;
color
:
#053b6a
;
font-weight
:
600
;
}
}
.deviceList
{
cursor
:
pointer
;
margin-bottom
:
2px
;
box-sizing
:
border-box
;
border-bottom
:
1px
solid
#053b6a
00
;
color
:
#1d1d1d
;
&
:hover
{
box-sizing
:
border-box
;
border-bottom
:
1px
solid
#053b6a
;
color
:
#053b6a
;
font-weight
:
600
;
}
&
.topActive
{
// border-top: 1px solid #cccccc;
}
display
:
flex
;
// border-bottom: 1px solid #cccccc;
// justify-content: space-between;
>
div
{
// flex: 1;
font-size
:
14px
;
// border-right: 1px solid #cccccc;
box-sizing
:
border-box
;
// padding-left: 5px;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
// border-right: 1px solid #cccccc;
}
}
.no
{
width
:
50px
;
}
.name
{
// border-right: none;
flex
:
1
;
text-align
:
center
;
}
.code
{
width
:
112px
;
text-align
:
center
;
}
}
.box
{
width
:
348px
;
height
:
48px
;
padding-left
:
20px
;
display
:
flex
;
background-color
:
#ffffff
;
box-sizing
:
border-box
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
cursor
:
pointer
;
position
:
relative
;
// box-sizing: border-box;
&
.firstbox
{
border-top
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
// box-sizing: border-box;
&
:hover
{
border-top
:
1px
solid
rgba
(
5
,
59
,
106
,
0
);
}
}
&
:hover
{
box-sizing
:
border-box
;
background-color
:
rgba
(
5
,
59
,
106
,
0
.1
);
border-bottom
:
none
!
important
;
}
.upPic
{
display
:
inline-block
;
margin-left
:
64px
;
line-height
:
48px
;
font-size
:
16px
;
color
:
#053b6a
;
}
>
i
.ju
{
position
:
absolute
;
display
:
inline-block
;
width
:
15px
;
height
:
15px
;
background
:
#fff
;
border
:
1px
solid
#cccccc
;
left
:
45px
;
top
:
16px
;
// top: ;
z-index
:
1
;
border-radius
:
2px
;
}
>
i
.bingo
{
z-index
:
2
;
position
:
absolute
;
// line-height: 48px;
left
:
45px
;
top
:
16px
;
color
:
#fff
;
}
>
i
.arrow-right
{
position
:
absolute
;
right
:
32px
;
top
:
16px
;
transition
:
0
.3s
linear
;
&
.active
{
transform
:
rotate
(
90deg
);
}
}
&
.active
{
// background-color: #053b6a;
.left
,
.right
{
color
:
#053b6a
;
}
>
i
{
color
:
#053b6a
;
}
}
.left
{
color
:
#053b6a
;
line-height
:
48px
;
margin-left
:
28px
;
.iconfont
{
font-size
:
22px
;
}
}
.right
{
color
:
#1d1d1d
;
line-height
:
48px
;
font-size
:
16px
;
margin-left
:
4px
;
}
}
.goback
{
display
:
flex
;
justify-content
:
space-between
;
.minMax
{
font-size
:
14px
;
line-height
:
28px
;
box-sizing
:
border-box
;
padding-left
:
3px
;
}
.btn-w
{
width
:
100%
;
text-align
:
center
;
padding-bottom
:
2px
;
.btn
{
border-radius
:
50%
;
// width: 14px;
// height: 14px;
padding
:
2px
;
}
.btn-w-num
{
display
:
inline-block
;
font-size
:
14px
;
padding
:
0px
5px
;
}
}
}
}
// 开关
.switch
{
position
:
absolute
;
font-size
:
30px
;
right
:
-27px
;
top
:
50%
;
margin-top
:
-30px
;
width
:
40px
;
border-radius
:
40%
;
overflow
:
hidden
;
cursor
:
pointer
;
i
{
background
:
#fff
;
}
}
}
</
style
>
gassafety-web/src/views/deviceInspection/inspectionPlan/index.vue
View file @
7017e306
...
...
@@ -61,7 +61,7 @@
<
span
v
-
if
=
"scope.row.planStatus == 3"
>
已完成
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"操作"
align
=
"center"
class
-
name
=
"small-padding fixed-width"
width
=
"280"
>
<
el
-
table
-
column
label
=
"操作"
align
=
"center"
class
-
name
=
"small-padding fixed-width"
width
=
"280
px
"
>
<
template
slot
-
scope
=
"scope"
>
<
el
-
button
size
=
"normal"
...
...
@@ -156,8 +156,8 @@
<
/el-dialog
>
<
el
-
dialog
:
title
=
"title2"
:
visible
.
sync
=
"open2"
width
=
"800px"
append
-
to
-
body
@
close
=
"cancel"
>
<
el
-
form
ref
=
"form2"
:
model
=
"form2"
:
rules
=
"rules"
label
-
width
=
"120px"
>
<
el
-
form
-
item
label
=
"巡检计划名称"
prop
=
"plansName"
>
<
font
>
{{
plans
Name
}}
<
/font
>
<
el
-
form
-
item
label
=
"巡检计划名称"
>
<
font
>
{{
form2
.
plan
Name
}}
<
/font
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"计划时间"
>
<
font
>
{{
parseTime
(
form2
.
startTime
,
'{y
}
-{m
}
-{d
}
'
)
}}
至
...
...
@@ -170,7 +170,7 @@
<
el
-
input
v
-
model
=
"form2.orderName"
placeholder
=
"请输入工单名称"
/>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"指定执行人员"
prop
=
"appointInspector"
>
<
el
-
select
v
-
model
=
"form2.appointInspector"
placeholder
=
"请选择执行人员"
clearable
size
=
"small"
@
change
=
"setUserId"
>
<
el
-
select
v
-
model
=
"form2.appointInspector"
placeholder
=
"请选择执行人员"
clearable
size
=
"small"
>
<
el
-
option
v
-
for
=
"item in inspector"
:
key
=
"item.userId"
...
...
@@ -222,7 +222,6 @@
typeOptions
:
[],
// 设备级联
options
:
[],
plansName
:
''
,
props
:
{
multiple
:
true
,
value
:
"id"
,
...
...
@@ -230,7 +229,6 @@
level
:
"level"
,
children
:
"childList"
,
}
,
devices
:
null
,
// 巡检员列表
inspector
:
[],
// 弹出层标题
...
...
@@ -259,10 +257,10 @@
// 表单校验
rules
:
{
planName
:
[
{
required
:
true
,
message
:
"
计划名称不能为空
"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"
请输入计划名称
"
,
trigger
:
"blur"
}
],
orderName
:
[
{
required
:
true
,
message
:
"
工单名称不能为空
"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"
请输入工单名称
"
,
trigger
:
"blur"
}
],
devices
:
[
{
required
:
true
,
message
:
"请选择巡检设备"
,
trigger
:
"blur"
}
...
...
@@ -287,8 +285,7 @@
}
,
methods
:
{
handleChange
(
value
)
{
// this.devices = value;
console
.
log
(
this
.
form
.
devices
);
console
.
log
(
this
.
form1
.
devices
);
}
,
/** 查询巡检计划列表 */
getList
()
{
...
...
@@ -315,9 +312,6 @@
this
.
loading
=
false
;
}
);
}
,
setUserId
(
val
){
this
.
form
.
appointInspector
=
val
;
}
,
// 取消按钮
cancel
()
{
this
.
open1
=
false
;
...
...
@@ -337,7 +331,6 @@
createTime
:
null
,
remarks
:
null
}
;
this
.
devices
=
null
;
this
.
resetForm
(
"form1"
);
this
.
form2
=
{
planId
:
null
,
...
...
@@ -376,7 +369,7 @@
deviceNodeTree
().
then
(
response
=>
{
this
.
options
=
response
.
data
;
this
.
open1
=
true
;
this
.
title1
=
"
添加
巡检计划"
;
this
.
title1
=
"
新增
巡检计划"
;
}
);
}
,
/** 下发按钮操作 */
...
...
@@ -386,7 +379,6 @@
const
planId
=
row
.
planId
||
this
.
ids
getInspectionPlan
(
planId
).
then
(
response
=>
{
this
.
form2
=
response
.
data
;
this
.
plansName
=
this
.
form2
.
planName
;
this
.
form2
.
remarks
=
""
;
this
.
open2
=
true
;
this
.
title2
=
"填写工单信息"
;
...
...
gassafety-web/src/views/deviceInspection/inspectiondetail/index.vue
View file @
7017e306
...
...
@@ -80,7 +80,7 @@
<!-- 接单信息 -->
<el-row>
<el-row
v-if=
"this.form.orderId != null && this.form.orderId != ''"
>
<el-divider></el-divider>
<el-col
:span=
"24"
>
<div
style=
"color: #31EAEA;width: 100%;height: 40px;"
>
...
...
gassafety-web/src/views/enterprise/mapView/components/CreateWorkTrouble.vue
0 → 100644
View file @
7017e306
<
template
>
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
:close=
"close"
width=
"800px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"130px"
>
<el-form-item
label=
"隐患名称"
prop=
"deviceName"
>
<font>
{{
form
.
deviceName
}}
</font>
</el-form-item>
<el-form-item
label=
"隐患类型"
prop=
"alarmType"
>
<font>
{{
form
.
alarmType
}}
</font>
</el-form-item>
<el-form-item
label=
"隐患级别"
prop=
"alarmValue"
>
<font>
{{
form
.
alarmValue
}}
</font>
</el-form-item>
<el-form-item
label=
"工单名称"
prop=
"orderName"
>
<el-input
v-model=
"form.orderName"
placeholder=
"请输入工单名称"
/>
</el-form-item>
<el-form-item
label=
"指定执行人员"
prop=
"appointInspector"
>
<el-select
v-model=
"form.appointInspector"
placeholder=
"请选择执行人员"
clearable
size=
"small"
@
change=
"setUserId"
>
<el-option
v-for=
"item in inspector"
:key=
"item.userId"
:label=
"item.nickName"
:value=
"item.userId"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"工单描述"
prop=
"remarks"
>
<el-input
type=
"textarea"
v-model=
"form.remarks"
placeholder=
"请输入工单描述"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
:loading=
"loading"
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button
>
<!--
<el-button
@
click=
"cancel"
>
取 消
</el-button>
-->
<el-button
@
click
.
stop=
"close"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
inspectorList
}
from
"@/api/system/user"
;
import
{
addBasicsInfo
}
from
"@/api/workOrder/basicsInfo"
;
import
{
getDeviceAlarm
}
from
"@/api/dataMonitoring/deviceAlarm"
;
export
default
{
//隐患工单
props
:
{
// 传进来一些内容
content
:
{
type
:
Object
,
},
},
data
()
{
return
{
form
:
{
deviceName
:
""
,
alarmType
:
""
,
alarmValue
:
""
,
orderName
:
""
,
appointInspector
:
""
,
remarks
:
""
,
},
gaoMap
:
""
,
open
:
false
,
title
:
""
,
inspector
:
[],
loading
:
false
,
alarmId
:
""
,
rules
:
{
orderName
:
[
{
required
:
true
,
message
:
"工单名称不能为空"
,
trigger
:
"blur"
},
],
appointInspector
:
[
{
required
:
true
,
message
:
"请选择巡检人员"
,
trigger
:
"blur"
},
],
},
};
},
created
()
{
// this.alarmId && this.handleIssue(this.alarmId);
},
watch
:
{
open
(
value
,
oldValue
)
{
if
(
value
)
{
console
.
log
(
this
.
alarmId
);
this
.
handleIssue
(
this
.
alarmId
);
}
},
},
methods
:
{
handleIssue
(
alarmId
)
{
this
.
getInspectorList
();
getDeviceAlarm
(
alarmId
).
then
((
response
)
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"填写工单信息"
;
});
},
getInspectorList
()
{
this
.
loading
=
true
;
inspectorList
().
then
((
response
)
=>
{
this
.
inspector
=
response
.
data
;
this
.
loading
=
false
;
});
},
setUserId
(
val
)
{
this
.
form
.
appointInspector
=
val
;
},
submitForm
()
{
this
.
$refs
[
"form"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
form
.
resourceId
=
this
.
form
.
alarmId
;
this
.
form
.
orderType
=
"3"
;
addBasicsInfo
(
this
.
form
).
then
((
response
)
=>
{
if
(
response
.
code
==
200
)
{
console
.
log
(
response
.
msg
);
this
.
msgSuccess
(
"生成工单成功"
);
this
.
open
=
false
;
}
this
.
$emit
(
"callback"
,
999
);
});
}
});
},
close
()
{
console
.
log
(
"关闭"
);
this
.
open
=
false
;
},
},
};
</
script
>
<
style
>
</
style
>
\ No newline at end of file
gassafety-web/src/views/enterprise/mapView/index.vue
View file @
7017e306
...
...
@@ -69,23 +69,27 @@
ref=
"RightBototmData"
:list=
"rightBototmData"
/>
<!-- 报警工单 -->
<CreateWork
ref=
"CreateWork"
:open=
"createWorkOpen"
@
callback=
"CreateWorkCallBack"
/>
<!-- 隐患工单 -->
<!-- <CreateWorkTrouble
ref="CreateWorkTrouble"
:open="createWorkTroubleOpen"
@callback="CreateWorkTroubleCallBack"
/> -->
<div
ref=
"drawer"
class=
"drawer"
:class=
"{ back: backFlag }"
>
<div
ref=
"drawer"
class=
"drawer"
:class=
"{ back: backFlag, opacity: drawerOpacity }"
>
<div
class=
"switch"
@
click=
"backFlag = !backFlag"
>
<!-- <i
:class="{
'el-icon-arrow-left': !backFlag,
'el-icon-arrow-right': backFlag,
}"
></i> -->
<img
v-if=
"!backFlag"
src=
"@/assets/images/l.png"
alt=
""
/>
<img
v-else
src=
"@/assets/images/r.png"
alt=
""
/>
<!-- <i class="el-icon-arrow-right"></i> -->
</div>
<!-- 只能动态传入内嵌盒子的高 -->
<div
class=
"scroll"
:style=
"{ height: `${boxHeight}px` }"
>
...
...
@@ -94,9 +98,17 @@
placeholder=
"点击输入"
id=
"tipinput"
class=
"search-input"
/>
<el-button
class=
"search-but"
@
click=
"search()"
>
搜索
</el-button>
<el-button
class=
"refresh-but"
@
click=
"refreshMap()"
>
重置
</el-button>
>
<
template
slot=
"suffix"
>
<div
@
click=
"search()"
>
<i
class=
"iconfont icon-search"
></i>
</div>
</
template
>
</el-input>
<!-- <el-button class="search-but" @click="search()">搜索</el-button> -->
<el-button
class=
"refresh-but"
@
click=
"refreshMap()"
>
<i
class=
"iconfont icon-reset"
></i>
</el-button>
<div
class=
"leftBar-wrapper"
>
<div
...
...
@@ -138,7 +150,7 @@
<
template
v-if=
"item.list.length > 0"
>
<!-- 设备以及管道 展示内容是一样的 -->
<template
v-if=
"item.value != 9"
>
<div>
<div
class=
"list-wrapper"
>
<div
class=
"thead"
>
<div
class=
"no"
>
序号
</div>
<div
class=
"code"
>
设备编号
</div>
...
...
@@ -163,7 +175,7 @@
</
template
>
<!-- 值班人员 展示不太一样-->
<
template
v-else-if=
"item.value == 9"
>
<div>
<div
class=
"list-wrapper"
>
<div
class=
"thead"
>
<div
class=
"no"
>
序号
</div>
<div
class=
"code"
>
人员姓名
</div>
...
...
@@ -186,27 +198,24 @@
</div>
</div>
</
template
>
<!-- 翻页 -->
<div
class=
"goback"
>
<div
class=
"minMax"
>
页数
{{ item.nowPage }}/{{ item.maxPage }}
</div>
<div
class=
"btn"
>
<div
class=
"btn-w"
>
<el-button
class=
"backPage"
class=
"b
tn b
ackPage"
type=
"mini"
:disabled=
"item.nowPage == 1"
@
click
.
stop=
"pageBack(item, index)"
>
上一页
</el-button
>
icon=
"el-icon-arrow-left"
/>
<span
class=
"btn-w-num"
>
{{ item.nowPage }}
</span>
<el-button
class=
"goPage"
class=
"
btn
goPage"
type=
"mini"
:disabled=
"item.nowPage == item.maxPage"
@
click
.
stop=
"pageGo(item, index)"
>
下一页
</el-button
>
icon=
"el-icon-arrow-right"
/
>
</div>
</div>
</template>
...
...
@@ -230,8 +239,10 @@ import gaodeMap, {
DEVICE_TYPE
,
mapOperateType
,
}
from
"utils/gaodeMapView.js"
;
import
{
selectAlarmDevice
}
from
"@/api/dataMonitoring/deviceAlarm.js"
;
import
{
getAllDeviceInfo
,
countDeviceByType
}
from
"@/api/device/deviceInfo"
;
import
{
getMapHiddenTroublelist
}
from
"@/api/riskManagement/hiddenTrouble"
;
import
RightBototmData
from
"./components/RightBototmData.vue"
;
import
CreateWork
from
"./components/CreateWork.vue"
;
import
{
getInspectorLocations
}
from
"@/api/inspectorLocation/location"
;
...
...
@@ -335,6 +346,7 @@ export default {
alarmObj
:
{
alarmId
:
""
,
type
:
""
},
// 左边抽屉 内嵌scroll盒子的高
boxHeight
:
""
,
drawerOpacity
:
false
,
//抽屉是否收回
backFlag
:
true
,
};
...
...
@@ -342,7 +354,7 @@ export default {
created
()
{
// 让左边的框隐藏
this
.
$store
.
dispatch
(
"app/toggleDevice"
,
"mobile"
);
console
.
log
(
"sasdasdas"
)
console
.
log
(
"sasdasdas"
)
;
},
mounted
()
{
...
...
@@ -369,7 +381,6 @@ export default {
this
.
gaoMap
.
view
=
this
;
// 右下角数据 跟值班人员
this
.
rightBottomData
();
// this.backFlag = false;
},
...
...
@@ -388,6 +399,12 @@ export default {
return
this
.
getInspectorLocations
();
}
})
.
then
((
res
)
=>
{
if
(
res
==
200
)
{
//隐患
return
this
.
getMapHiddenTroublelist
();
}
})
.
then
((
res
)
=>
{
if
(
res
==
200
)
{
// 所有设备上图结束之后,左边的抽屉加载数据
...
...
@@ -397,6 +414,7 @@ export default {
}
});
},
// 设备
getDeviceInfo
(
queryParams
)
{
this
.
loading
=
true
;
return
getAllDeviceInfo
(
queryParams
).
then
((
response
)
=>
{
...
...
@@ -426,6 +444,7 @@ export default {
return
response
.
code
;
});
},
// 管道
getPipeList
(
queryParams
)
{
return
pipeAllInfoList
(
queryParams
).
then
((
res
)
=>
{
console
.
log
(
"管道"
,
res
);
...
...
@@ -453,6 +472,19 @@ export default {
return
res
.
code
;
});
},
// 隐患
getMapHiddenTroublelist
(
queryParams
)
{
return
getMapHiddenTroublelist
().
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
200
)
{
res
.
data
.
forEach
((
item
)
=>
{
console
.
log
(
"隐患"
,
item
);
this
.
gaoMap
.
addMarker
(
DEVICE_TYPE
.
TROUBLE
,
item
);
});
return
res
.
code
;
}
});
},
// 获取报警资源,并且改变图上的状态
getSelectAlarmDevice
()
{
selectAlarmDevice
().
then
((
res
)
=>
{
...
...
@@ -506,7 +538,6 @@ export default {
options
.
lineData
.
alarmType
=
alarmType
;
// 报警信息
options
.
lineData
.
alarmValue
=
alarmValue
;
console
.
log
(
"管道报警"
);
}
polyline
.
setExtData
(
options
);
...
...
@@ -657,9 +688,7 @@ export default {
// 左边的Bar修改值 左边抽屉
leftBarChange
(
item
)
{
// this.leftBarNum= this.leftBarNum != item.value ? item.value:0;
const
index
=
this
.
leftBarNum
.
indexOf
(
item
.
value
);
if
(
index
>=
0
)
{
this
.
leftBarNum
.
splice
(
index
,
1
);
}
else
{
...
...
@@ -926,7 +955,7 @@ export default {
// });
// console.log(this.changeBtnData[0], this.allList[0]);
this
.
changeBtnData
.
forEach
((
item
,
index
)
=>
{
console
.
log
(
"======="
,
index
,
this
.
allList
[
index
]);
//
console.log("=======", index, this.allList[index]);
if
(
this
.
allList
[
index
]?.
length
>
0
)
{
item
.
list
=
this
.
allList
[
index
].
filter
((
item2
,
index2
)
=>
{
return
(
...
...
@@ -1179,9 +1208,9 @@ export default {
},
beforeDestroy
()
{
// 让抽屉继续隐身
console
.
log
(
"移除window事件"
);
map
.
clearMap
();
window
.
removeEventListener
(
"mousedown"
,
this
.
barClose
);
// 关闭scoket
if
(
this
.
ws
)
{
...
...
@@ -1201,94 +1230,93 @@ export default {
bottom
:
0
;
width
:
100%
;
}
.btn-wrapper
{
position
:
fixed
;
right
:
32px
;
top
:
100px
;
.myBtn
{
display
:
flex
;
justify-content
:
space-between
;
.el-btn
{
width
:
144px
;
height
:
44px
;
background-color
:
#053b6a
;
margin-right
:
22px
;
border-radius
:
4px
;
text-align
:
center
;
line-height
:
44px
;
color
:
#fff
;
cursor
:
pointer
;
font-size
:
18px
;
display
:
flex
;
justify-content
:
space-between
;
&
.active
{
background
:
#31eaea
;
color
:
#053b6a
!
important
;
}
.left
{
padding-left
:
38px
;
i
{
font-size
:
18px
;
}
}
.right
{
padding-right
:
38px
;
}
// .btn-wrapper {
// position: fixed;
// right: 32px;
// top: 100px;
// .myBtn {
// display: flex;
// justify-content: space-between;
// .el-btn {
// width: 144px;
// height: 44px;
// background-color: #053b6a;
// margin-right: 22px;
// border-radius: 4px;
// text-align: center;
// line-height: 44px;
// color: #fff;
// cursor: pointer;
// font-size: 18px;
// display: flex;
// justify-content: space-between;
// &.active {
// background: #31eaea;
// color: #053b6a !important;
// }
// .left {
// padding-left: 38px;
// i {
// font-size: 18px;
// }
// }
// .right {
// padding-right: 38px;
// }
// .newLetf {
// margin-left: 20px;
// }
// .newRight {
// margin-right: 20px;
// position: relative;
// i {
// position: absolute;
// right: 0px;
// top: 1px;
// font-size: 30px;
// }
// }
// }
// }
// .animate {
// .option {
// .op-btn {
// width: 144px;
// height: 38px;
// border-radius: 0;
// color: #053b6a;
// line-height: 38px;
// background-color: #fff;
// cursor: pointer;
// position: relative;
// border: 1px solid #cccccc;
// border-top: 0;
// &.active {
// background-image: url("../../../assets/images/bac1.png");
// }
// .left {
// position: relative;
// margin-right: 30px;
// margin-left: 22px;
// i {
// position: absolute;
// top: -7px;
// font-size: 20px;
// }
// }
// .right {
// display: inline-block;
// font-size: 14px;
// line-height: 38px;
// }
.newLetf
{
margin-left
:
20px
;
}
.newRight
{
margin-right
:
20px
;
position
:
relative
;
i
{
position
:
absolute
;
right
:
0px
;
top
:
1px
;
font-size
:
30px
;
}
}
}
}
.animate
{
.option
{
.op-btn
{
width
:
144px
;
height
:
38px
;
border-radius
:
0
;
color
:
#053b6a
;
line-height
:
38px
;
background-color
:
#fff
;
cursor
:
pointer
;
position
:
relative
;
border
:
1px
solid
#cccccc
;
border-top
:
0
;
&
.active
{
background-image
:
url("../../../assets/images/bac1.png")
;
}
.left
{
position
:
relative
;
margin-right
:
30px
;
margin-left
:
22px
;
i
{
position
:
absolute
;
top
:
-7px
;
font-size
:
20px
;
}
}
.right
{
display
:
inline-block
;
font-size
:
14px
;
line-height
:
38px
;
}
&
:hover
{
background-image
:
url("../../../assets/images/bac1.png")
;
}
}
}
}
}
// &:hover {
// background-image: url("../../../assets/images/bac1.png");
// }
// }
// }
// }
// }
.input-card
{
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -1335,16 +1363,6 @@ input[type="radio"] {
margin-right
:
1rem
;
}
.refresh-but
{
// position: fixed;
position
:
absolute
;
top
:
10px
;
left
:
285px
;
// width: 85px;
color
:
white
;
background-color
:
#053b6a
;
}
.classShow
{
opacity
:
0
;
}
...
...
@@ -1353,12 +1371,17 @@ input[type="radio"] {
top
:
80px
;
bottom
:
0
;
left
:
0
;
width
:
3
70
px
;
width
:
3
48
px
;
transition
:
0
.2s
linear
;
background
:
#fff
;
// background: red;
opacity
:
0
;
// 优化抽屉出来回去
&
.opacity
{
opacity
:
1
;
}
&
.back
{
left
:
-3
70
px
;
left
:
-3
48
px
;
}
.scroll
{
// height: 100%;
...
...
@@ -1369,77 +1392,88 @@ input[type="radio"] {
&
:
:-
webkit-scrollbar
{
display
:
none
;
}
}
.switch
{
.search-input
{
position
:
absolute
;
font-size
:
30px
;
right
:
-27px
;
top
:
50%
;
margin-top
:
-30px
;
width
:
40px
;
border-radius
:
40%
;
overflow
:
hidden
;
top
:
14px
;
left
:
39px
;
width
:
236px
;
.icon-search
{
line-height
:
28px
;
cursor
:
pointer
;
// background: #fff;
i
{
background
:
#fff
;
font-size
:
13px
;
}
}
}
.search-input
{
position
:
absolute
;
top
:
10px
;
left
:
20px
;
width
:
200px
;
}
.search-but
{
.refresh-but
{
// position: fixed;
position
:
absolute
;
top
:
10px
;
left
:
220px
;
padding
:
0px
;
height
:
28px
;
width
:
28px
;
top
:
14px
;
left
:
285px
;
// width: 85px;
color
:
white
;
background-color
:
#053b6a
;
}
// 左边的bar
.leftBar-wrapper
{
.icon-reset
{
font-size
:
13px
;
}
}
}
// 左边的bar
.leftBar-wrapper
{
// position: fixed;
width
:
340px
;
margin-left
:
20px
;
margin-top
:
7
0px
;
//
margin-left: 20px;
margin-top
:
6
0px
;
// box-sizing: border-box;
.box-wrapper
{
width
:
340px
;
}
.animate
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
border-top
:
none
;
width
:
340px
;
.list-wrapper
{
margin-left
:
22px
;
padding-top
:
8px
;
}
.thead
{
display
:
flex
;
font-size
:
14px
;
margin-bottom
:
8px
;
>
div
{
border-right
:
1px
solid
#cccccc
;
//
border-right: 1px solid #cccccc;
box-sizing
:
border-box
;
padding-left
:
5px
;
color
:
#000
;
//
padding-left: 5px;
color
:
#053b6a
;
font-weight
:
600
;
}
}
.deviceList
{
cursor
:
pointer
;
margin-bottom
:
2px
;
box-sizing
:
border-box
;
border-bottom
:
1px
solid
#053b6a
00
;
color
:
#1d1d1d
;
&
:hover
{
box-sizing
:
border-box
;
border-bottom
:
1px
solid
#053b6a
;
color
:
#053b6a
;
font-weight
:
600
;
}
&
.topActive
{
border-top
:
1px
solid
#cccccc
;
//
border-top: 1px solid #cccccc;
}
display
:
flex
;
border-bottom
:
1px
solid
#cccccc
;
//
border-bottom: 1px solid #cccccc;
// justify-content: space-between;
>
div
{
// flex: 1;
font-size
:
14px
;
border-right
:
1px
solid
#cccccc
;
//
border-right: 1px solid #cccccc;
box-sizing
:
border-box
;
padding-left
:
5px
;
//
padding-left: 5px;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
...
...
@@ -1452,31 +1486,43 @@ input[type="radio"] {
.name
{
// border-right: none;
flex
:
1
;
text-align
:
center
;
}
.code
{
width
:
100px
;
width
:
112px
;
text-align
:
center
;
}
}
.box
{
width
:
340
px
;
width
:
348
px
;
height
:
48px
;
padding-left
:
20px
;
display
:
flex
;
background-color
:
#ffffff
;
box-sizing
:
border-box
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
border-top
:
none
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
cursor
:
pointer
;
position
:
relative
;
// box-sizing: border-box;
&
.firstbox
{
border-top
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
// box-sizing: border-box;
&
:hover
{
border-top
:
1px
solid
rgba
(
5
,
59
,
106
,
0
);
}
}
&
:hover
{
box-sizing
:
border-box
;
background-color
:
rgba
(
5
,
59
,
106
,
0
.1
);
border-bottom
:
none
!
important
;
}
.upPic
{
display
:
inline-block
;
margin-left
:
32
px
;
margin-left
:
64
px
;
line-height
:
48px
;
font-size
:
10
px
;
font-size
:
16
px
;
color
:
#053b6a
;
}
&
.firstbox
{
border-top
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.1
);
}
>
i
.ju
{
position
:
absolute
;
display
:
inline-block
;
...
...
@@ -1484,7 +1530,7 @@ input[type="radio"] {
height
:
15px
;
background
:
#fff
;
border
:
1px
solid
#cccccc
;
left
:
1
5px
;
left
:
4
5px
;
top
:
16px
;
// top: ;
z-index
:
1
;
...
...
@@ -1494,31 +1540,19 @@ input[type="radio"] {
z-index
:
2
;
position
:
absolute
;
// line-height: 48px;
left
:
1
5px
;
left
:
4
5px
;
top
:
16px
;
color
:
#fff
;
}
>
i
.arrow-right
{
position
:
absolute
;
right
:
10
px
;
right
:
32
px
;
top
:
16px
;
transition
:
0
.3s
linear
;
&
.active
{
transform
:
rotate
(
90deg
);
}
}
&
:hover
{
// background-color: #053b6a;
// color: #ffffff;
// > i {
// color:#fff;
// }
}
&
:hover
.left
,
&
:hover
.right
{
// color: #ffffff;
}
&
.active
{
// background-color: #053b6a;
.left
,
...
...
@@ -1532,12 +1566,16 @@ input[type="radio"] {
.left
{
color
:
#053b6a
;
line-height
:
48px
;
margin-left
:
20px
;
margin-left
:
28px
;
.iconfont
{
font-size
:
22px
;
}
}
.right
{
color
:
#1d1d1d
;
line-height
:
48px
;
// margin-left: 20px;
font-size
:
16px
;
margin-left
:
4px
;
}
}
.goback
{
...
...
@@ -1549,11 +1587,37 @@ input[type="radio"] {
box-sizing
:
border-box
;
padding-left
:
3px
;
}
.btn-w
{
width
:
100%
;
text-align
:
center
;
padding-bottom
:
2px
;
.btn
{
text-align
:
right
;
.goPage
{
margin-left
:
0
;
border-radius
:
50%
;
// width: 14px;
// height: 14px;
padding
:
2px
;
}
.btn-w-num
{
display
:
inline-block
;
font-size
:
14px
;
padding
:
0px
5px
;
}
}
}
}
// 开关
.switch
{
position
:
absolute
;
font-size
:
30px
;
right
:
-27px
;
top
:
50%
;
margin-top
:
-30px
;
width
:
40px
;
border-radius
:
40%
;
overflow
:
hidden
;
cursor
:
pointer
;
i
{
background
:
#fff
;
}
}
}
...
...
gassafety-web/src/views/riskManagement/hiddenTrouble/index.vue
View file @
7017e306
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"设备id"
prop=
"deviceId"
>
<el-input
v-model=
"queryParams.deviceId"
placeholder=
"请输入设备id"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"工单id"
prop=
"orderId"
>
<el-input
v-model=
"queryParams.orderId"
placeholder=
"请输入工单id"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-form-item
label=
"隐患名称"
prop=
"troubleName"
>
<el-input
v-model=
"queryParams.troubleName"
placeholder=
"请输入隐患名称"
/>
</el-form-item>
<el-form-item
label=
"经度"
prop=
"longitude"
>
<el-input
v-model=
"queryParams.longitude"
placeholder=
"请输入经度"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"纬度"
prop=
"latitude"
>
<el-input
v-model=
"queryParams.latitude"
placeholder=
"请输入纬度"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"处理状态"
prop=
"dealStatus"
>
<el-select
v-model=
"queryParams.dealStatus"
placeholder=
"请选择处理状态"
clearable
size=
"small"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
<el-form-item
label=
"隐患类型"
prop=
"troubleType"
>
<el-select
v-model=
"queryParams.troubleType"
placeholder=
"请选择隐患类型"
clearable
size=
"small"
>
<el-option
v-for=
"dict in typeOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-input
v-model=
"queryParams.remarks"
placeholder=
"请输入备注"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<!--
<el-form-item
label=
"状态"
prop=
"dealStatus"
>
<el-select
v-model=
"queryParams.dealStatus"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-option
label=
""
value=
"0"
/>
</el-select>
</el-form-item>
-->
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
...
...
@@ -68,67 +36,65 @@
v-hasPermi=
"['riskManagement:hiddenTrouble:add']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
plain
icon=
"el-icon-edit"
size=
"mini"
:disabled=
"single"
@
click=
"handleUpdate"
v-hasPermi=
"['riskManagement:hiddenTrouble:edit']"
>
修改
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"danger"
plain
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleDelete"
v-hasPermi=
"['riskManagement:hiddenTrouble:remove']"
>
删除
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
:loading=
"exportLoading"
@
click=
"handleExport"
v-hasPermi=
"['riskManagement:hiddenTrouble:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"hiddenTroubleList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"隐患信息id"
align=
"center"
prop=
"troubleId"
/>
<el-table-column
label=
"设备id"
align=
"center"
prop=
"deviceId"
/>
<el-table-column
label=
"工单id"
align=
"center"
prop=
"orderId"
/>
<el-table-column
label=
"经度"
align=
"center"
prop=
"longitude"
/>
<el-table-column
label=
"纬度"
align=
"center"
prop=
"latitude"
/>
<el-table-column
label=
"处理状态"
align=
"center"
prop=
"dealStatus"
/>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remarks"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"隐患名称"
align=
"center"
prop=
"troubleName"
/>
<el-table-column
label=
"隐患类型"
align=
"center"
prop=
"troubleType"
/>
<el-table-column
label=
"隐患级别"
align=
"center"
prop=
"troubleLevel"
/>
<el-table-column
label=
"图片"
align=
"center"
prop=
"pictureUrl"
>
<template
slot-scope=
"scope"
>
<el-image
:src=
"scope.row.pictureUrl"
:preview-src-list=
"[scope.row.pictureUrl]"
v-if=
"scope.row.pictureUrl != '' && scope.row.pictureUrl != null"
style=
"width: 16px;"
></el-image>
<span
v-if=
"scope.row.pictureUrl == '' || scope.row.pictureUrl == null"
>
-
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"上报人"
align=
"center"
prop=
"reportManName"
/>
<el-table-column
label=
"上报时间"
align=
"center"
prop=
"createTime"
/>
<el-table-column
label=
"处理状态"
align=
"center"
prop=
"dealStatus"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.orderId == null || scope.row.orderId == ''"
>
未生成工单
</span>
<span
v-if=
"(scope.row.dealStatus == null || scope.row.dealStatus == '') &&
scope.row.orderId != null && scope.row.orderId != ''"
>
暂未处理
</span>
<span
v-if=
"scope.row.dealStatus == 1"
>
不需处理
</span>
<span
v-if=
"scope.row.dealStatus == 2"
>
已处理完成
</span>
<span
v-if=
"scope.row.dealStatus == 3"
>
未处理完成
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"280px"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
size=
"normal"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleIssue(scope.row)"
v-hasPermi=
"['workOrder:basicsInfo:add']"
v-if=
"scope.row.orderId == '' || scope.row.orderId == null"
>
生成工单
</el-button>
<el-button
size=
"normal"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['riskManagement:hiddenTrouble:edit']"
>
修改
</el-button>
v-if=
"scope.row.orderId == '' || scope.row.orderId == null"
>
修改
</el-button>
<el-button
size=
"mini"
size=
"normal"
type=
"text"
icon=
"el-icon-edit"
@
click=
"showDetail(scope.row)"
>
详情
</el-button>
<el-button
size=
"normal"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['riskManagement:hiddenTrouble:remove']"
>
删除
</el-button>
@
click=
"handleIsDel(scope.row)"
v-if=
"scope.row.orderId == '' || scope.row.orderId == null"
>
作废
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -142,43 +108,162 @@
/>
<!-- 添加或修改隐患信息对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"设备id"
prop=
"deviceId"
>
<el-input
v-model=
"form.deviceId"
placeholder=
"请输入设备id"
/>
<el-dialog
:title=
"title1"
:visible
.
sync=
"open1"
width=
"800px"
append-to-body
>
<el-form
ref=
"form1"
:model=
"form1"
:rules=
"rules"
label-width=
"120px"
>
<el-col>
<el-form-item
label=
"隐患名称"
prop=
"troubleName"
style=
"width: 720px"
>
<el-input
v-model=
"form1.troubleName"
placeholder=
"请输入隐患名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"隐患类型"
prop=
"troubleType"
>
<el-select
v-model=
"form1.troubleType"
placeholder=
"请选择隐患类型"
>
<el-option
v-for=
"dict in typeOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"11"
>
<el-form-item
label=
"隐患级别"
prop=
"troubleLevel"
>
<el-select
v-model=
"form1.troubleLevel"
placeholder=
"请选择隐患级别"
>
<el-option
v-for=
"dict in levelOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"上报人"
prop=
"reportMan"
>
<el-select
v-model=
"form1.reportMan"
placeholder=
"请选择上报人"
clearable
size=
"small"
>
<el-option
v-for=
"item in userList"
:key=
"item.userId"
:label=
"item.nickName"
:value=
"item.userId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"11"
>
<el-form-item
label=
"隐患设备"
prop=
"device"
>
<el-cascader
v-model=
"form1.device"
:options=
"options"
:props=
"props"
:show-all-levels=
"false"
@
change=
"handleChange"
filterable
clearable
></el-cascader>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label=
"地址"
prop=
"address"
style=
"width: 720px"
>
<el-input
v-model=
"form1.address"
type=
"textarea"
placeholder=
"请输入地址"
/>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label=
"经纬度"
prop=
"longitude"
>
<el-row>
<el-col
:span=
"8"
>
<el-input
v-model
.
number=
"form1.longitude"
placeholder=
"请输入经度"
/>
</el-col>
<el-col
:span=
"8"
style=
"margin-left: 10px"
>
<el-input
v-model
.
number=
"form1.latitude"
placeholder=
"请输入纬度"
/>
</el-col>
<el-col
:span=
"5"
style=
"margin-left: 10px"
>
<el-button
type=
"primary"
plain
@
click=
"MapdialogFun"
>
选择经纬度
</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"工单id"
prop=
"orderId"
>
<el-input
v-model=
"form.orderId"
placeholder=
"请输入工单id"
/>
</el-col>
<el-col>
<el-form-item
label=
"图片上传"
prop=
"pictureUrl"
>
<MyFileUpload
listType=
"picture-card"
@
resFun=
"getFileInfo"
@
remove=
"listRemove"
:fileArr=
"fileList"
/>
<el-input
v-show=
"false"
disabled
v-model=
"form1.pictureUrl"
></el-input>
</el-form-item>
<el-form-item
label=
"经度"
prop=
"longitude"
>
<el-input
v-model=
"form.longitude"
placeholder=
"请输入经度"
/>
</el-col>
<el-col>
<el-form-item
label=
"隐患信息"
prop=
"remarks"
style=
"width: 720px"
>
<el-input
v-model=
"form1.remarks"
type=
"textarea"
placeholder=
"请输入隐患信息"
/>
</el-form-item>
<el-form-item
label=
"纬度"
prop=
"latitude"
>
<el-input
v-model=
"form.latitude"
placeholder=
"请输入纬度"
/>
</el-col>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm1"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<el-dialog
:title=
"title2"
:visible
.
sync=
"open2"
width=
"800px"
append-to-body
@
close=
"cancel"
>
<el-form
ref=
"form2"
:model=
"form2"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"隐患名称"
>
<font>
{{form2.troubleName}}
</font>
</el-form-item>
<el-form-item
label=
"隐患类型"
>
<font>
{{form2.troubleType}}
</font>
</el-form-item>
<el-form-item
label=
"隐患级别"
>
<font>
{{form2.troubleLevel}}
</font>
</el-form-item>
<el-form-item
label=
"工单名称"
prop=
"orderName"
style=
"width: 720px"
>
<el-input
v-model=
"form2.orderName"
placeholder=
"请输入工单名称"
/>
</el-form-item>
<el-form-item
label=
"处理状态"
>
<el-radio-group
v-model=
"form.dealStatus"
>
<el-radio
label=
"1"
>
请选择字典生成
</el-radio>
</el-radio-group>
<el-form-item
label=
"指定执行人员"
prop=
"appointInspector"
>
<el-select
v-model=
"form2.appointInspector"
placeholder=
"请选择执行人员"
clearable
size=
"small"
style=
"width: 600px"
>
<el-option
v-for=
"item in inspector"
:key=
"item.userId"
:label=
"item.nickName"
:value=
"item.userId"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"
备注"
prop=
"remarks
"
>
<el-input
v-model=
"form.remarks"
placeholder=
"请输入备注
"
/>
<el-form-item
label=
"
工单描述"
prop=
"remarks"
style=
"width: 720px
"
>
<el-input
type=
"textarea"
v-model=
"form2.remarks"
placeholder=
"请输入工单描述
"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm
2
"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<Mapdialog
v-if=
"loadmap"
:dialogTableVisible=
"dialogTableVisible"
@
dialogcancelFun=
"dialogcancelFun"
:slat=
"form1.latitude"
:slng=
"form1.longitude"
@
confirmFun=
"confirmFun($event)"
></Mapdialog>
</div>
</template>
<
script
>
import
{
listHiddenTrouble
,
getHiddenTrouble
,
delHiddenTrouble
,
addHiddenTrouble
,
updateHiddenTrouble
,
exportHiddenTrouble
}
from
"@/api/riskManagement/hiddenTrouble"
;
import
{
listHiddenTrouble
,
getHiddenTrouble
,
addHiddenTrouble
,
updateHiddenTrouble
,
exportHiddenTrouble
}
from
"@/api/riskManagement/hiddenTrouble"
;
import
{
addBasicsInfo
}
from
"@/api/workOrder/basicsInfo"
;
import
{
inspectorList
,
allListUser
}
from
"@/api/system/user"
;
import
{
deviceNodeTree
}
from
"@/api/device/deviceInfo"
;
import
MyFileUpload
from
'@/components/MyFileUpload'
;
import
Mapdialog
from
"@/components/mapDialog/checkDeviceLoaction.vue"
;
export
default
{
name
:
"HiddenTrouble"
,
components
:
{
MyFileUpload
,
Mapdialog
},
data
()
{
return
{
...
...
@@ -198,30 +283,97 @@ export default {
total
:
0
,
// 隐患信息表格数据
hiddenTroubleList
:
[],
// 隐患类型字典
typeOptions
:
[],
// 隐患等级字典
levelOptions
:
[],
// 上传文件列表
fileList
:
[],
// 地图
loadmap
:
false
,
dialogTableVisible
:
false
,
// 设备级联
options
:
[],
props
:
{
value
:
"id"
,
label
:
"name"
,
level
:
"level"
,
children
:
"childList"
,
},
// 用户列表
userList
:
[],
// 巡检员列表
inspector
:
[],
// 弹出层标题
title
:
""
,
title
1
:
""
,
// 是否显示弹出层
open
:
false
,
open1
:
false
,
// 弹出层标题
title2
:
""
,
// 是否显示弹出层
open2
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
troubleName
:
null
,
troubleType
:
null
,
deviceId
:
null
,
troubleLevel
:
null
,
orderId
:
null
,
longitude
:
null
,
deviceType
:
null
,
latitude
:
null
,
dealStatus
:
null
,
remarks
:
null
address
:
null
,
remarks
:
null
,
pictureUrl
:
null
,
reportMan
:
null
},
// 表单参数
form
:
{},
form1
:
{},
// 表单参数
form2
:
{},
// 表单校验
rules
:
{
troubleName
:
[
{
required
:
true
,
message
:
"请输入隐患名称"
,
trigger
:
"blur"
}
],
troubleType
:
[
{
required
:
true
,
message
:
"请选择隐患类型"
,
trigger
:
"blur"
}
],
troubleLevel
:
[
{
required
:
true
,
message
:
"请选择隐患级别"
,
trigger
:
"blur"
}
],
reportMan
:
[
{
required
:
true
,
message
:
"请选择上报人"
,
trigger
:
"blur"
}
],
address
:
[
{
required
:
true
,
message
:
"请输入地址"
,
trigger
:
"blur"
}
],
pictureUrl
:
[
{
required
:
true
,
message
:
"请上传图片"
,
trigger
:
"blur"
}
],
longitude
:
[
{
required
:
true
,
message
:
"请输入经纬度"
,
trigger
:
"blur"
}
],
orderName
:
[
{
required
:
true
,
message
:
"请输入工单名称"
,
trigger
:
"blur"
}
],
appointInspector
:
[
{
required
:
true
,
message
:
"请选择巡检人员"
,
trigger
:
"blur"
}
],
}
};
},
created
()
{
this
.
getList
();
this
.
getDicts
(
"t_trouble_type"
).
then
(
response
=>
{
this
.
typeOptions
=
response
.
data
;
});
this
.
getDicts
(
"t_trouble_level"
).
then
(
response
=>
{
this
.
levelOptions
=
response
.
data
;
});
},
methods
:
{
/** 查询隐患信息列表 */
...
...
@@ -233,25 +385,96 @@ export default {
this
.
loading
=
false
;
});
},
/** 详细信息跳转 */
showDetail
(
row
)
{
this
.
$router
.
push
({
path
:
'/riskManagement/hiddenTroubleDetail'
,
query
:{
troubleId
:
row
.
troubleId
}
})
},
getFileInfo
(
res
){
this
.
form1
.
pictureUrl
=
res
.
url
;
},
listRemove
(
e
)
{
this
.
form1
.
pictureUrl
=
""
;
this
.
fileList
=
[];
},
confirmFun
(
res
)
{
//确认选择经纬度
this
.
form1
.
longitude
=
res
.
lng
;
this
.
form1
.
latitude
=
res
.
lat
;
},
MapdialogFun
()
{
this
.
loadmap
=
true
;
this
.
dialogTableVisible
=
true
;
},
dialogcancelFun
()
{
this
.
loadmap
=
false
;
this
.
dialogTableVisible
=
false
;
},
handleChange
(
value
)
{
console
.
log
(
this
.
form1
.
device
);
let
arr
=
this
.
form1
.
device
;
this
.
form1
.
deviceType
=
arr
[
0
];
this
.
form1
.
deviceId
=
arr
[
1
];
},
getUserList
(){
this
.
loading
=
true
;
allListUser
().
then
(
response
=>
{
this
.
userList
=
response
.
data
;
this
.
loading
=
false
;
});
},
getInspectorList
(){
this
.
loading
=
true
;
inspectorList
().
then
(
response
=>
{
this
.
inspector
=
response
.
data
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
open1
=
false
;
this
.
open2
=
false
;
this
.
fileList
=
[];
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
this
.
form
1
=
{
troubleId
:
null
,
troubleType
:
null
,
deviceId
:
null
,
troubleLevel
:
null
,
orderId
:
null
,
longitude
:
null
,
device
:
null
,
deviceType
:
null
,
latitude
:
null
,
dealStatus
:
"0"
,
dealStatus
:
null
,
updateTime
:
null
,
address
:
null
,
createTime
:
null
,
remarks
:
null
,
pictureUrl
:
null
,
reportMan
:
null
};
this
.
resetForm
(
"form1"
);
this
.
form2
=
{
troubleId
:
null
,
troubleName
:
null
,
troubleType
:
null
,
troubleLevel
:
null
,
orderId
:
null
,
orderName
:
null
,
appointInspector
:
null
,
updateTime
:
null
,
createTime
:
null
,
remarks
:
null
};
this
.
resetForm
(
"form"
);
this
.
resetForm
(
"form
2
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
...
...
@@ -272,68 +495,96 @@ export default {
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"添加隐患信息"
;
this
.
getUserList
();
deviceNodeTree
().
then
(
response
=>
{
this
.
options
=
response
.
data
;
this
.
open1
=
true
;
this
.
title1
=
"新增隐患信息"
;
});
},
/** 下发按钮操作 */
handleIssue
(
row
)
{
this
.
reset
();
this
.
getInspectorList
();
const
troubleId
=
row
.
troubleId
||
this
.
ids
getHiddenTrouble
(
troubleId
).
then
(
response
=>
{
this
.
form2
=
response
.
data
;
this
.
form2
.
remarks
=
""
;
this
.
open2
=
true
;
this
.
title2
=
"填写工单信息"
;
});
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
this
.
getUserList
();
deviceNodeTree
().
then
(
response
=>
{
this
.
options
=
response
.
data
;
});
const
troubleId
=
row
.
troubleId
||
this
.
ids
getHiddenTrouble
(
troubleId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"修改隐患信息"
;
this
.
form1
=
response
.
data
;
if
(
this
.
form1
.
deviceType
!=
null
&&
this
.
form1
.
deviceId
!=
null
){
this
.
form1
.
device
=
[
this
.
form1
.
deviceType
,
this
.
form1
.
deviceId
];
}
this
.
open1
=
true
;
this
.
title1
=
"修改隐患信息"
;
if
(
this
.
form1
.
pictureUrl
)
{
this
.
fileList
.
push
({
url
:
this
.
form1
.
pictureUrl
,
});
}
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
submitForm
1
()
{
this
.
$refs
[
"form
1
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
troubleId
!=
null
)
{
updateHiddenTrouble
(
this
.
form
).
then
(
response
=>
{
if
(
this
.
form
1
.
troubleId
!=
null
)
{
updateHiddenTrouble
(
this
.
form
1
).
then
(
response
=>
{
this
.
msgSuccess
(
"修改成功"
);
this
.
open
=
false
;
this
.
open
1
=
false
;
this
.
getList
();
});
}
else
{
addHiddenTrouble
(
this
.
form
).
then
(
response
=>
{
addHiddenTrouble
(
this
.
form
1
).
then
(
response
=>
{
this
.
msgSuccess
(
"新增成功"
);
this
.
open
=
false
;
this
.
open
1
=
false
;
this
.
getList
();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
troubleIds
=
row
.
troubleId
||
this
.
ids
;
this
.
$confirm
(
'是否确认删除隐患信息编号为"'
+
troubleIds
+
'"的数据项?'
,
"警告"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
()
{
return
delHiddenTrouble
(
troubleIds
);
}).
then
(()
=>
{
/** 生成工单提交按钮 */
submitForm2
()
{
this
.
$refs
[
"form2"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
form2
.
resourceId
=
this
.
form2
.
troubleId
;
this
.
form2
.
orderType
=
"2"
;
addBasicsInfo
(
this
.
form2
).
then
(
response
=>
{
this
.
msgSuccess
(
"生成工单成功"
);
this
.
open2
=
false
;
this
.
getList
();
this
.
msgSuccess
(
"删除成功"
);
}).
catch
(()
=>
{});
});
}
});
},
/**
导出
按钮操作 */
handle
Export
(
)
{
const
queryParams
=
this
.
queryParams
;
this
.
$confirm
(
'是否确认
导出所有隐患信息
数据项?'
,
"警告"
,
{
/**
作废
按钮操作 */
handle
IsDel
(
row
)
{
row
.
isDel
=
"1"
;
this
.
$confirm
(
'是否确认
作废隐患名称为"'
+
row
.
troubleName
+
'"的
数据项?'
,
"警告"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
()
{
return
updateHiddenTrouble
(
row
);
}).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportHiddenTrouble
(
queryParams
);
}).
then
(
response
=>
{
this
.
download
(
response
.
msg
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
this
.
getList
();
this
.
msgSuccess
(
"已作废"
);
}).
catch
(()
=>
{
});
},
}
};
</
script
>
gassafety-web/src/views/riskManagement/hiddenTroubleDetail/index.vue
0 → 100644
View file @
7017e306
<
template
>
<div
class=
"app-container detail"
style=
"background-color: rgb(238, 241, 245);"
>
<!-- 巡检计划信息 -->
<div
style=
"padding-top: 10px;background: #fff;height: 100%;"
>
<el-row>
<el-col
:span=
"24"
style=
"padding-left: 15px;"
>
<div
style=
"height: 45px;"
@
click=
"$router.go(-1)"
>
<el-button
size=
"medium"
type=
"text"
style=
"font-size: 18px; color: rgb(7, 63, 112);float: left;"
>
返回
</el-button>
<div
style=
"float: left;margin-top: 8px;margin-left: 5px;"
><img
src=
"../../../assets/logo/fanhui.png"
style=
"width: 25px;"
alt=
""
></div>
</div>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row
style=
"width: 100%;"
>
<el-col
:span=
"24"
>
<div
style=
"color: #31EAEA;height: 25px;"
>
<ul><li>
详细信息
</li></ul>
</div>
</el-col>
</el-row>
<el-row
style=
"width: 100%;padding: 10px;padding-left: 40px;"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"width: 100%;margin-left: 25px;margin-bottom: 25px;"
>
<el-form-item
label=
"隐患名称:"
prop=
"troubleName"
>
<font>
{{
form
.
troubleName
}}
</font>
</el-form-item>
<el-form-item
label=
"隐患类型:"
prop=
"troubleType"
>
<font>
{{
form
.
troubleType
}}
</font>
</el-form-item>
<el-form-item
label=
"隐患等级:"
prop=
"troubleLevel"
>
<font>
{{
form
.
troubleLevel
}}
</font>
</el-form-item>
<el-form-item
label=
"隐患描述:"
prop=
"remarks"
>
<div
style=
"height: 90px;width: 200%; border: 1px solid rgb(187, 183, 183);margin-top: 10px;overflow-y: auto;padding: 5px;border-radius: 5px;"
>
<font>
{{
form
.
remarks
}}
</font>
</div>
</el-form-item>
</el-form>
</el-col>
<el-col
:span=
"12"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"width: 100%;"
>
<el-form-item
label=
"上报人:"
prop=
"reportManName"
>
<font>
{{
form
.
reportManName
}}
</font>
</el-form-item>
<el-form-item
label=
"上报时间:"
prop=
"createTime"
>
<font>
{{
form
.
createTime
}}
</font>
</el-form-item>
<el-form-item
label=
"处理状态:"
prop=
"dealStatus"
>
<span
v-if=
"form.orderId == null || form.orderId == ''"
>
未生成工单
</span>
<span
v-if=
"(form.dealStatus == null || form.dealStatus == '') &&
form.orderId != null && form.orderId != ''"
>
暂未处理
</span>
<span
v-if=
"form.dealStatus == 1"
>
不需处理
</span>
<span
v-if=
"form.dealStatus == 2"
>
已处理完成
</span>
<span
v-if=
"form.dealStatus == 3"
>
未处理完成
</span>
</el-form-item>
</el-form>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
>
<el-form-item
label=
"照片:"
prop=
"pictureUrl"
>
<el-image
:src=
"form.pictureUrl"
:preview-src-list=
"[form.pictureUrl]"
style=
"width: 300px;height: 300px;"
></el-image>
</el-form-item>
</el-form>
</el-col>
</el-row>
<!-- 接单信息 -->
<el-row
v-if=
"form.orderId != null && form.orderId != ''"
>
<el-divider></el-divider>
<el-col
:span=
"24"
>
<div
style=
"color: #31EAEA;width: 100%;height: 40px;"
>
<ul><li>
接单信息
</li></ul>
</div>
</el-col>
<el-col
:span=
"5"
style=
"margin-left: 50px;"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"height: 30px;width: 100%;"
>
<el-form-item
label=
"下发人员:"
prop=
"appointInspectorName"
>
<font>
{{
form
.
appointInspectorName
}}
</font>
</el-form-item>
</el-form>
</el-col>
<el-col
:span=
"6"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"height: 30px;width: 100%;"
>
<el-form-item
label=
"下发时间:"
prop=
"allotTime"
>
<font>
{{
form
.
allotTime
}}
</font>
</el-form-item>
</el-form>
</el-col>
<el-col
:span=
"6"
>
<el-form
ref=
"form"
v-model=
"form"
:rules=
"rules"
label-width=
"100px"
style=
"height: 30px;width: 100%;"
>
<el-form-item
label=
"工单编号:"
prop=
"orderId"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"showDetail(form.orderId)"
>
{{
form
.
orderId
}}
</el-button>
</
template
>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-divider></el-divider>
<!-- 处置信息 -->
<div
style=
"width: 100%;font-weight: 600;"
v-if=
"form.feedbackList != null"
>
<div
style=
"color: #31EAEA;width: 100%;height: 40px;"
>
<ul><li>
处置信息
</li></ul>
</div>
<div
class=
"block"
style=
"width: 95%;margin-left: 2%;"
>
<el-timeline
ref=
"timeline"
>
<el-timeline-item
v-for=
"(activity, index) in form.feedbackList"
v-show=
'index>1?false:true'
:key=
"index"
:timestamp=
"activity.feedbackTime"
>
<el-card>
<el-row>
<el-col
:span=
"6"
>
<p>
处置人:
<span>
{{form.appointInspectorName}}
</span>
</p>
<p>
处置时间:
<span>
{{activity.feedbackTime}}
</span>
</p>
<div
style=
"width: 600px;"
>
<p>
处置内容:
<span>
{{activity.contents}}
</span>
</p>
</div>
</el-col>
<el-col
:span=
"6"
>
<p>
是否有隐患:
<span
v-if=
"activity.isHiddenDanger == 1"
>
是
</span>
<span
v-if=
"activity.isHiddenDanger == 2"
>
否
</span>
</p>
<p
v-if=
"activity.isHiddenDanger == 1"
>
处理状态:
<span
v-if=
"activity.dealStatus == 1"
>
不需要处理
</span>
<span
v-if=
"activity.dealStatus == 2"
>
已处理完成
</span>
<span
v-if=
"activity.dealStatus == 3"
>
未处理完成
</span>
</p>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"feedbackTime-div"
>
<div
class=
"feedbackTime"
>
<el-image
:src=
"activity.pictureUrl1"
:preview-src-list=
"[activity.pictureUrl1]"
v-if=
"activity.pictureUrl1 != null && activity.pictureUrl1 != ''"
style=
"width: 90px;"
></el-image>
</div>
<div
class=
"feedbackTime"
>
<el-image
:src=
"activity.pictureUrl2"
:preview-src-list=
"[activity.pictureUrl2]"
v-if=
"activity.pictureUrl2 != null && activity.pictureUrl2 != ''"
style=
"width: 90px;"
></el-image>
</div>
<div
class=
"feedbackTime"
>
<el-image
:src=
"activity.pictureUrl3"
:preview-src-list=
"[activity.pictureUrl3]"
v-if=
"activity.pictureUrl3 != null && activity.pictureUrl3 != ''"
style=
"width: 90px;"
></el-image>
</div>
</div>
</el-col>
</el-row>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
<div
style=
"width: 95%;position: relative;"
@
click=
"changeDisplay(scope)"
>
<i
class=
"el-icon-arrow-down"
v-if=
"isDisplay==false"
style=
"margin-left: 100px;color: #909399;font-size: 14px;"
>
<span
style=
"text-decoration:underline"
>
显示全部
</span>
</i>
<i
class=
"el-icon-arrow-up"
v-else
style=
"color: #909399;font-size: 14px;margin-left: 100px;"
>
<span
style=
"text-decoration:underline"
>
收起
</span>
</i>
</div>
</div>
</div>
</div>
</template>
<
script
>
import
{
getHiddenTrouble
}
from
"@/api/riskManagement/hiddenTrouble"
;
export
default
{
name
:
"HiddenTroubleDetail"
,
components
:
{
},
data
()
{
return
{
troubleId
:
''
,
isDisplay
:
false
,
showAndHide
:
false
,
form
:
{
},
rules
:
{
},
};
},
created
()
{
// 如果是跳转来的,则接受初始化参数
this
.
troubleId
=
this
.
$route
.
query
.
troubleId
;
this
.
getDetail
();
},
methods
:
{
/** 获取隐患信息详情 */
getDetail
(){
getHiddenTrouble
(
this
.
troubleId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
console
.
log
(
"this.form"
,
this
.
form
)
});
},
/** 详细信息跳转 */
showDetail
(
orderId
)
{
this
.
$router
.
push
({
path
:
'/workOrder/detail'
,
query
:{
orderId
:
orderId
}
})
},
// 点击按钮显示隐藏
changeDisplay
(
e
)
{
this
.
isDisplay
=
!
this
.
isDisplay
let
$timeline
=
this
.
$refs
.
timeline
;
if
(
!
this
.
showAndHide
)
{
for
(
let
i
=
0
;
i
<
$timeline
.
$children
.
length
;
i
++
)
{
if
(
i
>
1
)
{
$timeline
.
$children
[
i
].
$el
.
style
.
display
=
"block"
;
}
}
this
.
showAndHide
=
true
;
}
else
{
for
(
let
i
=
0
;
i
<
$timeline
.
$children
.
length
;
i
++
)
{
if
(
i
>
1
)
{
$timeline
.
$children
[
i
].
$el
.
style
.
display
=
"none"
;
}
}
this
.
showAndHide
=
false
;
}
},
}
}
</
script
>
<
style
>
.el-tree-node__content
{
width
:
150px
;
}
.el-divider--horizontal
{
display
:
block
;
height
:
1px
;
width
:
100%
;
margin
:
20px
0
;
}
.feedbackTime-div
{
float
:
left
;
margin-left
:
150px
;
margin-top
:
10px
;
}
.feedbackTime
{
height
:
120px
;
width
:
120px
;
float
:
left
;
margin-left
:
15px
;
margin-top
:
5px
;
margin-bottom
:
15px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.el-card__body
{
padding
:
5px
20px
20px
20px
;
}
.detail
.el-form
{
width
:
20%
;
}
.detail
.el-form-item
{
margin-bottom
:
0px
;
}
.el-tree
{
margin-top
:
5px
;
}
.avatar-uploader
{
width
:
25%
;
float
:
left
;
}
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
cursor
:
pointer
;
position
:
relative
;
overflow
:
hidden
;
}
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409EFF
;
}
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
178px
;
height
:
178px
;
line-height
:
178px
;
text-align
:
center
;
}
.avatar
{
width
:
178px
;
height
:
178px
;
display
:
block
;
}
li
{
font-size
:
15px
;
font-weight
:
900
;
}
</
style
>
gassafety-web/src/views/workOrder/detail/index.vue
View file @
7017e306
...
...
@@ -263,7 +263,6 @@
</div>
</div>
</div>
</div>
</
template
>
<
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment