Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gassafety-progress
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-progress
Commits
1750ae4d
Commit
1750ae4d
authored
Mar 04, 2022
by
耿迪迪
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
ssh://111.61.77.35:15/gengdidi/gassafety-progress
parents
3b628f8b
3f2a0720
Hide whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
1303 additions
and
385 deletions
+1303
-385
TDetectorReportDataController.java
...oller/operationMonitor/TDetectorReportDataController.java
+105
-0
TDetectorUserController.java
...ong/web/controller/supervise/TDetectorUserController.java
+2
-2
TDetectorReportDataQueryForm.java
...hong/system/domain/form/TDetectorReportDataQueryForm.java
+38
-0
TDetectorAlarmInfoVO.java
...ava/com/zehong/system/domain/vo/TDetectorAlarmInfoVO.java
+5
-45
TDetectorReportDataMapper.java
...a/com/zehong/system/mapper/TDetectorReportDataMapper.java
+3
-2
TDetectorUserMapper.java
...in/java/com/zehong/system/mapper/TDetectorUserMapper.java
+4
-4
TDeviceInfoMapper.java
...main/java/com/zehong/system/mapper/TDeviceInfoMapper.java
+8
-0
TSiteStationInfoMapper.java
...java/com/zehong/system/mapper/TSiteStationInfoMapper.java
+9
-0
ITDetectorReportDataService.java
...om/zehong/system/service/ITDetectorReportDataService.java
+5
-4
ITDetectorUserService.java
...java/com/zehong/system/service/ITDetectorUserService.java
+5
-3
TDetectorReportDataServiceImpl.java
...g/system/service/impl/TDetectorReportDataServiceImpl.java
+7
-6
TDetectorUserServiceImpl.java
.../zehong/system/service/impl/TDetectorUserServiceImpl.java
+43
-43
TDetectorReportDataMapper.xml
...ain/resources/mapper/system/TDetectorReportDataMapper.xml
+22
-16
TDetectorUserMapper.xml
.../src/main/resources/mapper/system/TDetectorUserMapper.xml
+10
-51
TDeviceInfoMapper.xml
...em/src/main/resources/mapper/system/TDeviceInfoMapper.xml
+9
-0
TSiteStationInfoMapper.xml
...c/main/resources/mapper/system/TSiteStationInfoMapper.xml
+8
-0
TWorkOrderMapper.xml
...tem/src/main/resources/mapper/system/TWorkOrderMapper.xml
+2
-4
package.json
gassafetyprogress-web/package.json
+1
-1
getDevice.js
gassafetyprogress-web/src/api/bigWindow/getDevice.js
+27
-1
detectorReportData.js
gassafetyprogress-web/src/api/detector/detectorReportData.js
+53
-0
czAlarm.svg
gassafetyprogress-web/src/assets/mapImages/czAlarm.svg
+31
-0
fmAlarm.svg
gassafetyprogress-web/src/assets/mapImages/fmAlarm.svg
+27
-0
ggg.gif
gassafetyprogress-web/src/assets/mapImages/ggg.gif
+0
-0
tyxAlarm.svg
gassafetyprogress-web/src/assets/mapImages/tyxAlarm.svg
+29
-0
userAlarm.svg
gassafetyprogress-web/src/assets/mapImages/userAlarm.svg
+20
-17
zzz.svg
gassafetyprogress-web/src/assets/mapImages/zzz.svg
+30
-0
Cz.vue
gassafetyprogress-web/src/components/bigWindow/Cz.vue
+72
-39
Device.vue
gassafetyprogress-web/src/components/bigWindow/Device.vue
+306
-0
User.vue
gassafetyprogress-web/src/components/bigWindow/User.vue
+15
-2
leftBar.vue
gassafetyprogress-web/src/components/bigWindow/leftBar.vue
+119
-14
rightBar.vue
gassafetyprogress-web/src/components/bigWindow/rightBar.vue
+59
-74
Logo.vue
gassafetyprogress-web/src/layout/components/Sidebar/Logo.vue
+1
-1
config.js
gassafetyprogress-web/src/utils/mapClass/config.js
+4
-4
map.js
gassafetyprogress-web/src/utils/mapClass/map.js
+60
-34
index.vue
gassafetyprogress-web/src/views/bigWindow/index.vue
+19
-15
login.vue
gassafetyprogress-web/src/views/login.vue
+1
-1
index.vue
...b/src/views/operationMonitor/detectorReportData/index.vue
+142
-0
vue.config.js
gassafetyprogress-web/vue.config.js
+2
-2
No files found.
gassafetyprogress-admin/src/main/java/com/zehong/web/controller/operationMonitor/TDetectorReportDataController.java
0 → 100644
View file @
1750ae4d
package
com
.
zehong
.
web
.
controller
.
operationMonitor
;
import
java.util.List
;
import
com.zehong.system.domain.form.TDetectorReportDataQueryForm
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.zehong.common.annotation.Log
;
import
com.zehong.common.core.controller.BaseController
;
import
com.zehong.common.core.domain.AjaxResult
;
import
com.zehong.common.enums.BusinessType
;
import
com.zehong.system.domain.TDetectorReportData
;
import
com.zehong.system.service.ITDetectorReportDataService
;
import
com.zehong.common.utils.poi.ExcelUtil
;
import
com.zehong.common.core.page.TableDataInfo
;
/**
* 燃气用户设备上报的数据Controller
*
* @author zehong
* @date 2022-03-04
*/
@RestController
@RequestMapping
(
"/detector/detectorReportData"
)
public
class
TDetectorReportDataController
extends
BaseController
{
@Autowired
private
ITDetectorReportDataService
tDetectorReportDataService
;
/**
* 查询燃气用户设备上报的数据列表
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
TDetectorReportDataQueryForm
tDetectorReportDataQueryForm
)
{
startPage
();
List
<
TDetectorReportData
>
list
=
tDetectorReportDataService
.
selectTDetectorReportDataList
(
tDetectorReportDataQueryForm
);
return
getDataTable
(
list
);
}
/**
* 导出燃气用户设备上报的数据列表
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:export')"
)
@Log
(
title
=
"燃气用户设备上报的数据"
,
businessType
=
BusinessType
.
EXPORT
)
@GetMapping
(
"/export"
)
public
AjaxResult
export
(
TDetectorReportDataQueryForm
tDetectorReportDataQueryForm
)
{
List
<
TDetectorReportData
>
list
=
tDetectorReportDataService
.
selectTDetectorReportDataList
(
tDetectorReportDataQueryForm
);
ExcelUtil
<
TDetectorReportData
>
util
=
new
ExcelUtil
<
TDetectorReportData
>(
TDetectorReportData
.
class
);
return
util
.
exportExcel
(
list
,
"燃气用户设备上报的数据数据"
);
}
/**
* 获取燃气用户设备上报的数据详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
AjaxResult
.
success
(
tDetectorReportDataService
.
selectTDetectorReportDataById
(
id
));
}
/**
* 新增燃气用户设备上报的数据
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:add')"
)
@Log
(
title
=
"燃气用户设备上报的数据"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
TDetectorReportData
tDetectorReportData
)
{
return
toAjax
(
tDetectorReportDataService
.
insertTDetectorReportData
(
tDetectorReportData
));
}
/**
* 修改燃气用户设备上报的数据
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:edit')"
)
@Log
(
title
=
"燃气用户设备上报的数据"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
TDetectorReportData
tDetectorReportData
)
{
return
toAjax
(
tDetectorReportDataService
.
updateTDetectorReportData
(
tDetectorReportData
));
}
/**
* 删除燃气用户设备上报的数据
*/
@PreAuthorize
(
"@ss.hasPermi('detector:detectorReportData:remove')"
)
@Log
(
title
=
"燃气用户设备上报的数据"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
tDetectorReportDataService
.
deleteTDetectorReportDataByIds
(
ids
));
}
}
gassafetyprogress-admin/src/main/java/com/zehong/web/controller/supervise/TDetectorUserController.java
View file @
1750ae4d
...
...
@@ -50,8 +50,8 @@ public class TDetectorUserController extends BaseController
* @return
*/
@GetMapping
(
"/detectorUserList"
)
public
AjaxResult
detectorUserList
(){
return
AjaxResult
.
success
(
tDetectorUserService
.
detectorUserList
());
public
AjaxResult
detectorUserList
(
TDetectorUser
tDetectorUser
){
return
AjaxResult
.
success
(
tDetectorUserService
.
detectorUserList
(
tDetectorUser
));
}
/**
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/domain/form/TDetectorReportDataQueryForm.java
0 → 100644
View file @
1750ae4d
package
com
.
zehong
.
system
.
domain
.
form
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
TDetectorReportDataQueryForm
{
//设备编号
private
String
detectorCode
;
//状态名称
private
String
statusName
;
//是否销警
private
String
isCancelAlarm
;
/** 发现起始时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTimeStart
;
/** 发现截止时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTimeEnd
;
/** 发现起始时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
cancelTimeStart
;
/** 发现截止时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
cancelTimeEnd
;
}
gassafetyprogress-system/src/main/java/com/zehong/system/domain/vo/TDetectorAlarmInfoVO.java
View file @
1750ae4d
package
com
.
zehong
.
system
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
...
...
@@ -9,7 +10,7 @@ import java.util.Date;
* @author zhangzhizhong
*
*/
@Data
public
class
TDetectorAlarmInfoVO
{
// 设备编号
...
...
@@ -25,49 +26,8 @@ public class TDetectorAlarmInfoVO {
private
Date
alarmTime
;
// 处理状态
private
String
handledStatus
;
public
String
getDetectorCode
()
{
return
detectorCode
;
}
public
void
setDetectorCode
(
String
detectorCode
)
{
this
.
detectorCode
=
detectorCode
;
}
public
String
getUnitName
()
{
return
unitName
;
}
public
void
setUnitName
(
String
unitName
)
{
this
.
unitName
=
unitName
;
}
public
String
getDetectorType
()
{
return
detectorType
;
}
public
void
setDetectorType
(
String
detectorType
)
{
this
.
detectorType
=
detectorType
;
}
public
String
getStatusName
()
{
return
statusName
;
}
public
void
setStatusName
(
String
statusName
)
{
this
.
statusName
=
statusName
;
}
public
Date
getAlarmTime
()
{
return
alarmTime
;
}
public
void
setAlarmTime
(
Date
alarmTime
)
{
this
.
alarmTime
=
alarmTime
;
}
public
String
getHandledStatus
()
{
return
handledStatus
;
}
public
void
setHandledStatus
(
String
handledStatus
)
{
this
.
handledStatus
=
handledStatus
;
}
// 销警时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
cancelTime
;
}
gassafetyprogress-system/src/main/java/com/zehong/system/mapper/TDetectorReportDataMapper.java
View file @
1750ae4d
...
...
@@ -2,6 +2,7 @@ package com.zehong.system.mapper;
import
com.zehong.system.domain.TDetectorInfo
;
import
com.zehong.system.domain.TDetectorReportData
;
import
com.zehong.system.domain.form.TDetectorReportDataQueryForm
;
import
com.zehong.system.domain.vo.TDetectorAlarmInfoVO
;
import
java.util.List
;
...
...
@@ -34,10 +35,10 @@ public interface TDetectorReportDataMapper
/**
* 查询设备上报的数据列表
*
* @param tDetectorReportData 设备上报的数据
* @param tDetectorReportData
QueryForm
设备上报的数据
* @return 设备上报的数据集合
*/
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
tDetectorReportData
);
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
QueryForm
tDetectorReportDataQueryForm
);
/**
* 新增设备上报的数据
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/mapper/TDetectorUserMapper.java
View file @
1750ae4d
package
com
.
zehong
.
system
.
mapper
;
import
java.util.List
;
import
java.util.Map
;
import
com.zehong.system.domain.TDetectorInfo
;
import
com.zehong.system.domain.TDetectorUser
;
...
...
@@ -27,15 +28,14 @@ public interface TDetectorUserMapper
*
* @return 燃气用户
*/
public
List
<
TDetectorUserVO
>
countTDetectorUser
(
TDetector
Info
tDetectorInfo
);
public
List
<
TDetectorUserVO
>
countTDetectorUser
(
TDetector
User
tDetectorUser
);
/**
* 查询探测器报警用户
*
* @param tDetectorUser 探测器用户
* @return 探测器用户
* @return map
*/
public
TDetectorUserVO
countTDetectorUserAlarm
(
TDetectorUser
tDetectorUser
);
public
List
<
Map
>
getDetectorUserAlarmList
(
);
/**
* 泽宏云推送查询燃气用户
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/mapper/TDeviceInfoMapper.java
View file @
1750ae4d
...
...
@@ -5,6 +5,7 @@ import java.util.Map;
import
com.zehong.system.domain.TDeviceInfo
;
import
com.zehong.system.domain.TDeviceInfoS
;
import
com.zehong.system.domain.vo.TDetectorUserVO
;
import
org.apache.ibatis.annotations.Param
;
/**
...
...
@@ -23,6 +24,13 @@ public interface TDeviceInfoMapper
*/
public
TDeviceInfo
selectTDeviceInfoById
(
Long
deviceId
);
/**
* 查询设备报警信息
*
* @return map
*/
public
List
<
Map
>
getDeviceInfoAlarmList
();
/**
* 查询设备信息列表
*
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/mapper/TSiteStationInfoMapper.java
View file @
1750ae4d
package
com
.
zehong
.
system
.
mapper
;
import
java.util.List
;
import
java.util.Map
;
import
com.zehong.system.domain.TSiteStationInfo
;
/**
...
...
@@ -19,6 +21,13 @@ public interface TSiteStationInfoMapper
*/
public
TSiteStationInfo
selectTSiteStationInfoById
(
Long
siteStationId
);
/**
* 查询场站报警信息
*
* @return map
*/
public
List
<
Map
>
getSiteStationAlarmList
();
/**
* 查询场站信息列表
*
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/service/ITDetectorReportDataService.java
View file @
1750ae4d
...
...
@@ -3,6 +3,7 @@ package com.zehong.system.service;
import
com.github.pagehelper.PageInfo
;
import
com.zehong.system.domain.TDetectorInfo
;
import
com.zehong.system.domain.TDetectorReportData
;
import
com.zehong.system.domain.form.TDetectorReportDataQueryForm
;
import
com.zehong.system.domain.vo.TDetectorAlarmInfoVO
;
import
java.util.List
;
...
...
@@ -35,18 +36,18 @@ public interface ITDetectorReportDataService
/**
* 查询设备上报的数据列表
*
* @param tDetectorReportData 设备上报的数据
* @param tDetectorReportData
QueryForm
设备上报的数据
* @return 设备上报的数据集合
*/
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
tDetectorReportData
);
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
QueryForm
tDetectorReportDataQueryForm
);
/**
* 查询设备上报的数据分页列表
*
* @param tDetectorReportData 设备上报的数据
* @param tDetectorReportData
QueryForm
设备上报的数据
* @return 设备上报的数据分页集合
*/
public
PageInfo
<
TDetectorReportData
>
selectTDetectorReportDataPage
(
TDetectorReportData
tDetectorReportData
);
public
PageInfo
<
TDetectorReportData
>
selectTDetectorReportDataPage
(
TDetectorReportData
QueryForm
tDetectorReportDataQueryForm
);
/**
* 新增设备上报的数据
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/service/ITDetectorUserService.java
View file @
1750ae4d
package
com
.
zehong
.
system
.
service
;
import
java.util.List
;
import
java.util.Map
;
import
com.zehong.system.domain.TDetectorUser
;
import
com.zehong.system.domain.vo.TDetectorUserVO
;
...
...
@@ -18,14 +20,14 @@ public interface ITDetectorUserService
*
* @return 探测器用户集合
*/
public
List
<
TDetectorUserVO
>
detectorUserList
();
public
List
<
TDetectorUserVO
>
detectorUserList
(
TDetectorUser
tDetectorUser
);
/**
* 查询探测器报警用户(前台调用)
*
* @return 探测器用户
*/
public
List
<
TDetectorUserVO
>
getDetectorUserAlarmList
();
public
List
<
Map
>
getDetectorUserAlarmList
();
/**
* 查询探测器报警用户(后台推送)
...
...
@@ -33,7 +35,7 @@ public interface ITDetectorUserService
* @param tDetectorUser 探测器用户
* @return 探测器用户
*/
public
TDetectorUserVO
detectorUserAlarmList
(
TDetectorUser
tDetectorUser
);
public
List
<
TDetectorUserVO
>
detectorUserAlarmList
(
TDetectorUser
tDetectorUser
);
/**
* 泽宏云推送查询燃气用户
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/service/impl/TDetectorReportDataServiceImpl.java
View file @
1750ae4d
...
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import
com.zehong.common.utils.DateUtils
;
import
com.zehong.system.domain.TDetectorInfo
;
import
com.zehong.system.domain.TDetectorReportData
;
import
com.zehong.system.domain.form.TDetectorReportDataQueryForm
;
import
com.zehong.system.domain.vo.TDetectorAlarmInfoVO
;
import
com.zehong.system.mapper.TDetectorReportDataMapper
;
import
com.zehong.system.service.ITDetectorReportDataService
;
...
...
@@ -62,25 +63,25 @@ public class TDetectorReportDataServiceImpl implements ITDetectorReportDataServi
/**
* 查询设备上报的数据列表
*
* @param tDetectorReportData 设备上报的数据
* @param tDetectorReportData
QueryForm
设备上报的数据
* @return 设备上报的数据
*/
@Override
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
tDetectorReportData
)
public
List
<
TDetectorReportData
>
selectTDetectorReportDataList
(
TDetectorReportData
QueryForm
tDetectorReportDataQueryForm
)
{
return
tDetectorReportDataMapper
.
selectTDetectorReportDataList
(
tDetectorReportData
);
return
tDetectorReportDataMapper
.
selectTDetectorReportDataList
(
tDetectorReportData
QueryForm
);
}
/**
* 查询设备上报的数据分页列表
*
* @param tDetectorReportData 设备上报的数据
* @param tDetectorReportData
QueryForm
设备上报的数据
* @return 设备上报的数据
*/
@Override
public
PageInfo
<
TDetectorReportData
>
selectTDetectorReportDataPage
(
TDetectorReportData
tDetectorReportData
)
public
PageInfo
<
TDetectorReportData
>
selectTDetectorReportDataPage
(
TDetectorReportData
QueryForm
tDetectorReportDataQueryForm
)
{
return
new
PageInfo
(
tDetectorReportDataMapper
.
selectTDetectorReportDataList
(
tDetectorReportData
));
return
new
PageInfo
(
tDetectorReportDataMapper
.
selectTDetectorReportDataList
(
tDetectorReportData
QueryForm
));
}
/**
...
...
gassafetyprogress-system/src/main/java/com/zehong/system/service/impl/TDetectorUserServiceImpl.java
View file @
1750ae4d
...
...
@@ -2,19 +2,18 @@ package com.zehong.system.service.impl;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
com.zehong.system.domain.TDetectorInfo
;
import
com.zehong.system.domain.TDetectorReportData
;
import
com.zehong.system.domain.vo.TDetectorUserVO
;
import
com.zehong.system.mapper.TDetectorInfoMapper
;
import
com.zehong.system.mapper.TDetectorReportDataMapper
;
import
com.zehong.system.mapper.TDeviceInfoMapper
;
import
com.zehong.system.mapper.TSiteStationInfoMapper
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.zehong.system.mapper.TDetectorUserMapper
;
import
com.zehong.system.domain.TDetectorUser
;
import
com.zehong.system.service.ITDetectorUserService
;
import
org.springframework.util.StringUtils
;
/**
* 燃气用户Service业务层处理
...
...
@@ -28,9 +27,9 @@ public class TDetectorUserServiceImpl implements ITDetectorUserService
@Autowired
private
TDetectorUserMapper
tDetectorUserMapper
;
@Autowired
private
TDe
tectorInfoMapper
tDetector
InfoMapper
;
private
TDe
viceInfoMapper
tDevice
InfoMapper
;
@Autowired
private
T
DetectorReportDataMapper
tDetectorReportData
Mapper
;
private
T
SiteStationInfoMapper
tSiteStationInfo
Mapper
;
/**
...
...
@@ -39,10 +38,10 @@ public class TDetectorUserServiceImpl implements ITDetectorUserService
* @return 探测器用户
*/
@Override
public
List
<
TDetectorUserVO
>
detectorUserList
()
public
List
<
TDetectorUserVO
>
detectorUserList
(
TDetectorUser
tDetectorUser
)
{
List
<
TDetectorUserVO
>
list
=
new
ArrayList
<>();
List
<
TDetectorUserVO
>
tDetectorUserList
=
tDetectorUserMapper
.
countTDetectorUser
(
new
TDetectorInfo
()
);
List
<
TDetectorUserVO
>
tDetectorUserList
=
tDetectorUserMapper
.
countTDetectorUser
(
tDetectorUser
);
List
<
Object
>
initList
=
new
ArrayList
<>();
for
(
TDetectorUserVO
user
:
tDetectorUserList
){
...
...
@@ -54,14 +53,12 @@ public class TDetectorUserServiceImpl implements ITDetectorUserService
initList
.
add
(
user
);
userVO
.
setDetectorCountList
(
initList
);
userVO
.
setIconType
(
"6"
);
userVO
.
setUserStatus
(
"1"
);
}
else
{
BeanUtils
.
copyProperties
(
user
,
temp
);
List
<
Object
>
newList
=
new
ArrayList
<>();
newList
.
add
(
temp
);
userVO
.
setDetectorCountList
(
newList
);
userVO
.
setIconType
(
"6"
);
userVO
.
setUserStatus
(
"1"
);
list
.
add
(
userVO
);
}
}
...
...
@@ -75,34 +72,32 @@ public class TDetectorUserServiceImpl implements ITDetectorUserService
* @return 探测器用户
*/
@Override
public
List
<
TDetectorUserVO
>
getDetectorUserAlarmList
()
public
List
<
Map
>
getDetectorUserAlarmList
()
{
List
<
TDetectorUserVO
>
list
=
new
ArrayList
<>();
TDetectorInfo
tDetectorInfo
=
new
TDetectorInfo
();
tDetectorInfo
.
setDetectorStatus
(
"2"
);
// 查询报警的数据
List
<
TDetectorUserVO
>
tDetectorUserList
=
tDetectorUserMapper
.
countTDetectorUser
(
tDetectorInfo
);
List
<
Map
>
list
=
new
ArrayList
<>();
List
<
Object
>
initList
=
new
ArrayList
<>();
for
(
TDetectorUserVO
user
:
tDetectorUserList
){
TDetectorUserVO
userVO
=
new
TDetectorUserVO
();
BeanUtils
.
copyProperties
(
user
,
userVO
);
TDetectorUserVO
temp
=
new
TDetectorUserVO
();
if
(
user
.
getUserId
().
equals
(
temp
.
getUserId
())){
initList
.
add
(
user
);
userVO
.
setDetectorCountList
(
initList
);
userVO
.
setIconType
(
"6"
);
userVO
.
setUserStatus
(
"2"
);
}
else
{
BeanUtils
.
copyProperties
(
user
,
temp
);
List
<
Object
>
newList
=
new
ArrayList
<>();
newList
.
add
(
temp
);
userVO
.
setDetectorCountList
(
newList
);
userVO
.
setIconType
(
"6"
);
userVO
.
setUserStatus
(
"2"
);
list
.
add
(
userVO
);
// 查询报警用户
List
<
Map
>
userList
=
tDetectorUserMapper
.
getDetectorUserAlarmList
();
for
(
Map
map
:
userList
){
map
.
put
(
"iconType"
,
"6"
);
list
.
add
(
map
);
}
// 查询报警设备
List
<
Map
>
infoList
=
tDeviceInfoMapper
.
getDeviceInfoAlarmList
();
for
(
Map
map
:
infoList
){
// deviceType:1阀门井 2调压箱
if
(
map
.
get
(
"deviceType"
).
equals
(
"1"
)){
map
.
put
(
"iconType"
,
"3"
);
}
else
if
(
map
.
get
(
"deviceType"
).
equals
(
"2"
)){
map
.
put
(
"iconType"
,
"2"
);
}
list
.
add
(
map
);
}
// 查询报警场站
List
<
Map
>
stationList
=
tSiteStationInfoMapper
.
getSiteStationAlarmList
();
for
(
Map
map
:
stationList
){
map
.
put
(
"iconType"
,
"4"
);
list
.
add
(
map
);
}
return
list
;
...
...
@@ -115,17 +110,22 @@ public class TDetectorUserServiceImpl implements ITDetectorUserService
* @return 探测器用户
*/
@Override
public
TDetectorUserVO
detectorUserAlarmList
(
TDetectorUser
tDetectorUser
)
public
List
<
TDetectorUserVO
>
detectorUserAlarmList
(
TDetectorUser
tDetectorUser
)
{
List
<
Object
>
list
=
new
ArrayList
<>();
TDetectorUserVO
user
=
tDetectorUserMapper
.
countTDetectorUserAlarm
(
tDetectorUser
);
List
<
TDetectorUserVO
>
list
=
new
ArrayList
<>();
List
<
TDetectorUserVO
>
tDetectorUserList
=
tDetectorUserMapper
.
countTDetectorUser
(
tDetectorUser
);
TDetectorUserVO
userVO
=
new
TDetectorUserVO
();
BeanUtils
.
copyProperties
(
user
,
userVO
);
list
.
add
(
user
);
userVO
.
setDetectorCountList
(
list
);
List
<
Object
>
initList
=
new
ArrayList
<>();
for
(
TDetectorUserVO
user
:
tDetectorUserList
)
{
TDetectorUserVO
userVO
=
new
TDetectorUserVO
();
BeanUtils
.
copyProperties
(
user
,
userVO
);
initList
.
add
(
userVO
);
userVO
.
setDetectorCountList
(
initList
);
return
userVO
;
list
.
add
(
user
);
}
return
list
;
}
/**
...
...
gassafetyprogress-system/src/main/resources/mapper/system/TDetectorReportDataMapper.xml
View file @
1750ae4d
...
...
@@ -24,21 +24,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, source_id, detector_code, detector_status_id, status_name, report_value, zh_host_status_id, net_point, signal_strength, ip_address, create_time, is_cancel_alarm, cancel_time from t_detector_report_data
</sql>
<select
id=
"selectTDetectorReportDataList"
parameterType=
"TDetectorReportData"
resultMap=
"TDetectorReportDataResult"
>
<include
refid=
"selectTDetectorReportDataVo"
/>
<where>
<if
test=
"sourceId != null and sourceId != ''"
>
and source_id = #{sourceId}
</if>
<if
test=
"detectorCode != null and detectorCode != ''"
>
and detector_code = #{detectorCode}
</if>
<if
test=
"detectorStatusId != null and detectorStatusId != ''"
>
and detector_status_id = #{detectorStatusId}
</if>
<if
test=
"statusName != null and statusName != ''"
>
and status_name = #{statusName}
</if>
<if
test=
"reportValue != null "
>
and report_value = #{reportValue}
</if>
<if
test=
"zhHostStatusId != null "
>
and zh_host_status_id = #{zhHostStatusId}
</if>
<if
test=
"netPoint != null "
>
and net_point = #{netPoint}
</if>
<if
test=
"signalStrength != null "
>
and signal_strength = #{signalStrength}
</if>
<if
test=
"ipAddress != null and ipAddress != ''"
>
and ip_address = #{ipAddress}
</if>
<select
id=
"selectTDetectorReportDataList"
parameterType=
"TDetectorReportDataForm"
resultType=
"TDetectorAlarmInfoVO"
>
select rd.id,
rd.cancel_time cancelTime,
rd.detector_code detectorCode,
CONCAT_WS("#",IFNULL(u.nick_name,IFNULL(di.linkman,di.detector_addr)),di.linkman) unitName,
di.detector_type detectorType,
rd.status_name statusName,
rd.create_time alarmTime,
rd.is_cancel_alarm handledStatus
FROM t_detector_report_data rd
LEFT JOIN t_detector_info di ON rd.detector_code = di.detector_code
LEFT JOIN t_detector_user u ON u.user_id = di.user_id
<where>
u.is_del = '0' and di.is_del = '0'
<if
test=
"detectorCode != null and detectorCode != ''"
>
and rd.detector_code = #{detectorCode}
</if>
<if
test=
"statusName != null and statusName != ''"
>
and rd.status_name = #{statusName}
</if>
<if
test=
"createTimeStart != null "
>
and rd.create_time
>
= #{createTimeStart}
</if>
<if
test=
"createTimeEnd != null "
>
and rd.create_time
<
= #{createTimeEnd}
</if>
<if
test=
"isCancelAlarm != null and isCancelAlarm != ''"
>
and is_cancel_alarm = #{isCancelAlarm}
</if>
<if
test=
"cancelTime != null "
>
and cancel_time = #{cancelTime}
</if>
<if
test=
"cancelTimeStart != null "
>
and rd.cancel_time
>
= #{cancelTimeStart}
</if>
<if
test=
"cancelTimeEnd != null "
>
and rd.cancel_time
<
= #{cancelTimeEnd}
</if>
</where>
ORDER BY rd.create_time desc
</select>
<select
id=
"selectTDetectorReportDataById"
parameterType=
"Long"
resultMap=
"TDetectorReportDataResult"
>
...
...
@@ -65,11 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
'未消除',
'已消除'
) handledStatus
FROM
t_detector_report_data rd
FROM t_detector_report_data rd
LEFT JOIN t_detector_info di ON rd.detector_code = di.detector_code
LEFT JOIN t_detector_user u ON u.user_id = di.user_id
WHERE u.is_del = '0' and di.is_del = '0'
WHERE u.is_del = '0' and di.is_del = '0'
and rd.is_cancel_alarm = '0'
ORDER BY rd.create_time DESC LIMIT 50
</select>
...
...
gassafetyprogress-system/src/main/resources/mapper/system/TDetectorUserMapper.xml
View file @
1750ae4d
...
...
@@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where user_id = #{userId}
</select>
<select
id=
"countTDetectorUser"
resultType=
"TDetectorUserVO"
parameterType=
"TDetector
Info
"
>
<select
id=
"countTDetectorUser"
resultType=
"TDetectorUserVO"
parameterType=
"TDetector
User
"
>
select t1.*,
IFNULL(t2.historyAlarmNum,0) AS historyAlarmNum,
IFNULL(t2.processingAlarmNum,0) AS processingAlarmNum,
...
...
@@ -66,8 +66,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.phone AS phone,
a.email AS email,
CASE a.detector_type
WHEN '1' THEN '家用
报警
器'
WHEN '2' THEN '工业
报警
器' END AS detectorType,
WHEN '1' THEN '家用
探测
器'
WHEN '2' THEN '工业
探测
器' END AS detectorType,
COUNT(a.detector_id) AS detectorCount,
SUM(CASE a.detector_status WHEN '0' THEN 1 ELSE 0 END) AS onLineNum,
SUM(CASE a.detector_status WHEN '1' THEN 1 ELSE 0 END) AS offLineNum
...
...
@@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a2.* from t_detector_info a1
right join t_detector_user a2 on a1.user_id = a2.user_id
<where>
a1.is_del = '0' and a2.is_del = '0'
<if
test=
"
detectorStatus != null and detectorStatus != ''"
>
and a1.detector_status = #{detectorStatus
}
</if>
<if
test=
"
userId != null and userId != ''"
>
and a2.user_id = #{userId
}
</if>
</where>
) a
group by a.user_id,a.detector_type
...
...
@@ -92,59 +92,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join t_detector_info b2 on b1.detector_code = b2.detector_code
right join t_detector_user b3 on b2.user_id = b3.user_id
<where>
b2.is_del = '0' and b3.is_del = '0'
<if
test=
"
detectorStatus != null and detectorStatus != ''"
>
and b2.detector_status = #{detectorStatus
}
</if>
<if
test=
"
userId != null and userId != ''"
>
and b3.user_id = #{userId
}
</if>
</where>
) b
group by b.user_id,b.detector_type
) t2 on t2.userId = t1.userId
</select>
<select
id=
"countTDetectorUserAlarm"
resultType=
"TDetectorUserVO"
parameterType=
"TDetectorUser"
>
select t1.*,
IFNULL(t2.historyAlarmNum,0) AS historyAlarmNum,
IFNULL(t2.processingAlarmNum,0) AS processingAlarmNum,
IFNULL(t2.cancelAlarmNum,0) AS cancelAlarmNum
from(
select a.user_id AS userId,
a.detector_id AS detectorId,
a.detector_status AS detectorStatus,
a.nick_name AS nickName,
a.user_type AS userType,
a.address AS address,
a.longitude AS longitude,
a.latitude AS latitude,
a.linkman AS linkman,
a.phone AS phone,
a.email AS email,
CASE a.detector_type
WHEN '1' THEN '家用报警器'
WHEN '2' THEN '工业报警器' END AS detectorType,
COUNT(a.detector_id) AS detectorCount,
SUM(CASE a.detector_status WHEN '0' THEN 1 ELSE 0 END) AS onLineNum,
SUM(CASE a.detector_status WHEN '1' THEN 1 ELSE 0 END) AS offLineNum
from(select a1.detector_id,
a1.detector_type,
a1.detector_status,
a2.* from t_detector_info a1
right join t_detector_user a2 on a1.user_id = a2.user_id
where a1.is_del = '0' and a2.is_del = '0' and a2.user_id = #{userId}) a
group by a.detector_type
) t1 left join (
select b.user_id AS userId,
COUNT(b.id) AS historyAlarmNum,
SUM(CASE b.is_cancel_alarm WHEN '0' THEN 1 ELSE 0 END) AS processingAlarmNum,
COUNT(b.id) - SUM(CASE b.is_cancel_alarm WHEN '0' THEN 1 ELSE 0 END) AS cancelAlarmNum
from(select b1.id,b1.is_cancel_alarm,b2.*
from t_detector_report_data b1
left join t_detector_info b2 on b1.detector_code = b2.detector_code
right join t_detector_user b3 on b2.user_id = b3.user_id
where b2.is_del = '0' and b3.is_del = '0' and b3.user_id = #{userId}) b
group by b.detector_type
) t2 on t2.userId = t1.userId
<select
id=
"getDetectorUserAlarmList"
resultType=
"Map"
>
select a2.user_id as userId
from t_detector_info a1
right join t_detector_user a2 on a1.user_id = a2.user_id
where a1.is_del = '0' and a2.is_del = '0' and a1.detector_status = '2'
</select>
<insert
id=
"insertTDetectorUser"
parameterType=
"TDetectorUser"
useGeneratedKeys=
"true"
keyProperty=
"userId"
>
...
...
gassafetyprogress-system/src/main/resources/mapper/system/TDeviceInfoMapper.xml
View file @
1750ae4d
...
...
@@ -64,6 +64,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where device_id = #{deviceId} and is_del='0'
</select>
<select
id=
"getDeviceInfoAlarmList"
resultType=
"Map"
>
select a3.device_id as deviceId,
a3.device_type as deviceType
from t_relation_device_detail_info a1
left join t_detector_info a2 on a1.iot_no = a2.detector_code
right join t_device_info a3 on a1.relation_device_id = a3.device_id
where a1.is_del = '0' and a2.is_del = '0' and a3.is_del = '0' and a2.detector_status = '2'
</select>
<insert
id=
"insertTDeviceInfo"
parameterType=
"TDeviceInfo"
useGeneratedKeys=
"true"
keyProperty=
"deviceId"
>
insert into t_device_info
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
...
...
gassafetyprogress-system/src/main/resources/mapper/system/TSiteStationInfoMapper.xml
View file @
1750ae4d
...
...
@@ -46,6 +46,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where site_station_id = #{siteStationId} and is_del='0'
</select>
<select
id=
"getSiteStationAlarmList"
resultType=
"Map"
>
select a2.site_station_id as siteStationId
from t_relation_device_detail_info a1
left join t_detector_info a2 on a1.iot_no = a2.detector_code
right join t_site_station_info a3 on a1.relation_device_id = a3.site_station_id
where a1.is_del = '0' and a2.is_del = '0' and a3.is_del = '0' and a2.detector_status = '2'
</select>
<insert
id=
"insertTSiteStationInfo"
parameterType=
"TSiteStationInfo"
useGeneratedKeys=
"true"
keyProperty=
"siteStationId"
>
insert into t_site_station_info
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
...
...
gassafetyprogress-system/src/main/resources/mapper/system/TWorkOrderMapper.xml
View file @
1750ae4d
...
...
@@ -209,10 +209,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<select
id=
"selectWorkOrderNum"
resultType=
"java.util.HashMap"
>
SELECT IFNULL(SUM(IF(work_status=3 AND work_type=1,1,0))/SUM(IF(work_type=1,1,0)),1) AS typeOne,
IFNULL(SUM(IF(work_status=3 AND work_type=2,1,0))/SUM(IF(work_type=2,1,0)),1) AS typeTwo,
IFNULL(SUM(IF(work_status=3 AND work_type=3,1,0))/SUM(IF(work_type=3,1,0)),1) AS typeThree,
IFNULL(SUM(IF(work_status=3 AND work_type=4,1,0))/SUM(IF(work_type=4,1,0)),1) AS typeFor,
SELECT IFNULL(SUM(IF(work_status=3,1,0)),0) AS typeOne,
IFNULL(SUM(IF(work_status!=3,1,0)),0) AS typeTwo,
(SELECT COUNT(employed_people_id) FROM t_employed_people_info WHERE is_del = 0
AND beyond_enterprise_id IN
<foreach
item=
"enterpriseId"
collection=
"enterpriseIds"
open=
"("
separator=
","
close=
")"
>
...
...
gassafetyprogress-web/package.json
View file @
1750ae4d
{
"name"
:
"zehong"
,
"version"
:
"3.5.0"
,
"description"
:
"智慧
管网
管理系统"
,
"description"
:
"智慧
燃气
管理系统"
,
"author"
:
"泽宏"
,
"license"
:
"MIT"
,
"scripts"
:
{
...
...
gassafetyprogress-web/src/api/bigWindow/getDevice.js
View file @
1750ae4d
/*
* @Author: your name
* @Date: 2022-02-23 15:28:07
* @LastEditTime: 2022-03-0
1 15:54:19
* @LastEditTime: 2022-03-0
4 17:16:53
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /newDev/gassafety-progress/gassafetyprogress-web/src/api/bigWindow/getdevice.js
...
...
@@ -25,6 +25,15 @@ export function getTyx(query) {
params
:
query
})
}
// 调压箱下面的设备接口
export
function
getTyxDevice
(
query
)
{
return
request
({
url
:
'/pipe/pipe/selectPressureFlow'
,
method
:
'get'
,
params
:
query
})
}
// 是阀门
export
function
getFm
(
query
)
{
...
...
@@ -35,6 +44,15 @@ export function getFm(query) {
})
}
// 阀门下面的设备接口
export
function
getFmDevice
(
query
)
{
return
request
({
url
:
'/pipe/pipe/selectPressureFlow'
,
method
:
'get'
,
params
:
query
})
}
// 厂站
export
function
getCz
(
query
)
{
...
...
@@ -44,6 +62,14 @@ export function getCz(query) {
params
:
query
})
}
// 场站下的设备
export
function
getCzDevice
(
query
)
{
return
request
({
url
:
'/pipe/pipe/selecttSiteStationInfoData'
,
method
:
'get'
,
params
:
query
})
}
// 监控
export
function
getVideo
(
query
)
{
return
request
({
...
...
gassafetyprogress-web/src/api/detector/detectorReportData.js
0 → 100644
View file @
1750ae4d
import
request
from
'@/utils/request'
// 查询燃气用户设备上报的数据列表
export
function
listDetectorReportData
(
query
)
{
return
request
({
url
:
'/detector/detectorReportData/list'
,
method
:
'get'
,
params
:
query
})
}
// 查询燃气用户设备上报的数据详细
export
function
getDetectorReportData
(
id
)
{
return
request
({
url
:
'/detector/detectorReportData/'
+
id
,
method
:
'get'
})
}
// 新增燃气用户设备上报的数据
export
function
addDetectorReportData
(
data
)
{
return
request
({
url
:
'/detector/detectorReportData'
,
method
:
'post'
,
data
:
data
})
}
// 修改燃气用户设备上报的数据
export
function
updateDetectorReportData
(
data
)
{
return
request
({
url
:
'/detector/detectorReportData'
,
method
:
'put'
,
data
:
data
})
}
// 删除燃气用户设备上报的数据
export
function
delDetectorReportData
(
id
)
{
return
request
({
url
:
'/detector/detectorReportData/'
+
id
,
method
:
'delete'
})
}
// 导出燃气用户设备上报的数据
export
function
exportDetectorReportData
(
query
)
{
return
request
({
url
:
'/detector/detectorReportData/export'
,
method
:
'get'
,
params
:
query
})
}
gassafetyprogress-web/src/assets/mapImages/czAlarm.svg
0 → 100644
View file @
1750ae4d
<svg
width=
"22"
height=
"25"
viewBox=
"0 0 22 25"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M16.6552 9.77278C16.6552 12.9211 14.103 15.4733 10.9547 15.4733C7.80636 15.4733 5.25415 12.9211 5.25415 9.77278C5.25415 6.62447 7.80636 4.07227 10.9547 4.07227C14.103 4.07227 16.6552 6.62447 16.6552 9.77278ZM10.867 11.2506H11.324V13.098H10.867V11.2506ZM9.84612 11.2506H10.3032V13.098H9.84612V11.2506ZM13.7726 6.71854V12.5548H14.2799V13.0979H11.726V11.0721C11.726 10.9225 11.6011 10.8005 11.4482 10.8005H9.43527C9.2823 10.8005 9.15705 10.9228 9.15705 11.0721V13.0979H7.62926V12.5544H8.13655V9.16448C8.13763 9.09164 8.16749 9.02218 8.21963 8.97129C8.27176 8.9204 8.34192 8.89223 8.41477 8.89292H10.0619V8.32503C10.0629 8.25212 10.0927 8.18257 10.1448 8.1316C10.197 8.08063 10.2672 8.0524 10.3401 8.0531H11.4035C11.4764 8.0524 11.5466 8.08063 11.5987 8.1316C11.6509 8.18257 11.6807 8.25212 11.6817 8.32503V8.89329H12.1236V6.71891C12.1247 6.64607 12.1545 6.57661 12.2067 6.52572C12.2588 6.47483 12.3289 6.44666 12.4018 6.44735H13.4943C13.5671 6.44666 13.6372 6.47478 13.6894 6.52559C13.7415 6.5764 13.7714 6.64576 13.7726 6.71854ZM9.23907 10.4022H11.6455H11.647V9.8591H9.23907V10.4022Z"
fill=
"#F0C41B"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#F0C41B"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<path
d=
"M5.7556 4.49115C2.88589 7.36086 2.87565 12.0077 5.73811 14.8702C6.03244 15.1645 6.45323 15.7447 6.94211 16.4931C7.42337 17.2298 7.94668 18.0917 8.44496 18.922C8.55553 19.1063 8.66499 19.2892 8.77248 19.4688C9.14688 20.0944 9.49738 20.6801 9.78744 21.1433C9.97373 21.4407 10.1413 21.6977 10.2784 21.8867C10.3462 21.9801 10.4142 22.0676 10.4788 22.1379C10.5108 22.1728 10.5501 22.2123 10.5949 22.2483C10.6309 22.2772 10.7126 22.3389 10.8281 22.3689C11.0039 22.4146 11.1483 22.3604 11.2172 22.3271C11.2918 22.2911 11.3505 22.2447 11.3901 22.21C11.4707 22.1392 11.548 22.0487 11.6172 21.9601C11.7593 21.7779 11.9291 21.5227 12.114 21.2281C12.454 20.6862 12.8754 19.9616 13.3199 19.1974C13.3616 19.1256 13.4036 19.0535 13.4457 18.9811C13.939 18.1333 14.4562 17.2492 14.9321 16.495C15.4164 15.7273 15.8303 15.1395 16.1171 14.8527C18.9868 11.983 18.9971 7.33612 16.1346 4.47366C13.2722 1.6112 8.62531 1.62144 5.7556 4.49115Z"
stroke=
"#F0C41B"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#F0C41B"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<g
filter=
"url(#filter0_f_194_268)"
>
<path
d=
"M10.9626 22.709L12.997 19.1853H8.92825L10.9626 22.709Z"
fill=
"#F0C41B"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#F0C41B"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</g>
<defs>
<filter
id=
"filter0_f_194_268"
x=
"6.92822"
y=
"17.1855"
width=
"8.06885"
height=
"7.52344"
filterUnits=
"userSpaceOnUse"
color-interpolation-filters=
"sRGB"
>
<feFlood
flood-opacity=
"0"
result=
"BackgroundImageFix"
/>
<feBlend
mode=
"normal"
in=
"SourceGraphic"
in2=
"BackgroundImageFix"
result=
"shape"
/>
<feGaussianBlur
stdDeviation=
"1"
result=
"effect1_foregroundBlur_194_268"
/>
</filter>
</defs>
</svg>
gassafetyprogress-web/src/assets/mapImages/fmAlarm.svg
0 → 100644
View file @
1750ae4d
<svg
width=
"22"
height=
"25"
viewBox=
"0 0 22 25"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
d=
"M5.7556 4.49115C2.88589 7.36086 2.87565 12.0077 5.73811 14.8702C6.03244 15.1645 6.45323 15.7447 6.94211 16.4931C7.42337 17.2298 7.94668 18.0917 8.44496 18.922C8.55553 19.1063 8.66499 19.2892 8.77248 19.4688C9.14688 20.0944 9.49738 20.6801 9.78744 21.1433C9.97373 21.4407 10.1413 21.6977 10.2784 21.8867C10.3462 21.9801 10.4142 22.0676 10.4788 22.1379C10.5108 22.1728 10.5501 22.2123 10.5949 22.2483C10.6309 22.2772 10.7126 22.3389 10.8281 22.3689C11.0039 22.4146 11.1483 22.3604 11.2172 22.3271C11.2918 22.2911 11.3505 22.2447 11.3901 22.21C11.4707 22.1392 11.548 22.0487 11.6172 21.9601C11.7593 21.7779 11.9291 21.5227 12.114 21.2281C12.454 20.6862 12.8754 19.9616 13.3199 19.1974C13.3616 19.1256 13.4036 19.0535 13.4457 18.9811C13.939 18.1333 14.4562 17.2492 14.9321 16.495C15.4164 15.7273 15.8303 15.1395 16.1171 14.8527C18.9868 11.983 18.9971 7.33612 16.1346 4.47366C13.2722 1.6112 8.62531 1.62144 5.7556 4.49115Z"
stroke=
"#ff0000"
>
</path>
<path
d=
"M16.6134 8.94262C16.4134 7.58911 15.7326 6.3525 14.6954 5.45841C13.6581 4.56433 12.3334 4.07236 10.963 4.07227C9.44847 4.07227 7.99596 4.67294 6.92503 5.74214C5.85409 6.81135 5.25244 8.2615 5.25244 9.77359C5.25244 11.2857 5.85409 12.7358 6.92503 13.805C7.99596 14.8742 9.44847 15.4749 10.963 15.4749C12.3334 15.4748 13.6581 14.9828 14.6954 14.0888C15.7326 13.1947 16.4134 11.9581 16.6134 10.6046L16.6551 9.77359L16.6134 8.94262ZM6.58836 9.37325C6.682 8.3553 7.12877 7.40197 7.85151 6.67789C8.57425 5.95381 9.52758 5.50446 10.5468 5.40744V6.27779C9.75838 6.37152 9.02466 6.72811 8.46439 7.28987C7.90413 7.85162 7.55009 8.58567 7.45957 9.37325H6.58836ZM10.5468 14.1399C9.5328 14.0434 8.58385 13.5981 7.8623 12.8802C7.14075 12.1623 6.69144 11.2165 6.59121 10.2044H7.46332C7.5602 10.9858 7.91657 11.7123 8.47551 12.2678C9.03445 12.8233 9.76372 13.1757 10.5468 13.2689V14.1399ZM10.3991 10.0155V11.9119H9.69579V7.62704H12.6225V8.2271H10.3984V9.4153H12.4963V10.0154L10.3991 10.0155ZM11.3792 14.1399V13.2694C12.1623 13.1762 12.8915 12.8238 13.4505 12.2683C14.0094 11.7128 14.3658 10.9863 14.4627 10.2049H15.3348C15.2344 11.2169 14.785 12.1625 14.0635 12.8803C13.3419 13.598 12.3931 14.0434 11.3792 14.1399ZM14.4664 9.37325C14.3759 8.58567 14.0219 7.85162 13.4616 7.28987C12.9013 6.72811 12.1676 6.37152 11.3792 6.27779V5.40744C12.3984 5.5045 13.3517 5.95387 14.0744 6.67794C14.7971 7.40202 15.2438 8.35533 15.3375 9.37325H14.4664Z"
fill=
"#FA8167"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#FA8167"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<g
filter=
"url(#filter0_f_194_248)"
>
<path
d=
"M10.9626 22.709L12.997 19.1853H8.92825L10.9626 22.709Z"
fill=
"#FA8167"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#FA8167"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</g>
<defs>
<filter
id=
"filter0_f_194_248"
x=
"6.92822"
y=
"17.1855"
width=
"8.06885"
height=
"7.52344"
filterUnits=
"userSpaceOnUse"
color-interpolation-filters=
"sRGB"
>
<feFlood
flood-opacity=
"0"
result=
"BackgroundImageFix"
/>
<feBlend
mode=
"normal"
in=
"SourceGraphic"
in2=
"BackgroundImageFix"
result=
"shape"
/>
<feGaussianBlur
stdDeviation=
"1"
result=
"effect1_foregroundBlur_194_248"
/>
</filter>
</defs>
</svg>
gassafetyprogress-web/src/assets/mapImages/ggg.gif
0 → 100644
View file @
1750ae4d
5.02 KB
gassafetyprogress-web/src/assets/mapImages/tyxAlarm.svg
0 → 100644
View file @
1750ae4d
<svg
width=
"22"
height=
"25"
viewBox=
"0 0 22 25"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
d=
"M10.9547 4.07031C9.44279 4.07031 7.99285 4.6709 6.92379 5.73995C5.85474 6.80901 5.25415 8.25896 5.25415 9.77083C5.25415 11.2827 5.85474 12.7326 6.92379 13.8017C7.99285 14.8708 9.44279 15.4713 10.9547 15.4713C12.4665 15.4713 13.9165 14.8708 14.9855 13.8017C16.0546 12.7326 16.6552 11.2827 16.6552 9.77083C16.6552 8.25896 16.0546 6.80901 14.9855 5.73995C13.9165 4.6709 12.4665 4.07031 10.9547 4.07031V4.07031ZM14.375 11.766H13.8049V12.6211H12.9498V13.1911H11.8097V12.6211H10.3846V13.1911H9.24451V12.6211H8.38943V11.766H7.81938V7.77565H8.38943V6.92057H9.24451V6.63554H10.0996V6.92057H10.6696V6.63554H11.5247V6.92057H12.0948V6.63554H12.9498V6.92057H13.8049V7.77565H14.375V11.766ZM8.67446 11.766H13.5199V7.49062H8.67446V11.766ZM12.9498 7.77565H13.2349V11.481H12.9498V7.77565ZM12.3798 7.77565H12.6648V11.481H12.3798V7.77565ZM11.8097 7.77565H12.0948V11.481H11.8097V7.77565ZM11.2397 7.77565H11.5247V11.481H11.2397V7.77565ZM10.6696 7.77565H10.9547V11.481H10.6696V7.77565ZM10.0996 7.77565H10.3846V11.481H10.0996V7.77565ZM9.52954 7.77565H9.81456V11.481H9.52954V7.77565ZM8.95948 7.77565H9.24451V11.481H8.95948V7.77565Z"
fill=
"#74C5FF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#74C5FF"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<path
d=
"M5.7556 4.49115C2.88589 7.36086 2.87565 12.0077 5.73811 14.8702C6.03244 15.1645 6.45323 15.7447 6.94211 16.4931C7.42337 17.2298 7.94668 18.0917 8.44496 18.922C8.55553 19.1063 8.66499 19.2892 8.77248 19.4688C9.14688 20.0944 9.49738 20.6801 9.78744 21.1433C9.97373 21.4407 10.1413 21.6977 10.2784 21.8867C10.3462 21.9801 10.4142 22.0676 10.4788 22.1379C10.5108 22.1728 10.5501 22.2123 10.5949 22.2483C10.6309 22.2772 10.7126 22.3389 10.8281 22.3689C11.0039 22.4146 11.1483 22.3604 11.2172 22.3271C11.2918 22.2911 11.3505 22.2447 11.3901 22.21C11.4707 22.1392 11.548 22.0487 11.6172 21.9601C11.7593 21.7779 11.9291 21.5227 12.114 21.2281C12.454 20.6862 12.8754 19.9616 13.3199 19.1974C13.3616 19.1256 13.4036 19.0535 13.4457 18.9811C13.939 18.1333 14.4562 17.2492 14.9321 16.495C15.4164 15.7273 15.8303 15.1395 16.1171 14.8527C18.9868 11.983 18.9971 7.33612 16.1346 4.47366C13.2722 1.6112 8.62531 1.62144 5.7556 4.49115Z"
stroke=
"#ff0000"
>
</path>
<g
filter=
"url(#filter0_f_194_260)"
>
<path
d=
"M10.9626 22.709L12.997 19.1853H8.92825L10.9626 22.709Z"
fill=
"#74C5FF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#74C5FF"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</g>
<defs>
<filter
id=
"filter0_f_194_260"
x=
"6.92822"
y=
"17.1855"
width=
"8.06885"
height=
"7.52344"
filterUnits=
"userSpaceOnUse"
color-interpolation-filters=
"sRGB"
>
<feFlood
flood-opacity=
"0"
result=
"BackgroundImageFix"
/>
<feBlend
mode=
"normal"
in=
"SourceGraphic"
in2=
"BackgroundImageFix"
result=
"shape"
/>
<feGaussianBlur
stdDeviation=
"1"
result=
"effect1_foregroundBlur_194_260"
/>
</filter>
</defs>
</svg>
gassafetyprogress-web/src/assets/mapImages/userAlarm.svg
View file @
1750ae4d
<svg
id=
"组_2446"
data-name=
"组 2446"
xmlns=
"http://www.w3.org/2000/svg"
width=
"18"
height=
"25"
viewBox=
"0 0 23 33.9"
>
<path
id=
"路径_170"
data-name=
"路径 170"
d=
"M-1583.57,295.955a3.719,3.719,0,0,0-3.714,3.713,3.719,3.719,0,0,0,3.714,3.713,3.719,3.719,0,0,0,3.713-3.713,3.719,3.719,0,0,0-3.713-3.713Zm2.287,4.15a.608.608,0,0,1-.437.184h-1.862a.618.618,0,0,1-.621-.621V297.2a.618.618,0,0,1,.621-.621.608.608,0,0,1,.437.184.608.608,0,0,1,.184.437v1.862h1.242a.618.618,0,0,1,.621.621.6.6,0,0,1-.184.425Zm-8.966-5.047a4.143,4.143,0,0,0,4.161,0,4.166,4.166,0,0,0,2.081-3.61,4.161,4.161,0,0,0-4.162-4.161,4.16,4.16,0,0,0-4.161,4.161A4.179,4.179,0,0,0-1590.249,295.058Zm1.724,4.61a4.872,4.872,0,0,1,.391-1.931,5.639,5.639,0,0,1,.54-.966,4.67,4.67,0,0,1-.575.035,5.145,5.145,0,0,1-2.081-.425,5.006,5.006,0,0,1-.943-.517,1.2,1.2,0,0,0-1.345-.011,7.8,7.8,0,0,0-3.414,6.265v.069a.6.6,0,0,0,.6.575h7.92a5.215,5.215,0,0,1-.7-1.161,5.035,5.035,0,0,1-.391-1.931Z"
transform=
"translate(1599.528 -284.903)"
fill=
"#7bf8f4"
opacity=
"0.996"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
<svg
width=
"22"
height=
"25"
viewBox=
"0 0 22 25"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M16.6552 9.77473C16.6552 12.923 14.103 15.4752 10.9547 15.4752C7.80636 15.4752 5.25415 12.923 5.25415 9.77473C5.25415 6.62643 7.80636 4.07422 10.9547 4.07422C14.103 4.07422 16.6552 6.62643 16.6552 9.77473ZM12.9472 8.3569C12.9472 9.44817 12.0625 10.3331 10.971 10.3331C9.87956 10.3331 8.99488 9.44838 8.99488 8.3569C8.99488 7.26563 9.87956 6.38074 10.971 6.38074C12.0625 6.38074 12.9472 7.26542 12.9472 8.3569ZM10.9711 10.9893C11.5708 10.9893 12.1416 10.7873 12.6021 10.4238V10.424C13.7973 10.8771 14.3461 12.4304 14.3461 13.1384H7.56167C7.56167 12.424 8.10625 10.8598 9.32553 10.4122C9.78815 10.7827 10.3644 10.9893 10.9711 10.9893Z"
fill=
"#00FFFF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#7bf8f4"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<g
id=
"路径_190"
data-name=
"路径 190"
fill=
"none"
>
<path
d=
"M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z"
stroke=
"none"
/>
<path
d=
"M 11.5 1.000003814697266 C 5.71027946472168 1.000003814697266 1 5.710294723510742 1 11.50003433227539 C 1 15.44052124023438 6.295677185058594 22.62869262695312 11.47670078277588 28.30246353149414 C 12.68496322631836 26.95182609558105 15.33070659637451 23.97891044616699 17.65538024902344 20.72865295410156 C 19.63738059997559 17.95753479003906 22 14.10700416564941 22 11.50003433227539 C 22 5.710294723510742 17.28972053527832 1.000003814697266 11.5 1.000003814697266 M 11.5 3.814697265625e-06 C 17.85128021240234 3.814697265625e-06 23 5.148744583129883 23 11.50003433227539 C 23 17.82767677307129 11.48916530609131 29.63790130615234 11.49940204620361 29.80170249938965 C 11.36462783813477 29.63816833496094 0 17.78736114501953 0 11.50003433227539 C 0 5.148744583129883 5.14872932434082 3.814697265625e-06 11.5 3.814697265625e-06 Z M 11.49940204620361 29.80170249938965 C 11.50076866149902 29.80335998535156 11.50098419189453 29.80382347106934 11.5 29.80304336547852 C 11.49963855743408 29.80275726318359 11.49944019317627 29.80231475830078 11.49940204620361 29.80170249938965 Z"
stroke=
"none"
fill=
"#7bf8f4"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
</path>
<path
d=
"M5.7556 4.49115C2.88589 7.36086 2.87565 12.0077 5.73811 14.8702C6.03244 15.1645 6.45323 15.7447 6.94211 16.4931C7.42337 17.2298 7.94668 18.0917 8.44496 18.922C8.55553 19.1063 8.66499 19.2892 8.77248 19.4688C9.14688 20.0944 9.49738 20.6801 9.78744 21.1433C9.97373 21.4407 10.1413 21.6977 10.2784 21.8867C10.3462 21.9801 10.4142 22.0676 10.4788 22.1379C10.5108 22.1728 10.5501 22.2123 10.5949 22.2483C10.6309 22.2772 10.7126 22.3389 10.8281 22.3689C11.0039 22.4146 11.1483 22.3604 11.2172 22.3271C11.2918 22.2911 11.3505 22.2447 11.3901 22.21C11.4707 22.1392 11.548 22.0487 11.6172 21.9601C11.7593 21.7779 11.9291 21.5227 12.114 21.2281C12.454 20.6862 12.8754 19.9616 13.3199 19.1974C13.3616 19.1256 13.4036 19.0535 13.4457 18.9811C13.939 18.1333 14.4562 17.2492 14.9321 16.495C15.4164 15.7273 15.8303 15.1395 16.1171 14.8527C18.9868 11.983 18.9971 7.33612 16.1346 4.47366C13.2722 1.6112 8.62531 1.62144 5.7556 4.49115Z"
stroke=
"#ff0000"
>
</path>
<g
filter=
"url(#filter0_f_194_252)"
>
<path
d=
"M10.9626 22.709L12.997 19.1853H8.92825L10.9626 22.709Z"
fill=
"#00FFFF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#7bf8f4"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</g>
<path
id=
"多边形_37"
data-name=
"多边形 37"
d=
"M4.471,0,8.941,5.961H0Z"
transform=
"translate(16.094 29.803) rotate(180)"
fill=
"#7bf8f4"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#7bf8f4"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</path>
</g>
<defs>
<filter
id=
"filter0_f_194_252"
x=
"6.92822"
y=
"17.1855"
width=
"8.06885"
height=
"7.52344"
filterUnits=
"userSpaceOnUse"
color-interpolation-filters=
"sRGB"
>
<feFlood
flood-opacity=
"0"
result=
"BackgroundImageFix"
/>
<feBlend
mode=
"normal"
in=
"SourceGraphic"
in2=
"BackgroundImageFix"
result=
"shape"
/>
<feGaussianBlur
stdDeviation=
"1"
result=
"effect1_foregroundBlur_194_252"
/>
</filter>
</defs>
</svg>
gassafetyprogress-web/src/assets/mapImages/zzz.svg
0 → 100644
View file @
1750ae4d
<svg
width=
"22"
height=
"25"
viewBox=
"0 0 22 25"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M16.6554 9.77278C16.6554 12.9211 14.1032 15.4733 10.9549 15.4733C7.8066 15.4733 5.25439 12.9211 5.25439 9.77278C5.25439 6.62447 7.8066 4.07227 10.9549 4.07227C14.1032 4.07227 16.6554 6.62447 16.6554 9.77278ZM12.9473 8.35486C12.9473 9.44613 12.0626 10.331 10.9711 10.331C9.87961 10.331 8.99494 9.44634 8.99494 8.35486C8.99494 7.26359 9.87961 6.3787 10.9711 6.3787C12.0626 6.3787 12.9473 7.26338 12.9473 8.35486ZM10.9712 10.9872C11.5709 10.9872 12.1416 10.7853 12.6021 10.4217V10.422C13.7973 10.8751 14.3461 12.4283 14.3461 13.1364H7.56173C7.56173 12.422 8.1063 10.8577 9.32559 10.4101C9.7882 10.7806 10.3645 10.9872 10.9712 10.9872Z"
fill=
"#00FFFF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#00FFFF"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<path
d=
"M5.7556 4.49115C2.88589 7.36086 2.87565 12.0077 5.73811 14.8702C6.03244 15.1645 6.45323 15.7447 6.94211 16.4931C7.42337 17.2298 7.94668 18.0917 8.44496 18.922C8.55553 19.1063 8.66499 19.2892 8.77248 19.4688C9.14688 20.0944 9.49738 20.6801 9.78744 21.1433C9.97373 21.4407 10.1413 21.6977 10.2784 21.8867C10.3462 21.9801 10.4142 22.0676 10.4788 22.1379C10.5108 22.1728 10.5501 22.2123 10.5949 22.2483C10.6309 22.2772 10.7126 22.3389 10.8281 22.3689C11.0039 22.4146 11.1483 22.3604 11.2172 22.3271C11.2918 22.2911 11.3505 22.2447 11.3901 22.21C11.4707 22.1392 11.548 22.0487 11.6172 21.9601C11.7593 21.7779 11.9291 21.5227 12.114 21.2281C12.454 20.6862 12.8754 19.9616 13.3199 19.1974C13.3616 19.1256 13.4036 19.0535 13.4457 18.9811C13.939 18.1333 14.4562 17.2492 14.9321 16.495C15.4164 15.7273 15.8303 15.1395 16.1171 14.8527C18.9868 11.983 18.9971 7.33612 16.1346 4.47366C13.2722 1.6112 8.62531 1.62144 5.7556 4.49115Z"
stroke=
"#00FFFF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#00FFFF"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
<g
filter=
"url(#filter0_f_230_72)"
>
<path
d=
"M10.9626 22.709L12.997 19.1853H8.92825L10.9626 22.709Z"
fill=
"#00FFFF"
>
<animate
attributeName=
"fill"
attributeType=
"XML"
from=
"#00FFFF"
to=
"#ff0000"
begin=
"0s"
dur=
"1s"
fill=
"remove"
repeatCount=
"indefinite"
/>
</path>
</g>
<defs>
<filter
id=
"filter0_f_230_72"
x=
"6.92822"
y=
"17.1855"
width=
"8.06885"
height=
"7.52344"
filterUnits=
"userSpaceOnUse"
color-interpolation-filters=
"sRGB"
>
<feFlood
flood-opacity=
"0"
result=
"BackgroundImageFix"
/>
<feBlend
mode=
"normal"
in=
"SourceGraphic"
in2=
"BackgroundImageFix"
result=
"shape"
/>
<feGaussianBlur
stdDeviation=
"1"
result=
"effect1_foregroundBlur_230_72"
/>
</filter>
</defs>
</svg>
gassafetyprogress-web/src/components/bigWindow/
DeviceA
.vue
→
gassafetyprogress-web/src/components/bigWindow/
Cz
.vue
View file @
1750ae4d
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-0
2-28 18:05:19
* @LastEditTime: 2022-0
3-04 17:25:27
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
...
...
@@ -61,44 +61,33 @@
<div>
已处理报警
</div>
<div
class=
"last"
>
报警中
</div>
</div>
<div
class=
"tbody flex"
v-if=
"Array.isArray(deviceData.pressureFlows)"
>
<div
class=
"first zzz"
>
{{
"压力表"
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberPressureGauges
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
onlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
offlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
historicalAlarm
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
alarmProcessed
}}
</div>
<div
v-unValue
class=
"last"
>
{{
deviceData
.
inAlarm
}}
</div>
</div>
<div
class=
"tbody flex"
v-if=
"Array.isArray(deviceData.pressureFlows)"
>
<div
class=
"first zzz"
>
{{
"流量计"
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberOnlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberOfflineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberHistoricalAlarm
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberAlarmProcessed
}}
</div>
<div
v-unValue
class=
"last"
>
{{
deviceData
.
numberInAlarm
}}
<template
v-if=
"list.length > 0"
>
<div
class=
"tbody flex"
v-for=
"deviceData in list"
:key=
"deviceData.inAlarm+Math.random()"
>
<div
v-unValue
class=
"first zzz"
>
{{
typeList
[
deviceData
.
dataType
]
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberPressureGauges
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
onlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
offlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
historicalAlarm
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
alarmProcessed
}}
</div>
<div
v-unValue
class=
"last"
>
{{
deviceData
.
inAlarm
}}
</div>
</div>
</
div
>
</
template
>
</div>
<div
class=
"btn"
>
...
...
@@ -109,12 +98,49 @@
<
script
>
import
{
companyType
,
deviceType
}
from
"@/utils/mapClass/config.js"
;
import
{
getCzDevice
}
from
"@/api/bigWindow/getDevice.js"
;
export
default
{
data
()
{
return
{
companyType
,
deviceType
,
profile
:
"暂无"
,
typeList
:
{
// 1压力表 2流量计 3探测器
1
:
"压力表"
,
2
:
"流量计"
,
3
:
"探测器"
,
},
list
:
[
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
1
,
},
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
2
,
},
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
3
,
},
],
};
},
computed
:
{
...
...
@@ -133,7 +159,8 @@ export default {
this
.
companyType
[
item
.
conpanyId
]
=
item
.
companyName
;
});
}
console
.
log
(
this
.
deviceData
);
this
.
myHttp
()
},
methods
:
{
close
()
{
...
...
@@ -142,6 +169,12 @@ export default {
btnClick
()
{
this
.
vueRoot
.
centerDataFunc
(
this
.
deviceData
.
pressureFlows
);
},
myHttp
()
{
getCzDevice
({
deviceId
:
this
.
deviceData
.
siteStationId
}).
then
((
res
)
=>
{
this
.
list
=
res
.
data
[
0
].
subordinateEquipmentList
;
console
.
log
(
"resresres"
,
res
)
});
},
},
};
</
script
>
...
...
gassafetyprogress-web/src/components/bigWindow/Device.vue
0 → 100644
View file @
1750ae4d
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-03-04 17:27:21
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/components/deviceA.vue
-->
<
template
>
<div
class=
"devicea-wrapper"
>
<div
class=
"title"
>
{{
deviceData
.
deviceName
?
deviceData
.
deviceName
:
deviceData
.
stationName
}}
</div>
<div
class=
"close"
@
click=
"close"
>
<img
src=
"@/assets/mapImages/closeBtn.png"
alt=
""
/>
</div>
<div
class=
"top flex"
>
<div
class=
"group"
>
<div
class=
"left"
>
所属公司:
</div>
<div
class=
"right zzz"
>
{{
companyType
[
deviceData
.
companyType
]
}}
</div>
</div>
<div
class=
"group"
>
<div
class=
"left"
>
设备类型:
</div>
<div
class=
"right zzz"
>
{{
deviceType
[
deviceData
.
iconType
]
}}
</div>
</div>
<div
class=
"group"
>
<div
class=
"left"
>
设备地址:
</div>
<div
v-if=
"deviceData.deviceAddr"
:title=
"deviceData.deviceAddr"
class=
"right last zzz"
>
{{
deviceData
.
deviceAddr
||
"-"
}}
</div>
<div
v-else-if=
"deviceData.stationAddr"
:title=
"deviceData.stationAddr"
class=
"right last zzz"
>
{{
deviceData
.
stationAddr
||
"-"
}}
</div>
<div
v-else
>
-
</div>
</div>
</div>
<div
class=
"middle"
>
{{
profile
}}
</div>
<div
class=
"foot"
>
<div
class=
"thead flex"
>
<div
class=
"first"
>
设备类型
</div>
<div>
设备数量
</div>
<div>
在线设备
</div>
<div>
离线设备
</div>
<div>
历史报警
</div>
<div>
已处理报警
</div>
<div
class=
"last"
>
报警中
</div>
</div>
<template
v-if=
"list.length > 0"
>
<div
class=
"tbody flex"
v-for=
"deviceData in list"
:key=
"deviceData.inAlarm+Math.random()"
>
<div
v-unValue
class=
"first zzz"
>
{{
typeList
[
deviceData
.
dataType
]
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
numberPressureGauges
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
onlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
offlineEquipment
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
historicalAlarm
}}
</div>
<div
v-unValue
class=
""
>
{{
deviceData
.
alarmProcessed
}}
</div>
<div
v-unValue
class=
"last"
>
{{
deviceData
.
inAlarm
}}
</div>
</div>
</
template
>
</div>
<div
class=
"btn"
>
<!-- <div @click="btnClick">感知设备</div> -->
</div>
</div>
</template>
<
script
>
import
{
companyType
,
deviceType
}
from
"@/utils/mapClass/config.js"
;
import
{
getTyxDevice
,
getFmDevice
}
from
"@/api/bigWindow/getDevice.js"
;
export
default
{
data
()
{
return
{
companyType
,
deviceType
,
profile
:
"暂无"
,
typeList
:
{
// 1压力表 2流量计 3探测器
1
:
"压力表"
,
2
:
"流量计"
,
3
:
"探测器"
,
},
list
:
[
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
1
,
},
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
2
,
},
{
numberPressureGauges
:
"-"
,
onlineEquipment
:
"-"
,
offlineEquipment
:
"-"
,
historicalAlarm
:
"-"
,
alarmProcessed
:
"-"
,
inAlarm
:
"-"
,
dataType
:
3
,
},
],
};
},
computed
:
{
prodTest
()
{
return
this
.
vueRoot
.
$store
.
state
.
user
.
systemSetting
.
prod_test
;
},
company
()
{
return
this
.
vueRoot
.
$store
.
state
.
bigWindowCompany
.
company
;
},
},
mounted
()
{
// 如果不是测试,而是真数据,就要用帧数据的东西
if
(
this
.
prodTest
!=
"test"
)
{
this
.
companyType
=
{};
this
.
company
.
forEach
((
item
)
=>
{
this
.
companyType
[
item
.
conpanyId
]
=
item
.
companyName
;
});
}
// 当点开infowindow的时候,重新调接口
this
.
myHttp
();
// console.log(this.deviceData);
},
methods
:
{
close
()
{
this
.
mapClass
.
infowindowClose
();
},
btnClick
()
{
this
.
vueRoot
.
centerDataFunc
(
this
.
deviceData
.
pressureFlows
);
},
myHttp
()
{
console
.
log
(
this
.
deviceData
.
iconType
);
if
(
this
.
deviceData
.
iconType
==
2
)
{
getTyxDevice
({
deviceId
:
this
.
deviceData
.
deviceId
}).
then
((
res
)
=>
{
this
.
list
=
res
.
data
[
0
].
subordinateEquipmentList
;
console
.
log
(
this
.
list
);
});
}
else
{
getFmDevice
({
deviceId
:
this
.
deviceData
.
deviceId
}).
then
((
res
)
=>
{
this
.
list
=
res
.
data
[
0
].
subordinateEquipmentList
;
});
}
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.devicea-wrapper
{
background-color
:
rgba
(
9
,
18
,
32
,
0
.6
);
padding
:
10px
;
position
:
relative
;
width
:
700px
;
.title
{
// padding-top: 10px;
// padding-left: 10px;
font-size
:
14px
;
line-height
:
14px
;
color
:
#ffffff
;
}
.close
{
position
:
absolute
;
right
:
10px
;
top
:
5px
;
cursor
:
pointer
;
}
.top
{
margin-top
:
10px
;
margin-bottom
:
10px
;
border
:
1px
solid
#cccccc
;
box-sizing
:
border-box
;
.group
{
height
:
30px
;
flex
:
1
;
display
:
flex
;
justify-content
:
space-between
;
box-sizing
:
border-box
;
div
{
flex
:
1
;
box-sizing
:
border-box
;
border-right
:
1px
solid
#cccccc
;
text-align
:
center
;
font-size
:
14px
;
color
:
#ffffff
;
line-height
:
30px
;
padding
:
0
5px
;
&
.last
{
border-right
:
none
;
}
}
.left
{
text-align
:
right
;
background-color
:
rgba
(
255
,
255
,
255
,
0
.1
);
}
}
}
.middle
{
width
:
100%
;
padding
:
5px
;
border
:
1px
solid
#ffffff
;
box-sizing
:
border-box
;
font-size
:
14px
;
color
:
#ffffff
;
text-indent
:
2em
;
margin-bottom
:
10px
;
}
.foot
{
font-size
:
14px
;
color
:
#ffffff
;
.thead
,
.tbody
{
border
:
1px
solid
#cccccc
;
div
{
flex
:
1
;
text-align
:
left
;
border-right
:
1px
solid
#cccccc
;
box-sizing
:
border-box
;
padding
:
0
5px
;
}
.first
{
flex
:
2
;
}
.last
{
border-right
:
none
;
}
}
.tbody
{
border-top
:
none
;
}
.thead
{
div
{
background-color
:
rgba
(
255
,
255
,
255
,
0
.1
);
}
}
}
.btn
{
position
:
relative
;
margin-top
:
10px
;
text-align
:
right
;
div
{
font-size
:
14px
;
color
:
#ffffff
;
padding
:
2px
4px
;
box-sizing
:
border-box
;
display
:
inline-block
;
cursor
:
pointer
;
border
:
1px
solid
#cccccc
;
background-color
:
#1890ff
;
&
:hover
{
// background: rgba(9, 18, 32, 0.6);
background-color
:
#18baff
;
}
}
}
.flex
{
display
:
flex
;
justify-content
:
space-between
;
}
}
</
style
>
gassafetyprogress-web/src/components/bigWindow/User.vue
View file @
1750ae4d
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-03-0
1 09:17:01
* @LastEditTime: 2022-03-0
3 11:51:48
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
...
...
@@ -80,6 +80,8 @@
<
script
>
import
{
companyType
,
deviceType
}
from
"@/utils/mapClass/config.js"
;
import
{
detectorUserList
}
from
"@/api/detector/detectorUser"
;
export
default
{
data
()
{
return
{
...
...
@@ -103,7 +105,8 @@ export default {
this
.
companyType
[
item
.
conpanyId
]
=
item
.
companyName
;
});
}
console
.
log
(
this
.
deviceData
);
this
.
myHttp
();
// console.log(this.deviceData);
},
methods
:
{
close
()
{
...
...
@@ -116,6 +119,16 @@ export default {
this
.
deviceData
.
nickName
);
},
myHttp
()
{
detectorUserList
({
userId
:
this
.
deviceData
.
userId
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
const
data
=
res
.
data
.
filter
(
(
item
)
=>
item
.
userId
==
this
.
deviceData
.
userId
)[
0
].
detectorCountList
;
this
.
deviceData
.
detectorCountList
=
data
;
}
});
},
},
};
</
script
>
...
...
gassafetyprogress-web/src/components/bigWindow/leftBar.vue
View file @
1750ae4d
<
template
>
<div>
<!-- 基本信息 -->
<div>
<div
class=
"item1"
>
<span
class=
"dot"
>
...
...
@@ -10,7 +12,7 @@
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
</div>
</div>
</div>
<div
class=
"left-top"
style=
"margin-top: 40px;width: 430px;margin-left: 10px;display: flex;justify-content: space-around;"
>
<div
style=
"width: 40%;text-align: center;color: #339CC9;"
>
<div
class=
"div-p"
>
从业人员数
</div>
...
...
@@ -22,6 +24,9 @@
</div>
</div>
<!-- 安全监管 -->
<div>
<div
class=
"item1"
style=
"margin-top: 30px;"
>
<span
class=
"dot"
>
...
...
@@ -34,20 +39,30 @@
</div>
</div>
<div
id=
"main1"
style=
"width: 100%;height: 280px;"
></div>
<!--
<div
class=
"echarts-two"
style=
"margin-top: 30px;width: 430px;margin-left: 10px;"
>
-->
<div>
<div
class=
"item1"
style=
"margin-top: 30px;"
>
<span
class=
"dot"
>
<span
class=
"dot-inner"
></span>
</span>
<span
style=
"letter-spacing :3px;color:#cddbe4"
>
任务完成率
</span>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #2c888899;float: right;margin-top: 10px;transform: skewX(-25deg)"
></div>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
</div>
<!-- 任务完成率 -->
<div>
<div
class=
"item1"
style=
"margin-top: 30px;"
>
<span
class=
"dot"
>
<span
class=
"dot-inner"
></span>
</span>
<span
style=
"letter-spacing :3px;color:#cddbe4"
>
任务完成率
</span>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #2c888899;float: right;margin-top: 10px;transform: skewX(-25deg)"
></div>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
<div
class=
"fong-div"
style=
"width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"
></div>
</div>
</div>
<div
id=
"myCharttwo"
:style=
"
{width: '450px', height: '250px'}">
</div>
<div
class=
"titleTex"
>
<span
:style=
"
{color: '#00ffff'}"> ● 已完成:
{{
allNum
.
typeOne
}}
</span>
<span
:style=
"
{color: '#0099ff'}"> ● 未完成:
{{
allNum
.
typeTwo
}}
</span>
</div>
<!--
<div
class=
"echarts-two"
style=
"margin-top: 30px;width: 430px;margin-left: 10px;"
>
-->
<div
class=
"div-el"
>
<!--
<div
class=
"div-el"
>
<div
class=
"el-left"
>
入户安检
</div>
<el-progress
class=
"el-progress_text"
:text-inside=
"true"
:stroke-width=
"18"
:percentage=
"allNum.typeOne*100"
></el-progress>
</div>
...
...
@@ -62,7 +77,7 @@
<div
class=
"div-el"
>
<div
class=
"el-left"
>
其他
</div>
<el-progress
class=
"el-progress_text"
:text-inside=
"true"
:stroke-width=
"18"
:percentage=
"allNum.typeFor*100"
status=
"exception"
></el-progress>
</div>
</div>
-->
<!--
</div>
-->
</div>
</
template
>
...
...
@@ -164,12 +179,92 @@
selectWorkOrderNum
(
this
.
enterpriseIds
).
then
(
response
=>
{
console
.
log
(
response
);
this
.
allNum
=
response
.
data
;
this
.
initdata
();
});
}
else
{
this
.
allNum
=
this
.
zeroNum
;
this
.
initdata
();
}
},
initdata
(){
// 基于准备好的dom,初始化echarts实例
//console.log(data.renwu[0]+"=-=-=-"+data.renwu[1])
let
myChart2
=
this
.
$echarts
.
init
(
document
.
getElementById
(
'myCharttwo'
))
// 绘制图表
myChart2
.
setOption
({
title
:
{
text
:
'任务总数量:'
+
(
this
.
allNum
.
typeOne
+
this
.
allNum
.
typeTwo
),
left
:
'center'
,
top
:
20
,
textStyle
:{
color
:
"#00ffff"
}
},
tooltip
:
{
trigger
:
'item'
,
},
series
:
[
{
name
:
'任务概况'
,
type
:
'pie'
,
radius
:
'60%'
,
center
:
[
'50%'
,
'58%'
],
data
:
[
{
value
:
this
.
allNum
.
typeTwo
,
name
:
'未完成'
,
itemStyle
:
{
color
:
'#09f'
}
},
{
value
:
this
.
allNum
.
typeOne
,
name
:
'已完成'
,
itemStyle
:
{
color
:
'#00ffff'
}
},
],
labelLine
:{
length
:
20
,
length2
:
50
,
},
label
:{
color
:
'#fff'
,
fontSize
:
14
,
// formatter:"{b}\n\n",
// padding:[0,-55],
normal
:
{
show
:
true
,
position
:
'outer'
,
// formatter: '{d}%, {c} \n\n',
//模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。
formatter
:
"{a_set|{b}}
\n
{b_set|{d}%}
\n\n\n
"
,
// formatter: "{a_set|{b}}\n{c_set|{d}%}\n{b|}\n\n",
borderWidth
:
20
,
borderRadius
:
4
,
padding
:
[
0
,
-
55
],
rich
:
{
a_set
:
{
color
:
"#fff"
,
lineHeight
:
20
,
align
:
"center"
,
padding
:
[
55
,
-
40
,
-
15
,
-
40
],
},
b_set
:{
color
:
"auto"
,
},
}
}
},
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'rgba(0, 0, 0, 0.5)'
}
}
}
]
});
},
//折线图
drawLine
(
data
){
// 基于准备好的dom,初始化echarts实例
...
...
@@ -402,4 +497,14 @@
::v-deep
.el-progress-bar__innerText
{
color
:
#1e516f
;
}
.titleTex
{
width
:
100%
;
height
:
20px
;
margin-top
:
0px
;
font-size
:
15px
;
display
:
flex
;
justify-content
:
space-around
;
align-items
:
center
;
padding
:
0px
30px
;
}
</
style
>
gassafetyprogress-web/src/components/bigWindow/rightBar.vue
View file @
1750ae4d
<
template
>
<div
style=
"height: 100%"
>
<!-- 报警信息 -->
<div>
<div
class=
"item1"
>
<span
class=
"dot"
>
<span
class=
"dot-inner"
></span>
</span>
<span
style=
"letter-spacing: 3px; color: #cddbe4"
>
报
警信息
</span>
<span
style=
"letter-spacing: 3px; color: #cddbe4"
>
预
警信息
</span>
<div
class=
"fong-div"
style=
"
...
...
@@ -90,81 +92,9 @@
</div>
</div>
<!-- <div style="width: 100%;height: 200px;background-color: #44d7dc;">
<el-table
size="mini"
:data="tableData"
style="width: 100%"
:height="tableHeight"
class="el-bottom"
ref="table"
>
<el-table-column prop="unitName" label="所在单位" width="100">
</el-table-column>
<el-table-column prop="detectorType" label="设备类型" width="">
</el-table-column>
<el-table-column prop="statusName" label="预警信息" width="">
</el-table-column>
<el-table-column prop="alarmTime" label="预警时间" width="160">
</el-table-column>
<el-table-column prop="handledStatus" label="状态" width="">
</el-table-column>
</el-table>
</div> -->
<div>
<div
class=
"item1"
style=
"margin-top: 10px"
>
<span
class=
"dot"
>
<span
class=
"dot-inner"
></span>
</span>
<span
style=
"letter-spacing: 3px; color: #cddbe4"
>
资源统计
</span>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #2c888899;
float: right;
margin-top: 10px;
transform: skewX(-25deg);
"
></div>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #24b1b1b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #11e9e9b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
</div>
</div>
<div
class=
"echarts-one"
style=
"margin-top: 10px; width: 430px; margin-left: 10px"
>
<div
id=
"myChartone"
:style=
"{ width: '420px', height: '240px' }"
></div>
</div>
<!-- 用户安全监控设备 -->
<div>
<div
class=
"item1"
>
<span
class=
"dot"
>
...
...
@@ -258,6 +188,61 @@
>
</div>
</div>
<!-- 资源统计 -->
<div>
<div
class=
"item1"
style=
"margin-top: 10px"
>
<span
class=
"dot"
>
<span
class=
"dot-inner"
></span>
</span>
<span
style=
"letter-spacing: 3px; color: #cddbe4"
>
资源统计
</span>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #2c888899;
float: right;
margin-top: 10px;
transform: skewX(-25deg);
"
></div>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #24b1b1b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
<div
class=
"fong-div"
style=
"
width: 8px;
height: 12px;
background-color: #11e9e9b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
</div>
</div>
<div
class=
"echarts-one"
style=
"margin-top: 10px; width: 430px; margin-left: 10px"
>
<div
id=
"myChartone"
:style=
"{ width: '420px', height: '240px' }"
></div>
</div>
</div>
</template>
...
...
gassafetyprogress-web/src/layout/components/Sidebar/Logo.vue
View file @
1750ae4d
...
...
@@ -35,7 +35,7 @@ export default {
},
data
()
{
return
{
title
:
'智慧
管网
管理系统'
,
title
:
'智慧
燃气
管理系统'
,
logo
:
logoImg
}
}
...
...
gassafetyprogress-web/src/utils/mapClass/config.js
View file @
1750ae4d
/*
* @Author: your name
* @Date: 2022-01-26 10:47:44
* @LastEditTime: 2022-03-0
2 11:28:29
* @LastEditTime: 2022-03-0
3 16:03:12
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/utils/config.js
...
...
@@ -33,9 +33,9 @@ export const svgUrl = {
8
:
require
(
"@/assets/image/zcrq.svg"
),
};
export
const
svgAlarm
=
{
2
:
require
(
"@/assets/
image/tiaoyaxiang1
.svg"
),
3
:
require
(
"@/assets/
image/famen1
.svg"
),
4
:
require
(
"@/assets/
image/changzhan1
.svg"
),
2
:
require
(
"@/assets/
mapImages/tyxAlarm
.svg"
),
3
:
require
(
"@/assets/
mapImages/fmAlarm
.svg"
),
4
:
require
(
"@/assets/
mapImages/czAlarm
.svg"
),
5
:
require
(
"@/assets/image/jiankong1.svg"
),
6
:
require
(
"@/assets/mapImages/userAlarm.svg"
),
};
...
...
gassafetyprogress-web/src/utils/mapClass/map.js
View file @
1750ae4d
/*
* @Author: your name
* @Date: 2022-01-11 13:45:12
* @LastEditTime: 2022-03-0
2 10:53:47
* @LastEditTime: 2022-03-0
3 11:51:16
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/utils/mapClass.js
...
...
@@ -496,68 +496,94 @@ export class EditorMap {
// 设备报警
deviceAlarm
(
obj
)
{
// 设备的类型
const
{
iconType
,
userId
}
=
obj
;
const
{
iconType
}
=
obj
;
const
publicId
=
obj
.
userId
||
obj
.
deviceId
;
// 找到这个设备所属的空间
const
device
=
this
.
allDevice
[
iconType
].
filter
(
(
item
)
=>
item
.
getExtData
().
userId
==
userId
(
item
)
=>
(
item
.
getExtData
().
userId
||
item
.
getExtData
().
deviceId
)
==
publicId
)[
0
];
// 更改的icon
const
icon
=
svgAlarm
[
iconType
];
device
.
setIcon
(
icon
);
device
.
setzIndex
(
13
);
// 将旧的值缓存一下
device
.
oldData
=
device
.
getExtData
();
device
.
setExtData
(
obj
);
// 如果infowindow是打开的,就改变里面的数据,必须是用户才行
// device.oldData = device.getExtData();
// device.setExtData(obj);
// 可能出现infoWindow数据变化
this
.
alarmInfowindowChange
(
obj
);
if
(
!
this
.
alarmObj
[
iconType
])
{
this
.
alarmObj
[
iconType
]
=
[];
}
const
ind
=
this
.
alarmObj
[
iconType
].
indexOf
(
publicId
);
if
(
ind
<
0
)
{
this
.
alarmObj
[
iconType
].
push
(
publicId
);
}
}
// 报警时候,可能发生infowindowComponent存在,也要变化
alarmInfowindowChange
(
obj
)
{
if
(
!
this
.
infowindowComponent
)
return
;
// 如果infowindow是打开的,就改变里面的数据 必须是 调压箱2 阀门3 用户6 才会发生变化电话
const
infowindowDeviceType
=
[
2
,
3
,
6
].
includes
(
this
.
infowindowComponent
.
deviceData
.
iconType
);
// 如果存在userId就用userId,如果存在deviceId就用deviceId
const
infowindowDeviceId
=
this
.
infowindowComponent
.
deviceData
.
userId
||
this
.
infowindowComponent
.
deviceData
.
deviceId
;
// 如果存在userId就用userId,如果存在deviceId就用deviceId
const
objId
=
obj
.
userId
||
obj
.
deviceId
;
// 如果两个值匹配,才可以改变infowindow身上的组件
const
infowindowComponentHas
=
infowindowDeviceId
==
objId
;
if
(
this
.
infowindowComponent
&&
this
.
infowindowComponent
.
deviceData
.
iconType
==
6
&&
this
.
infowindowComponent
.
deviceData
.
userId
==
obj
.
userId
infowindowDeviceType
&&
infowindowComponentHas
)
{
this
.
infowindowComponentChange
(
obj
);
}
if
(
!
this
.
alarmObj
[
iconType
])
{
this
.
alarmObj
[
iconType
]
=
[];
}
else
{
const
ind
=
this
.
alarmObj
[
iconType
].
indexOf
(
userId
);
if
(
ind
<
0
)
{
this
.
alarmObj
[
iconType
].
push
(
userId
);
// this.infowindowComponentChange(obj);
if
(
this
.
infowindowComponent
.
http
)
{
this
.
infowindowComponent
.
myHttp
();
}
}
}
//如果传过来的报警设备中,有不在deviceAlarm中,就是恢复的设备恢复
relieveAlarm
(
alarmObj
)
{
// 把报警数组改变结构
const
httpArr
=
alarmObj
.
map
((
item
)
=>
item
.
userId
);
// 把报警数组改变结构,如果有userId就是用户,如果有deviceId就是其他设备
const
httpObj
=
{};
alarmObj
.
forEach
((
item
)
=>
{
const
publicId
=
item
.
userId
||
item
.
deviceId
;
if
(
!
Array
.
isArray
(
httpObj
[
item
.
iconType
]))
{
httpObj
[
item
.
iconType
]
=
[];
}
httpObj
[
item
.
iconType
].
push
(
publicId
);
});
// 循环现有报警设备
for
(
let
iconType
in
this
.
alarmObj
)
{
const
arr
=
this
.
alarmObj
[
iconType
];
// 循环现有报警设备
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
// 看看现有报警设备中有没有不在 报警数组中的值,有就恢复
const
user
Id
=
arr
[
i
];
// 看看接口传来的数据中还有没有这些
User
Id,如果没有了,就是修好了
const
index
=
httpArr
.
indexOf
(
user
Id
);
// 看看现有报警设备中有没有不在 报警数组中的值,有就恢复
可能是userId,也可能是deviceId
const
public
Id
=
arr
[
i
];
// 看看接口传来的数据中还有没有这些Id,如果没有了,就是修好了
const
hasId
=
httpObj
[
iconType
]?.
includes
(
public
Id
);
// 如果已经不在报警数组中,就要去大数组中找他,利用userId
if
(
index
<
0
)
{
// 如果id不存在了,说明不报警了
if
(
!
hasId
)
{
// 过滤出来这个要恢复的设备
const
device
=
this
.
allDevice
[
iconType
].
filter
(
(
item
)
=>
item
.
getExtData
().
userId
==
userId
(
item
)
=>
(
item
.
getExtData
().
userId
||
item
.
getExtData
().
deviceId
)
==
publicId
)[
0
];
// 恢复
const
icon
=
svgUrl
[
iconType
];
device
.
setIcon
(
icon
);
// 赋值
const
deviceData
=
device
.
oldData
;
device
.
setExtData
(
deviceData
);
device
.
oldData
=
null
;
// const deviceData = { ...device.oldData }
;
//
device.setExtData(deviceData);
//
device.oldData = null;
// 如果infowindow是打开的
if
(
this
.
infowindowComponent
&&
this
.
infowindowComponent
.
deviceData
.
iconType
==
6
&&
this
.
infowindowComponent
.
deviceData
.
userId
==
obj
.
userId
)
{
this
.
infowindowComponentChange
(
deviceData
);
}
this
.
alarmInfowindowChange
(
device
.
getExtData
());
// 在arr中删掉
arr
.
splice
(
i
,
1
);
// 由于删掉了当前,所以要--恢复位置
...
...
gassafetyprogress-web/src/views/bigWindow/index.vue
View file @
1750ae4d
<!--
* @Author: your name
* @Date: 2022-01-11 13:44:17
* @LastEditTime: 2022-03-0
2 11:47:13
* @LastEditTime: 2022-03-0
4 14:34:32
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/Home.vue
-->
<
template
>
<div
class=
"home bigwindow"
>
<div
class=
"goSystem"
@
click=
"$router.push('/index')"
>
进入管理系统
</div>
<div
id=
"map"
></div>
<Center
:show=
"show"
:centerData=
"centerData"
/>
...
...
@@ -144,7 +146,7 @@ import {
changzhan
,
jiankong
,
user
,
alarmtime
alarmtime
,
}
from
"@/utils/mapClass/config.js"
;
import
{
getPipe
,
...
...
@@ -158,7 +160,8 @@ import {
}
from
"@/api/bigWindow/getDevice"
;
import
Line
from
"@/components/bigWindow/Line.vue"
;
import
VideoView
from
"@/components/bigWindow/VideoView.vue"
;
import
DeviceA
from
"@/components/bigWindow/DeviceA.vue"
;
import
Device
from
"@/components/bigWindow/Device.vue"
;
import
Cz
from
"@/components/bigWindow/Cz.vue"
;
import
User
from
"@/components/bigWindow/User.vue"
;
import
Center
from
"@/components/bigWindow/Center.vue"
;
import
UserCenter
from
"@/components/bigWindow/UserCenter.vue"
;
...
...
@@ -179,6 +182,7 @@ export default {
},
data
()
{
return
{
map
:
null
,
show
:
false
,
centerData
:
null
,
...
...
@@ -268,7 +272,7 @@ export default {
}
},
},
mounted
()
{
async
mounted
()
{
// console.log(99999999999999)
// getPipe().then(res=>{
// console.log("成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功成功",res)
...
...
@@ -290,9 +294,9 @@ export default {
// 这是测试,用本地数据
if
(
this
.
systemSetting
.
prod_test
===
"test"
)
{
this
.
addPipeLine
(
pipeData
,
Line
);
this
.
addDevice
(
tiaoyaxiang
,
Device
A
);
this
.
addDevice
(
famen
,
Device
A
);
this
.
addDevice
(
changzhan
,
DeviceA
);
this
.
addDevice
(
tiaoyaxiang
,
Device
);
this
.
addDevice
(
famen
,
Device
);
this
.
addDevice
(
changzhan
,
Cz
);
this
.
addDevice
(
user
,
User
);
this
.
addDevice
(
jiankong
,
VideoView
);
}
else
{
...
...
@@ -305,15 +309,14 @@ export default {
this
.
selarr
=
this
.
company
.
map
((
item
)
=>
item
.
conpanyId
);
this
.
selarr1
=
this
.
arr
.
map
((
item
)
=>
item
.
val
);
this
.
arr
.
forEach
((
item
)
=>
(
item
.
ischeck
=
true
));
// getPipe() getTyx() getFm() getCz() getVideo() getUser()
await
this
.
goMap
(
getEnterprise
,
this
.
addDevice
,
Company
);
this
.
goMap
(
getPipe
,
this
.
addPipeLine
,
Line
);
this
.
goMap
(
getTyx
,
this
.
addDevice
,
Device
A
);
this
.
goMap
(
getFm
,
this
.
addDevice
,
Device
A
);
this
.
goMap
(
getCz
,
this
.
addDevice
,
DeviceA
);
this
.
goMap
(
getTyx
,
this
.
addDevice
,
Device
);
this
.
goMap
(
getFm
,
this
.
addDevice
,
Device
);
this
.
goMap
(
getCz
,
this
.
addDevice
,
Cz
);
this
.
goMap
(
getVideo
,
this
.
addDevice
,
VideoView
);
this
.
goMap
(
getEnterprise
,
this
.
addDevice
,
Company
);
// 用户要等一下 因为有报警数据
this
.
goMap
(
detectorUserList
,
this
.
addDevice
,
User
).
then
((
res
)
=>
{
...
...
@@ -351,8 +354,7 @@ export default {
},
goMap
(
httpFunc
,
addFunc
,
component
)
{
return
httpFunc
().
then
((
res
)
=>
{
// 给用户加icontype
// 给用户加icontype
if
(
res
.
data
&&
!
res
.
data
[
0
].
iconType
)
{
res
.
data
.
forEach
((
item
)
=>
{
item
.
iconType
=
6
;
...
...
@@ -371,6 +373,8 @@ export default {
}
else
{
config
=
{
data
:
res
.
data
};
}
console
.
log
(
"reresresresresresresresresress"
,
config
)
addFunc
(
config
,
component
);
return
config
.
iconType
;
});
...
...
gassafetyprogress-web/src/views/login.vue
View file @
1750ae4d
...
...
@@ -6,7 +6,7 @@
:rules=
"loginRules"
class=
"login-form"
>
<h3
class=
"title"
>
智慧
管网
后台管理系统
</h3>
<h3
class=
"title"
>
智慧
燃气
后台管理系统
</h3>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
...
...
gassafetyprogress-web/src/views/operationMonitor/detectorReportData/index.vue
0 → 100644
View file @
1750ae4d
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"80px"
>
<el-form-item
label=
"设备编号"
prop=
"detectorCode"
>
<el-input
v-model=
"queryParams.detectorCode"
placeholder=
"请输入设备编号"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"isCancelAlarm"
>
<el-select
v-model=
"queryParams.isCancelAlarm"
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=
"createTime"
>
<el-date-picker
clearable
size=
"small"
v-model=
"queryParams.createTimeStart"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择起始时间"
>
</el-date-picker><span
style=
"color: #bebfc3"
>
-
</span>
<el-date-picker
clearable
size=
"small"
v-model=
"queryParams.createTimeEnd"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择截止时间"
>
</el-date-picker>
</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>
</el-form-item>
</el-form>
<el-table
v-loading=
"loading"
:data=
"detectorReportDataList"
>
<el-table-column
label=
"所在单位"
align=
"center"
prop=
"unitName"
/>
<el-table-column
label=
"设备编号"
align=
"center"
prop=
"detectorCode"
/>
<el-table-column
label=
"设备类型"
align=
"center"
prop=
"detectorType"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.detectorType == '1'"
>
家用探测器
</span>
<span
v-if=
"scope.row.detectorType == '2'"
>
工业探测器
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"预警信息"
align=
"center"
prop=
"statusName"
/>
<el-table-column
label=
"预警时间"
align=
"center"
prop=
"alarmTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
alarmTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
prop=
"handledStatus"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.handledStatus == '0'"
>
未销警
</span>
<span
v-if=
"scope.row.handledStatus == '1'"
>
自动消警
</span>
<span
v-if=
"scope.row.handledStatus == '2'"
>
手动消警
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"消警时间"
align=
"center"
prop=
"cancelTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
cancelTime
}}
</span>
</
template
>
</el-table-column>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"queryParams.pageNum"
:limit
.
sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</el-table>
</div>
</template>
<
script
>
import
{
listDetectorReportData
}
from
"@/api/detector/detectorReportData"
;
export
default
{
name
:
"DetectorReportData"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 燃气用户设备上报的数据表格数据
detectorReportDataList
:
[],
// 字典
typeOptions
:
[],
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
detectorCode
:
null
,
statusName
:
null
,
isCancelAlarm
:
null
,
createTimeStart
:
null
,
createTimeEnd
:
null
},
};
},
created
()
{
this
.
getList
();
this
.
getDicts
(
"t_detector_report_status"
).
then
(
response
=>
{
this
.
typeOptions
=
response
.
data
;
});
},
methods
:
{
/** 查询燃气用户设备上报的数据列表 */
getList
()
{
this
.
loading
=
true
;
listDetectorReportData
(
this
.
queryParams
).
then
(
response
=>
{
this
.
detectorReportDataList
=
response
.
rows
;
console
.
log
(
this
.
detectorReportDataList
);
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
handleQuery
();
},
}
};
</
script
>
gassafetyprogress-web/vue.config.js
View file @
1750ae4d
...
...
@@ -34,8 +34,8 @@ module.exports = {
proxy
:
{
// detail: https://cli.vuejs.org/config/#devserver-proxy
[
process
.
env
.
VUE_APP_BASE_API
]:
{
//
target: `http://192.168.2.14:8903/gassafety`,
target
:
`http://222.223.203.154:8092/gassafety`
,
target
:
`http://192.168.2.14:8903/gassafety`
,
//
target: `http://222.223.203.154:8092/gassafety`,
changeOrigin
:
true
,
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
...
...
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