设备数据检测
This commit is contained in:
parent
347c33bd95
commit
d394b565e2
34
riis-web/src/api/datasurvey/index.ts
Normal file
34
riis-web/src/api/datasurvey/index.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
|
||||||
|
//异常点位查询
|
||||||
|
export function getDeviceSignalTree(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-maindevice/getDeviceSignalTree' ,
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//查询信号信息{}
|
||||||
|
export function querySignalDataById(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/auxcontrol/device-signal/querySignalDataById' ,
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//分页查询变电站辅控设备告警记录
|
||||||
|
export function workpage(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/auxcontrol/device-work-data/page' ,
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//查询历史曲线
|
||||||
|
export function getHistoricalCurve(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/auxcontrol/device-work-data/getHistoricalCurve' ,
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
@ -240,4 +240,12 @@ export function deleteDictItems(ids: string) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 查询字典项
|
||||||
|
export function getDictItemByCode(params:any) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dictionaryItems/list',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
99
riis-web/src/api/equipmentsignal/index.ts
Normal file
99
riis-web/src/api/equipmentsignal/index.ts
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
//新增变电站辅控设备信号
|
||||||
|
export function addDeviceSignal(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/addDeviceSignal',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//分页查询变电站辅控设备信号
|
||||||
|
export function queryDeviceSignal(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/page',
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
//通过辅控设备ID查询所有变电站辅控设备信号
|
||||||
|
export function listDeviceSignal(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/list',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改变电站辅控设备信号
|
||||||
|
export function updateDeviceSignal(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/updateDeviceSignal',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//根据ID删除变电站辅控设备信号
|
||||||
|
export function deleteDeviceSignalById(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/deleteDeviceSignalById',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//批量删除变电站辅控设备信号
|
||||||
|
export function deleteDeviceByIds(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceSignal/deleteDeviceSignalByIds',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//查询所有变电站辅控设备
|
||||||
|
export function getDeviceTree(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/Device/getDeviceTree',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增变电站辅控设备告警参数设置
|
||||||
|
export function addDeviceAlarmParameter(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceAlarmParameter/addDeviceAlarmParameter',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//根据ID删除变电站辅控设备告警参数设置
|
||||||
|
export function deleteDeviceAlarmParameterById(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceAlarmParameter/deleteDeviceAlarmParameterById',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//批量删除变电站辅控设备告警参数设置
|
||||||
|
export function deleteDeviceAlarmParameterByIds(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceAlarmParameter/deleteDeviceAlarmParameterByIds',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//分页查询变电站辅控设备告警参数设置
|
||||||
|
export function DeviceAlarmParameter(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceAlarmParameter/page',
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改变电站辅控设备告警参数设置
|
||||||
|
export function updateDeviceAlarmParameter(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceAlarmParameter/updateDeviceAlarmParameter',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
115
riis-web/src/api/linkageplan/index.ts
Normal file
115
riis-web/src/api/linkageplan/index.ts
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
|
||||||
|
//查询变电站辅控设备联动方案设置
|
||||||
|
export function listDeviceLinkagePlan(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/listDeviceLinkagePlan' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//新增变电站辅控设备联动方案设置
|
||||||
|
export function addDeviceLinkagePlan(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/addDeviceLinkagePlan' ,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改变电站辅控设备联动方案设置
|
||||||
|
export function updateDeviceLinkagePlan(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/updateDeviceLinkagePlan' ,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//根据ID删除变电站辅控设备
|
||||||
|
export function deleteDeviceLinkagePlanById(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/deleteDeviceLinkagePlanById' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//查询所有变电站辅控设备联动方案设置(联动操作列表)
|
||||||
|
export function listDeviceLinkageOperate(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/listDeviceLinkageOperate' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新增变电站辅控设备联动方案设置--联动操作列表
|
||||||
|
export function addDeviceLinkageOperate(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/addDeviceLinkageOperate' ,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改变电站辅控设备联动方案设置--联动操作列表
|
||||||
|
export function updateDeviceLinkageOperate(data:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/updateDeviceLinkageOperate' ,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//删除变电站辅控设备联动方案设置--联动操作列表
|
||||||
|
export function deleteDeviceLinkageOperate(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/deleteDeviceLinkageOperate' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改变电站辅控设备联动方案设置--联动顺序号
|
||||||
|
export function updateOrderno(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/updateOrderno' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据所属系统查询配置了联动任务的设备信号(运行监控)
|
||||||
|
export function listDeviceIdBySystemcode(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/listSignalIdBySystemcode' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//根据设备信号查询所有的联动任务(运行监控)
|
||||||
|
export function listDeviceLinkageBySignalId(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/monitorConfig/DeviceLinkage/listDeviceLinkageBySignalId' ,
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//根据设备信号查询所有的联动任务(运行监控)
|
||||||
|
export function sendTestData(params){
|
||||||
|
return request({
|
||||||
|
url: '/test/data/'+ params.name,
|
||||||
|
method: 'get',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//关闭WebSocket
|
||||||
|
export function closeWebSocket(params:any){
|
||||||
|
return request({
|
||||||
|
url: '/test/data/closeWebSocket',
|
||||||
|
method: 'post',
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
}
|
@ -4,8 +4,8 @@ import request from '@/utils/request';
|
|||||||
export function getdata(params:any){
|
export function getdata(params:any){
|
||||||
return request({
|
return request({
|
||||||
url: '/basedata/substation-patroldevice/getPatrolDeviceList' ,
|
url: '/basedata/substation-patroldevice/getPatrolDeviceList' ,
|
||||||
method: 'get',
|
method: 'post',
|
||||||
params:params
|
data:params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//新增设备
|
//新增设备
|
||||||
|
6
riis-web/src/assets/sytlechange/u157.svg
Normal file
6
riis-web/src/assets/sytlechange/u157.svg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="matrix(1 0 0 1 -1871 -339 )">
|
||||||
|
<path d="M 2.00199999999995 4.49400000000003 C 2.00199999999995 4.16500000000002 2.17000000000007 3.99700000000001 2.49900000000002 3.99700000000001 L 6.49600000000009 3.99700000000001 C 6.83199999999988 3.99700000000001 6.99299999999994 4.16500000000002 6.99299999999994 4.49400000000003 C 6.99299999999994 4.82999999999998 6.82500000000005 4.99099999999999 6.49600000000009 4.99099999999999 L 2.49900000000002 4.99099999999999 C 2.16300000000001 4.99099999999999 2.00199999999995 4.82299999999998 2.00199999999995 4.49400000000003 Z M 2.00199999999995 6.49599999999998 C 2.00199999999995 6.16700000000003 2.17000000000007 5.99900000000002 2.49900000000002 5.99900000000002 L 5.50199999999995 5.99900000000002 C 5.83799999999997 5.99900000000002 5.99900000000002 6.16700000000003 5.99900000000002 6.49599999999998 C 5.99900000000002 6.83199999999999 5.8309999999999 6.993 5.50199999999995 6.993 L 2.49900000000002 6.993 C 2.16300000000001 6.993 2.00199999999995 6.82499999999999 2.00199999999995 6.49599999999998 Z M 2.00199999999995 8.49799999999999 C 2.00199999999995 8.16899999999998 2.17000000000007 8.00099999999998 2.49900000000002 8.00099999999998 L 4.50099999999998 8.00099999999998 C 4.83699999999999 8.00099999999998 4.99800000000005 8.16899999999998 4.99800000000005 8.49799999999999 C 4.99800000000005 8.834 4.82999999999993 8.995 4.50099999999998 8.995 L 2.49900000000002 8.995 C 2.16300000000001 8.995 2.00199999999995 8.827 2.00199999999995 8.49799999999999 Z M 9.49900000000002 12.992 L 9.49900000000002 14 L 1.49800000000005 14 C 0.672000000000025 14 0 13.328 0 12.502 L 0 1.49799999999999 C 0 0.672000000000025 0.672000000000025 0 1.49800000000005 0 L 9.99600000000009 0 C 10.8219999999999 0 11.4939999999999 0.672000000000025 11.4939999999999 1.49799999999999 L 11.4939999999999 5.99900000000002 L 10.5 5.99900000000002 L 10.5 1.49799999999999 C 10.5 1.22500000000002 10.2760000000001 1.00099999999998 10.0029999999999 1.00099999999998 L 1.49800000000005 1.00099999999998 C 1.22499999999991 1.00099999999998 1.00099999999998 1.22500000000002 1.00099999999998 1.49799999999999 L 1 12.495 C 1.00099999999998 12.768 1.22499999999991 12.992 1.49800000000005 12.992 L 9.49900000000002 12.992 Z M 9.75099999999998 14 C 7.40599999999995 14 5.50199999999995 12.096 5.50199999999995 9.75099999999998 C 5.50199999999995 7.40600000000001 7.40599999999995 5.50200000000001 9.75099999999998 5.50200000000001 C 12.096 5.50200000000001 14 7.40600000000001 14 9.75099999999998 C 14 12.096 12.096 14 9.75099999999998 14 Z M 12.999 9.75099999999998 C 12.999 7.959 11.5430000000001 6.50299999999999 9.75099999999998 6.50299999999999 C 7.95900000000006 6.50299999999999 6.50299999999993 7.959 6.50299999999993 9.75099999999998 C 6.50299999999993 11.543 7.95900000000006 12.999 9.75099999999998 12.999 C 11.5430000000001 12.999 12.999 11.543 12.999 9.75099999999998 Z M 11.501 10.5 L 9.00199999999995 10.5 L 9.00199999999995 7.49700000000001 C 9.00199999999995 7.22399999999999 9.22599999999989 7 9.49900000000002 7 C 9.77199999999993 7 9.99600000000009 7.22399999999999 9.99600000000009 7.49700000000001 L 9.99600000000009 9.49900000000002 L 11.4939999999999 9.49900000000002 C 11.7670000000001 9.49900000000002 11.991 9.72300000000001 11.991 9.99599999999998 C 11.998 10.276 11.7740000000001 10.5 11.501 10.5 Z " fill-rule="nonzero" fill="#00ffff" stroke="none" transform="matrix(1 0 0 1 1871 339 )" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
@ -397,6 +397,7 @@ watch(() => props.CloseNav, (newValue, oldValue) => {
|
|||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 62px;
|
height: 62px;
|
||||||
|
z-index:99999 !important;
|
||||||
|
|
||||||
.times {
|
.times {
|
||||||
font-family: '微软雅黑';
|
font-family: '微软雅黑';
|
||||||
|
@ -10,3 +10,33 @@ export function isExternal(path: string) {
|
|||||||
const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path);
|
const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path);
|
||||||
return isExternal;
|
return isExternal;
|
||||||
}
|
}
|
||||||
|
export function publicTree(equiptrees:any,equipname:any) {
|
||||||
|
let arr:any = []
|
||||||
|
let newequiptree = JSON.parse(JSON.stringify(equiptrees))
|
||||||
|
if(equipname !=''&& equipname !=null){
|
||||||
|
newequiptree.forEach((item:any) => {
|
||||||
|
if(item.name.toLowerCase().indexOf(equipname.toLowerCase()) !== -1){
|
||||||
|
arr.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
// debugger
|
||||||
|
arr = newequiptree
|
||||||
|
}
|
||||||
|
if(!Array.isArray(arr) || !arr.length) return;
|
||||||
|
let map:any = {};
|
||||||
|
arr.forEach(item => {//建立每个数组元素id和该对象的关系
|
||||||
|
map[item.id] = item //这里可以理解为浅拷贝,共享引用
|
||||||
|
})
|
||||||
|
let roots:any = [];
|
||||||
|
arr.forEach(item => {
|
||||||
|
const parent = map[item.parentid];
|
||||||
|
if(parent){
|
||||||
|
(parent.children || (parent.children=[])).push(item);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
roots.push(item);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return roots
|
||||||
|
}
|
@ -479,7 +479,7 @@
|
|||||||
<el-table v-if="selType == '01'" :data="tableData" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selType == '01'" :data="tableData" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }" @row-click="rowClick">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }" @row-click="rowClick">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="areaName" label="区域" align="center" width="100" />
|
<el-table-column prop="areaName" label="区域" align="center" width="100" />
|
||||||
<el-table-column prop="patroldeviceCode" label="设备编码" align="center" width="200" />
|
<el-table-column prop="patroldeviceCode" label="设备编码" align="center" width="200" />
|
||||||
@ -547,7 +547,7 @@
|
|||||||
<el-table v-if="selType == '02' || lineDrapStart == true || isUAVdropLine == true" class="PatrolMonitoring"
|
<el-table v-if="selType == '02' || lineDrapStart == true || isUAVdropLine == true" class="PatrolMonitoring"
|
||||||
:data="daviceData" :row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
:data="daviceData" :row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }" @row-click="rowClick">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }" @row-click="rowClick">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="deviceName" label="点位名称" width="140" />
|
<el-table-column prop="deviceName" label="点位名称" width="140" />
|
||||||
<el-table-column prop="mainDeviceName" label="所属主设备" width="160" />
|
<el-table-column prop="mainDeviceName" label="所属主设备" width="160" />
|
||||||
@ -596,7 +596,7 @@
|
|||||||
<el-table v-if="selType == '04' || selType == '06'" :data="robotData" :row-class-name="tableRowClassName"
|
<el-table v-if="selType == '04' || selType == '06'" :data="robotData" :row-class-name="tableRowClassName"
|
||||||
class="PatrolMonitoring" v-loading="loading" highlight-current-row
|
class="PatrolMonitoring" v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }" @row-click="rowClick">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }" @row-click="rowClick">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="patroldeviceCode" label="设备编码" width="140" />
|
<el-table-column prop="patroldeviceCode" label="设备编码" width="140" />
|
||||||
<el-table-column prop="patroldeviceName" label="设备名称" width="160" />
|
<el-table-column prop="patroldeviceName" label="设备名称" width="160" />
|
||||||
@ -610,7 +610,7 @@
|
|||||||
<el-table v-if="selType == '05' && associationTitle == '关联部件'" :data="componentData" class="PatrolMonitoring"
|
<el-table v-if="selType == '05' && associationTitle == '关联部件'" :data="componentData" class="PatrolMonitoring"
|
||||||
:row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
:row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }" @row-click="rowClick">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }" @row-click="rowClick">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="areaName" label="所属区域" width="140" />
|
<el-table-column prop="areaName" label="所属区域" width="140" />
|
||||||
<el-table-column prop="bayName" label="所属间隔" width="160" />
|
<el-table-column prop="bayName" label="所属间隔" width="160" />
|
||||||
@ -654,7 +654,7 @@
|
|||||||
<el-table v-if="selType == '05' && associationTitle == '关联设备'" :data="mainDeviceData" class="PatrolMonitoring"
|
<el-table v-if="selType == '05' && associationTitle == '关联设备'" :data="mainDeviceData" class="PatrolMonitoring"
|
||||||
:row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
:row-class-name="tableRowClassName" v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:570px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }" @row-click="rowClick">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }" @row-click="rowClick">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="areaName" label="所属区域" width="140" />
|
<el-table-column prop="areaName" label="所属区域" width="140" />
|
||||||
<el-table-column prop="bayName" label="所属间隔" width="160" />
|
<el-table-column prop="bayName" label="所属间隔" width="160" />
|
||||||
@ -731,7 +731,7 @@
|
|||||||
<el-table ref="multipleTable" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id"
|
<el-table ref="multipleTable" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id"
|
||||||
:data="associationLineData" class="PatrolMonitoring" :row-class-name="tableRowClassName" highlight-current-row
|
:data="associationLineData" class="PatrolMonitoring" :row-class-name="tableRowClassName" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;height:400px;overflow: auto;margin:10px 0"
|
style="width: 100%;margin:auto;position: relative;height:400px;overflow: auto;margin:10px 0"
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }"
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }"
|
||||||
@selection-change="associationTableChange">
|
@selection-change="associationTableChange">
|
||||||
<el-table-column type="selection" align="center" width="60" />
|
<el-table-column type="selection" align="center" width="60" />
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
@ -4848,6 +4848,7 @@ function getData() {
|
|||||||
areaIdType.value = res.data
|
areaIdType.value = res.data
|
||||||
})
|
})
|
||||||
getdata(params).then((res) => {
|
getdata(params).then((res) => {
|
||||||
|
console.log(res)
|
||||||
tableData.value = res.data.records
|
tableData.value = res.data.records
|
||||||
getinfo.value.size = res.data.size
|
getinfo.value.size = res.data.size
|
||||||
getinfo.value.current = res.data.current
|
getinfo.value.current = res.data.current
|
||||||
|
545
riis-web/src/views/collectmonitor/datasurvey/index.vue
Normal file
545
riis-web/src/views/collectmonitor/datasurvey/index.vue
Normal file
@ -0,0 +1,545 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
export default {
|
||||||
|
name: "equipment",
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, nextTick } from "vue";
|
||||||
|
import { Search } from '@element-plus/icons-vue';
|
||||||
|
import { getDeviceSignalTree, querySignalDataById, workpage, getHistoricalCurve } from "@/api/datasurvey/index";
|
||||||
|
import { useUserStore } from '@/store/modules/user';
|
||||||
|
import Page from '@/components/Pagination/page.vue'
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
const userStore = useUserStore();
|
||||||
|
//左侧树形控件
|
||||||
|
interface Tree {
|
||||||
|
[x: string]: any;
|
||||||
|
label: string;
|
||||||
|
children?: Tree[];
|
||||||
|
}
|
||||||
|
const signaform = ref({
|
||||||
|
signalName: '',
|
||||||
|
stationCode: userStore.stationCode,
|
||||||
|
|
||||||
|
})
|
||||||
|
const defaultProps = {
|
||||||
|
children: "children",
|
||||||
|
label: "name"
|
||||||
|
};
|
||||||
|
const treedata: any = ref([]);
|
||||||
|
const treeRef = ref();
|
||||||
|
const treeloading = ref(true)
|
||||||
|
const currentNodeKey = ref("")
|
||||||
|
const signaId = ref('')
|
||||||
|
//获取左侧树
|
||||||
|
const signName = ref('')
|
||||||
|
function getTreeData() {
|
||||||
|
treeloading.value = true
|
||||||
|
getDeviceSignalTree(signaform.value).then((res: any) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
treedata.value = res.data
|
||||||
|
signaId.value = res.data[0].children[0].children[0].children[0].children[0].id
|
||||||
|
signName.value = res.data[0].children[0].children[0].children[0].children[0].name
|
||||||
|
nextTick(() => {
|
||||||
|
treeRef.value?.setCurrentKey(signaId.value);
|
||||||
|
});
|
||||||
|
getsignadata()
|
||||||
|
gettabledata()
|
||||||
|
getechartdata()
|
||||||
|
}
|
||||||
|
treeloading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function handleNodeClick(data: any, node: any) {
|
||||||
|
if (data.children.length > 0) {
|
||||||
|
node.isCurrent = false
|
||||||
|
currentNodeKey.value = ""
|
||||||
|
nextTick(() => {
|
||||||
|
currentNodeKey.value = signaId.value
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log(data)
|
||||||
|
signaId.value = data.id
|
||||||
|
signName.value = data.name
|
||||||
|
getsignadata()
|
||||||
|
gettabledata()
|
||||||
|
getechartdata()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const loading = ref(false)
|
||||||
|
const tableData = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const detaall: any = ref([])
|
||||||
|
const tableform = ref({
|
||||||
|
size: 10,
|
||||||
|
current: 1,
|
||||||
|
startDate: '',
|
||||||
|
endDate: '',
|
||||||
|
signalId: '',
|
||||||
|
})
|
||||||
|
const tableRowClassName = ({
|
||||||
|
row,
|
||||||
|
rowIndex,
|
||||||
|
}: {
|
||||||
|
row: any
|
||||||
|
rowIndex: number
|
||||||
|
}) => {
|
||||||
|
if (rowIndex % 2 === 0) {
|
||||||
|
return 'warning-row'
|
||||||
|
} else if (rowIndex % 2 === 1) {
|
||||||
|
return 'success-row'
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
const signaldata: any = ref({})
|
||||||
|
const dignaloading = ref(false)
|
||||||
|
function getsignadata() {
|
||||||
|
dignaloading.value = true
|
||||||
|
querySignalDataById({ signalId: signaId.value }).then((res: any) => {
|
||||||
|
if (res.data) {
|
||||||
|
signaldata.value = res.data
|
||||||
|
} else {
|
||||||
|
signaldata.value = {}
|
||||||
|
}
|
||||||
|
dignaloading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function gettabledata() {
|
||||||
|
if (detaall.value.length > 0) {
|
||||||
|
tableform.value.startDate = formatDate(detaall.value[0])
|
||||||
|
tableform.value.endDate = formatDate(detaall.value[1])
|
||||||
|
} else {
|
||||||
|
tableform.value.startDate = ''
|
||||||
|
tableform.value.endDate = ''
|
||||||
|
}
|
||||||
|
tableform.value.signalId = signaId.value
|
||||||
|
loading.value = true
|
||||||
|
workpage(tableform.value).then((res: any) => {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
tableform.value.size = res.data.size
|
||||||
|
tableform.value.current = res.data.current
|
||||||
|
total.value = res.data.total
|
||||||
|
loading.value = false
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function formatDate(isoString: any) {
|
||||||
|
const date = new Date(isoString);
|
||||||
|
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
const hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
|
||||||
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||||
|
}
|
||||||
|
//折线图数据
|
||||||
|
const echartdata: any = ref({})
|
||||||
|
function getechartdata() {
|
||||||
|
getHistoricalCurve({ signalId: signaId.value }).then((res: any) => {
|
||||||
|
echartdata.value = res.data
|
||||||
|
drawEchart()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//绘制折线图
|
||||||
|
function drawEchart() {
|
||||||
|
let myChart = echarts.init(document.getElementById("deviceEachers") as HTMLDivElement);
|
||||||
|
myChart.setOption({
|
||||||
|
title: {
|
||||||
|
text: ''
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
data: ['Step Start', 'Step Middle', 'Step End']
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
toolbox: {
|
||||||
|
feature: {
|
||||||
|
saveAsImage: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: echartdata.value.xAxis,
|
||||||
|
yAxis: echartdata.value.yAxis,
|
||||||
|
series: echartdata.value.series
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
getTreeData()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="faulttemplate-box">
|
||||||
|
<aside id="silderLeft">
|
||||||
|
<div class="displayflex" style="margin: 10px 0px 5px 0px;padding-left: 8px;height: 30px;">
|
||||||
|
<img src="@/assets/navigation/ty_bq.png" />
|
||||||
|
<div class="title">数据列表</div>
|
||||||
|
</div>
|
||||||
|
<el-input v-model="signaform.signalName" style="width: 240px" placeholder="请输入信号名称" :suffix-icon="Search"
|
||||||
|
@change="getTreeData()" />
|
||||||
|
<el-scrollbar height="calc(80vh)" style="width:99%;">
|
||||||
|
<el-tree-v2 v-loading="treeloading" style="width: 100%;" :data="treedata" :props="defaultProps"
|
||||||
|
:height="800" ref="treeRef" node-key="id" :current-node-key="currentNodeKey"
|
||||||
|
:highlight-current="true" @node-click="handleNodeClick" />
|
||||||
|
</el-scrollbar>
|
||||||
|
</aside>
|
||||||
|
<section class="silderRight1">
|
||||||
|
<div class="right_top">
|
||||||
|
<div class="top_left">
|
||||||
|
<div class="title_right">
|
||||||
|
<img src="@/assets/navigation/ty_bq.png" alt="">
|
||||||
|
<div>信号信息</div>
|
||||||
|
</div>
|
||||||
|
<div class="text_top">
|
||||||
|
<div class="text_top_title">
|
||||||
|
<div></div>所属网关机信息
|
||||||
|
</div>
|
||||||
|
<div class="text_top_content" v-loading="dignaloading">
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">设备类型</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.deviceType }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">设备名称</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.deviceName }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">设备型号</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.deviceModel }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">ip地址</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.ipAddr }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">协议类型</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.protocol }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">采集频率</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.frequency }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text_top">
|
||||||
|
<div class="text_top_title">
|
||||||
|
<div></div>型号信息
|
||||||
|
</div>
|
||||||
|
<div class="text_top_content" v-loading="dignaloading">
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">信号编号</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.signalCode }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">信号名称</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.signalName }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">信号类型</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.signalType }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">信号单位</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.signalUnit }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">正常范围</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.normalRange }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content_one">
|
||||||
|
<div class="content_one_title">遥控遥调类型</div>
|
||||||
|
<div class="content_one_text">{{ signaldata.ykytType }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="top_left">
|
||||||
|
<div class="title_right">
|
||||||
|
<img src="@/assets/navigation/ty_bq.png" alt="">
|
||||||
|
<div>监测数据</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_top">
|
||||||
|
<div class="cont_top_left">
|
||||||
|
<el-date-picker v-model="detaall" type="datetimerange" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" @change="gettabledata" />
|
||||||
|
<el-button style="margin-left: 10px;" @click="gettabledata"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss" class="searchButton">搜索</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="cont_top_right"> <el-button class="searchButton">导出</el-button></div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_bottom">
|
||||||
|
<el-table v-loading="loading" :data="tableData" style="width: 100%;height: calc(30vh);
|
||||||
|
overflow: auto;;margin-bottom: 15px;" row-key="id" default-expand-all
|
||||||
|
:row-class-name="tableRowClassName"
|
||||||
|
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
|
||||||
|
<el-table-column type="index" label="序号" width="50px" align="center" />
|
||||||
|
<el-table-column label="监测数值" prop="value"></el-table-column>
|
||||||
|
<el-table-column label="单位" prop="unit"></el-table-column>
|
||||||
|
<el-table-column label="采集时间" prop="startTime" width="120"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<Page :total="total" v-model:size="tableform.size" v-model:current="tableform.current"
|
||||||
|
@pagination="gettabledata()">
|
||||||
|
</Page>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right_bottom">
|
||||||
|
<div class="title_right">
|
||||||
|
<img src="@/assets/navigation/ty_bq.png" alt="">
|
||||||
|
<div>历史曲线</div>
|
||||||
|
</div>
|
||||||
|
<div id="deviceEachers" :style="{ width: '100%', height: '90%' }"></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.faulttemplate-box {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
display: -webkit-flex;
|
||||||
|
padding: 5px 20px;
|
||||||
|
|
||||||
|
// background-color: #f2f4f9;
|
||||||
|
.silderRight1 {
|
||||||
|
flex: 1;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(90vh);
|
||||||
|
overflow: auto;
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 0px 15px 15px 15px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
|
||||||
|
// margin-left: 15px;
|
||||||
|
// background: #17212e;
|
||||||
|
.right_top {
|
||||||
|
width: 100%;
|
||||||
|
height: 487px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.top_left {
|
||||||
|
width: 787px;
|
||||||
|
height: 488px;
|
||||||
|
background: url(@/assets/navigation/sbjc_488.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 20px;
|
||||||
|
|
||||||
|
.text_top {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.text_top_title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #00CCFF;
|
||||||
|
padding: 20px 0px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
width: 3px;
|
||||||
|
height: 12px;
|
||||||
|
background: #00ffff;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_top_content {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1px solid #00397c;
|
||||||
|
border-right: 1px solid #00397c;
|
||||||
|
|
||||||
|
.content_one {
|
||||||
|
width: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.content_one_title {
|
||||||
|
width: 114px;
|
||||||
|
height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 50px;
|
||||||
|
border-top: 1px solid #00397c;
|
||||||
|
border-left: 1px solid #00397c;
|
||||||
|
background-color: #002562;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #B5D7FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content_one_text {
|
||||||
|
width: 267px;
|
||||||
|
height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 50px;
|
||||||
|
border-top: 1px solid #00397c;
|
||||||
|
border-left: 1px solid #00397c;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #B5D7FF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cont_top {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 20px 0px;
|
||||||
|
|
||||||
|
.cont_top_left {
|
||||||
|
width: 60%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.right_bottom {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 20px;
|
||||||
|
margin-top: 15px;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(36vh);
|
||||||
|
background: url(@/assets/navigation/sbjc_485.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title_right {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
// padding-bottom: 10px;
|
||||||
|
div {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tree-node.is-current>.el-tree-node__content) {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
// color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tree-node__content) {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 40px !important;
|
||||||
|
margin: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-message-box {
|
||||||
|
width: 300px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-form-item__label) {
|
||||||
|
width: 105px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tooltip__trigger) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.displayflex {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
// margin-top:15px;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-left: 5px;
|
||||||
|
text-decoration: none !important;
|
||||||
|
font-family: "阿里妈妈数黑体 Bold";
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 16px !important;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
line-height: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tree) {
|
||||||
|
background-color: #ffffff00 !important;
|
||||||
|
--el-tree-node-hover-bg-color: #0099ff09;
|
||||||
|
}
|
||||||
|
|
||||||
|
#silderLeft {
|
||||||
|
width: 260px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
// background: #ffffff00;
|
||||||
|
border-radius: 3px;
|
||||||
|
position: relative;
|
||||||
|
background: url(@/assets/navigation/ty_260x988.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 0px 10px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
.moveBtn {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-table__inner-wrapper::before) {
|
||||||
|
background-color: #0099ff00;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-table:not(.el-table--border) .el-table__cell) {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:deep(.el-input__wrapper) {
|
||||||
|
background-color: rgba(19, 26, 37, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-select:hover:not(.el-select--disabled) .el-input__wrapper) {
|
||||||
|
box-shadow: 0 0 0 1px #009bff inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-select) {
|
||||||
|
--el-select-input-focus-border-color: #009bff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tree-node__label) {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
</style>
|
@ -382,7 +382,7 @@ function currency(list: any, itemcode: any) {
|
|||||||
<el-table v-if="selectedId == '1'" :data="tableData1" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selectedId == '1'" :data="tableData1" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="patroldeviceName" label="摄像机名称" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceName" label="摄像机名称" align="center" min-width="130" />
|
||||||
<el-table-column prop="nvrname" label="所属NVR" align="center" min-width="130" />
|
<el-table-column prop="nvrname" label="所属NVR" align="center" min-width="130" />
|
||||||
@ -427,7 +427,7 @@ function currency(list: any, itemcode: any) {
|
|||||||
<el-table v-if="selectedId == '2'" :data="tableData2" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selectedId == '2'" :data="tableData2" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
||||||
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
||||||
@ -466,7 +466,7 @@ function currency(list: any, itemcode: any) {
|
|||||||
<el-table v-if="selectedId == '3'" :data="tableData3" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selectedId == '3'" :data="tableData3" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
||||||
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
||||||
@ -497,7 +497,7 @@ function currency(list: any, itemcode: any) {
|
|||||||
<el-table v-if="selectedId == '4'" :data="tableData4" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selectedId == '4'" :data="tableData4" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceCode" label="设备编号" align="center" min-width="130" />
|
||||||
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
<el-table-column prop="patroldeviceName" label="设备名称" align="center" min-width="130" />
|
||||||
@ -533,7 +533,7 @@ function currency(list: any, itemcode: any) {
|
|||||||
<el-table v-if="selectedId == '5'" :data="tableData5" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
<el-table v-if="selectedId == '5'" :data="tableData5" :row-class-name="tableRowClassName" class="PatrolMonitoring"
|
||||||
v-loading="loading" highlight-current-row
|
v-loading="loading" highlight-current-row
|
||||||
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(100% - 79px); overflow: auto "
|
||||||
:header-cell-style="{ background: '#253b51', color: '#B5D7FF', height: '43px' }">
|
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
|
||||||
<el-table-column type="index" align="center" label="序号" width="60" />
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
||||||
<el-table-column prop="date" label="时间" align="center" min-width="150" />
|
<el-table-column prop="date" label="时间" align="center" min-width="150" />
|
||||||
<el-table-column prop="count1" label="巡视点位漏检率" align="center" min-width="150">
|
<el-table-column prop="count1" label="巡视点位漏检率" align="center" min-width="150">
|
||||||
|
@ -71,7 +71,6 @@ function handleNodeClick(data: Tree, node: any) {
|
|||||||
orgId.value = data.id;
|
orgId.value = data.id;
|
||||||
dialog.value = true
|
dialog.value = true
|
||||||
getdata();
|
getdata();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
export default class PointBean{
|
||||||
|
x:number;
|
||||||
|
y:number;
|
||||||
|
|
||||||
|
constructor(x:number,y:number){
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
}
|
7902
riis-web/src/views/threevisitation/3DModelSet/index.json
Normal file
7902
riis-web/src/views/threevisitation/3DModelSet/index.json
Normal file
File diff suppressed because it is too large
Load Diff
6083
riis-web/src/views/threevisitation/3DModelSet/index.vue
Normal file
6083
riis-web/src/views/threevisitation/3DModelSet/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -15,13 +15,14 @@
|
|||||||
? '开始' : '结束' }}测距</el-button>
|
? '开始' : '结束' }}测距</el-button>
|
||||||
<el-button v-show="!isroam" :style="{ right: isRightList ? '490px' : '150px' }" @click="reset"
|
<el-button v-show="!isroam" :style="{ right: isRightList ? '490px' : '150px' }" @click="reset"
|
||||||
class="THREE-button">恢复初始态</el-button>
|
class="THREE-button">恢复初始态</el-button>
|
||||||
<el-button class="THREE-button" :style="{ right: isRightList ? '350px' : '10px' }" @click.stop="roamClick">{{ !isroam
|
<el-button class="THREE-button" :style="{ right: isRightList ? '350px' : '10px' }" @click.stop="roamClick">{{
|
||||||
? '开始' : '结束' }}漫游</el-button>
|
!isroam
|
||||||
|
? '开始' : '结束' }}漫游</el-button>
|
||||||
<div v-show="isRightList" class="THREE-right-list" @click.stop>
|
<div v-show="isRightList" class="THREE-right-list" @click.stop>
|
||||||
<div class="THREE-right-list-title">
|
<div class="THREE-right-list-title">
|
||||||
<span>
|
<span>
|
||||||
<span v-show="selType == '01'">摄像机列表</span>
|
<span v-show="selType == '01'">摄像机列表</span>
|
||||||
<span v-show="selType == '04'">无人车列表</span>
|
<span v-show="selType == '02'">点位列表</span>
|
||||||
<span v-show="selType == '05'">设备列表</span></span>
|
<span v-show="selType == '05'">设备列表</span></span>
|
||||||
<img src="@/assets/3d/u523.png" style="cursor: pointer;margin:0" alt="" @click.stop="isRightList = false">
|
<img src="@/assets/3d/u523.png" style="cursor: pointer;margin:0" alt="" @click.stop="isRightList = false">
|
||||||
</div>
|
</div>
|
||||||
@ -34,9 +35,12 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
<div v-if="selType == '01'" class="THREE-right-list-main-tab">
|
<div v-if="selType == '01'" class="THREE-right-list-main-tab">
|
||||||
<div :class="isOnLine == '01' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('01')">全部</div>
|
<div :class="isOnLine == '01' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('01')">全部
|
||||||
<div :class="isOnLine == '02' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('02')">在线</div>
|
</div>
|
||||||
<div :class="isOnLine == '03' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('03')">离线</div>
|
<div :class="isOnLine == '02' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('02')">在线
|
||||||
|
</div>
|
||||||
|
<div :class="isOnLine == '03' ? 'THREE-right-list-main-tab-hov' : ''" @click.stop="rightTabClik('03')">离线
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul v-show="selType != '04'" :style="{ height: selType == '01' ? 'calc(100vh - 260px)' : 'calc(100vh - 220px)' }">
|
<ul v-show="selType != '04'" :style="{ height: selType == '01' ? 'calc(100vh - 260px)' : 'calc(100vh - 220px)' }">
|
||||||
@ -84,15 +88,26 @@
|
|||||||
src="@/assets/3d/sc_dis.png" title="实时视频" alt="实时视频">
|
src="@/assets/3d/sc_dis.png" title="实时视频" alt="实时视频">
|
||||||
<img v-if="i.objinfo != undefined && i.objinfo.channelList != undefined && i.objinfo.online == 1"
|
<img v-if="i.objinfo != undefined && i.objinfo.channelList != undefined && i.objinfo.online == 1"
|
||||||
src="@/assets/3d/ks.png" title="实时视频-1" alt="实时视频-1" @click.stop="realTimeVideo(i, 0)">
|
src="@/assets/3d/ks.png" title="实时视频-1" alt="实时视频-1" @click.stop="realTimeVideo(i, 0)">
|
||||||
<img v-if="i.objinfo != undefined && i.objinfo.channelList != undefined && i.objinfo.channelList.length == 2"
|
<img
|
||||||
|
v-if="i.objinfo != undefined && i.objinfo.channelList != undefined && i.objinfo.channelList.length == 2"
|
||||||
src="@/assets/3d/ks.png" title="实时视频-2" alt="实时视频-2" @click.stop="realTimeVideo(i, 1)">
|
src="@/assets/3d/ks.png" title="实时视频-2" alt="实时视频-2" @click.stop="realTimeVideo(i, 1)">
|
||||||
<img v-show="i.type == 'Camera' && !i.start" src="@/assets/3d/ange.png" title="摄像机范围" alt="摄像机范围"
|
<img v-show="i.type == 'Camera' && !i.start" src="@/assets/3d/ange.png" title="摄像机范围" alt="摄像机范围"
|
||||||
@click.stop="listange(i)">
|
@click.stop="listange(i)">
|
||||||
<img v-show="i.type == 'Camera' && i.start" src="@/assets/3d/ange1.png" title="摄像机范围" alt="摄像机范围"
|
<img v-show="i.type == 'Camera' && i.start" src="@/assets/3d/ange1.png" title="摄像机范围" alt="摄像机范围"
|
||||||
@click.stop="listange(i)">
|
@click.stop="listange(i)">
|
||||||
</div>
|
</div>
|
||||||
|
<div v-show="selType == '02'" class="three-right-list-main-icon">
|
||||||
|
<img v-show="i.objinfo != undefined" src="@/assets/3d/xq.png" title="巡视点位信息" alt="巡视点位信息"
|
||||||
|
@click.stop="informationClick(i), listClick(i, index)">
|
||||||
|
<img v-if="!i.objinfo && !i.objinfo.patroldeviceJson" src="@/assets/3d/sc_dis.png" title="实时视频" alt="实时视频">
|
||||||
|
<img v-else src="@/assets/3d/ks.png" title="实时视频-1" alt="实时视频-1" @click.stop="getDeviceVideo(i, 0)">
|
||||||
|
<img v-show="i.objinfo == undefined" @click.stop src="@/assets/3d/xq_dis.png" title="巡视点位信息" alt="巡视点位信息">
|
||||||
|
<img src="@/assets/sytlechange/u157.svg" alt="" title="历史记录"
|
||||||
|
@click.stop="historicalRecords(i), listClick(i, index)">
|
||||||
|
</div>
|
||||||
<div v-show="selType == '05'" class="THREE-right-list-main-icon">
|
<div v-show="selType == '05'" class="THREE-right-list-main-icon">
|
||||||
<img src="@/assets/3d/xq.png" @click.stop="informationClick(i), listClick(i, index)" title="部件信息" alt="部件信息">
|
<img src="@/assets/3d/xq.png" @click.stop="informationClick(i), listClick(i, index)" title="部件信息"
|
||||||
|
alt="部件信息">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -111,7 +126,8 @@
|
|||||||
<span class="THREE-right-list-main-icon" style="display:flex;margin-right:10px">
|
<span class="THREE-right-list-main-icon" style="display:flex;margin-right:10px">
|
||||||
<img v-show="data.objinfo != undefined" src="@/assets/3d/xq.png" title="无人车信息" alt="无人车信息"
|
<img v-show="data.objinfo != undefined" src="@/assets/3d/xq.png" title="无人车信息" alt="无人车信息"
|
||||||
@click.stop="informationClick(data), handleNodeClick(data, node)">
|
@click.stop="informationClick(data), handleNodeClick(data, node)">
|
||||||
<img v-show="data.objinfo == undefined" @click.stop src="@/assets/3d/xq_dis.png" title="无人车信息" alt="无人车信息">
|
<img v-show="data.objinfo == undefined" @click.stop src="@/assets/3d/xq_dis.png" title="无人车信息"
|
||||||
|
alt="无人车信息">
|
||||||
<img v-if="data.objinfo == undefined || data.objinfo.channelList == undefined || data.objinfo.online == 0"
|
<img v-if="data.objinfo == undefined || data.objinfo.channelList == undefined || data.objinfo.online == 0"
|
||||||
src="@/assets/3d/sc_dis.png" title="实时视频" alt="实时视频">
|
src="@/assets/3d/sc_dis.png" title="实时视频" alt="实时视频">
|
||||||
<img v-if="data.objinfo != undefined && data.objinfo.channelList != undefined" src="@/assets/3d/ks.png"
|
<img v-if="data.objinfo != undefined && data.objinfo.channelList != undefined" src="@/assets/3d/ks.png"
|
||||||
@ -131,20 +147,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-show="isSelType" id="context-operate" @click.stop>
|
<div v-show="isSelType" id="context-operate" @click.stop>
|
||||||
<div :class="selType == '05' ? 'context-operate-hov' : ''" @click="selTypeChange('05')">
|
<div :class="selType == '05' ? 'context-operate-hov' : ''" @click="selTypeChange('05')">
|
||||||
<span v-show="selType == '05'"><img src="@/assets/3d/sb1.png" alt=""></span>
|
<span v-show="selType == '05'"><img src="@/assets/navigation/swxs_sz_sb1.png" alt=""></span>
|
||||||
<span v-show="selType != '05'"><img src="@/assets/3d/sb.png" alt=""></span>
|
<span v-show="selType != '05'"><img src="@/assets/navigation/swxs_sz_sb.png" alt=""></span>
|
||||||
<span>设备</span>
|
<span>设备</span>
|
||||||
</div>
|
</div>
|
||||||
<div :class="selType == '01' ? 'context-operate-hov' : ''" @click="selTypeChange('01')">
|
<div :class="selType == '01' ? 'context-operate-hov' : ''" @click="selTypeChange('01')">
|
||||||
<span v-show="selType == '01'"><img src="@/assets/3d/sxj1.png" alt=""></span>
|
<span v-show="selType == '01'"><img src="@/assets/navigation/swxs_sz_sxt1.png" alt=""></span>
|
||||||
<span v-show="selType != '01'"><img src="@/assets/3d/sxj.png" alt=""></span>
|
<span v-show="selType != '01'"><img src="@/assets/navigation/swxs_sz_sxt.png" alt=""></span>
|
||||||
<span>摄像机</span>
|
<span>摄像机</span>
|
||||||
</div>
|
</div>
|
||||||
<div :class="selType == '04' ? 'context-operate-hov' : ''" @click="selTypeChange('04')">
|
<div :class="selType == '02' ? 'context-operate-hov' : ''" @click="selTypeChange('02')">
|
||||||
<span v-show="selType == '04'"><img src="@/assets/3d/wrc1.png" alt=""></span>
|
<span v-show="selType == '02'"><img src="@/assets/navigation/swxs_sz_sj1.png" alt=""></span>
|
||||||
<span v-show="selType != '04'"><img src="@/assets/3d/wrc.png" alt=""></span>
|
<span v-show="selType != '02'"><img src="@/assets/navigation/swxs_sz_sj.png" alt=""></span>
|
||||||
<span>无人车</span>
|
<span>点位</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 详细信息弹窗 -->
|
<!-- 详细信息弹窗 -->
|
||||||
<div class="detailed-information" v-if="information">
|
<div class="detailed-information" v-if="information">
|
||||||
@ -169,6 +186,46 @@
|
|||||||
<div class="examination-contont-text">生产厂家:{{ objRow.userData.objinfo.manufacturer }}</div>
|
<div class="examination-contont-text">生产厂家:{{ objRow.userData.objinfo.manufacturer }}</div>
|
||||||
<div class="examination-contont-text">安装位置:{{ objRow.userData.objinfo.place }}</div>
|
<div class="examination-contont-text">安装位置:{{ objRow.userData.objinfo.place }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="examination-contont" v-if="selType == '02'">
|
||||||
|
<div class="examination-contont-text">点位名称:{{ objRow.userData.objinfo.deviceName }}</div>
|
||||||
|
<div class="examination-contont-text">所属主设备:{{ objRow.userData.objinfo.mainDeviceName }}</div>
|
||||||
|
<div class="examination-contont-text">所属部件:{{ objRow.userData.objinfo.componentName }}</div>
|
||||||
|
<div class="examination-contont-text">关联摄像机/预置位:
|
||||||
|
<!-- {{ objRow.userData.objinfo.patroldeviceJson.device_code }}/ {{ objRow.userData.objinfo.patroldeviceJson.device_pos }} -->
|
||||||
|
</div>
|
||||||
|
<div class="examination-contont-text">识别类型:
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 1">表计读取</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 2">位置状态识别</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 3">设备外观查看</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 4">红外测温</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 5">声音检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 6">闪烁检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 13">局放特高频检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 12">局放地电压检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 11">局放超声波检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 101">环境温度检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 102">环境湿度检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 103">氧气浓度检测</span>
|
||||||
|
<span v-if="objRow.userData.objinfo.recognitionTypeList == 104">SF6浓度检测</span>
|
||||||
|
</div>
|
||||||
|
<div class="examination-contont-text">表计类型:{{ objRow.userData.objinfo.meterType }}</div>
|
||||||
|
<div class="examination-contont-text">分析类型:{{ objRow.userData.objinfo.manufacturer }}
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'isolator'">刀闸状态</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'switch'">开关/压板状态</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'meter'">仪表读数</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'infrared'">红外温度</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'sound'">声音</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'light'">指示灯</span>
|
||||||
|
<span
|
||||||
|
v-if="objRow.userData.objinfo.pictureAnalysisTypeList && objRow.userData.objinfo.pictureAnalysisTypeList.PictureAnalysisType == 'qrcode'">实物ID</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="examination-contont" v-if="selType == '04'">
|
<div class="examination-contont" v-if="selType == '04'">
|
||||||
<div class="examination-contont-text">设备编码:{{ objRow.userData.objinfo.patroldeviceCode }}</div>
|
<div class="examination-contont-text">设备编码:{{ objRow.userData.objinfo.patroldeviceCode }}</div>
|
||||||
<div class="examination-contont-text">设备名称:{{ objRow.userData.objinfo.patroldeviceName }}</div>
|
<div class="examination-contont-text">设备名称:{{ objRow.userData.objinfo.patroldeviceName }}</div>
|
||||||
@ -294,6 +351,97 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Eldialog>
|
</Eldialog>
|
||||||
|
<!-- 历史点位信息 -->
|
||||||
|
<Eldialog v-if="history" title="历史巡视记录" :zIndex="2000" :width="'1540px'" @before-close="history = false">
|
||||||
|
<template v-slot:PopFrameContent>
|
||||||
|
<div>
|
||||||
|
<el-date-picker v-model="timeSlot" type="daterange" range-separator="至" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" style="margin-right: 10px;" value-format="YYYY-MM-DD" />
|
||||||
|
<el-button class="searchButton" @click="historicalRecords(deviceIdone)">搜索</el-button>
|
||||||
|
<el-button class="searchButton" @click="hisreset()">重置</el-button>
|
||||||
|
</div>
|
||||||
|
<el-table v-loading="hisloading" :data="historydata" style="width: 100%;height: calc(70vh);
|
||||||
|
overflow: auto;;margin: 15px 0px;" row-key="id" default-expand-all :row-class-name="tableRowClassName"
|
||||||
|
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
|
||||||
|
<el-table-column type="index" align="center" label="序号" width="60px" />
|
||||||
|
<el-table-column prop="mainDeviceName" label="设备名称" />
|
||||||
|
<el-table-column prop="componentName" label="部件名称" />
|
||||||
|
<el-table-column prop="deviceName" label="点位名称" />
|
||||||
|
<el-table-column prop="meterType" label="表计类型" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span
|
||||||
|
v-if="currency(MeterTypeList, scope.row.meterType) != undefined && currency(MeterTypeList, scope.row.meterType) != ''">{{
|
||||||
|
currency(MeterTypeList, scope.row.meterType) }}</span>
|
||||||
|
<span v-else>--</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="time" label="巡视时间" width="110px" align="center" />
|
||||||
|
<el-table-column prop="flag" label="状态" width="100px" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.flag == '0'">未巡视</span>
|
||||||
|
<span v-if="scope.row.flag == '1'">已巡视</span>
|
||||||
|
<span v-if="scope.row.flag == '2'">已完成</span>
|
||||||
|
<span v-if="scope.row.flag == '3'">设备检修中</span>
|
||||||
|
<span v-if="scope.row.flag == '4'">巡视失败</span>
|
||||||
|
<span v-if="scope.row.flag == '5'">已修正</span>
|
||||||
|
<span v-if="scope.row.flag == '6'">采集失败</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="materialId" label="实物id" align="center">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="desc" label="识别类型" width="140px">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.desc != null && scope.row.desc != ''">{{ scope.row.desc
|
||||||
|
}}</span>
|
||||||
|
<span v-else>--</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="识别值" width="100px">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.valueType == 'meter' || scope.row.valueType == 'infrared'">
|
||||||
|
<span v-if="scope.row.analysisResult == '异常'" style="color: red;font-size: 16px;font-weight: bold;">
|
||||||
|
{{
|
||||||
|
scope.row.value }}
|
||||||
|
{{ scope.row.unit }}</span>
|
||||||
|
<span v-else> {{ scope.row.value }} {{ scope.row.unit }}</span>
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
<span v-if="scope.row.conf != null && scope.row.conf != ''">{{ scope.row.conf
|
||||||
|
}}</span>
|
||||||
|
<span v-else>--</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="analysisResult" label="巡视结论" align="center" width="80px">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.analysisResult == '正常'" style="color: rgb(0, 249, 162)">正常</span>
|
||||||
|
<span v-if="scope.row.analysisResult == '异常'"
|
||||||
|
style="color: rgb(255, 51, 0);color: red;font-size: 16px;font-weight: bold;">异常</span>
|
||||||
|
<span v-if="scope.row.analysisResult == '设备检修'" style="color: rgb(0, 153, 255)">设备检修</span>
|
||||||
|
<span v-if="scope.row.analysisResult == '失败'" style="color: rgb(255, 189, 0)">失败</span>
|
||||||
|
<span v-if="scope.row.analysisResult == '成功'" style="color: rgb(0, 249, 162)">成功</span>
|
||||||
|
<span v-if="scope.row.analysisResult == '' || scope.row.analysisResult == null">--</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="reviseValue" label="修正值" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.reviseValid == null">--</span>
|
||||||
|
<span v-else> {{ scope.row.reviseValue }} {{ scope.row.unit }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="reviseValid" label="修正结论" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.reviseValid == 0">正常</span>
|
||||||
|
<span v-if="scope.row.reviseValid == 1">异常</span>
|
||||||
|
<span v-if="scope.row.reviseValid == null">--</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<Page :total="histotal" v-model:size="historParams.size" v-model:current="historParams.current"
|
||||||
|
@pagination="historicalRecords(deviceIdone)">
|
||||||
|
</Page>
|
||||||
|
</template>
|
||||||
|
</Eldialog>
|
||||||
<div id="contextimg">
|
<div id="contextimg">
|
||||||
<img src="@/assets/3d/luminescence.svg" alt="">
|
<img src="@/assets/3d/luminescence.svg" alt="">
|
||||||
</div>
|
</div>
|
||||||
@ -310,6 +458,9 @@
|
|||||||
v-if="isVideo && dataSel.userData != undefined && dataSel.userData.objinfo != undefined && dataSel.userData.objinfo.channelList != undefined && dataSel.userData.objinfo.channelList.length == 2 && dataSel.userData.objinfo.online == 1"
|
v-if="isVideo && dataSel.userData != undefined && dataSel.userData.objinfo != undefined && dataSel.userData.objinfo.channelList != undefined && dataSel.userData.objinfo.channelList.length == 2 && dataSel.userData.objinfo.online == 1"
|
||||||
@click.stop="realTimeVideo(1, 1)">实时视频-2</li>
|
@click.stop="realTimeVideo(1, 1)">实时视频-2</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<ul v-show="selType == '02'">
|
||||||
|
<li @click.stop="CameraInformation">巡视点位信息</li>
|
||||||
|
</ul>
|
||||||
<ul v-show="selType == '04'">
|
<ul v-show="selType == '04'">
|
||||||
<li @click.stop="CameraInformation">无人车信息</li>
|
<li @click.stop="CameraInformation">无人车信息</li>
|
||||||
<li
|
<li
|
||||||
@ -343,24 +494,24 @@ import { getDeviceByType } from "@/api/device";
|
|||||||
import JessibucaPlayer from '@/components/jessibuca/index1.vue' // 视频
|
import JessibucaPlayer from '@/components/jessibuca/index1.vue' // 视频
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { getSubstationById } from '@/api/substation'
|
import { getSubstationById, getHistoryDevice } from '@/api/substation'
|
||||||
import { setAlarmLogStatus } from "@/api/alarmInfo";//告警信息获取
|
import { setAlarmLogStatus } from "@/api/alarmInfo";//告警信息获取
|
||||||
import { getNotCheckAlarmCount } from '@/api/home';
|
import { getNotCheckAlarmCount } from '@/api/home';
|
||||||
import { onMounted, ref, reactive, onBeforeUnmount, nextTick, watch } from 'vue'
|
import { onMounted, ref, reactive, onBeforeUnmount, nextTick, watch } from 'vue'
|
||||||
import * as THREE from 'THREE'
|
import * as THREE from 'three'
|
||||||
import TWEEN from 'tween'
|
import TWEEN from 'tween'
|
||||||
import { OrbitControls } from 'THREE/examples/jsm/controls/OrbitControls' // 控制器
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' // 控制器
|
||||||
import { GLTFLoader } from 'THREE/examples/jsm/loaders/GLTFLoader.js' // 控制器
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js' // 控制器
|
||||||
import { DRACOLoader } from 'THREE/examples/jsm/loaders/DRACOLoader.js' // 控制器
|
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js' // 控制器
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { EffectComposer } from "THREE/examples/jsm/postprocessing/EffectComposer"
|
import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer"
|
||||||
import { RenderPass } from "THREE/examples/jsm/postprocessing/RenderPass"
|
import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass"
|
||||||
import { OutlinePass } from "THREE/examples/jsm/postprocessing/OutlinePass"
|
import { OutlinePass } from "three/examples/jsm/postprocessing/OutlinePass"
|
||||||
// 伽玛校正后处理Shader
|
// 伽玛校正后处理Shader
|
||||||
import { GammaCorrectionShader } from 'THREE/examples/jsm/shaders/GammaCorrectionShader'
|
import { GammaCorrectionShader } from 'three/examples/jsm/shaders/GammaCorrectionShader'
|
||||||
import { ShaderPass } from "THREE/examples/jsm/postprocessing/ShaderPass"
|
import { ShaderPass } from "three/examples/jsm/postprocessing/ShaderPass"
|
||||||
// SMAA抗锯齿通道
|
// SMAA抗锯齿通道
|
||||||
import { SMAAPass } from 'THREE/examples/jsm/postprocessing/SMAAPass'
|
import { SMAAPass } from 'three/examples/jsm/postprocessing/SMAAPass'
|
||||||
import jt from '@/assets/3d/jt.png'
|
import jt from '@/assets/3d/jt.png'
|
||||||
import gaojing from '@/assets/3d/gaojing.png'
|
import gaojing from '@/assets/3d/gaojing.png'
|
||||||
import gaojing1 from '@/assets/3d/gaojing1.png'
|
import gaojing1 from '@/assets/3d/gaojing1.png'
|
||||||
@ -369,6 +520,7 @@ import { PathPointList } from '@/utils/PathPointList.js'
|
|||||||
import { PathGeometry } from '@/utils/PathGeometry.js'
|
import { PathGeometry } from '@/utils/PathGeometry.js'
|
||||||
import position from '../3DModelSet/index.json'
|
import position from '../3DModelSet/index.json'
|
||||||
import Eldialog from '@/components/seccmsdialog/eldialog.vue'
|
import Eldialog from '@/components/seccmsdialog/eldialog.vue'
|
||||||
|
import Page from '@/components/Pagination/page.vue'
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const taskName = ref()
|
const taskName = ref()
|
||||||
const tableData = ref([])
|
const tableData = ref([])
|
||||||
@ -1339,6 +1491,15 @@ function initData() {
|
|||||||
}
|
}
|
||||||
loadModel('UV', dataJson.value.UV, is)
|
loadModel('UV', dataJson.value.UV, is)
|
||||||
}
|
}
|
||||||
|
if (dataJson.value.DevicePoint != '') {
|
||||||
|
let is = false
|
||||||
|
if (selType.value == '02') {
|
||||||
|
data.value = dataJson.value.DevicePoint
|
||||||
|
searchdata.value = JSON.parse(JSON.stringify(data.value))
|
||||||
|
is = true
|
||||||
|
}
|
||||||
|
loadModel('DevicePoint', dataJson.value.DevicePoint, is)
|
||||||
|
}
|
||||||
if (dataJson.value.EquipmentComponentSettings != '') {
|
if (dataJson.value.EquipmentComponentSettings != '') {
|
||||||
if (selType.value == '05') {
|
if (selType.value == '05') {
|
||||||
data.value = dataJson.value.EquipmentComponentSettings
|
data.value = dataJson.value.EquipmentComponentSettings
|
||||||
@ -1512,12 +1673,12 @@ function render1() {
|
|||||||
// 不太放心,try-catch一下,保证出现意外也能继续执行后面的内容
|
// 不太放心,try-catch一下,保证出现意外也能继续执行后面的内容
|
||||||
renderFunc[funcName](delta);
|
renderFunc[funcName](delta);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2012,6 +2173,18 @@ function selTypeChange(str) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (str == '02') {
|
||||||
|
if (dataJson.value.DevicePoint) data.value = dataJson.value.DevicePoint
|
||||||
|
searchdata.value = JSON.parse(JSON.stringify(data.value))
|
||||||
|
for (let i = 0; i < scene.children.length; i++) {
|
||||||
|
if (scene.children[i].userData.type == 'DevicePoint') {
|
||||||
|
scene.children[i].traverse(function (obj) {
|
||||||
|
if (obj.type === 'Mesh') {
|
||||||
|
obj.material.visible = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (str == '04') {
|
} else if (str == '04') {
|
||||||
if (dataJson.value.UV) data.value = dataJson.value.UV
|
if (dataJson.value.UV) data.value = dataJson.value.UV
|
||||||
searchdata.value = JSON.parse(JSON.stringify(data.value))
|
searchdata.value = JSON.parse(JSON.stringify(data.value))
|
||||||
@ -2227,20 +2400,39 @@ const channelId = ref('')
|
|||||||
const videofmp4 = ref('')
|
const videofmp4 = ref('')
|
||||||
// 播放视频
|
// 播放视频
|
||||||
function getVideoUrl(row, index) {
|
function getVideoUrl(row, index) {
|
||||||
deviceId.value = row.channelList[index].deviceid
|
if (index == 'camera') {
|
||||||
channelId.value = row.channelList[index].channelid
|
deviceId.value = row.patroldevice_code
|
||||||
if (row.channelList[index].deviceid == undefined) {
|
channelId.value = row.patroldevice_channelcode
|
||||||
deviceId.value = row.channelList[index].deviceId
|
} else {
|
||||||
channelId.value = row.channelList[index].channelId
|
deviceId.value = row.channelList[index].deviceid
|
||||||
|
channelId.value = row.channelList[index].channelid
|
||||||
|
if (row.channelList[index].deviceid == undefined) {
|
||||||
|
deviceId.value = row.channelList[index].deviceId
|
||||||
|
channelId.value = row.channelList[index].channelId
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
axios.get(userStore.webApiMonitorUrl + '/api/play/start/' + deviceId.value + '/' + channelId.value, {}).then((res) => {
|
axios.get(userStore.webApiMonitorUrl + '/api/play/start/' + deviceId.value + '/' + channelId.value, {}).then((res) => {
|
||||||
if (res.data.data != undefined) {
|
if (res.data.data != undefined) {
|
||||||
videoUrl.value = res.data.data.ws_flv
|
videoUrl.value = res.data.data.ws_flv
|
||||||
videofmp4.value = res.data.data.fmp4
|
videofmp4.value = res.data.data.fmp4
|
||||||
|
if (index == 'camera') {
|
||||||
|
presetPosition(130,row.patroldevice_pos)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}).catch(function (error) {
|
}).catch(function (error) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
function presetPosition(cmdCode,presetPos) { // 预置位操作 ---设置、删除、调用
|
||||||
|
|
||||||
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((resize) => {
|
||||||
|
if (res.data.data == "0") {
|
||||||
|
console.log("预置位")
|
||||||
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode + '¶meter1=0¶meter2=' + presetPos + '&combindCode2=0', {}).then((res) => { })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
//摄像机-摄像机-视频播放
|
//摄像机-摄像机-视频播放
|
||||||
const videoChannelList = ref([])
|
const videoChannelList = ref([])
|
||||||
function realTimeVideo(row, index) {
|
function realTimeVideo(row, index) {
|
||||||
@ -2277,6 +2469,12 @@ function realTimeVideo(row, index) {
|
|||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
function getDeviceVideo(row) {
|
||||||
|
let camera = JSON.parse(row.objinfo.patroldeviceJson)
|
||||||
|
console.log(camera)
|
||||||
|
getVideoUrl(camera[0], 'camera')
|
||||||
|
videoShow.value = true
|
||||||
|
}
|
||||||
//列表点击-查看详细信息
|
//列表点击-查看详细信息
|
||||||
function informationClick(row) {
|
function informationClick(row) {
|
||||||
information.value = true
|
information.value = true
|
||||||
@ -2290,6 +2488,79 @@ function informationClick(row) {
|
|||||||
})
|
})
|
||||||
clearDiv()
|
clearDiv()
|
||||||
}
|
}
|
||||||
|
//点位历史记录
|
||||||
|
const history = ref(false)
|
||||||
|
const histotal = ref(0)
|
||||||
|
const historParams = ref({
|
||||||
|
size: 10,
|
||||||
|
current: 1,
|
||||||
|
deviceId: '',
|
||||||
|
startDate: '',
|
||||||
|
endDate: ''
|
||||||
|
})
|
||||||
|
const historydata = ref([])
|
||||||
|
const hisloading = ref(false)
|
||||||
|
const timeSlot = ref([])
|
||||||
|
const deviceIdone = ref('')
|
||||||
|
function historicalRecords(row) {
|
||||||
|
console.log(row)
|
||||||
|
getType()
|
||||||
|
deviceIdone.value = row
|
||||||
|
historParams.value.deviceId = row.objinfo.deviceId
|
||||||
|
console.log(timeSlot.value)
|
||||||
|
if (timeSlot.value.length > 0) {
|
||||||
|
historParams.value.startDate = timeSlot.value[0]
|
||||||
|
historParams.value.endDate = timeSlot.value[1]
|
||||||
|
} else {
|
||||||
|
historParams.value.startDate = ''
|
||||||
|
historParams.value.endDate = ''
|
||||||
|
}
|
||||||
|
hisloading.value = true
|
||||||
|
history.value = true
|
||||||
|
getHistoryDevice(historParams.value).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
historydata.value = res.data.records
|
||||||
|
historParams.value.size = res.data.records
|
||||||
|
historParams.value.current = res.data.current
|
||||||
|
histotal.value = res.data.total
|
||||||
|
hisloading.value = false
|
||||||
|
// history.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function hisreset() {
|
||||||
|
timeSlot.value.length = 0
|
||||||
|
historicalRecords(deviceIdone.value)
|
||||||
|
}
|
||||||
|
const tableRowClassName = ({
|
||||||
|
row,
|
||||||
|
rowIndex,
|
||||||
|
}) => {
|
||||||
|
if (rowIndex % 2 === 0) {
|
||||||
|
return 'warning-row'
|
||||||
|
} else if (rowIndex % 2 === 1) {
|
||||||
|
return 'success-row'
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
function currency(list, itemcode) {
|
||||||
|
let dictname = ''
|
||||||
|
list.forEach((element) => {
|
||||||
|
if (element.itemcode == itemcode) {
|
||||||
|
dictname = element.dictname
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return dictname
|
||||||
|
}
|
||||||
|
const MeterTypeList = ref([])
|
||||||
|
function getType() {
|
||||||
|
const paramstypes = {
|
||||||
|
dictcode: 'MeterType'
|
||||||
|
}
|
||||||
|
getDeviceByType(paramstypes).then((res) => {
|
||||||
|
MeterTypeList.value = res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
// 视角切换
|
// 视角切换
|
||||||
function animateCamera(current1, target1, current2, target2) {
|
function animateCamera(current1, target1, current2, target2) {
|
||||||
// current1 相机当前的位置
|
// current1 相机当前的位置
|
||||||
@ -2574,7 +2845,7 @@ function nextPage() {
|
|||||||
AlarmMapOne.value = AlarmMap.value[Index.value]
|
AlarmMapOne.value = AlarmMap.value[Index.value]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
#THREE_div {
|
#THREE_div {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -2717,9 +2988,9 @@ function nextPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.context-operate-hov {
|
.context-operate-hov {
|
||||||
color: #009bff !important;
|
color: #00ffff !important;
|
||||||
box-shadow: 0 0 4px #009bff;
|
box-shadow: 0 0 4px #00ffff;
|
||||||
border: 1px solid #009bff !important;
|
border: 1px solid #00ffff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#context-operate {
|
#context-operate {
|
||||||
|
Loading…
Reference in New Issue
Block a user