缺陷修改

This commit is contained in:
wangxk 2025-05-17 14:51:04 +08:00
parent bc05013751
commit aa6c627228
21 changed files with 5084 additions and 602 deletions

View File

@ -56,7 +56,7 @@
text-align: right; text-align: right;
} }
.tox-tinymce { .tox-tinymce {
border: 1px solid #4c4d4f; border: 1px solid #225b7e;
border-radius: 10px; border-radius: 10px;
box-shadow: none; box-shadow: none;
box-sizing: border-box; box-sizing: border-box;
@ -2853,7 +2853,7 @@ body.tox-dialog__disable-scroll {
} }
.tox .tox-statusbar { .tox .tox-statusbar {
align-items: center; align-items: center;
background-color: #202020 !important; background-color: #001e55 !important;
border-top: 1px solid rgba(255, 255, 255, 0.15); border-top: 1px solid rgba(255, 255, 255, 0.15);
color: rgba(255, 255, 255, 0.75); color: rgba(255, 255, 255, 0.75);
display: flex; display: flex;

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,7 @@ export function getTableData(params: any) {
//查看详情-修正 //查看详情-修正
export function editCorrect(params: any) { export function editCorrect(params: any) {
return request({ return request({
url: '/patroltasks/task-todo/updateTaskResult', url: '/patroltasks/task-todo/updateTaskResultById',
method: 'post', method: 'post',
data: params data: params
}); });
@ -26,7 +26,7 @@ export function editCorrect(params: any) {
//审查任务执行情况 //审查任务执行情况
export function examination(params: any) { export function examination(params: any) {
return request({ return request({
url: '/patroltasks/task-todo/updateTaskTodo', url: '/patroltasks/task-todo/updateTaskTodoById',
method: 'post', method: 'post',
data: params data: params
}); });

View File

@ -634,7 +634,8 @@ input {
background: transparent !important; background: transparent !important;
color: #fff; color: #fff;
width: 100% !important; width: 100% !important;
height: 40px !important; min-height: 40px !important;
height: auto !important;
margin: auto !important; margin: auto !important;
} }
@ -837,11 +838,13 @@ input {
} }
//左侧树统一样式 //左侧树统一样式
.el-tree-node.is-current > .el-tree-node__content { .el-tree-node.is-current > .el-tree-node__content {
background: none !important; // background: none !important;
background-image: url(@/assets/sytlechange/treeBack.svg) !important; background-image: url(@/assets/sytlechange/treeBack.svg) !important;
background-size: 100% 100%; background-size: 100% 100% !important;
color: #00ffff !important; color: #00ffff !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
min-height: 40px !important;
height: auto !important;
} }
.el-tree-node__content:hover{ .el-tree-node__content:hover{
color:#00ffff; color:#00ffff;
@ -860,3 +863,12 @@ input {
border-left: #0099ff 3px solid; border-left: #0099ff 3px solid;
border-right: #0099ff 3px solid; border-right: #0099ff 3px solid;
} }
.tox:not(.tox-tinymce-inline) .tox-editor-header{
background-color: #ffffff00 !important;
}
.tox .tox-toolbar-overlord > .tox-toolbar__primary{
background-color: #001e55 !important;
}
.tox .tox-statusbar{
background-color: #001e55 !important;
}

View File

@ -131,9 +131,12 @@
</template> </template>
</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' && selType != '03' && selType != '07'" <ul v-show="selType != '04' && selType != '03' && selType != '07'"
@ -179,7 +182,8 @@
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 src="@/assets/newimg/ht_sc.png" title="删除摄像机" alt="删除摄像机" @click.stop="listDel(i)"> <img src="@/assets/newimg/ht_sc.png" title="删除摄像机" alt="删除摄像机" @click.stop="listDel(i)">
<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="摄像机范围"
@ -214,9 +218,9 @@
<img src="@/assets/3d/spjk_ss.png" style="cursor:pointer ;"> <img src="@/assets/3d/spjk_ss.png" style="cursor:pointer ;">
</template> </template>
</el-input> </el-input>
<el-tree ref="treeRef" v-show="selType == '03' || selType == '04' || selType == '07'" :expand-on-click-node="false" <el-tree ref="treeRef" v-show="selType == '03' || selType == '04' || selType == '07'"
default-expand-all node-key="id" :data="searchdata" :props="defaultProps" :filter-node-method="filterNode" :expand-on-click-node="false" default-expand-all node-key="id" :data="searchdata" :props="defaultProps"
@node-click="handleNodeClick" style="margin-top:10px;"> :filter-node-method="filterNode" @node-click="handleNodeClick" style="margin-top:10px;">
<template #default="{ node, data }"> <template #default="{ node, data }">
<div v-show="selType == '03'" class="w-full"> <div v-show="selType == '03'" class="w-full">
<div v-show="node.level == 1" style="display:flex;justify-content:space-between;width:100%"> <div v-show="node.level == 1" style="display:flex;justify-content:space-between;width:100%">
@ -273,7 +277,8 @@
@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="无人车信息" <img v-show="data.objinfo == undefined" @click.stop src="@/assets/3d/xq_dis.png" title="无人车信息"
alt="无人车信息"> 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"
title="实时视频-1" alt="实时视频-1" @click.stop="realTimeVideo(data, 0)"> title="实时视频-1" alt="实时视频-1" @click.stop="realTimeVideo(data, 0)">
@ -425,24 +430,22 @@
</div> </div>
<div style="display: flex;align-items: center;" <div style="display: flex;align-items: center;"
v-if="selType == '02' || lineDrapStart == true || isUAVdropLine == true"> v-if="selType == '02' || lineDrapStart == true || isUAVdropLine == true">
<el-input class="!w-[170px] mr-2" v-model="deviceName" clearable placeholder="请输入点位名称" @clear="getDevice()" <el-input class="!w-[170px] mr-2" v-model="deviceName" clearable placeholder="请输入点位名称"
@keyup.enter="getDevice()" /> @change="getDevice()" />
<el-select v-model="deviceInfo.mainDeviceId" class="mr-2 selType" placeholder="区域" clearable <el-select v-model="deviceInfo.areaId" class="mr-2 selType" placeholder="区域" @change="getbay()" clearable
@change="getDevice" :teleported="false" :popper-append-to-body="false"> :teleported="false" :popper-append-to-body="false">
<el-option v-for="item in areaIdType" :key="item.id" :label="item.areaName" :value="item.areaId" />
</el-select>
<el-select :disabled="!deviceInfo.areaId" v-model="deviceInfo.bayId" class="mr-2 selType" placeholder="间隔"
@change="getmainDevice()" :teleported="false" :popper-append-to-body="false" clearable>
<el-option v-for="item in bayIdType" :key="item.bayId" :label="item.bayName" :value="item.bayId" />
</el-select>
<el-select :disabled="!deviceInfo.bayId" v-model="deviceInfo.mainDeviceId" class="mr-2 selType"
placeholder="主设备" clearable @change="getcomponent" :teleported="false" :popper-append-to-body="false">
<el-option v-for="item in deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName" <el-option v-for="item in deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName"
:value="item.mainDeviceId" /> :value="item.mainDeviceId" />
</el-select> </el-select>
<el-select v-model="deviceInfo.mainDeviceId" class="mr-2 selType" placeholder="间隔" clearable <el-select :disabled="!deviceInfo.mainDeviceId" v-model="deviceInfo.componentId" class="mr-2 selType" placeholder="部件" clearable
@change="getDevice" :teleported="false" :popper-append-to-body="false">
<el-option v-for="item in deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName"
:value="item.mainDeviceId" />
</el-select>
<el-select v-model="deviceInfo.mainDeviceId" class="mr-2 selType" placeholder="主设备" clearable
@change="getDevice" :teleported="false" :popper-append-to-body="false">
<el-option v-for="item in deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName"
:value="item.mainDeviceId" />
</el-select>
<el-select v-model="deviceInfo.componentId" class="mr-2 selType" placeholder="部件" clearable
@change="getDevice" :teleported="false" :popper-append-to-body="false"> @change="getDevice" :teleported="false" :popper-append-to-body="false">
<el-option v-for="item in deviceComponent" :key="item.componentId" :label="item.componentName" <el-option v-for="item in deviceComponent" :key="item.componentId" :label="item.componentName"
:value="item.componentId" /> :value="item.componentId" />
@ -559,16 +562,17 @@
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: '50px' }" @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="点位名称" />
<el-table-column prop="mainDeviceName" label="所属主设备" width="160" /> <el-table-column prop="mainDeviceName" label="所属主设备" />
<el-table-column prop="componentName" label="所属部件" /> <el-table-column prop="componentName" label="所属部件" />
<el-table-column label="关联摄像机/预置位" width="200px"> <el-table-column label="关联摄像机/预置位" width="200px">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.device_code }}/{{ scope.row.device_name }}</span> <span>{{ scope.row.device_code }}/{{ scope.row.device_name }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="recognitionTypeList" label="识别类型"> <el-table-column prop="recognitionTypeList" label="识别类型" width="120px" align="center">
<template #default="scope"> <template #default="scope">
<!-- 局放特高频检测 -->
<span v-if="scope.row.recognitionTypeList == 1">表计读取</span> <span v-if="scope.row.recognitionTypeList == 1">表计读取</span>
<span v-if="scope.row.recognitionTypeList == 2">位置状态识别</span> <span v-if="scope.row.recognitionTypeList == 2">位置状态识别</span>
<span v-if="scope.row.recognitionTypeList == 3">设备外观查看</span> <span v-if="scope.row.recognitionTypeList == 3">设备外观查看</span>
@ -710,7 +714,8 @@
</Page> </Page>
<Page v-show="selType == '02'" style="position: relative;z-index: 100;" :total="total" <Page v-show="selType == '02'" style="position: relative;z-index: 100;" :total="total"
v-model:size="deviceInfo.size" :jumper="'hide'" v-model:current="deviceInfo.current" v-model:size="deviceInfo.size" :jumper="'hide'" v-model:current="deviceInfo.current"
@pagination="getDevice()"></Page> @pagination="getDevice()">
</Page>
<Page v-show="selType == '04'" style="position: relative;z-index: 100;" :total="total" <Page v-show="selType == '04'" style="position: relative;z-index: 100;" :total="total"
v-model:size="robotInfo.size" :jumper="'hide'" v-model:current="robotInfo.current" @pagination="getRobot()"> v-model:size="robotInfo.size" :jumper="'hide'" v-model:current="robotInfo.current" @pagination="getRobot()">
</Page> </Page>
@ -722,7 +727,8 @@
@pagination="getmainDevicePage()"></Page> @pagination="getmainDevicePage()"></Page>
<Page v-show="selType == '05' && associationTitle == '关联部件'" style="position: relative;z-index: 100;" <Page v-show="selType == '05' && associationTitle == '关联部件'" style="position: relative;z-index: 100;"
:total="total" v-model:size="pageInfo.size" :jumper="'hide'" v-model:current="pageInfo.current" :total="total" v-model:size="pageInfo.size" :jumper="'hide'" v-model:current="pageInfo.current"
@pagination="getComponentPage()"></Page> @pagination="getComponentPage()">
</Page>
</div> </div>
</template> </template>
</Eldialog> </Eldialog>
@ -732,8 +738,8 @@
<template v-slot:PopFrameContent> <template v-slot:PopFrameContent>
<div class="mt-[15px]" style="display: flex;align-items: center; justify-content: space-between;"> <div class="mt-[15px]" style="display: flex;align-items: center; justify-content: space-between;">
<div class="flex"> <div class="flex">
<el-input class="!w-[170px] mr-2" v-model="patrolDeviceName" placeholder="请输入巡视路线名称" @clear="searchNmaeLine()" <el-input class="!w-[170px] mr-2" v-model="patrolDeviceName" placeholder="请输入巡视路线名称"
@keyup.enter="searchNmaeLine()" /> @clear="searchNmaeLine()" @keyup.enter="searchNmaeLine()" />
<el-button class="searchButton" @click="searchNmaeLine">搜索</el-button> <el-button class="searchButton" @click="searchNmaeLine">搜索</el-button>
</div> </div>
<el-button class="searchButton" @click="associationLineConfirm">确定</el-button> <el-button class="searchButton" @click="associationLineConfirm">确定</el-button>
@ -857,8 +863,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务优先级" style="width:50%" class="screenHomepage "> <el-form-item label="任务优先级" style="width:50%" class="screenHomepage ">
<el-select class="selType" :teleported="false" :popper-append-to-body="false" :disabled="info.taskType == ''" <el-select class="selType" :teleported="false" :popper-append-to-body="false"
v-model="info.priority" placeholder="请选择任务优先级" style="width: 100%"> :disabled="info.taskType == ''" v-model="info.priority" placeholder="请选择任务优先级" style="width: 100%">
<el-option v-for="item in priority" :key="item.id" :label="item.dictname" :value="item.itemcode" /> <el-option v-for="item in priority" :key="item.id" :label="item.dictname" :value="item.itemcode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -967,7 +973,8 @@
<div style="margin-top: -3px;">上午</div> <div style="margin-top: -3px;">上午</div>
<el-checkbox-group v-model="checkListtime" @change="rediodtime(4)"> <el-checkbox-group v-model="checkListtime" @change="rediodtime(4)">
<div style=" display: flex;flex-wrap: wrap ;align-items: center;justify-content: flex-start;"> <div style=" display: flex;flex-wrap: wrap ;align-items: center;justify-content: flex-start;">
<el-checkbox style="display: block;" v-for="item in appointtime1" :label="item" size="large" /> <el-checkbox style="display: block;" v-for="item in appointtime1" :label="item"
size="large" />
</div> </div>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
@ -975,7 +982,8 @@
<div style="margin-top: -3px;">下午</div> <div style="margin-top: -3px;">下午</div>
<el-checkbox-group v-model="checkListtime" @change="rediodtime(4)"> <el-checkbox-group v-model="checkListtime" @change="rediodtime(4)">
<div style=" display: flex;flex-wrap: wrap ;align-items: center;justify-content: flex-start;"> <div style=" display: flex;flex-wrap: wrap ;align-items: center;justify-content: flex-start;">
<el-checkbox style="display: block;" v-for="item in appointtime2" :label="item" size="large" /> <el-checkbox style="display: block;" v-for="item in appointtime2" :label="item"
size="large" />
</div> </div>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
@ -1061,10 +1069,8 @@
<div style="margin-top: 20px;margin-bottom:10px;color:#fff;font-size: 14px;">表达式</div> <div style="margin-top: 20px;margin-bottom:10px;color:#fff;font-size: 14px;">表达式</div>
<div class="zuihou"> <el-input v-model="resentation" style="height: 40px;" disabled /></div> <div class="zuihou"> <el-input v-model="resentation" style="height: 40px;" disabled /></div>
<div style="width: 100%;display: flex;justify-content:center;margin-top:20px;"> <div style="width: 100%;display: flex;justify-content:center;margin-top:20px;">
<el-button class="three-button1" style="margin-right:40px;" <el-button class="three-button1" style="margin-right:40px;" @click="cronExpressions = false">取消</el-button>
@click="cronExpressions = false">取消</el-button> <el-button class="three-button1" @click="assignment">确定</el-button>
<el-button class="three-button1" @click="assignment"
>确定</el-button>
</div> </div>
</template> </template>
</Eldialog> </Eldialog>
@ -1076,6 +1082,9 @@ import { getPatrolDeviceStatus, getDeviceByType } from '@/api/device'
import { getSubstationBayByArea } from "@/api/task"; import { getSubstationBayByArea } from "@/api/task";
import { addTask } from "@/api/makeTask"; import { addTask } from "@/api/makeTask";
import { getdevicedata, getBayType, getMainEquipment, getComponentByBayPage, getMainDevicePage } from '@/api/device' import { getdevicedata, getBayType, getMainEquipment, getComponentByBayPage, getMainDevicePage } from '@/api/device'
// import {
// getSubstationBayByArea,
// } from "@/api/algorithm";
import Page from '@/components/Pagination/page.vue' import Page from '@/components/Pagination/page.vue'
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'
@ -1432,7 +1441,7 @@ function portClick(event) {
// Mesh // Mesh
// //
if (intersections[i].object.type == 'TransformControlsPlane') continue if (intersections[i].object.type == 'TransformControlsPlane') continue
drawline.value.push({x: intersections[i].point.x,y: 17.05,z: intersections[i].point.z}) drawline.value.push({ x: intersections[i].point.x, y: 17.05, z: intersections[i].point.z })
let gltfLoader = new OBJLoader() //obj let gltfLoader = new OBJLoader() //obj
// //
@ -3642,7 +3651,7 @@ function confirmClick() {
if (dataJson.value.UV[i].line != '' && dataJson.value.UV[i].line != null) { if (dataJson.value.UV[i].line != '' && dataJson.value.UV[i].line != null) {
let line = JSON.parse(dataJson.value.UV[i].line) let line = JSON.parse(dataJson.value.UV[i].line)
if (dataSel.value == '') { if (dataSel.value == '') {
if(line !=null) { if (line != null) {
ElMessage({ ElMessage({
message: '路线已绑定无人车,请解绑后重试', message: '路线已绑定无人车,请解绑后重试',
type: 'warning', type: 'warning',
@ -4202,7 +4211,7 @@ function removePointDiaConfirmClick() {
if (scene.children[i].userData.type == 'PatrolLine') { if (scene.children[i].userData.type == 'PatrolLine') {
for (let a = 0; a < scene.children[i].userData.linePonit.length; a++) { for (let a = 0; a < scene.children[i].userData.linePonit.length; a++) {
if (treeId.value == scene.children[i].userData.linePonit[a].uuid) { if (treeId.value == scene.children[i].userData.linePonit[a].uuid) {
scene.children[i].userData.linePonit.splice(a,1) scene.children[i].userData.linePonit.splice(a, 1)
a-- a--
} }
} }
@ -4867,6 +4876,36 @@ function getData() {
}) })
} }
// //
function getbay() {
if (!deviceInfo.value.areaId) {
deviceInfo.value.mainDeviceId = ''
deviceInfo.value.componentId = ''
deviceInfo.value.bayId = ''
}
getDevice()
getSubstationBayByArea({ stationCode: userStore.stationCode, areaId: deviceInfo.value.areaId }).then((res) => {
bayIdType.value = res.data
})
}
function getmainDevice() {
if (!deviceInfo.value.bayId) {
deviceInfo.value.mainDeviceId = ''
deviceInfo.value.componentId = ''
}
getDevice()
getMainEquipment({ bayId: deviceInfo.value.bayId }).then((res) => {
deviceMain.value = res.data
})
}
function getcomponent() {
if (!deviceInfo.value.mainDeviceId) {
deviceInfo.value.componentId = ''
}
getDevice()
getBayType({ mainDeviceId: deviceInfo.value.mainDeviceId }).then((res) => {
deviceComponent.value = res.data
})
}
function getDevice() { function getDevice() {
for (let i = 0; i < searchdata.value.length; i++) { for (let i = 0; i < searchdata.value.length; i++) {
if (searchdata.value[i] != undefined && searchdata.value[i].objinfo != undefined && searchdata.value[i].objinfo.deviceId != undefined) { if (searchdata.value[i] != undefined && searchdata.value[i].objinfo != undefined && searchdata.value[i].objinfo.deviceId != undefined) {
@ -4880,15 +4919,16 @@ function getDevice() {
current: deviceInfo.value.current, current: deviceInfo.value.current,
deviceName: deviceName.value, deviceName: deviceName.value,
mainDeviceId: deviceInfo.value.mainDeviceId, mainDeviceId: deviceInfo.value.mainDeviceId,
componentId: deviceInfo.value.componentId componentId: deviceInfo.value.componentId,
areaId: deviceInfo.value.areaId,
bayId: deviceInfo.value.bayId
} }
getBayType({ stationCode: userStore.stationCode }).then((res) => { getArea({ stationCode: userStore.stationCode }).then((res) => {
deviceComponent.value = res.data areaIdType.value = res.data
})
getMainEquipment({ stationCode: userStore.stationCode }).then((res) => {
deviceMain.value = res.data
}) })
getdevicedata(params).then((res) => { getdevicedata(params).then((res) => {
res.data.records.forEach((row) => { res.data.records.forEach((row) => {
if (row.patroldeviceJson) { if (row.patroldeviceJson) {
@ -5220,7 +5260,7 @@ function associationConfirm() {
scene.children[i].traverse(function (obj) { scene.children[i].traverse(function (obj) {
if (obj.uuid === onjId.value) { if (obj.uuid === onjId.value) {
if (multipleSelection.value.componentId) { if (multipleSelection.value.componentId) {
obj.name = multipleSelection.value.componentName obj.name =multipleSelection.value.mainDeviceName+'-'+ multipleSelection.value.componentName
} else { } else {
obj.name = multipleSelection.value.mainDeviceName obj.name = multipleSelection.value.mainDeviceName
} }
@ -5259,20 +5299,20 @@ function closeVideo(index) { // 关闭视频
const ws1 = new WebSocket(userStore.wsApiBaseUrl + '/websocket/taskresult_' + userStore.stationCode + "_" + userStore.userId); const ws1 = new WebSocket(userStore.wsApiBaseUrl + '/websocket/taskresult_' + userStore.stationCode + "_" + userStore.userId);
function setupWebSocket() { function setupWebSocket() {
ws1.onopen = () => { ws1.onopen = () => {
}; };
ws1.onerror = (error) => { ws1.onerror = (error) => {
}; };
ws1.onmessage = (e) => { ws1.onmessage = (e) => {
if (e.data != 0) { if (e.data != 0) {
getData() getData()
} }
} }
ws1.onclose = () => { ws1.onclose = () => {
}; };
} }
@ -5285,6 +5325,7 @@ ws1.onclose = () => {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
// //
.loadingBox { .loadingBox {
position: absolute; position: absolute;
@ -5721,6 +5762,7 @@ ws1.onclose = () => {
color: #009bff; color: #009bff;
} }
} }
.searchButton { .searchButton {
border: #009bff solid 1px; border: #009bff solid 1px;
background-color: #009bff; background-color: #009bff;
@ -5764,6 +5806,7 @@ ws1.onclose = () => {
.back { .back {
background-color: #131a25 !important; background-color: #131a25 !important;
} }
:deep(.is-disabled) { :deep(.is-disabled) {
background-color: #0a232000 !important; background-color: #0a232000 !important;
color: #009bff !important; color: #009bff !important;
@ -5847,9 +5890,11 @@ ws1.onclose = () => {
right: 20px; right: 20px;
cursor: pointer; cursor: pointer;
} }
.examination-contont { .examination-contont {
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
.examination-contont-text { .examination-contont-text {
margin-top: 11px; margin-top: 11px;
} }
@ -5865,6 +5910,7 @@ ws1.onclose = () => {
:deep(.el-input-number__increase) { :deep(.el-input-number__increase) {
background-color: transparent !important; background-color: transparent !important;
} }
:deep(.el-input-number.is-controls-right .el-input-number__increase) { :deep(.el-input-number.is-controls-right .el-input-number__increase) {
border: transparent !important; border: transparent !important;
} }
@ -5876,6 +5922,7 @@ ws1.onclose = () => {
:deep(.el-input-number .el-icon) { :deep(.el-input-number .el-icon) {
color: #009bff91 !important; color: #009bff91 !important;
} }
:deep(.el-input-number .el-icon:hover) { :deep(.el-input-number .el-icon:hover) {
color: #009bff !important; color: #009bff !important;
} }
@ -6045,6 +6092,7 @@ ws1.onclose = () => {
margin-top: -24px; margin-top: -24px;
} }
} }
:deep(.el-checkbox__input.is-checked + .el-checkbox__label) { :deep(.el-checkbox__input.is-checked + .el-checkbox__label) {
color: #fff !important; color: #fff !important;
} }

View File

@ -368,7 +368,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.commonLower inallList.baseLineValue = element.commonLower
inallList.alarmLevel = '2' inallList.alarmLevel = '1'
infoList.value.push(inallList) infoList.value.push(inallList)
} }
if (element.commonUpper) { if (element.commonUpper) {
@ -379,7 +379,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.commonUpper inallList.baseLineValue = element.commonUpper
inallList.alarmLevel = '2' inallList.alarmLevel = '1'
infoList.value.push(inallList) infoList.value.push(inallList)
} }
@ -391,7 +391,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.seriousLower inallList.baseLineValue = element.seriousLower
inallList.alarmLevel = '3' inallList.alarmLevel = '2'
infoList.value.push(inallList) infoList.value.push(inallList)
} }
if (element.seriousUpper) { if (element.seriousUpper) {
@ -402,7 +402,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.seriousUpper inallList.baseLineValue = element.seriousUpper
inallList.alarmLevel = '3' inallList.alarmLevel = '2'
infoList.value.push(inallList) infoList.value.push(inallList)
} }
@ -414,7 +414,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.dangerLower inallList.baseLineValue = element.dangerLower
inallList.alarmLevel = '4' inallList.alarmLevel = '3'
infoList.value.push(inallList) infoList.value.push(inallList)
} }
if (element.dangerUpper) { if (element.dangerUpper) {
@ -425,7 +425,7 @@ function confirmClick() {
inallList.decisionValueClass = '1' inallList.decisionValueClass = '1'
inallList.alarmDesc = ''// inallList.alarmDesc = ''//
inallList.baseLineValue = element.dangerUpper inallList.baseLineValue = element.dangerUpper
inallList.alarmLevel = '4' inallList.alarmLevel = '3'
infoList.value.push(inallList) infoList.value.push(inallList)
} }

View File

@ -150,7 +150,16 @@ function addAlgorithmsan() {
} }
function saveAlgor(row: any) { function saveAlgor(row: any) {
if (row.algor) {
if (!(row.paramName && row.paramType && row.paramFixed)) {
ElMessage.warning('请填写参数名称,类型和是否固定参数')
return
} else {
row.algor = !row.algor row.algor = !row.algor
}
} else {
row.algor = !row.algor
}
} }
function delAlgor(row: any) { function delAlgor(row: any) {
algorithmData.value.splice(row.$index, 1); algorithmData.value.splice(row.$index, 1);
@ -175,6 +184,12 @@ function confirmClick(formEl: any) {
algorithmData.value.forEach((item: any, index: any) => { algorithmData.value.forEach((item: any, index: any) => {
item.paramOrder = index + 1 item.paramOrder = index + 1
}) })
for (let i = 0; i < algorithmData.value.length; i++) {
if (!(algorithmData.value[i].paramName && algorithmData.value[i].paramType &&algorithmData.value[i].paramFixed)) {
ElMessage.warning('请填写参数名称,类型和是否固定参数')
return
}
}
addAlgorithmClassAndParams({ algorithmClass: algorithmform.value, algorithmParamsList: algorithmData.value }).then((res: any) => { addAlgorithmClassAndParams({ algorithmClass: algorithmform.value, algorithmParamsList: algorithmData.value }).then((res: any) => {
console.log(res) console.log(res)
if (res.code == 0) { if (res.code == 0) {
@ -233,11 +248,8 @@ function handleClose1() {
} }
function replace() { function replace() {
meterdata.value.forEach((item: any) => { meterdata.value.forEach((item: any) => {
// item.paramId = item.id
item.componentId = componentId.value item.componentId = componentId.value
// item.algorithmId=
}) })
console.log(meterdata.value)
batchAddAlgorithmDevice(meterdata.value).then((res: any) => { batchAddAlgorithmDevice(meterdata.value).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
mainble.value = false mainble.value = false
@ -323,8 +335,8 @@ const mainble = ref()
function editmain(row: any) { function editmain(row: any) {
mainble.value = true mainble.value = true
meterloding.value = true meterloding.value = true
componentId.value= row.componentId componentId.value = row.componentId
getAlgorithmParamsList({ algorithmId: row.algorithmId,componentId: componentId.value}).then((res: any) => { getAlgorithmParamsList({ algorithmId: row.algorithmId, componentId: componentId.value }).then((res: any) => {
meterdata.value = res.data meterdata.value = res.data
meterloding.value = false meterloding.value = false
}) })
@ -339,7 +351,7 @@ const tableref = ref()
const deviceId = ref('') const deviceId = ref('')
const componentId = ref('') const componentId = ref('')
function selentDevide(row: any) { function selentDevide(row: any) {
cnshuId.value = row.id cnshuId.value = row.paramId
if (row.deviceId) { if (row.deviceId) {
deviceId.value = row.deviceId deviceId.value = row.deviceId
} }
@ -359,24 +371,21 @@ function suredevice() {
selectble.value = false selectble.value = false
devicedata.value.length = 0 devicedata.value.length = 0
meterdata.value.forEach((item: any) => { meterdata.value.forEach((item: any) => {
if (item.id == cnshuId.value) { if (item.paramId == cnshuId.value) {
if (sourceType.value == 1) { if (sourceType.value == 1) {
item.deviceId = deviceIdList.value.deviceId item.deviceId = deviceIdList.value.deviceId
item.deviceName = deviceIdList.value.deviceName item.deviceName = deviceIdList.value.deviceName
// item.componentId = deviceIdList.value.componentId
item.paramValue = deviceIdList.value.deviceName item.paramValue = deviceIdList.value.deviceName
} else if (sourceType.value == 2) { } else if (sourceType.value == 2) {
item.deviceId = deviceIdList.value.signalId item.deviceId = deviceIdList.value.signalId
item.deviceName = deviceIdList.value.signalName item.deviceName = deviceIdList.value.signalName
// item.componentId = deviceIdList.value.mainComponentId
item.paramValue = deviceIdList.value.signalName item.paramValue = deviceIdList.value.signalName
} }
item.sourceType = sourceType.value item.sourceType = sourceType.value
} }
// item.paramId = deviceIdList.value.paramId
}) })
console.log( meterdata.value) console.log(meterdata.value)
} }
function typeChange(val: any) { function typeChange(val: any) {
sourceType.value = val sourceType.value = val
@ -406,7 +415,7 @@ function getdevicedata1() {
devicedataloading.value = false devicedataloading.value = false
nextTick(() => { nextTick(() => {
if (deviceId.value) { if (deviceId.value) {
const foundObj = devicedata.value.find((item:any) => item.deviceId == deviceId.value); const foundObj = devicedata.value.find((item: any) => item.deviceId == deviceId.value);
tableref.value!.setCurrentRow(foundObj) tableref.value!.setCurrentRow(foundObj)
} }
}); });
@ -422,7 +431,7 @@ function getdevicedata1() {
devicedataloading.value = false devicedataloading.value = false
nextTick(() => { nextTick(() => {
if (deviceId.value) { if (deviceId.value) {
const foundObj = devicedata.value.find((item:any) => item.signalId == deviceId.value); const foundObj = devicedata.value.find((item: any) => item.signalId == deviceId.value);
tableref.value!.setCurrentRow(foundObj) tableref.value!.setCurrentRow(foundObj)
} }
}); });
@ -597,7 +606,7 @@ onMounted(() => {
</Page> </Page>
</section> </section>
<!--弹框--> <!--弹框-->
<Eldialog v-if="algorithmible" :title="title" :zIndex="2000" :width="'60%'" @before-close="handleClose"> <Eldialog v-if="algorithmible" :title="title" :zIndex="2000" :width="'1150px'" @before-close="handleClose">
<template v-slot:PopFrameContent> <template v-slot:PopFrameContent>
<el-form ref="ruleFormRef" style="padding: 15px 0px 0px;" :model="algorithmform" :rules="moderules" <el-form ref="ruleFormRef" style="padding: 15px 0px 0px;" :model="algorithmform" :rules="moderules"
label-width="auto"> label-width="auto">
@ -719,7 +728,7 @@ onMounted(() => {
</span> </span>
</template> </template>
</Eldialog> </Eldialog>
<Eldialog v-if="masterble" :title="title" :zIndex="2000" :width="'60%'" @before-close="handleClose1"> <Eldialog v-if="masterble" :title="title" :zIndex="2000" :width="'1150px'" @before-close="handleClose1">
<template v-slot:PopFrameContent> <template v-slot:PopFrameContent>
<div <div
style="width: 100%;display: flex;justify-content: space-between;align-items: center;margin-top: 10px;"> style="width: 100%;display: flex;justify-content: space-between;align-items: center;margin-top: 10px;">
@ -842,16 +851,18 @@ onMounted(() => {
width="140"></el-table-column> width="140"></el-table-column>
<el-table-column v-if="sourceType == 1" label="巡视点位名称" align="center" <el-table-column v-if="sourceType == 1" label="巡视点位名称" align="center"
prop="deviceName"></el-table-column> prop="deviceName"></el-table-column>
<el-table-column v-if="sourceType == 1" label="所属主设备" prop="mainDeviceName" align="center" <el-table-column v-if="sourceType == 1" label="所属主设备" prop="mainDeviceName"
width="120"></el-table-column> align="center" width="120"></el-table-column>
<el-table-column v-if="sourceType == 1" label="主设备类型" prop="deviceType" align="center" width="120"> <el-table-column v-if="sourceType == 1" label="主设备类型" prop="deviceType" align="center"
width="120">
<template #default="scope"> <template #default="scope">
<span>{{ currency(EquipmentType, scope.row.deviceType) }}</span> <span>{{ currency(EquipmentType, scope.row.deviceType) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="sourceType == 1" label="所属部件" align="center" prop="componentName" <el-table-column v-if="sourceType == 1" label="所属部件" align="center" prop="componentName"
width="160"></el-table-column> width="160"></el-table-column>
<el-table-column v-if="sourceType == 1" label="表计类型" align="center" prop="meterType" width="100"> <el-table-column v-if="sourceType == 1" label="表计类型" align="center" prop="meterType"
width="100">
<template #default="scope"> <template #default="scope">
<span>{{ currency(Metertype, scope.row.meterType) }}</span> <span>{{ currency(Metertype, scope.row.meterType) }}</span>
</template> </template>
@ -862,16 +873,20 @@ onMounted(() => {
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="sourceType == 2" label="信号编号" align="center" prop="signalCode" width="100" /> <el-table-column v-if="sourceType == 2" label="信号编号" align="center" prop="signalCode"
width="100" />
<el-table-column v-if="sourceType == 2" label="信号名称" align="center" prop="signalName" <el-table-column v-if="sourceType == 2" label="信号名称" align="center" prop="signalName"
min-width="140" /> min-width="140" />
<el-table-column v-if="sourceType == 2" label="信号单位" align="center" prop="signalUnit" width="80" /> <el-table-column v-if="sourceType == 2" label="信号单位" align="center" prop="signalUnit"
<el-table-column v-if="sourceType == 2" label="遥控遥调类型" align="center" prop="ykytType" width="150"> width="80" />
<el-table-column v-if="sourceType == 2" label="遥控遥调类型" align="center" prop="ykytType"
width="150">
<template #default="scope"> <template #default="scope">
<span>{{ isykyttype(scope.row.ykytType) }}</span> <span>{{ isykyttype(scope.row.ykytType) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="sourceType == 2" label="是否告警信号" align="center" prop="signalType" width="100"> <el-table-column v-if="sourceType == 2" label="是否告警信号" align="center" prop="signalType"
width="100">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.signalType === '1'"></span> <span v-if="scope.row.signalType === '1'"></span>
<span v-else></span> <span v-else></span>

View File

@ -1402,7 +1402,7 @@ function handleSelectionChange(val: any) {
if (val.length == 2) { if (val.length == 2) {
val.pop() val.pop()
multipleTableRef.value!.toggleRowSelection(val[0], undefined) multipleTableRef.value!.toggleRowSelection(val[0], undefined)
}else{ } else {
vicode.value[0].patroldevice_name = val[0].patroldeviceName vicode.value[0].patroldevice_name = val[0].patroldeviceName
vicode.value[0].patroldevice_code = val[0].patroldeviceCode vicode.value[0].patroldevice_code = val[0].patroldeviceCode
} }
@ -1847,20 +1847,20 @@ function handleSelectionChange(val: any) {
@keyup.enter="getCamera()" @keyup.enter="getCamera()"
style="margin-right:15px ;margin-top:10px;width: 96%;margin-left:5px;" /> style="margin-right:15px ;margin-top:10px;width: 96%;margin-left:5px;" />
<div> <div>
<el-tree ref="treeRef" class="Tree" <el-scrollbar height="calc(80vh)">
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'" <el-tree ref="treeRef"
node-key="channelId" :data="allCamera" :current-node-key="currentNodeKey" node-key="channelId" :data="allCamera" :current-node-key="currentNodeKey"
:highlight-current="true" :props="defaultprops" v-loading="treeloading" :highlight-current="true" :props="defaultprops" v-loading="treeloading"
@node-click="handleClick" @node-click="handleClick"
style="height: calc(80vh - 65px);width:96% ;margin-top: 10px; overflow: auto;margin-left:5px;"> style="width:96% ;margin-top: 10px;margin-left:5px;">
<template #default="{ node }"> <template #default="{ node }">
<span v-if="node.data.type == 10 && node.data.useMode == 10"> <span v-if="node.data.type == 10 && node.data.useMode == 10">
<span v-if="node.level == 1" <span v-if="node.level == 1"
:style="{ color: node.data.online == '1' ? '#409eff' : 'red' }"> :style="{ color: node.data.online == '1' ? '#409eff' : 'red' }">
<svg style="margin-right: 5px;" t="1682315445615" class="icon" <svg style="margin-right: 5px;" t="1682315445615" class="icon"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"
p-id="11437" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" xmlns="http://www.w3.org/2000/svg" p-id="11437"
height="20"> xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20">
<path fill="currentColor" <path fill="currentColor"
d="M218.3 124.6h77.8l635.8 415.2-223.8 165.5h-48.7L117.7 338.7v-51.9z" d="M218.3 124.6h77.8l635.8 415.2-223.8 165.5h-48.7L117.7 338.7v-51.9z"
p-id="11438"></path> p-id="11438"></path>
@ -1876,10 +1876,10 @@ function handleSelectionChange(val: any) {
<span v-if="node.data.type == 10 && node.data.useMode == 11"> <span v-if="node.data.type == 10 && node.data.useMode == 11">
<span v-if="node.level == 1" <span v-if="node.level == 1"
:style="{ color: node.data.online == '1' ? '#409eff' : 'red' }"> :style="{ color: node.data.online == '1' ? '#409eff' : 'red' }">
<svg t="1686725618148" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg t="1686725618148" class="icon" viewBox="0 0 1024 1024"
style="margin-right: 5px;" xmlns="http://www.w3.org/2000/svg" version="1.1" style="margin-right: 5px;"
p-id="2814" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" xmlns="http://www.w3.org/2000/svg" p-id="2814"
height="18"> xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18">
<path fill="currentColor" <path fill="currentColor"
d="M954.88 590.72a432.64 432.64 0 0 0-409.6-457.6V0H151.04v64h263.04v76.8c-201.6 38.4-344.96 203.52-344.96 448-1.28 0.64 887.04 4.48 885.76 1.92zM197.76 661.12C198.4 860.16 311.68 1024 512 1024s314.24-161.92 314.24-360.96H197.76zM512 912A85.76 85.76 0 0 1 420.48 832 86.4 86.4 0 0 1 512 752.64 86.4 86.4 0 0 1 603.52 832 85.76 85.76 0 0 1 512 912z" d="M954.88 590.72a432.64 432.64 0 0 0-409.6-457.6V0H151.04v64h263.04v76.8c-201.6 38.4-344.96 203.52-344.96 448-1.28 0.64 887.04 4.48 885.76 1.92zM197.76 661.12C198.4 860.16 311.68 1024 512 1024s314.24-161.92 314.24-360.96H197.76zM512 912A85.76 85.76 0 0 1 420.48 832 86.4 86.4 0 0 1 512 752.64 86.4 86.4 0 0 1 603.52 832 85.76 85.76 0 0 1 512 912z"
p-id="2815"></path> p-id="2815"></path>
@ -1892,6 +1892,8 @@ function handleSelectionChange(val: any) {
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
</template> </template>
</el-tree> </el-tree>
</el-scrollbar>
</div> </div>
</div> </div>
<div class="Camera"> <div class="Camera">
@ -2037,7 +2039,7 @@ function handleSelectionChange(val: any) {
</div> </div>
</div> </div>
<div style="width:100%;display: flex;margin: 10px 0px ;"> <!-- <div style="width:100%;display: flex;margin: 10px 0px ;"> -->
<!-- <div style="width: 50%; "> <!-- <div style="width: 50%; ">
<div style="display: inline-block;">表计量程最小值/最小值角度</div> <div style="display: inline-block;">表计量程最小值/最小值角度</div>
@ -2055,7 +2057,7 @@ function handleSelectionChange(val: any) {
<div style="position:absolute; top: 5px;right:8px; color:#a8abb2 ;"></div> <div style="position:absolute; top: 5px;right:8px; color:#a8abb2 ;"></div>
</div> </div>
</div> --> </div> -->
</div> <!-- </div> -->
<span class="dialog-footer" <span class="dialog-footer"
style="width: 100%;margin: auto; display: flex;display: -webkit-flex; justify-content: center;-webkit-justify-content: center;margin-top: 20px;"> style="width: 100%;margin: auto; display: flex;display: -webkit-flex; justify-content: center;-webkit-justify-content: center;margin-top: 20px;">
@ -2287,7 +2289,7 @@ function handleSelectionChange(val: any) {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
width: 100%; width: 100%;
margin-top: 10px;
.Camera-left-switch { .Camera-left-switch {
width: 260px; width: 260px;
@ -2419,23 +2421,22 @@ function handleSelectionChange(val: any) {
width: 260px !important; width: 260px !important;
} }
:deep(.el-tree-node.is-current>.el-tree-node__content) {
width: 100%;
height: 40px;
color: #fff !important;
}
:deep(.Tree .el-tree-node.is-current>.el-tree-node__content) { :deep(.Tree .el-tree-node.is-current>.el-tree-node__content) {
width: 100%; width: 100%;
height: 40px; height: 40px;
// color: #209F84 !important; // color: #209F84 !important;
} }
.CameraLeft{
:deep(.el-tree-node__content) { :deep(.el-tree-node__content) {
width: 100% !important; width: 100% !important;
height: 40px !important; min-height: 40px !important;
margin: auto !important; padding: 3px 0px !important;
// margin: auto !important;
} }
}
.el-message-box { .el-message-box {
width: 300px !important; width: 300px !important;
@ -2681,7 +2682,7 @@ function handleSelectionChange(val: any) {
.CameraLeft { .CameraLeft {
width: 240px; width: 240px;
background: url(@/assets/newimg/spjk_260.png); background: url(@/assets/navigation/ty_260x988.png);
background-size: 100% 100%; background-size: 100% 100%;
margin-right: 10px; margin-right: 10px;
} }

View File

@ -237,6 +237,10 @@ function gettoday() {
<div class="content_one_title">遥控遥调类型</div> <div class="content_one_title">遥控遥调类型</div>
<div class="content_one_text">{{ signaldata.ykytType }}</div> <div class="content_one_text">{{ signaldata.ykytType }}</div>
</div> </div>
<div class="content_one">
<div class="content_one_title">设备编号</div>
<div class="content_one_text">{{ signaldata.deviceCode }}</div>
</div>
<div class="content_one"> <div class="content_one">
<div class="content_one_title">设备名称</div> <div class="content_one_title">设备名称</div>
<div class="content_one_text">{{ signaldata.deviceName }}</div> <div class="content_one_text">{{ signaldata.deviceName }}</div>
@ -246,12 +250,8 @@ function gettoday() {
<div class="content_one_text">{{ signaldata.deviceModel }}</div> <div class="content_one_text">{{ signaldata.deviceModel }}</div>
</div> </div>
<div class="content_one"> <div class="content_one">
<div class="content_one_title">协议类型</div> <div class="content_one_title">安装位置</div>
<div class="content_one_text">{{ signaldata.protocol }}</div> <div class="content_one_text">{{ signaldata.place }}</div>
</div>
<div class="content_one">
<div class="content_one_title">采集频率</div>
<div class="content_one_text">{{ signaldata.frequency }}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -793,7 +793,8 @@ const isGaoliang: any = ref("")
</div> </div>
</div> </div>
<el-scrollbar style="margin-left:0px ;margin-top:10px ;" height="calc(100vh - 270px)"> <el-scrollbar style="margin-left:0px ;margin-top:10px ;" height="calc(100vh - 270px)">
<el-tree :data="treeData" :props="defaultprops" @node-click="handleNodeClick" default-expand-all
<el-tree :data="treeData" :props="defaultprops" @node-click="handleNodeClick" default-expand-all :highlight-current="true"
:current-node-key="currentNodeKey" node-key="bayId"> :current-node-key="currentNodeKey" node-key="bayId">
<template #default="{ node }"> <template #default="{ node }">
<span v-if="node.data.type == 10 && node.data.useMode == 10"> <span v-if="node.data.type == 10 && node.data.useMode == 10">
@ -846,16 +847,16 @@ const isGaoliang: any = ref("")
<img v-else src="@/assets/monitorsystem/spjk_16p.png" alt="" @click="screenNumClick(16)"> <img v-else src="@/assets/monitorsystem/spjk_16p.png" alt="" @click="screenNumClick(16)">
</div> </div>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<el-checkbox v-model="isTimer" label="轮播" size="large" @change="animationInfo" <!-- <el-checkbox v-model="isTimer" label="轮播" size="large" @change="animationInfo"
style="margin:0 10px 0px 30px">轮播</el-checkbox> style="margin:0 10px 0px 30px">轮播</el-checkbox> -->
<el-input v-model="minute" placeholder="" oninput="value=value.replace(/^\.+|[^\d]/g,'')" <!-- <el-input v-model="minute" placeholder="" oninput="value=value.replace(/^\.+|[^\d]/g,'')"
style="margin-right:20px ;width: 80px;height: 28px;" class="videomonitor-input"> style="margin-right:20px ;width: 80px;height: 28px;" class="videomonitor-input">
<template #suffix> <template #suffix>
<span>分钟</span> <span>分钟</span>
</template> </template>
</el-input> </el-input> -->
<el-pagination class="paginationclass" background v-model:current-page="currentPage" :page-size="screenNum" <!-- <el-pagination class="paginationclass" background v-model:current-page="currentPage" :page-size="screenNum"
:small="true" layout="pager" :total="total" @current-change="handleCurrentChange" /> :small="true" layout="pager" :total="total" @current-change="handleCurrentChange" /> -->
<div title="添加视频版块" <div title="添加视频版块"
style="position: relative; margin-left:10px;margin-right:5px;cursor:pointer; width:24px;height:24px;font-size:18px;background:rgba(0, 155, 255, 1);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:3px" style="position: relative; margin-left:10px;margin-right:5px;cursor:pointer; width:24px;height:24px;font-size:18px;background:rgba(0, 155, 255, 1);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:3px"
@click="addVideo" v-if="screenNum == 16"> @click="addVideo" v-if="screenNum == 16">
@ -1013,7 +1014,7 @@ const isGaoliang: any = ref("")
</div> </div>
</div> </div>
<div style="display: flex;padding-top: 25px;padding-left: 30px;"> <!-- <div style="display: flex;padding-top: 25px;padding-left: 30px;">
<span style="display: block;padding-left: 10px;font-size: 14px; font-family: '微软雅黑'; <span style="display: block;padding-left: 10px;font-size: 14px; font-family: '微软雅黑';
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
@ -1023,12 +1024,12 @@ const isGaoliang: any = ref("")
<span style="display: block;padding-left:70px;font-size: 14px; color: rgba(255, 255, 255, 0.8);">红外</span> <span style="display: block;padding-left:70px;font-size: 14px; color: rgba(255, 255, 255, 0.8);">红外</span>
<el-switch style="display: block;margin-left:10px" v-model="isInfrared" inline-prompt @change="infraredClick" <el-switch style="display: block;margin-left:10px" v-model="isInfrared" inline-prompt @change="infraredClick"
active-value="255" inactive-value="0" /> active-value="255" inactive-value="0" />
</div> </div> -->
<div style="display: flex;align-items: center; padding-top: 25px;padding-left: 15px;"> <div style="display: flex;align-items: center; padding-top: 25px;padding-left: 15px;">
<span <span
style="display: block;padding-left: 10px;padding-right: 10px;font-size: 14px; color: rgba(255, 255, 255, 0.8);">预置位</span> style="display: block;padding-left: 10px;padding-right: 10px;font-size: 14px; color: rgba(255, 255, 255, 0.8);">预置位</span>
<el-input-number class="beforehandPosition-input" style="width: 75px" v-model="beforehandPosition" :min="1" <el-input-number class="beforehandPosition-input" style="width: 75px" v-model="beforehandPosition" :min="1"
:max="10" controls-position="right" size="large" /> controls-position="right" size="large" />
<div title="设置" class="Camera-operate-buttons" @click="presetPosition(129, beforehandPosition)"> <div title="设置" class="Camera-operate-buttons" @click="presetPosition(129, beforehandPosition)">
<img src="@/assets/videoimg/u3366.png" alt="" style="cursor: pointer;"> <img src="@/assets/videoimg/u3366.png" alt="" style="cursor: pointer;">
</div> </div>
@ -1039,7 +1040,7 @@ const isGaoliang: any = ref("")
<img src="@/assets/videoimg/u3370.png" alt=""> <img src="@/assets/videoimg/u3370.png" alt="">
</div> </div>
</div> </div>
<div style="width: 250px;height: 1px;background: rgba(50, 177, 245, 0.2); margin: 20px;"></div> <div style="width: 250px;height: 1px;background: rgba(50, 177, 245, 0.2); margin:50px 20px;"></div>
<div style="padding-top:0px;padding-left:20px;padding-bottom:10px;font-family: 'Arial Normal', 'Arial'; <div style="padding-top:0px;padding-left:20px;padding-bottom:10px;font-family: 'Arial Normal', 'Arial';
font-weight: 400; font-style: normal; font-size: 14px;color: #009BFF;display: flex; font-weight: 400; font-style: normal; font-size: 14px;color: #009BFF;display: flex;
align-items: center;"> align-items: center;">
@ -1360,9 +1361,9 @@ const isGaoliang: any = ref("")
color: #fff !important; color: #fff !important;
} }
:deep(.el-icon) { // :deep(.el-icon) {
transform: scale(1) !important; // transform: scale(1) !important;
} // }
// :deep(.el-input__wrapper) { // :deep(.el-input__wrapper) {
// background: transparent; // background: transparent;

View File

@ -95,7 +95,7 @@
<div class="one_box_all"> <div class="one_box_all">
<div class="all_img"><img src="@/assets/sytlechange/one_right5.svg" alt=""></div> <div class="all_img"><img src="@/assets/sytlechange/one_right5.svg" alt=""></div>
<div class="all_text"> <div class="all_text">
<div class="all_text_qian">避雷</div> <div class="all_text_qian">避雷</div>
<div> <div>
<span class="all_text_hou_one">{{ equipmentlist.lightningRod }}</span> <span class="all_text_hou_one">{{ equipmentlist.lightningRod }}</span>
<span class="all_text_hou_two"></span> <span class="all_text_hou_two"></span>
@ -264,10 +264,14 @@
:class="{ 'table_active': index % 2 == 0 }" @dblclick="processClick(item)"> :class="{ 'table_active': index % 2 == 0 }" @dblclick="processClick(item)">
<div class="tr1 tr" :title="item.content">{{ item.content }}</div> <div class="tr1 tr" :title="item.content">{{ item.content }}</div>
<div class="tr2 tr"> <div class="tr2 tr">
<span v-if="item.alarmLevel == 1" style="color: #0099FF;">预警</span> <!-- <span v-if="item.alarmLevel == 1" style="color: #0099FF;">预警</span>
<span v-if="item.alarmLevel == 2" style="color: #FFFF00;">一般</span> <span v-if="item.alarmLevel == 2" style="color: #FFFF00;">一般</span>
<span v-if="item.alarmLevel == 3" style="color: #FF9900;">严重</span> <span v-if="item.alarmLevel == 3" style="color: #FF9900;">严重</span>
<span v-if="item.alarmLevel == 4" style="color: #FF3300;">危急</span> <span v-if="item.alarmLevel == 4" style="color: #FF3300;">危急</span> -->
<span v-if="item.alarmLevel == 1" style="color: #0099FF;">一般</span>
<span v-if="item.alarmLevel == 2" style="color: #FFFF00;">严重</span>
<span v-if="item.alarmLevel == 3" style="color: #FF9900;">危急</span>
<!-- <span v-if="item.alarmLevel == 4" style="color: #FF3300;">危急</span> -->
</div> </div>
<div class="tr3 tr">{{ dateFormat(item.alarmDate) }}</div> <div class="tr3 tr">{{ dateFormat(item.alarmDate) }}</div>
</div> </div>
@ -769,7 +773,7 @@ const tabs = ref(1)
.stationboard-left2 { .stationboard-left2 {
position: absolute; position: absolute;
top: 430px; top: 420px;
left: 15px; left: 15px;
width: 450px; width: 450px;
height: 290px; height: 290px;
@ -866,7 +870,7 @@ const tabs = ref(1)
.stationboard-left3 { .stationboard-left3 {
position: absolute; position: absolute;
top: 730px; top: 715px;
left: 15px; left: 15px;
width: 450px; width: 450px;
height: 273px; height: 273px;
@ -951,7 +955,7 @@ const tabs = ref(1)
.stationboard-right2 { .stationboard-right2 {
position: absolute; position: absolute;
top: 350px; top: 340px;
right: 15px; right: 15px;
width: 450px; width: 450px;
height: 317px; height: 317px;
@ -1043,7 +1047,7 @@ const tabs = ref(1)
.stationboard-right3 { .stationboard-right3 {
position: absolute; position: absolute;
top: 684px; top: 666px;
right: 15px; right: 15px;
width: 450px; width: 450px;
height: 323px; height: 323px;

View File

@ -312,6 +312,15 @@ const tableRowClassName = ({
} }
return '' return ''
} }
function currency(list: any, itemcode: any) {
let dictname = ''
list.forEach((element: any) => {
if (element.itemcode == itemcode) {
dictname = element.dictname
}
})
return dictname
}
</script> </script>
<template> <template>
<div class="faulttemplate-box"> <div class="faulttemplate-box">
@ -330,11 +339,11 @@ const tableRowClassName = ({
<div <div
style="margin-bottom:10px;display: flex;display: -webkit-flex; justify-content: space-between;-webkit-justify-content: space-between; width: 100%;"> style="margin-bottom:10px;display: flex;display: -webkit-flex; justify-content: space-between;-webkit-justify-content: space-between; width: 100%;">
<div> <div>
<el-input v-model="queryparams.deviceName" placeholder="请输入设备名称" style="width: 220px;" <el-input v-model="queryparams.deviceName" placeholder="请输入设备名称" style="width: 220px;" @change="getData"
clearable /> clearable />
<el-input v-model="queryparams.deviceModel" placeholder="请输入设备型号" <el-input v-model="queryparams.deviceModel" placeholder="请输入设备型号"
style="width: 220px;margin-left: 10px;" clearable /> style="width: 220px;margin-left: 10px;" clearable @change="getData" />
<el-select v-model="queryparams.deviceType" placeholder="请选择设备类型" <el-select v-model="queryparams.deviceType" placeholder="请选择设备类型" @change="getData"
style="width: 220px;margin-left: 10px;" clearable> style="width: 220px;margin-left: 10px;" clearable>
<el-option v-for="item in typeoptions" :key="item.itemcode" :label="item.dictname" <el-option v-for="item in typeoptions" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" /> :value="item.itemcode" />
@ -359,9 +368,13 @@ const tableRowClassName = ({
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }"> :header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
<el-table-column type="selection" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column label="序号" align="center" type="index" width="50" /> <el-table-column label="序号" align="center" type="index" width="50" />
<el-table-column label="设备编号" align="center" prop="deviceCode" width="80" /> <el-table-column label="设备编号" align="center" prop="deviceCode" width="100" />
<el-table-column label="设备名称" align="left" prop="deviceName" width="120" /> <el-table-column label="设备名称" align="left" prop="deviceName" />
<el-table-column label="设备类型" align="center" prop="deviceTypeName" width="170" /> <el-table-column label="设备类型" align="left" prop="deviceType" width="150" >
<template v-slot="scope">
{{ currency(typeoptions,scope.row.deviceType) }}
</template>
</el-table-column>
<el-table-column label="设备型号" align="center" prop="deviceModel" width="120" /> <el-table-column label="设备型号" align="center" prop="deviceModel" width="120" />
<el-table-column label="出厂编号" align="center" prop="productionNum" width="100" /> <el-table-column label="出厂编号" align="center" prop="productionNum" width="100" />
<el-table-column label="出厂日期" align="center" prop="productionDate" width="160"> <el-table-column label="出厂日期" align="center" prop="productionDate" width="160">

View File

@ -37,7 +37,7 @@ interface Tree {
label: string; label: string;
} }
const produrl = ref('') const produrl = ref('')
const contentstyleval = ref('body { background-color: #282828;color:#fff;border:none;}') const contentstyleval = ref('body { background-color: #001e55;color:#fff;border:none;}')
const initlist = ref({ const initlist = ref({
selector: 'textarea', selector: 'textarea',
language_url: produrl.value + '/tinymce/langs/zh_CN.js', language_url: produrl.value + '/tinymce/langs/zh_CN.js',
@ -70,7 +70,7 @@ watch(useDark(), () => {
isDark = '1' isDark = '1'
if (useDark().value == true) { if (useDark().value == true) {
initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide-dark' initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide-dark'
contentstyleval.value = 'body { background-color: #282828;color:#fff;border:none;}' contentstyleval.value = 'body { background-color: #001e55;color:#fff;border:none;}'
} else { } else {
initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide' initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide'
contentstyleval.value = 'body { background-color: #fff;color:#000;border:none;}' contentstyleval.value = 'body { background-color: #fff;color:#000;border:none;}'
@ -86,7 +86,7 @@ watch(dialogVisible, () => {
if (isDark === '1') { if (isDark === '1') {
// //
initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide-dark' initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide-dark'
contentstyleval.value = 'body { background-color: #282828;color:#fff;border:none;}' contentstyleval.value = 'body { background-color: #001e55;color:#fff;border:none;}'
} else { } else {
initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide' initlist.value.skin_url = produrl.value + '/tinymce/skins/ui/oxide'
contentstyleval.value = 'body { background-color: #fff;color:#000;border:none;}' contentstyleval.value = 'body { background-color: #fff;color:#000;border:none;}'

View File

@ -657,4 +657,5 @@ function currency1(list: any, itemcode: any) {
:deep(.el-input .el-input__count .el-input__count-inner) { :deep(.el-input .el-input__count .el-input__count-inner) {
background-color: rgba(240, 248, 255, 0); background-color: rgba(240, 248, 255, 0);
} }
</style> </style>

View File

@ -113,7 +113,7 @@ const deviceName = ref('')
const tableData: any = ref() const tableData: any = ref()
const loading = ref(false) const loading = ref(false)
const flag = ref() const flag = ref()
const paramstable = ref({ const paramstable:any = ref({
size: 10, size: 10,
current: 1, current: 1,
deviceName: '', deviceName: '',
@ -131,7 +131,8 @@ function getData() {
type: paramstable.value.type, type: paramstable.value.type,
deviceModel: deviceModel.value, deviceModel: deviceModel.value,
manufacturer: manufacturer.value, manufacturer: manufacturer.value,
flag: flag.value == true ? '1' : '0' flag: flag.value == true ? '1' : '0',
online:paramstable.value.online,
} }
getdata(params).then((res: any) => { getdata(params).then((res: any) => {
loading.value = false loading.value = false
@ -148,7 +149,8 @@ function resetting() {
size: 10, size: 10,
current: 1, current: 1,
deviceName: '', deviceName: '',
type: '' type: '',
online: '',
} }
deviceName.value = '' deviceName.value = ''
@ -682,6 +684,7 @@ function handleEdit(row: any) {
channel_type: '1', channel_type: '1',
channel_code: '', channel_code: '',
channel_rtspurl: '', channel_rtspurl: '',
assist_rtspurl: '',
from_device: '', from_device: '',
recorder_code: '', recorder_code: '',
recorder_channelcode: '' recorder_channelcode: ''
@ -889,6 +892,7 @@ function confirmClick(formEl: any) {
if (checked1.value == true) { if (checked1.value == true) {
visibleLight.value.from_device = '2' visibleLight.value.from_device = '2'
visibleLight.value.channel_rtspurl = '' visibleLight.value.channel_rtspurl = ''
visibleLight.value.assist_rtspurl = ''
visibleLight.value.channel_code = '' visibleLight.value.channel_code = ''
} else { } else {
visibleLight.value.from_device = '1' visibleLight.value.from_device = '1'
@ -906,7 +910,7 @@ function confirmClick(formEl: any) {
infrared.value.recorder_code = '' infrared.value.recorder_code = ''
infrared.value.recorder_channelcode = '' infrared.value.recorder_channelcode = ''
} }
if (visibleLight.value.recorder_code != '' && checked1.value == true || visibleLight.value.channel_rtspurl != '' && checked1.value == false || visibleLight.value.channel_code != '' && checked1.value == false || visibleLight.value.recorder_channelcode != '' && checked1.value == true) { if (visibleLight.value.recorder_code != '' && checked1.value == true || visibleLight.value.channel_rtspurl != '' && visibleLight.value.assist_rtspurl != '' && checked1.value == false || visibleLight.value.channel_code != '' && checked1.value == false || visibleLight.value.recorder_channelcode != '' && checked1.value == true) {
channElinfo.push(visibleLight.value) channElinfo.push(visibleLight.value)
} }
if (infrared.value.recorder_code != '' && checked2.value == true || infrared.value.channel_rtspurl != '' && checked2.value == false || infrared.value.channel_code != '' && checked2.value == false || infrared.value.recorder_channelcode != '' && checked2.value == true || infrared.value.pan_code != '' && checked2.value == false || infrared.value.pan_channelcode != '' && checked2.value == false) { if (infrared.value.recorder_code != '' && checked2.value == true || infrared.value.channel_rtspurl != '' && checked2.value == false || infrared.value.channel_code != '' && checked2.value == false || infrared.value.recorder_channelcode != '' && checked2.value == true || infrared.value.pan_code != '' && checked2.value == false || infrared.value.pan_channelcode != '' && checked2.value == false) {
@ -1280,7 +1284,8 @@ const visibleLight = ref({
channel_rtspurl: '', channel_rtspurl: '',
from_device: '', from_device: '',
recorder_code: '', recorder_code: '',
recorder_channelcode: '' recorder_channelcode: '',
assist_rtspurl: '',
}) })
const infrareds = ref() const infrareds = ref()
@ -1347,6 +1352,16 @@ const activeName = ref('first')
const handleClick1 = (tab: TabsPaneContext, event: Event) => { const handleClick1 = (tab: TabsPaneContext, event: Event) => {
} }
const isGaoliang: any = ref("") const isGaoliang: any = ref("")
const statusList = ref([
{
id:1,
name:'在线'
},
{
id:0,
name:'离线'
}
])
</script> </script>
<template> <template>
@ -1368,7 +1383,8 @@ const isGaoliang: any = ref("")
<el-input v-model="info.patroldeviceName" style="width: 90%;margin-left: 8px;" <el-input v-model="info.patroldeviceName" style="width: 90%;margin-left: 8px;"
placeholder="请输入设备名称"></el-input> placeholder="请输入设备名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="infoall.stationId == ''" label="变电站" style="width:50%" prop="areaId"> <el-form-item v-if="infoall.stationId == ''" label="变电站" style="width:50%"
prop="areaId">
<el-select v-model="info.stationId" placeholder="请选择变电站" style="width: 90%" <el-select v-model="info.stationId" placeholder="请选择变电站" style="width: 90%"
@change="typeall, GetArea()"> @change="typeall, GetArea()">
<el-option v-for="item in optionSelect" :key="item.stationId" <el-option v-for="item in optionSelect" :key="item.stationId"
@ -1386,8 +1402,8 @@ const isGaoliang: any = ref("")
<el-form-item label="设备类型" style="width:50%" prop="type"> <el-form-item label="设备类型" style="width:50%" prop="type">
<el-select v-model="info.type" placeholder="请选择设备类型" style="width: 92%" <el-select v-model="info.type" placeholder="请选择设备类型" style="width: 92%"
@change="typeall"> @change="typeall">
<el-option v-for="item in PatrolEquipmentType" :key="item.id" :label="item.dictname" <el-option v-for="item in PatrolEquipmentType" :key="item.id"
:value="item.itemcode" /> :label="item.dictname" :value="item.itemcode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="视频类型" style="width:50%"> <el-form-item label="视频类型" style="width:50%">
@ -1426,8 +1442,8 @@ const isGaoliang: any = ref("")
</el-form-item> </el-form-item>
<el-form-item label="生产厂家" style="width:50%" prop="manufacturer"> <el-form-item label="生产厂家" style="width:50%" prop="manufacturer">
<el-select v-model="info.manufacturer" placeholder="请选择生产厂家" style="width: 92%"> <el-select v-model="info.manufacturer" placeholder="请选择生产厂家" style="width: 92%">
<el-option v-for="item in manufacturerList" :key="item.id" :label="item.dictname" <el-option v-for="item in manufacturerList" :key="item.id"
:value="item.itemcode" /> :label="item.dictname" :value="item.itemcode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="安装位置" style="width:50%" prop="place"> <el-form-item label="安装位置" style="width:50%" prop="place">
@ -1470,8 +1486,9 @@ const isGaoliang: any = ref("")
</el-form-item> </el-form-item>
<el-form-item label="备注信息" <el-form-item label="备注信息"
style="width:100%;display:flex;align-items:flex-start !important;"> style="width:100%;display:flex;align-items:flex-start !important;">
<el-input type="textarea" v-model="info.custom1" :autosize="{ minRows: 2, maxRows: 8 }" <el-input type="textarea" v-model="info.custom1"
style="width: 96% ;margin-left: 8px;" placeholder="请输入备注信息"></el-input> :autosize="{ minRows: 2, maxRows: 8 }" style="width: 96% ;margin-left: 8px;"
placeholder="请输入备注信息"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span class="dialog-footer" <span class="dialog-footer"
@ -1482,104 +1499,7 @@ const isGaoliang: any = ref("")
</span> </span>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-if="info.type == 10 || info.type == ''" label="静默监视配置" name="second">
<div>
<div class="tabbas2-toner">
<div v-for="(items, index) in SilentMonitoringType" :key="index"
:class="items.checkInfo == true ? 'changechecked' : 'checkedchange'">
<el-checkbox v-model="items.checkInfo" :label="items.dictname" @change="checkchange"
v-if="dialogVisible" />
</div>
</div>
<div v-show="checkedlist.length == 0 || checkedlist[0] == ''" class="tabbas2-bottom">
请选择监视类型
</div>
<div v-show="checkedlist.length != 0 && checkedlist[0] != ''" style="height: 510px;margin:auto">
<div style="height: calc(70vh - 200px); overflow: auto">
<div v-show="checkedlist.indexOf('ryxw') != -1">
<div>
<div class="tabbas2Bottom">
<span>人员行为</span>
<el-button v-show="isOnline" type="text" style="width:90px;" class="button_one"
@click="maintenanceArea('ryxw')">维护生效区域</el-button>
</div>
<div>
<el-form :model="infoAll" label-width="90px" ref="infoRefAlls"
:rules="infoRefAll" style="display: flex; flex-wrap: wrap;">
<el-form-item label="帧间隔" style="width:50%;position:relative"
prop="frame_interval" v-if="checkedlist.indexOf('ryxw') != -1">
<el-input v-model="infoAll.frame_interval"
style="width: 80%;margin-left: 8px;"
placeholder="请输入帧间隔"></el-input>
<div style="position: absolute;right: 90px;"></div>
</el-form-item>
<el-form-item label="" style="width:50%;position:relative"
v-if="checkedlist.indexOf('ryxw') != -1">
<el-checkbox v-model="infoAll.check_enter" label="检测人员进入"
size="large" />
</el-form-item>
</el-form>
</div>
</div>
</div>
<div v-show="checkedlist.indexOf('hzyw') != -1">
<div>
<div class="tabbas3Bottom">
<span>烟火</span>
<el-button v-show="isOnline" type="text" style="width:90px;" class="button_one"
@click="maintenanceArea('hzyw')">维护生效区域</el-button>
</div>
<div>
<el-form :model="smokeInfo" label-width="90px" ref="smokeRefInfos"
:rules="smokeRefInfo" style="display: flex; flex-wrap: wrap;">
<el-form-item label="帧间隔" style="width:50%;position:relative"
prop="frame_interval" v-if="checkedlist.indexOf('hzyw') != -1">
<el-input v-model="smokeInfo.frame_interval"
style="width: 80%;margin-left: 8px;"
placeholder="请输入帧间隔"></el-input>
<div style="position: absolute;right: 90px;"></div>
</el-form-item>
</el-form>
</div>
</div>
</div>
<div v-show="checkedlist.indexOf('sly_dmyw') != -1">
<div>
<div class="tabbas3Bottom">
<span>渗漏油</span>
<el-button v-show="isOnline" type="text" style="width:90px;" class="button_one"
@click="maintenanceArea('sly_dmyw')">维护生效区域</el-button>
</div>
<div>
<el-form :model="leakageInfo" label-width="90px" ref="leakageRefInfos"
:rules="leakageRefInfo" style="display: flex; flex-wrap: wrap;">
<el-form-item label="帧间隔" style="width:50%;position:relative"
prop="frame_interval" v-if="checkedlist.indexOf('sly_dmyw') != -1">
<el-input v-model="leakageInfo.frame_interval"
style="width: 80%;margin-left: 8px;"
placeholder="请输入帧间隔"></el-input>
<div style="position: absolute;right: 90px;"></div>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</div>
<span class="dialog-footer"
style="width: 100%;margin: auto; display: flex;display: -webkit-flex; justify-content: center;-webkit-justify-content: center;margin: 20px 0px 10px 0px ;">
<div class="details-button" @click="handleClose">取消</div>
<div class="details-button" @click="confirmClick(infoForm)">确定</div>
</span>
<!-- </div> -->
</div>
</el-tab-pane>
<el-tab-pane v-if="info.type == 10 || info.type == ''" label="通道设置" name="third"> <el-tab-pane v-if="info.type == 10 || info.type == ''" label="通道设置" name="third">
<div> <div>
<div style="height: 562px;"> <div style="height: 562px;">
@ -1596,9 +1516,16 @@ const isGaoliang: any = ref("")
<el-input :disabled="checked1 == true" v-model="visibleLight.channel_code" <el-input :disabled="checked1 == true" v-model="visibleLight.channel_code"
style="width: 90%;margin-left: 8px;" placeholder="请输入通道编号"></el-input> style="width: 90%;margin-left: 8px;" placeholder="请输入通道编号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="RTSP流地址" style="width:100%;"> <el-form-item label="RTSP主码流地址" style="width:100%;">
<el-input :disabled="checked1 == true" v-model="visibleLight.channel_rtspurl" <el-input :disabled="checked1 == true"
style="width: 90%;margin-left: 8px;" placeholder="请输入RTSP流地址"></el-input> v-model="visibleLight.channel_rtspurl"
style="width: 100%;margin-left: 8px;"
placeholder="请输入RTSP流地址"></el-input>
</el-form-item>
<el-form-item label="RTSP辅码流地址" style="width:100%;">
<el-input :disabled="checked1 == true" v-model="visibleLight.assist_rtspurl"
style="width: 100%;margin-left: 8px;"
placeholder="请输入RTSP流地址"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="来源" style="width:100%;"> <el-form-item label="来源" style="width:100%;">
<el-checkbox v-model="checked1" label="录像机" size="large" <el-checkbox v-model="checked1" label="录像机" size="large"
@ -1623,15 +1550,16 @@ const isGaoliang: any = ref("")
红外设置</div> 红外设置</div>
</div> </div>
<div> <div>
<el-form :model="infrared" label-width="90px" ref="infrareds" :rules="leakageRefInfo" <el-form :model="infrared" label-width="90px" ref="infrareds"
style="display: flex; flex-wrap: wrap;"> :rules="leakageRefInfo" style="display: flex; flex-wrap: wrap;">
<el-form-item label="通道编号" style="width:100%;position:relative"> <el-form-item label="通道编号" style="width:100%;position:relative">
<el-input :disabled="checked2 == true" v-model="infrared.channel_code" <el-input :disabled="checked2 == true" v-model="infrared.channel_code"
style="width: 90%;margin-left: 8px;" placeholder="请输入通道编号"></el-input> style="width: 90%;margin-left: 8px;" placeholder="请输入通道编号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="RTSP流地址" style="width:100%;"> <el-form-item label="RTSP流地址" style="width:100%;">
<el-input :disabled="checked2 == true" v-model="infrared.channel_rtspurl" <el-input :disabled="checked2 == true" v-model="infrared.channel_rtspurl"
style="width: 90%;margin-left: 8px;" placeholder="请输入RTSP流地址"></el-input> style="width: 90%;margin-left: 8px;"
placeholder="请输入RTSP流地址"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="云台编号" style="width:50%;"> <el-form-item label="云台编号" style="width:50%;">
<el-input :disabled="checked2 == true" v-model="infrared.pan_code" <el-input :disabled="checked2 == true" v-model="infrared.pan_code"
@ -1651,7 +1579,8 @@ const isGaoliang: any = ref("")
style="width: 77%;margin-left: 8px;" placeholder="录像机编号"></el-input> style="width: 77%;margin-left: 8px;" placeholder="录像机编号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="录像通道编号" style="width:50%;"> <el-form-item label="录像通道编号" style="width:50%;">
<el-input :disabled="checked2 == false" v-model="infrared.recorder_channelcode" <el-input :disabled="checked2 == false"
v-model="infrared.recorder_channelcode"
style="width: 77%;margin-left: 8px;" placeholder="录像通道编号"></el-input> style="width: 77%;margin-left: 8px;" placeholder="录像通道编号"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -1706,17 +1635,19 @@ const isGaoliang: any = ref("")
</template> </template>
</Eldialog> </Eldialog>
<aside id="silderLeft"> <aside id="silderLeft">
<div class="displayflex" style="margin: 0;padding-left: 8px;height: 30px;margin-top:10px;margin-bottom:10px;"> <div class="displayflex"
style="margin: 0;padding-left: 8px;height: 30px;margin-top:10px;margin-bottom:10px;">
<div class="line"></div> <div class="line"></div>
<div class="title" style="font-size: 14px;">数据列表</div> <div class="title" style="font-size: 14px;">数据列表</div>
</div> </div>
<el-select v-model="value" placeholder="" style="width: 98% !important; display: flex; justify-content: center" <el-select v-model="value" placeholder=""
@change="getTree"> style="width: 98% !important; display: flex; justify-content: center" @change="getTree">
<el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName" <el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName"
:value="item.stationId" style="width:100%" /> :value="item.stationId" style="width:100%" />
</el-select> </el-select>
<el-scrollbar height="calc(80vh)" style="width:99%;"> <el-scrollbar height="calc(80vh)" style="width:99%;">
<el-tree ref="treeRef" :class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'" <el-tree ref="treeRef"
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'"
node-key="areaId" :data="treedata" :current-node-key="currentNodeKey" :highlight-current="true" node-key="areaId" :data="treedata" :current-node-key="currentNodeKey" :highlight-current="true"
:props="defaultProps" v-loading="treeloading" @node-click="handleNodeClick"> :props="defaultProps" v-loading="treeloading" @node-click="handleNodeClick">
</el-tree> </el-tree>
@ -1739,10 +1670,16 @@ const isGaoliang: any = ref("")
</el-select> </el-select>
<el-input v-model="deviceModel" clearable placeholder="请输入设备型号" @clear="getData()" <el-input v-model="deviceModel" clearable placeholder="请输入设备型号" @clear="getData()"
@keyup.enter="getData()" style="margin-right:10px ;width: 185px;" /> @keyup.enter="getData()" style="margin-right:10px ;width: 185px;" />
<el-select v-model="manufacturer" placeholder="请选择生产厂家" style="margin-right: 10px;" @change="getData()"> <el-select v-model="manufacturer" placeholder="请选择生产厂家" style="margin-right: 10px;"
@change="getData()" clearable>
<el-option v-for="item in manufacturerList" :key="item.id" :label="item.dictname" <el-option v-for="item in manufacturerList" :key="item.id" :label="item.dictname"
:value="item.itemcode" /> :value="item.itemcode" />
</el-select> </el-select>
<el-select v-model="paramstable.online" placeholder="实时状态" style="margin-right: 10px;width: 140px;"
@change="getData()" clearable>
<el-option v-for="item in statusList" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
<el-button class="searchButton" type="primary" @click="getData()">搜索</el-button> <el-button class="searchButton" type="primary" @click="getData()">搜索</el-button>
<el-button class="searchButton" @click="resetting()">重置</el-button> <el-button class="searchButton" @click="resetting()">重置</el-button>
</div> </div>
@ -1755,40 +1692,39 @@ const isGaoliang: any = ref("")
<!-- <el-button type="primary" @click="addClick"><img style="margin-right:5px;" <!-- <el-button type="primary" @click="addClick"><img style="margin-right:5px;"
src="@/assets/MenuIcon/u429.png" alt=""> 导入</el-button> --> src="@/assets/MenuIcon/u429.png" alt=""> 导入</el-button> -->
<el-button class="searchButton" v-hasPerm="['del:patroldevice']" @click="delClick" <el-button class="searchButton" v-hasPerm="['del:patroldevice']" @click="delClick"
:disabled="deviceInfos.length == 0" :type="deviceInfos.length > 0 ? 'primary' : ''"> 删除</el-button> :disabled="deviceInfos.length == 0" :type="deviceInfos.length > 0 ? 'primary' : ''">
删除</el-button>
</div> </div>
</div> </div>
<div class="draggable"> <div class="draggable">
<el-table v-loading="loading" :data="tableData" style="width: 100%;height: calc(75vh); <el-table v-loading="loading" :data="tableData" style="width: 100%;height: calc(75vh);
overflow: auto;margin-bottom: 15px;" row-key="id" @selection-change="handleSelectionChange" overflow: auto;margin-bottom: 15px;" row-key="id" @selection-change="handleSelectionChange"
default-expand-all :row-class-name="tableRowClassName" default-expand-all :row-class-name="tableRowClassName"
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px'}"> :header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
<el-table-column type="selection" width="30" align="center" :selectable="checkSelectable" /> <el-table-column type="selection" width="30" align="center" :selectable="checkSelectable" />
<el-table-column type="index" label="序号" width="50px" align="center" /> <el-table-column type="index" label="序号" width="50px" align="center" />
<el-table-column label="设备编码" prop="patroldeviceCode" align="center" ></el-table-column> <el-table-column label="设备编码" prop="patroldeviceCode" align="center"></el-table-column>
<el-table-column label="设备名称" prop="patroldeviceName" align="center" ></el-table-column> <el-table-column label="设备名称" prop="patroldeviceName" align="center"></el-table-column>
<el-table-column label="设备类型" prop="typeName" width="80" align="center" ></el-table-column> <el-table-column label="设备类型" prop="typeName" width="80" align="center"></el-table-column>
<el-table-column label="设备型号" prop="deviceModel" align="center" ></el-table-column> <el-table-column label="设备型号" prop="deviceModel" align="center"></el-table-column>
<el-table-column label="设备来源" prop="deviceSource" align="center" width="80"></el-table-column> <el-table-column label="设备来源" prop="deviceSource" align="center" width="80"></el-table-column>
<el-table-column label="生产厂家" prop="manufacturer" align="center" width="80"> <el-table-column label="生产厂家" prop="manufacturer" align="center" width="80">
<template #default="scope"> <template #default="scope">
{{ currency(manufacturerList, scope.row.manufacturer) }} {{ currency(manufacturerList, scope.row.manufacturer) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="安装位置" prop="place" width="80" align="center" ></el-table-column> <el-table-column label="安装位置" prop="place" width="80" align="center"></el-table-column>
<el-table-column label="实时状态" width="100" prop="datastatus" align="center"> <el-table-column label="实时状态" width="100" prop="datastatus" align="center">
<template #default="scope"> <template #default="scope">
<!-- <span v-if="scope.row.typeName == '硬盘录像机'">
----
</span> -->
<span style="color:#F24444" v-if="scope.row.online != 1"> <span style="color:#F24444" v-if="scope.row.online != 1">
<img src="@/assets/MenuIcon/u499.png" alt="" <img src="@/assets/MenuIcon/u499.png" alt=""
style="display: inline-block; margin: 0px 5px; ">离线 style="display: inline-block; margin: 0px 5px; ">离线
</span> </span>
<span style="color:#F24444" v-else-if="scope.row.online == 1"> <span style="color:#F24444" v-else-if="scope.row.online == 1">
<span v-if="scope.row.online == 1" style="color:#00CC66"><img src="@/assets/newimg/u387.png" <span v-if="scope.row.online == 1" style="color:#00CC66"><img
alt="" style="display: inline-block; margin: 0px 5px; "> 在线 src="@/assets/newimg/u387.png" alt=""
style="display: inline-block; margin: 0px 5px; "> 在线
</span> </span>
</span> </span>
</template> </template>
@ -1806,24 +1742,24 @@ const isGaoliang: any = ref("")
<span v-if="scope.row.type == 10 && scope.row.useMode == 10"> <span v-if="scope.row.type == 10 && scope.row.useMode == 10">
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-else src="@/assets/newimg/ht_qij1.png" alt="" title="离线通道1" <img v-else src="@/assets/newimg/ht_qij1.png" alt="" title="离线通道1"
style="margin:auto;display: inline-block;margin-left:15px;"> style="margin:auto;display: inline-block;margin-left:15px;">
</span> </span>
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;"> style="cursor: pointer;margin:auto;display: inline-block;">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt="" title="查看通道2" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qij.png" alt=""
@click="monitorClick(scope.row, 1)" title="查看通道2" @click="monitorClick(scope.row, 1)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qij1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qij1.png" alt=""
style="margin:auto;display: inline-block;"> title="离线通道1" style="margin:auto;display: inline-block;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qij1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qij1.png" alt=""
style="margin:auto;display: inline-block;margin-left:15px;"> title="离线通道1" style="margin:auto;display: inline-block;margin-left:15px;">
</span> </span>
<span v-if="scope.row.channelList.length == 0"> <span v-if="scope.row.channelList.length == 0">
@ -1832,24 +1768,24 @@ const isGaoliang: any = ref("")
</span> </span>
<span v-if="scope.row.type == 10 && scope.row.useMode == 11"> <span v-if="scope.row.type == 10 && scope.row.useMode == 11">
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-else src="@/assets/newimg/ht_qj1.png" alt="" title="离线通道1" <img v-else src="@/assets/newimg/ht_qj1.png" alt="" title="离线通道1"
style="margin:auto;display: inline-block;margin-left:15px;"> style="margin:auto;display: inline-block;margin-left:15px;">
</span> </span>
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;"> style="cursor: pointer;margin:auto;display: inline-block;">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt="" title="查看通道2" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_qj.png" alt=""
@click="monitorClick(scope.row, 1)" title="查看通道2" @click="monitorClick(scope.row, 1)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qj1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qj1.png" alt=""
style="margin:auto;display: inline-block;"> title="离线通道1" style="margin:auto;display: inline-block;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qj1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_qj1.png" alt=""
style="margin:auto;display: inline-block;margin-left:15px;"> title="离线通道1" style="margin:auto;display: inline-block;margin-left:15px;">
</span> </span>
<span v-if="scope.row.channelList.length == 0"> <span v-if="scope.row.channelList.length == 0">
@ -1859,24 +1795,24 @@ const isGaoliang: any = ref("")
<span v-if="scope.row.type == 10 && scope.row.useMode == 12"> <span v-if="scope.row.type == 10 && scope.row.useMode == 12">
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 1">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-else src="@/assets/newimg/ht_yt1.png" alt="" title="离线通道1" <img v-else src="@/assets/newimg/ht_yt1.png" alt="" title="离线通道1"
style="margin:auto;display: inline-block;margin-left:15px;"> style="margin:auto;display: inline-block;margin-left:15px;">
</span> </span>
<span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2"> <span v-if="scope.row.channelList != undefined && scope.row.channelList.length == 2">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt="" title="查看通道1" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt=""
@click="monitorClick(scope.row, 0)" title="查看通道1" @click="monitorClick(scope.row, 0)"
style="cursor: pointer;margin:auto;display: inline-block;"> style="cursor: pointer;margin:auto;display: inline-block;">
<img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt="" title="查看通道2" <img v-if="scope.row.online == 1" src="@/assets/newimg/ht_yt.png" alt=""
@click="monitorClick(scope.row, 1)" title="查看通道2" @click="monitorClick(scope.row, 1)"
style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;"> style="cursor: pointer;margin:auto;display: inline-block;margin-left:15px;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_yt1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_yt1.png" alt=""
style="margin:auto;display: inline-block;"> title="离线通道1" style="margin:auto;display: inline-block;">
<img v-if="scope.row.online != 1" src="@/assets/newimg/ht_yt1.png" alt="" title="离线通道1" <img v-if="scope.row.online != 1" src="@/assets/newimg/ht_yt1.png" alt=""
style="margin:auto;display: inline-block;margin-left:15px;"> title="离线通道1" style="margin:auto;display: inline-block;margin-left:15px;">
<span v-if="scope.row.channelList == undefined"> <span v-if="scope.row.channelList == undefined">
---- ----
</span> </span>
@ -1896,22 +1832,13 @@ const isGaoliang: any = ref("")
<span v-else style="color: #d7d7d7">无效</span> <span v-else style="color: #d7d7d7">无效</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="静默任务" width="100" prop="dailymonitor" align="center" fixed="right">
<template #default="scope">
<el-switch v-model="scope.row.dailymonitor" active-value="1" inactive-value="0"
:disabled="scope.row.typeName == '硬盘录像机' || scope.row.channelList == undefined || scope.row.online != 1"
@change="switchDailymonitor(scope.row)" style="margin-right: 4px"></el-switch>
<span v-if="scope.row.dailymonitor == 1" class="effective">启用</span>
<span v-else style="color: #d7d7d7">停用</span>
</template>
</el-table-column>
<el-table-column label="操作" width="60" fixed="right" align="center" <el-table-column label="操作" width="60" fixed="right" align="center"
style="display: flex; display: -webkit-flex;"> style="display: flex; display: -webkit-flex;">
<template #default="scope"> <template #default="scope">
<span <span
style="display: flex;display: -webkit-flex; justify-content: space-around;-webkit-justify-content: space-around; "> style="display: flex;display: -webkit-flex; justify-content: space-around;-webkit-justify-content: space-around; ">
<img v-hasPerm="['update:patroldevice']" src="@/assets/newimg/ht_xg.png" alt="" title="修改" <img v-hasPerm="['update:patroldevice']" src="@/assets/newimg/ht_xg.png" alt=""
@click="handleEdit(scope.row)" style="cursor: pointer;"> title="修改" @click="handleEdit(scope.row)" style="cursor: pointer;">
<img v-hasPerm="['del:patroldevice']" src="@/assets/newimg/ht_sc.png" alt="" <img v-hasPerm="['del:patroldevice']" src="@/assets/newimg/ht_sc.png" alt=""
v-if="scope.row.datastatus == 0" title="删除" @click="handleDelete(scope.row)" v-if="scope.row.datastatus == 0" title="删除" @click="handleDelete(scope.row)"
style="cursor: pointer; "> style="cursor: pointer; ">
@ -1942,7 +1869,8 @@ const isGaoliang: any = ref("")
</div> </div>
<div class="Camera-left-bottom"> <div class="Camera-left-bottom">
<div class="Camera-buttons-box"> <div class="Camera-buttons-box">
<div class="Camera-left-button1" @mousedown="ptzCamera('up')" @mouseup="ptzCamera('stop')"> <div class="Camera-left-button1" @mousedown="ptzCamera('up')"
@mouseup="ptzCamera('stop')">
</div> </div>
<div class="Camera-left-button2" @mousedown="ptzCamera('upright')" <div class="Camera-left-button2" @mousedown="ptzCamera('upright')"
@mouseup="ptzCamera('stop')"></div> @mouseup="ptzCamera('stop')"></div>
@ -1977,8 +1905,8 @@ const isGaoliang: any = ref("")
</el-icon></div> </el-icon></div>
</div> </div>
<div style="display: flex;"> <div style="display: flex;">
<div class="videoOperations" :class="{ 'gaolaing': isGaoliang == '66' }" @mouseup="quxiao" <div class="videoOperations" :class="{ 'gaolaing': isGaoliang == '66' }"
@mousedown="condensationChang('减')"><el-icon> @mouseup="quxiao" @mousedown="condensationChang('减')"><el-icon>
<Minus /> <Minus />
</el-icon></div> </el-icon></div>
<div class="videoOperationstext">光聚</div> <div class="videoOperationstext">光聚</div>
@ -1989,8 +1917,8 @@ const isGaoliang: any = ref("")
</el-icon></div> </el-icon></div>
</div> </div>
<div style="display: flex;"> <div style="display: flex;">
<div class="videoOperations" :class="{ 'gaolaing': isGaoliang == '72' }" @mouseup="quxiao" <div class="videoOperations" :class="{ 'gaolaing': isGaoliang == '72' }"
@mousedown="apertureChang('减')"><el-icon> @mouseup="quxiao" @mousedown="apertureChang('减')"><el-icon>
<Minus /> <Minus />
</el-icon></div> </el-icon></div>
<div class="videoOperationstext">光圈</div> <div class="videoOperationstext">光圈</div>
@ -2004,36 +1932,12 @@ const isGaoliang: any = ref("")
</div> </div>
</div> </div>
<div style="width:500px"> <div style="width:500px">
<div style="display: flex;justify-content:space-between; padding-left: 30px;">
<div style="display: flex;">
<span style="display: block; padding-top: 4px;padding-left: 15px;">灯光</span>
<el-switch class="nei" style="display: block;margin-left:15px;" v-model="isLighting"
inline-prompt active-text="开" inactive-text="关" @change="lightingClick"
active-value="255" inactive-value="0" />
</div>
<div style="display: flex;"><span
style="display: block;padding-top: 4px;padding-left:30px">红外</span>
<el-switch class="nei" style="display: block;margin-left:15px" v-model="isInfrared"
inline-prompt active-text="开" inactive-text="关" @change="infraredClick"
active-value="255" inactive-value="0" />
</div>
<div style="display: flex;"><span
style="display: block;padding-top: 4px;padding-left:30px">雨刷</span>
<el-switch class="nei" style="display: block;margin-left:15px" v-model="isWiper"
inline-prompt active-text="开" inactive-text="关" @change="WiperClick"
active-value="1" inactive-value="0" />
</div>
</div>
<!-- <div class="Camera-left-switchs-two"></div> -->
<div style="display: flex;align-items: center; padding-top: 25px; padding-left: 30px;" <div style="display: flex;align-items: center; padding-top: 25px; padding-left: 30px;"
class="buttonstyleheight"> class="buttonstyleheight">
<div style="width: 60px;">预置位</div> <div style="width: 60px;">预置位</div>
<el-input-number class="Camera-number-input" style="width:140px" <el-input-number class="Camera-number-input" style="width:140px"
v-model="beforehandPosition" controls-position="right" size="large" /> v-model="beforehandPosition" controls-position="right" size="large" />
<div>
<el-button class="searchButton" style="margin-left:30px" <el-button class="searchButton" style="margin-left:30px"
@click="presetPosition(129, beforehandPosition)">设置</el-button> @click="presetPosition(129, beforehandPosition)">设置</el-button>
<el-button class="searchButton" style="margin-left:30px" <el-button class="searchButton" style="margin-left:30px"
@ -2042,21 +1946,13 @@ const isGaoliang: any = ref("")
@click="presetPosition(130, beforehandPosition)">调用</el-button> @click="presetPosition(130, beforehandPosition)">调用</el-button>
</div> </div>
</div> </div>
</div> </div>
<div
style="display: flex;align-items: center; justify-content: space-between; padding-top: 10px;width:100%;">
<div style="margin-left: 15px;">守望位号</div>
<div style="margin-left:15px ;width:200px;"><el-input placeholder=" " v-model="preset" />
</div>
<div style="margin-left: 30px;">守望位回归时间</div>
<div style="margin-left:15px ;position: relative;"><el-input v-model="presettime"
placeholder=" " />
<div style="position: absolute;color: #00000067;top: 6px;right: 5px;">分钟</div>
</div>
<el-button class="searchButton" style="margin-left:30px" @click="Position">设置</el-button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
@ -2080,14 +1976,16 @@ const isGaoliang: any = ref("")
@mouseup="ptzCamera('stop')"> @mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-45deg)"> <img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-45deg)">
</div> </div>
<div class="Camera-left-button" @mousedown="ptzCamera('up')" @mouseup="ptzCamera('stop')"> <div class="Camera-left-button" @mousedown="ptzCamera('up')"
@mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt=""> <img src="@/assets/MenuIcon/u1158.png" alt="">
</div> </div>
<div class="Camera-left-button" @mousedown="ptzCamera('upright')" <div class="Camera-left-button" @mousedown="ptzCamera('upright')"
@mouseup="ptzCamera('stop')"> @mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(45deg)"> <img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(45deg)">
</div> </div>
<div class="Camera-left-button" @mousedown="ptzCamera('left')" @mouseup="ptzCamera('stop')"> <div class="Camera-left-button" @mousedown="ptzCamera('left')"
@mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-90deg)"> <img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-90deg)">
</div> </div>
<div class="Camera-left-button" @mousedown="videoRefresh"><img <div class="Camera-left-button" @mousedown="videoRefresh"><img
@ -2100,7 +1998,8 @@ const isGaoliang: any = ref("")
@mouseup="ptzCamera('stop')"> @mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-135deg)"> <img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(-135deg)">
</div> </div>
<div class="Camera-left-button" @mousedown="ptzCamera('down')" @mouseup="ptzCamera('stop')"> <div class="Camera-left-button" @mousedown="ptzCamera('down')"
@mouseup="ptzCamera('stop')">
<img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(180deg)"> <img src="@/assets/MenuIcon/u1158.png" alt="" style="transform:rotate(180deg)">
</div> </div>
<div class="Camera-left-button" @mousedown="ptzCamera('downright')" <div class="Camera-left-button" @mousedown="ptzCamera('downright')"
@ -2163,9 +2062,9 @@ const isGaoliang: any = ref("")
</div> </div>
<div style="display: flex;"><span <div style="display: flex;"><span
style="display: block;padding-top: 4px;padding-left:30px">雨刷</span> style="display: block;padding-top: 4px;padding-left:30px">雨刷</span>
<el-switch style="display: block;margin-left:15px" v-model="isWiper" inline-prompt <el-switch style="display: block;margin-left:15px" v-model="isWiper"
active-text="开" inactive-text="关" @change="WiperClick" active-value="1" inline-prompt active-text="开" inactive-text="关" @change="WiperClick"
inactive-value="0" /> active-value="1" inactive-value="0" />
</div> </div>
@ -2901,6 +2800,5 @@ const isGaoliang: any = ref("")
.gaolaing { .gaolaing {
background: rgba(50, 177, 245, 0.4) background: rgba(50, 177, 245, 0.4)
}</style> }
</style>

View File

@ -25,6 +25,9 @@ import Eldialog from '@/components/seccmsdialog/eldialog.vue';
import { import {
getArea, getArea,
} from "@/api/monitordevice"; } from "@/api/monitordevice";
import { useUserStore } from '@/store/modules/user';
import { getTreeList } from "@/api/linksignal";
const userStore = useUserStore();
// //
interface Tree { interface Tree {
[x: string]: any; [x: string]: any;
@ -32,8 +35,8 @@ interface Tree {
children?: Tree[]; children?: Tree[];
} }
const defaultProps = { const defaultProps = {
// children: "children", children: "children",
label: "stationName" label: "name"
}; };
const treedata: any = ref([]); const treedata: any = ref([]);
const treeRef = ref(); const treeRef = ref();
@ -45,21 +48,22 @@ const stationId = ref()
const stationName = ref() const stationName = ref()
const stationCode = ref() const stationCode = ref()
function getSelect() { function getSelect() {
getTreefirst().then((res: any) => { getTreeList({stationId:userStore.stationId}).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
if (res.data.length == 0) { if (res.data.length == 0) {
tableData.value = [] tableData.value = []
loading.value = false loading.value = false
} }
treedata.value = res.data treedata.value = res.data
stationId.value = res.data[0].stationId stationId.value = userStore.stationId
areaId.value = res.data[0].areaId
stationName.value = res.data[0].stationName stationName.value = res.data[0].stationName
stationCode.value = res.data[0].stationCode stationCode.value = res.data[0].stationCode
GetArea() GetArea()
treeloading.value = false treeloading.value = false
loading.value = true loading.value = true
nextTick(() => { nextTick(() => {
treeRef.value?.setCurrentKey(res.data[0].stationId); treeRef.value?.setCurrentKey(areaId.value);
}); });
getData() getData()
} else { } else {
@ -71,7 +75,8 @@ function getSelect() {
// //
const disabled = ref(false) const disabled = ref(false)
function handleNodeClick(data: Tree, node: any) { function handleNodeClick(data: Tree, node: any) {
stationId.value = data.stationId areaId.value = data.areaId
stationId.value = userStore.stationId
stationName.value = data.stationName stationName.value = data.stationName
stationCode.value = data.stationCode stationCode.value = data.stationCode
GetArea() GetArea()
@ -81,9 +86,10 @@ function handleNodeClick(data: Tree, node: any) {
} }
// //
const deviceName = ref('') const deviceName = ref('')
const areaId = ref('')
const tableData: any = ref() const tableData: any = ref()
const loading = ref(false) const loading = ref(false)
const paramstable = ref({ const paramstable:any = ref({
size: 10, size: 10,
current: 1, current: 1,
stationId: '', stationId: '',
@ -99,7 +105,8 @@ const manufacturer = ref()
const total = ref() const total = ref()
function getData() { function getData() {
loading.value = true loading.value = true
paramstable.value.stationId = stationId.value paramstable.value.stationId = userStore.stationId
paramstable.value.areaId = areaId.value
paramstable.value.patrolDeviceName = patrolDeviceName.value paramstable.value.patrolDeviceName = patrolDeviceName.value
paramstable.value.deviceModel = deviceModel.value paramstable.value.deviceModel = deviceModel.value
paramstable.value.manufacturer = manufacturer.value paramstable.value.manufacturer = manufacturer.value
@ -364,7 +371,8 @@ function addClick() {
macaddr: '', macaddr: '',
custom1: '', custom1: '',
materialId: '', materialId: '',
internationalId: '' internationalId: '',
areaId: areaId.value,
} }
title.value = "新增声纹监测装置" title.value = "新增声纹监测装置"
dialogVisible.value = true; dialogVisible.value = true;
@ -586,7 +594,7 @@ function GetArea() {
placeholder="请输入设备名称"></el-input> placeholder="请输入设备名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="区域" style="width:50%" prop="areaId"> <el-form-item label="区域" style="width:50%" prop="areaId">
<el-select v-model="info.areaId" placeholder="请选择区域" <el-select v-model="info.areaId" placeholder="请选择区域" disabled
style="width: 100%;"> style="width: 100%;">
<el-option v-for="item in areaList" :key="item.areaId" :label="item.areaName" <el-option v-for="item in areaList" :key="item.areaId" :label="item.areaName"
:value="item.areaId" /> :value="item.areaId" />

View File

@ -113,7 +113,7 @@ const num = ref(0)
<div style="width:370px;height: 250px;"> <div style="width:370px;height: 250px;">
<div class="public-details-conent" > <div class="public-details-conent" >
<div class="public-details-name">点位名称</div> <div class="public-details-name">点位名称</div>
<div>{{ examinationInfo.bayName }}</div> <div>{{ examinationInfo.deviceName }}</div>
</div> </div>
<div class="public-details-conent" > <div class="public-details-conent" >
<div class="public-details-name">设备名称</div> <div class="public-details-name">设备名称</div>
@ -130,14 +130,14 @@ const num = ref(0)
<div class="public-details-conent"> <div class="public-details-conent">
<div class="public-details-name">告警阈值</div> <div class="public-details-name">告警阈值</div>
<span style="display:block;" > <span style="display:block;" >
<span style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{ <!-- <span style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{
examinationInfo.earlyMin }}-{{ examinationInfo.earlyMax }}</span></span> examinationInfo.earlyMin }}-{{ examinationInfo.earlyMax }}</span></span> -->
<span style="display: inline-block;width: 50%;text-align: left;"><span>一般</span><span>{{ <span style="display: inline-block;width: 70%;text-align: left;"><span>一般</span><span>{{
examinationInfo.sameMin }}-{{ examinationInfo.sameMax }}</span></span> examinationInfo.commonLower }}-{{ examinationInfo.commonUpper }}</span></span>
<span style="display: inline-block;width: 50%;text-align: left;"><span>严重</span><span>{{ <span style="display: inline-block;width: 70%;text-align: left;"><span>严重</span><span>{{
examinationInfo.seriousMin }}-{{ examinationInfo.seriousMax }}</span></span> examinationInfo.seriousLower }}-{{ examinationInfo.seriousUpper }}</span></span>
<span style="display: inline-block;width: 50%;text-align: left;"><span>危急</span><span>{{ <span style="display: inline-block;width: 70%;text-align: left;"><span>危急</span><span>{{
examinationInfo.criticalMin }}-{{ examinationInfo.criticalMax }}</span></span> examinationInfo.dangerLower }}-{{ examinationInfo.dangerLower }}</span></span>
</span> </span>
</div> </div>
<div class="public-details-conent"> <div class="public-details-conent">

View File

@ -198,7 +198,7 @@ const handleChange = (value: any) => {
<div style="width:370px;height: 250px;"> <div style="width:370px;height: 250px;">
<div class="public-details-conent"> <div class="public-details-conent">
<div class="public-details-name">点位名称</div> <div class="public-details-name">点位名称</div>
<div>{{ examinationInfo.bayName }}</div> <div>{{ examinationInfo.deviceName }}</div>
</div> </div>
<div class="public-details-conent"> <div class="public-details-conent">
<div class="public-details-name">设备名称</div> <div class="public-details-name">设备名称</div>
@ -215,14 +215,14 @@ const handleChange = (value: any) => {
<div class="public-details-conent"> <div class="public-details-conent">
<div class="public-details-name">告警阈值</div> <div class="public-details-name">告警阈值</div>
<span style="display:block;" > <span style="display:block;" >
<span style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{ <!-- <span style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{
examinationInfo.earlyMin }}-{{ examinationInfo.earlyMax }}</span></span> examinationInfo.earlyMin }}-{{ examinationInfo.earlyMax }}</span></span> -->
<span style="display: inline-block;width: 50%;text-align: left;"><span>一般</span><span>{{ <span style="display: inline-block;width: 50%;text-align: left;"><span>一般</span><span>{{
examinationInfo.sameMin }}-{{ examinationInfo.sameMax }}</span></span> examinationInfo.commonLower }}-{{ examinationInfo.commonLower }}</span></span>
<span style="display: inline-block;width: 50%;text-align: left;"><span>严重</span><span>{{ <span style="display: inline-block;width: 50%;text-align: left;"><span>严重</span><span>{{
examinationInfo.seriousMin }}-{{ examinationInfo.seriousMax }}</span></span> examinationInfo.seriousLower }}-{{ examinationInfo.seriousLower }}</span></span>
<span style="display: inline-block;width: 50%;text-align: left;"><span>危急</span><span>{{ <span style="display: inline-block;width: 50%;text-align: left;"><span>危急</span><span>{{
examinationInfo.criticalMin }}-{{ examinationInfo.criticalMax }}</span></span> examinationInfo.dangerLower }}-{{ examinationInfo.dangerLower }}</span></span>
</span> </span>
</div> </div>

View File

@ -103,31 +103,41 @@ function getecharts() {
}) })
} }
function getRandomColor(): string {
const hue = Math.floor(Math.random() * 360); // 0~359
const saturation = 70 + Math.floor(Math.random() * 20); // 70~90%
const lightness = 50 + Math.floor(Math.random() * 10); // 50~60%
return `hsl(${hue}, ${saturation}%, ${lightness}%)`;
}
function drawEchart(item: any, index: any) { function drawEchart(item: any, index: any) {
// debugger //
const dynamicColor = `fff`; const randomColor = getRandomColor();
let myChart = echarts.init(document.getElementById(("deviceEachers" + index)) as HTMLDivElement);
let myChart = echarts.init(document.getElementById("deviceEachers" + index) as HTMLDivElement);
myChart.setOption({ myChart.setOption({
tooltip: { tooltip: {
trigger: 'axis' trigger: 'axis'
}, },
legend: { legend: {
data: [item.series[0].name], data: [item.series[0].name],
textStyle: { color: dynamicColor, fontSize: 14 } textStyle: { color: randomColor, fontSize: 14 }
}, },
grid: { grid: {
left: '3%', left: '3%',
right: '4%', right: '4%',
bottom: '3%', bottom: '3%',
top: '18%', top: '18%',
containLabel: true containLabel: true,
borderColor: randomColor
}, },
xAxis:item.xAxis ,
xAxis: item.xAxis, yAxis:item.yAxis ,
yAxis: item.yAxis, series: item.series.map((series: any) => ({
series: item.series, ...series,
itemStyle: { color: randomColor }
}) }))
});
} }
//fenxi //fenxi
const checloading = ref(false) const checloading = ref(false)

View File

@ -2175,8 +2175,8 @@ const open = () => {
</div> </div>
<div> <div>
<el-table ref="multipleTableRef" :data="tableDataList" style="width: 100%;margin-bottom: 10px;height: calc(70vh); <el-table ref="multipleTableRef" :data="tableDataList" style="width: 100%;margin-bottom: 10px;height: calc(70vh);
overflow: auto;" :header-cell-style="tableBg" stripe @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" overflow: auto;" :header-cell-style="tableBg" stripe @selection-change="handleSelectionChange"
v-loading="treeloading"> :row-class-name="tableRowClassName" v-loading="treeloading">
<el-table-column type="selection" width="30" align="center" /> <el-table-column type="selection" width="30" align="center" />
<el-table-column type="index" label="序号" width="50px" align="center" /> <el-table-column type="index" label="序号" width="50px" align="center" />
<el-table-column property="stationName" label="变电站名称" align="center"> <el-table-column property="stationName" label="变电站名称" align="center">
@ -2392,26 +2392,25 @@ const open = () => {
<div class="essential-top"> <div class="essential-top">
<div style="margin-bottom: 20px;"> <div style="margin-bottom: 20px;">
<el-button class="searchButton" style="margin-left:0" type="primary" <el-button class="searchButton" style="margin-left:0" type="primary"
v-if="info.datastatus == 1 || title == '复制巡视任务'" @click="associationInterval">关联间隔</el-button> v-if="info.datastatus == 1 && title == '复制巡视任务'" @click="associationInterval">关联间隔</el-button>
<el-button class="searchButton" type="primary" v-if="info.datastatus == 1 || title == '复制巡视任务'" <el-button class="searchButton" type="primary" v-if="info.datastatus == 1 && title == '复制巡视任务'"
@click="associateMasterDevice">关联主设备</el-button> @click="associateMasterDevice">关联主设备</el-button>
<el-button class="searchButton" type="primary" v-if="info.datastatus == 1 || title == '复制巡视任务'" <el-button class="searchButton" type="primary" v-if="info.datastatus == 1 && title == '复制巡视任务'"
@click="AssociatedComponents">关联部件</el-button> @click="AssociatedComponents">关联部件</el-button>
<el-button class="searchButton" type="primary" v-if="info.datastatus == 1 || title == '复制巡视任务'" <el-button class="searchButton" type="primary" v-if="info.datastatus == 1 && title == '复制巡视任务'"
@click="AssociatedInspection">关联巡视点位</el-button> @click="AssociatedInspection">关联巡视点位</el-button>
</div> </div>
</div> </div>
<div> <div class="suo">
<div> <div>
<div class="essentialTop">关联结果 </div> <div class="essentialTop">关联结果 </div>
<div v-if="deviceLevel == 0" class="essentialBottom"> <div v-if="deviceLevel == 0" class="essentialBottom">
暂未绑定 暂未绑定
</div> </div>
<div v-if="deviceLevel == 1"> <div v-if="deviceLevel == 1">
<el-scrollbar height="300px">
<el-table :data="allData" <el-table :data="allData" style="width: 100%;margin-bottom: 15px;" row-key="id" default-expand-all
style="width: 100%;height: calc(100vh - 650px);overflow:auto;margin-bottom: 15px;" row-key="id" :header-cell-style="tableBg" :row-class-name="tableRowClassName">
default-expand-all :header-cell-style="tableBg" :row-class-name="tableRowClassName">
<el-table-column label="序号" type="index" align="center" width="50px" /> <el-table-column label="序号" type="index" align="center" width="50px" />
<el-table-column label="间隔名称" prop="bayName" width="110"></el-table-column> <el-table-column label="间隔名称" prop="bayName" width="110"></el-table-column>
<el-table-column label="所属变电站" prop="stationName"></el-table-column> <el-table-column label="所属变电站" prop="stationName"></el-table-column>
@ -2423,11 +2422,13 @@ const open = () => {
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar>
</div> </div>
<div v-if="deviceLevel == 2"> <div v-if="deviceLevel == 2">
<el-table :data="allData" <el-scrollbar height="300px">
style="width: 100%;height: calc(100vh - 650px);overflow:auto;margin-bottom: 15px;" row-key="id" <el-table :data="allData" style="width: 100%;margin-bottom: 15px;" row-key="id" default-expand-all
default-expand-all :header-cell-style="tableBg" :row-class-name="tableRowClassName"> :header-cell-style="tableBg" :row-class-name="tableRowClassName">
<el-table-column label="序号" type="index" align="center" width="50px" /> <el-table-column label="序号" type="index" align="center" width="50px" />
<el-table-column label="主设备名称" prop="mainDeviceName" width="110"></el-table-column> <el-table-column label="主设备名称" prop="mainDeviceName" width="110"></el-table-column>
<el-table-column label="所属变电站" prop="stationName"></el-table-column> <el-table-column label="所属变电站" prop="stationName"></el-table-column>
@ -2440,11 +2441,13 @@ const open = () => {
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar>
</div> </div>
<div v-if="deviceLevel == 4"> <div v-if="deviceLevel == 4">
<el-table :data="allData" <el-scrollbar height="300px">
style="width: 100%;height: calc(100vh - 650px);overflow:auto;margin-bottom: 15px;" row-key="id" <el-table :data="allData" style="width: 100%;margin-bottom: 15px;" row-key="id" default-expand-all
default-expand-all :header-cell-style="tableBg" :row-class-name="tableRowClassName"> :header-cell-style="tableBg" :row-class-name="tableRowClassName">
<el-table-column label="序号" type="index" align="center" width="50px" /> <el-table-column label="序号" type="index" align="center" width="50px" />
<el-table-column label="部件名称" prop="componentName" width="110"></el-table-column> <el-table-column label="部件名称" prop="componentName" width="110"></el-table-column>
<el-table-column label="所属变电站" prop="stationName"></el-table-column> <el-table-column label="所属变电站" prop="stationName"></el-table-column>
@ -2458,11 +2461,13 @@ const open = () => {
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar>
</div> </div>
<div v-if="deviceLevel == 3"> <div v-if="deviceLevel == 3">
<el-table :data="allData" <el-scrollbar height="300px">
style="width: 100%;height: calc(100vh - 650px);overflow:auto;margin-bottom: 15px;" row-key="id" <el-table :data="allData" style="width: 100%;margin-bottom: 15px;" row-key="id" default-expand-all
default-expand-all :header-cell-style="tableBg" :row-class-name="tableRowClassName"> :header-cell-style="tableBg" :row-class-name="tableRowClassName">
<el-table-column label="序号" type="index" align="center" width="50px" /> <el-table-column label="序号" type="index" align="center" width="50px" />
<el-table-column label="巡视点位名称" prop="deviceName"></el-table-column> <el-table-column label="巡视点位名称" prop="deviceName"></el-table-column>
<el-table-column label="所属变电站" prop="stationName" width="170px"></el-table-column> <el-table-column label="所属变电站" prop="stationName" width="170px"></el-table-column>
@ -2477,6 +2482,8 @@ const open = () => {
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar>
</div> </div>
</div> </div>
</div> </div>
@ -2850,8 +2857,8 @@ const open = () => {
</Eldialog> </Eldialog>
<Eldialog v-if="control" :title="'二次密码验证'" :zIndex="2000" :width="'400px'" @before-close="inputCLOse"> <Eldialog v-if="control" :title="'二次密码验证'" :zIndex="2000" :width="'400px'" @before-close="inputCLOse">
<template v-slot:PopFrameContent> <template v-slot:PopFrameContent>
<el-input v-model="password" autocomplete="new-password" :name="'pwd-'+Date.now()" placeholder="请输入账号密码" style="margin-top:30px;width: 100%;" type="password" <el-input v-model="password" autocomplete="new-password" :name="'pwd-' + Date.now()" placeholder="请输入账号密码"
show-password /> style="margin-top:30px;width: 100%;" type="password" show-password />
<div style="padding:5px 0"> <div style="padding:5px 0">
<div v-if="inputTrue" style="color:red;">密码错误请重新输入</div> <div v-if="inputTrue" style="color:red;">密码错误请重新输入</div>
</div> </div>
@ -3148,6 +3155,11 @@ const open = () => {
:deep(.el-scrollbar) { :deep(.el-scrollbar) {
height: calc(100vh - 360px); height: calc(100vh - 360px);
} }
.suo{
:deep(.el-scrollbar) {
height: 100% !important;
}
}
.draggable { .draggable {
padding-top: 15px; padding-top: 15px;

View File

@ -52,7 +52,12 @@ const form: any = ref({
custom2: '', custom2: '',
}) })
const recognitionType = ref([])
function getTypeTwo() {
getDeviceByType({ dictcode: 'recognition_type' }).then((res: any) => {
recognitionType.value = res.data
})
}
// //
function sure(data: any, index: any) { function sure(data: any, index: any) {
if (index == 'one') { if (index == 'one') {
@ -568,6 +573,7 @@ onMounted(() => {
deviceName: '', deviceName: '',
valid: '', valid: '',
} }
getTypeTwo()
setupWebSocket() setupWebSocket()
getType() getType()
getData() getData()
@ -792,45 +798,50 @@ function retrunClick() {
<span v-else>--</span> <span v-else>--</span>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="desc" label="识别类型" width="140px" align="center" > <el-table-column prop="desc" label="识别类型" width="140px">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.desc != null && scope.row.desc != ''">{{ scope.row.desc <span v-if="scope.row.recognitionType">{{ currency(recognitionType,
scope.row.recognitionType,)
}}</span> }}</span>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="识别值" width="100px" align="center"> <el-table-column label="识别值" width="100px">
<template #default="scope"> <template #default="scope">
<span <span
v-if="scope.row.valueType == 'meter' || scope.row.valueType == 'infrared' || scope.row.valueType == 'sound'"> v-if="scope.row.valueType == 'meter'||scope.row.valueType == 'partial' ||scope.row.valueType == 'partial' || scope.row.valueType == 'infrared'">
<span v-if="scope.row.analysisResult == '异常'" <span v-if="scope.row.analysisResult == '异常'"
style="color: red;font-size: 16px;font-weight: bold;"> {{ style="color: red;font-size: 16px;font-weight: bold;">
scope.row.value }} {{ scope.row.value }} {{ scope.row.unit }}
{{ scope.row.unit }}</span>
<span v-else> {{ scope.row.value }} {{ scope.row.unit }}</span>
</span> </span>
<span v-else> <span v-else>
<span v-if="scope.row.conf != null && scope.row.conf != ''">{{ {{ scope.row.value }} {{ scope.row.unit }}
scope.row.conf </span>
}}</span> </span>
<span v-else>
<span
v-if="scope.row.desc != null && scope.row.desc != '' && scope.row.valueType != 'sound'">
{{ scope.row.desc }}
</span>
<span v-else>--</span> <span v-else>--</span>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="analysisResult" label="巡视结论" align="center" width="80px"> <el-table-column prop="analysisResult" label="巡视结论" align="center" width="80px">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.analysisResult == '正常'" <span v-if="scope.row.analysisResult == '正常' && scope.row.flag != '7'"
style="color: rgb(0, 249, 162)">正常</span> style="color: rgb(0, 249, 162)">正常</span>
<span v-if="scope.row.analysisResult == '异常'" <span v-if="scope.row.analysisResult == '异常' && scope.row.flag != '7'"
style="color: rgb(255, 51, 0);color: red;font-size: 16px;font-weight: bold;">异常</span> style="color: rgb(255, 51, 0);font-size: 16px;font-weight: bold;">异常</span>
<span v-if="scope.row.analysisResult == '设备检修'" <span v-if="scope.row.analysisResult == '设备检修' && scope.row.flag != '7'"
style="color: rgb(0, 153, 255)">设备检修</span> style="color: rgb(0, 153, 255)">设备检修</span>
<span v-if="scope.row.analysisResult == '失败'" <span v-if="scope.row.analysisResult == '失败' && scope.row.flag != '7'"
style="color: rgb(255, 189, 0)">失败</span> style="color: rgb(255, 189, 0)">失败</span>
<span v-if="scope.row.analysisResult == '成功'" <span v-if="scope.row.analysisResult == '成功' && scope.row.flag != '7'"
style="color: rgb(0, 249, 162)">成功</span> style="color: rgb(0, 249, 162)">成功</span>
<span v-if="scope.row.flag == '7'" style="color: rgb(255, 51, 0);">表计读数异常</span>
<span <span
v-if="scope.row.analysisResult == '' || scope.row.analysisResult == null">--</span> v-if="(scope.row.analysisResult == '' && scope.row.flag != '7') || (scope.row.analysisResult == null && scope.row.flag != '7')">--</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reviseValue" label="修正值" align="center"> <el-table-column prop="reviseValue" label="修正值" align="center">
@ -881,29 +892,30 @@ function retrunClick() {
style="display: inline-block;margin-left: 15px;">{{ tableDataHover.time style="display: inline-block;margin-left: 15px;">{{ tableDataHover.time
}}</span> }}</span>
</div> </div>
<div style="margin-top: 10px;"><span <!-- <div style="margin-top: 10px;"><span
style="display: inline-block;margin-left: 17px;">实物id style="display: inline-block;margin-left: 17px;">实物id
:</span><span style="display: inline-block;margin-left: 15px;" :</span><span style="display: inline-block;margin-left: 15px;"
v-if="tableDataHover.materialId">{{ tableDataHover.materialId }}</span><span v-if="tableDataHover.materialId">{{ tableDataHover.materialId }}</span><span
style="display: inline-block;margin-left: 15px;width: 70%;" v-else>--</span> style="display: inline-block;margin-left: 15px;width: 70%;" v-else>--</span>
</div> </div> -->
<div style="margin-top: 10px;"> <div style="margin-top: 10px;">
<span style="display: block;margin-left: 33px;">阈值 :</span> <span style="display: block;margin-left: 33px;">阈值 :</span>
<span style="display:block;margin-left:80px;margin-top: -23px;" <span style="display:block;margin-left:80px;margin-top: -23px;"
v-if="tableDataHover.sameMin"> v-if="tableDataHover.dangerLower">
<span <!-- <span
style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{ style="display: inline-block;width: 50%;text-align: left;"><span>预警</span><span>{{
tableDataHover.earlyMin }}-{{ tableDataHover.earlyMax }}</span></span> tableDataHover.earlyMin }}-{{ tableDataHover.earlyMax }}</span></span> -->
<span <span
style="display: inline-block;width: 50%;text-align: left;"><span>一般</span><span>{{ style="display: inline-block;width: 100%;text-align: left;"><span>一般</span><span>{{
tableDataHover.sameMin }}-{{ tableDataHover.sameMax }}</span></span> tableDataHover.commonLower }}-{{ tableDataHover.commonUpper
<span
style="display: inline-block;width: 50%;text-align: left;"><span>严重</span><span>{{
tableDataHover.seriousMin }}-{{ tableDataHover.seriousMax
}}</span></span> }}</span></span>
<span <span
style="display: inline-block;width: 50%;text-align: left;"><span>危急</span><span>{{ style="display: inline-block;width: 100%;text-align: left;"><span>严重</span><span>{{
tableDataHover.criticalMin }}-{{ tableDataHover.criticalMax tableDataHover.seriousLower }}-{{ tableDataHover.seriousUpper
}}</span></span>
<span
style="display: inline-block;width: 100%;text-align: left;"><span>危急</span><span>{{
tableDataHover.dangerLower }}-{{ tableDataHover.dangerUpper
}}</span></span> }}</span></span>
</span> </span>
<span v-else style="display:block;margin-left:88px;margin-top: -23px;"> <span v-else style="display:block;margin-left:88px;margin-top: -23px;">