故障诊断页面

This commit is contained in:
wangxk 2025-05-16 16:18:11 +08:00
parent 548f66b281
commit 5302d8208b
20 changed files with 530 additions and 560 deletions

View File

@ -2,6 +2,6 @@ window.webConfig = {
"webApiBaseUrl": "http://192.168.1.20:8090/", "webApiBaseUrl": "http://192.168.1.20:8090/",
"wsApiBaseUrl": "ws://192.168.1.20:8090/", "wsApiBaseUrl": "ws://192.168.1.20:8090/",
"webApiMonitorUrl": "http://192.168.1.20:18080", "webApiMonitorUrl": "http://192.168.1.20:18080",
"answeringUrl":"http://121.37.111.42:8083/ui/chat/431e83302d0bbfbe", "answeringUrl":"http://121.37.111.42:8080/ui/chat/a9d56e68484c5594",
"webSystemTitle":"标题" "webSystemTitle":"标题"
} }

View File

@ -0,0 +1,42 @@
import request from '@/utils/request';
//获取所有角色
export function getAlgorithmClassTree(params:any){
return request({
url: '/algorithm/algorithm-class/getAlgorithmClassTree' ,
method: 'get',
params: params
});
}
//查询算法部件的参数
export function getAlgorithmDeviceParams(params:any){
return request({
url: '/algorithm/algorithm-device/getAlgorithmDeviceParams' ,
method: 'post',
params: params
});
}
//查询算法部件的参数曲线
export function getAlgorithmDeviceCurve(params:any){
return request({
url: '/algorithm/algorithm-device/getAlgorithmDeviceCurve' ,
method: 'post',
params: params
});
}
//根据算法id过去参数名称
export function getAlgorithmParamsNameList(params:any){
return request({
url: '/algorithm/algorithm-params/getAlgorithmParamsNameList' ,
method: 'get',
params: params
});
}
//调用算法分析
export function callAlgorithmAnalyse(params:any){
return request({
url: '/algorithm/algorithm-params/callAlgorithmAnalyse' ,
method: 'post',
params: params
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -60,7 +60,7 @@ const props = defineProps({
}, },
}); });
const pcode = ref(10) const pcode = ref(10)
const inputgo = ref() const inputgo = ref(1)
const arr_product = ref([ const arr_product = ref([
{ {
lable: 10, lable: 10,

View File

@ -404,7 +404,7 @@
</template> </template>
</Eldialog> </Eldialog>
<!-- 关联弹框 --> <!-- 关联弹框 -->
<Eldialog v-if="association" :title="associationTitle" :zIndex="2000" :width="'1200px'" :height="'800px'" <Eldialog v-if="association" :title="associationTitle" :zIndex="2000" :width="'1400px'" :height="'800px'"
@before-close="association = false"> @before-close="association = false">
<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;">
@ -427,6 +427,16 @@
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="请输入点位名称" @clear="getDevice()"
@keyup.enter="getDevice()" /> @keyup.enter="getDevice()" />
<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.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.mainDeviceId" class="mr-2 selType" placeholder="主设备" clearable <el-select v-model="deviceInfo.mainDeviceId" 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 deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName" <el-option v-for="item in deviceMain" :key="item.mainDeviceId" :label="item.mainDeviceName"
@ -5666,7 +5676,7 @@ ws1.onclose = () => {
} }
.selType { .selType {
width: 240px; width: 210px;
color: #fff; color: #fff;
border-radius: 3px; border-radius: 3px;

View File

@ -179,7 +179,7 @@ function confirmClick(formEl: any) {
console.log(res) console.log(res)
if (res.code == 0) { if (res.code == 0) {
algorithmible.value = false algorithmible.value = false
ElMessage.success('添加成功') ElMessage.success('更改成功')
gettreedata() gettreedata()
} }
}) })
@ -233,8 +233,11 @@ function handleClose1() {
} }
function replace() { function replace() {
meterdata.value.forEach((item: any) => { meterdata.value.forEach((item: any) => {
item.paramId = item.id // item.paramId = item.id
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
@ -320,7 +323,8 @@ const mainble = ref()
function editmain(row: any) { function editmain(row: any) {
mainble.value = true mainble.value = true
meterloding.value = true meterloding.value = true
getAlgorithmParamsList({ algorithmId: row.algorithmId }).then((res: any) => { componentId.value= row.componentId
getAlgorithmParamsList({ algorithmId: row.algorithmId,componentId: componentId.value}).then((res: any) => {
meterdata.value = res.data meterdata.value = res.data
meterloding.value = false meterloding.value = false
}) })
@ -333,6 +337,7 @@ const sourceType = ref(1)
const cnshuId = ref('') const cnshuId = ref('')
const tableref = ref() const tableref = ref()
const deviceId = ref('') const deviceId = ref('')
const componentId = ref('')
function selentDevide(row: any) { function selentDevide(row: any) {
cnshuId.value = row.id cnshuId.value = row.id
if (row.deviceId) { if (row.deviceId) {
@ -358,77 +363,27 @@ function suredevice() {
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.componentId = deviceIdList.value.componentId
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.componentId = deviceIdList.value.mainComponentId
item.paramValue = deviceIdList.value.signalName
} }
item.sourceType = sourceType.value item.sourceType = sourceType.value
} }
// item.paramId = deviceIdList.value.paramId // item.paramId = deviceIdList.value.paramId
}) })
console.log( meterdata.value)
} }
function typeChange(val: any) { function typeChange(val: any) {
sourceType.value = val sourceType.value = val
if (sourceType.value == 1) { getdevicedata1()
getdeviceTree()
} else if (sourceType.value == 2) {
getsignaltree()
}
} }
////// //////
const devicetree = ref([])
const deviceloading = ref(false)
const deviceref = ref()
const bayId = ref('') const bayId = ref('')
const currentNodeKey1 = ref()
function getdeviceTree() {
const params = {
stationId: userStore.stationId
}
deviceloading.value = true
getTreelist(params).then((res: any) => {
devicetree.value = res.data
deviceloading.value = false
bayId.value = res.data[0].children[0].children[0].bayId
getdevicedata1()
nextTick(() => {
deviceref.value?.setCurrentKey(bayId.value);
});
})
.catch((error: any) => {
treeloading.value = false
})
}
function handledeviceClick(data: any, node: any) {
if (sourceType.value == 1) {
if (data.children) {
node.isCurrent = false
currentNodeKey1.value = ""
nextTick(() => {
currentNodeKey1.value = bayId.value
})
} else {
bayId.value = data.bayId;
// treeloading.value = true
getdevicedata1()
}
} else if (sourceType.value == 2) {
if (data.children.length > 0) {
nextTick(() => {
deviceref.value?.setCurrentKey(currentNodeid.value);
});
} else {
currentNodeid.value = data.id
getdevicedata1();
}
}
}
const devicedataloading = ref(false) const devicedataloading = ref(false)
const devicetaotal = ref() const devicetaotal = ref()
const devicedata = ref([]) const devicedata = ref([])
@ -436,12 +391,13 @@ const paramstable: any = ref({
size: 10, size: 10,
current: 1, current: 1,
deviceName: '', deviceName: '',
mainDeviceId: '',
componentId: '' componentId: ''
}) })
function getdevicedata1() { function getdevicedata1() {
if (sourceType.value == 1) { if (sourceType.value == 1) {
paramstable.value.bayId = bayId.value paramstable.value.bayId = bayId.value
paramstable.value.componentId = componentId.value
getdevicedata(paramstable.value).then((res: any) => { getdevicedata(paramstable.value).then((res: any) => {
devicedata.value = res.data.records devicedata.value = res.data.records
devicetaotal.value = res.data.total devicetaotal.value = res.data.total
@ -457,7 +413,7 @@ function getdevicedata1() {
}) })
} else if (sourceType.value == 2) { } else if (sourceType.value == 2) {
paramstable.value.mainComponentId = currentNodeid.value paramstable.value.mainComponentId = componentId.value
queryDeviceSignal(paramstable.value).then((res: any) => { queryDeviceSignal(paramstable.value).then((res: any) => {
devicedata.value = res.data.records devicedata.value = res.data.records
devicetaotal.value = res.data.total devicetaotal.value = res.data.total
@ -531,19 +487,6 @@ function notification() {
} }
////// //////
///// /////
const currentNodeid = ref('')
function getsignaltree() {
deviceloading.value = true
getDeviceTree({ componentName: '', stationCode: userStore.stationCode }).then((res: any) => {
devicetree.value = publicTree(res.data, '')
currentNodeid.value = res.data[0].children[0].children[0].children[0].id
nextTick(() => {
deviceref.value?.setCurrentKey(currentNodeid.value);
});
deviceloading.value = false
getdevicedata1()
})
}
const typeoptions: any = ref([]) const typeoptions: any = ref([])
function isykyttype(val: any) { function isykyttype(val: any) {
let name: any = '' let name: any = ''
@ -641,7 +584,7 @@ onMounted(() => {
<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 src="@/assets/newimg/ht_xg.png" alt="" title="修改" @click="editmain(scope.row)" <img src="@/assets/newimg/ht_xg.png" alt="" title="关联" @click="editmain(scope.row)"
style="cursor: pointer;"> style="cursor: pointer;">
<img src="@/assets/newimg/ht_sc.png" alt="" title="删除" @click="delmain(scope.row)" <img src="@/assets/newimg/ht_sc.png" alt="" title="删除" @click="delmain(scope.row)"
style="cursor: pointer;"> style="cursor: pointer;">
@ -738,7 +681,7 @@ onMounted(() => {
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="paramFixed" label="是否关联点位" width="100" align="center"> <el-table-column prop="paramFixed" label="是否固定参数" width="100" align="center">
<template #default="scope"> <template #default="scope">
<div style="height:35px;padding: 2px 0px;"> <div style="height:35px;padding: 2px 0px;">
<el-select v-if="scope.row.algor" v-model="scope.row.paramFixed" placeholder=" "> <el-select v-if="scope.row.algor" v-model="scope.row.paramFixed" placeholder=" ">
@ -835,12 +778,12 @@ onMounted(() => {
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="paramRange" label="范围" width="70" align="center"></el-table-column> <el-table-column prop="paramRange" label="范围" width="70" align="center"></el-table-column>
<el-table-column prop="paramValue" label="参数值" width="100" align="center"> <el-table-column prop="paramValue" label="参数值" align="center">
<template #default="scope"> <template #default="scope">
<div style="height:35px;padding: 2px 0px;"> <div style="padding: 2px 0px;">
<el-input v-if="scope.row.paramFixed == 0" v-model="scope.row.paramValue" <el-input v-if="scope.row.paramFixed == 1" v-model="scope.row.paramValue"
style="width: 100%" clearable /> style="width: 100%" clearable />
<span v-else>--</span> <span v-else-if="scope.row.paramFixed == 0">{{ scope.row.paramValue }}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -850,7 +793,7 @@ onMounted(() => {
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; ">
<!-- 0 1 --> <!-- 0 1 -->
<el-button size="small" class="searchButton" type="primary" <el-button size="small" class="searchButton" type="primary"
:disabled="scope.row.paramFixed == 0" :disabled="scope.row.paramFixed == 1"
@click="selentDevide(scope.row)">选择点位</el-button> @click="selentDevide(scope.row)">选择点位</el-button>
</span> </span>
</template> </template>
@ -871,28 +814,7 @@ onMounted(() => {
<div :class="sourceType == 2 ? 'bianhua' : ''" @click="typeChange(2)">关联信号</div> <div :class="sourceType == 2 ? 'bianhua' : ''" @click="typeChange(2)">关联信号</div>
</div> </div>
<div class="faulttemplate-box1"> <div class="faulttemplate-box1">
<div class="silderLeft1">
<div class="displayflex" style="margin: 10px 0px 5px 0px;padding-left: 8px;height: 30px;">
<div class="line"></div>
<div class="title" style="font-size: 14px;">分类导航</div>
</div>
<el-scrollbar height="calc(58vh)" style="width:100%">
<el-tree v-if="sourceType == 1" ref="deviceref" @node-click="handledeviceClick"
node-key="bayId" :data="devicetree" :current-node-key="currentNodeKey1"
:highlight-current="true" :props="defaultProps1" v-loading="deviceloading">
<template #default="{ node }">
<span>{{ node.label }}</span>
</template>
</el-tree>
<el-tree v-if="sourceType == 2" ref="deviceref" @node-click="handledeviceClick"
node-key="id" :data="devicetree" :current-node-key="currentNodeKey1"
:highlight-current="true" :props="defaultProps1" v-loading="deviceloading">
<template #default="{ node }">
<span>{{ node.label }}</span>
</template>
</el-tree>
</el-scrollbar>
</div>
<div class="silderRight1"> <div class="silderRight1">
<div <div
style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:15px 0px"> style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:15px 0px">
@ -904,16 +826,6 @@ onMounted(() => {
<el-input v-if="sourceType == 2" v-model="paramstable.signalName" <el-input v-if="sourceType == 2" v-model="paramstable.signalName"
placeholder="请输入信号名称" @clear="getdevicedata1()" @change="getdevicedata1()" placeholder="请输入信号名称" @clear="getdevicedata1()" @change="getdevicedata1()"
style="margin-right:15px ;width: 185px;" clearable /> style="margin-right:15px ;width: 185px;" clearable />
<el-select v-if="sourceType == 1" clearable v-model="paramstable.mainDeviceId"
placeholder="所属主设备" style="margin-right:15px ;" @change="getdevicedata1()">
<el-option v-for="item in mainEquipment" :key="item.mainDeviceId"
:label="item.mainDeviceName" :value="item.mainDeviceId" />
</el-select>
<el-select v-if="sourceType == 1" clearable v-model="paramstable.componentId"
placeholder="所属部件" style="margin-right:15px ;" @change="getdevicedata1()">
<el-option v-for="item in getacaTypeBayId" :key="item.componentId"
:label="item.componentName" :value="item.componentId" />
</el-select>
<el-button class="searchButton" type="primary" <el-button class="searchButton" type="primary"
@click="getdevicedata1()">搜索</el-button> @click="getdevicedata1()">搜索</el-button>
<el-button class="searchButton" @click="resetting()">重置</el-button> <el-button class="searchButton" @click="resetting()">重置</el-button>

View File

@ -107,7 +107,7 @@ function getsignadata() {
}) })
} }
function gettabledata() { function gettabledata() {
if (detaall.value.length > 0) { if (detaall.value) {
tableform.value.startDate = formatDate(detaall.value[0]) tableform.value.startDate = formatDate(detaall.value[0])
tableform.value.endDate = formatDate(detaall.value[1]) tableform.value.endDate = formatDate(detaall.value[1])
} else { } else {
@ -278,7 +278,7 @@ function gettoday() {
:row-class-name="tableRowClassName" :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="index" label="序号" width="50px" align="center" /> <el-table-column type="index" label="序号" width="50px" align="center" />
<el-table-column label="采集时间" prop="startTime" width="160" align="center"></el-table-column> <el-table-column label="采集时间" prop="startTime" align="center"></el-table-column>
<el-table-column label="监测数值" prop="value" align="center"></el-table-column> <el-table-column label="监测数值" prop="value" align="center"></el-table-column>
<el-table-column label="单位" prop="unit" align="center"></el-table-column> <el-table-column label="单位" prop="unit" align="center"></el-table-column>
</el-table> </el-table>
@ -342,7 +342,7 @@ function gettoday() {
.text_top { .text_top {
width: 100%; width: 100%;
margin-top:20px ; margin-top:30px ;
.text_top_title { .text_top_title {
display: flex; display: flex;
@ -377,24 +377,24 @@ function gettoday() {
align-items: center; align-items: center;
.content_one_title { .content_one_title {
width: 114px; width: 114px;
height: 75px; height: 50px;
text-align: center; text-align: center;
line-height: 75px; line-height: 50px;
border-top: 1px solid #00397c; border-top: 1px solid #00397c;
border-left: 1px solid #00397c; border-left: 1px solid #00397c;
background-color: #002562; background-color: #002562;
font-size: 16px; font-size: 14px;
color: #B5D7FF; color: #B5D7FF;
} }
.content_one_text { .content_one_text {
width: 267px; width: 267px;
height: 75px; height: 50px;
text-align: center; text-align: center;
line-height: 75px; line-height: 50px;
border-top: 1px solid #00397c; border-top: 1px solid #00397c;
border-left: 1px solid #00397c; border-left: 1px solid #00397c;
font-size: 16px; font-size: 14px;
color: #B5D7FF; color: #B5D7FF;
} }
} }

View File

@ -47,6 +47,7 @@ const hutotal: any = ref('')
const environment_data = ref([]) const environment_data = ref([])
// const treeloading = ref(false) // const treeloading = ref(false)
function getEnvironment() { function getEnvironment() {
treeloading.value = true
if (tableData.value) { if (tableData.value) {
environment_params.value.startDate = tableData.value[0] environment_params.value.startDate = tableData.value[0]
@ -57,6 +58,7 @@ function getEnvironment() {
} }
environment_params.value.signalId = signalId.value environment_params.value.signalId = signalId.value
getdeviceworkdata(environment_params.value).then((res: any) => { getdeviceworkdata(environment_params.value).then((res: any) => {
treeloading.value = false
environment_data.value = res.data.records environment_data.value = res.data.records
environment_params.value.size = res.data.size environment_params.value.size = res.data.size
environment_params.value.current = res.data.current environment_params.value.current = res.data.current
@ -65,7 +67,7 @@ function getEnvironment() {
}) })
} }
function environmentReset() { function environmentReset() {
environmentInfo // environmentInfo
if (tableData.value) { if (tableData.value) {
tableData.value.length = 0 tableData.value.length = 0
} }
@ -121,12 +123,14 @@ const environmentInfo: any = ref([])
// } // }
function getInit() { function getInit() {
let params = { let params = {
stationId: userStore.stationId stationId: userStore.stationId
} }
getDeviceWorkData(params).then((res: any) => { getDeviceWorkData(params).then((res: any) => {
environmentInfo.value = res.data environmentInfo.value = res.data
signalId.value = res.data[0].signalId
}) })
} }
@ -152,8 +156,9 @@ function currency(list: any, itemcode: any) {
const EquipmentType: any = ref([]) const EquipmentType: any = ref([])
function gettype() { function gettype() {
getDeviceByType({ dictcode: 'system' }).then((res: any) => { getDeviceByType({ dictcode: 'system' }).then((res: any) => {
// debugger
EquipmentType.value = res.data EquipmentType.value = res.data
signalId.value = res.data[0].signalId
getEnvironment() getEnvironment()
getechartdata() getechartdata()
}) })
@ -208,7 +213,7 @@ function getechartdata() {
yAxis: echartdata.value.yAxis, yAxis: echartdata.value.yAxis,
series: echartdata.value.series series: echartdata.value.series
}) })
} }
} }
</script> </script>
@ -240,14 +245,14 @@ function getechartdata() {
<el-button class="searchButton" @click="environmentReset()">重置</el-button> <el-button class="searchButton" @click="environmentReset()">重置</el-button>
</div> </div>
</div> </div>
<el-table :data="environment_data" :row-class-name="tableRowClassName" class="PatrolMonitoring" <el-table :data="environment_data" :row-class-name="tableRowClassName" v-loading="treeloading"
v-loading="treeloading" element-loading-background="rgb(11, 40, 34)" highlight-current-row element-loading-background="rgb(11, 40, 34)" highlight-current-row
style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(56vh); overflow: auto " style="width: 100%;margin:auto;position: relative;margin-top: 15px; height:calc(56vh); overflow: auto "
:header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }"> :header-cell-style="{ background: '#253b51', color: '#b5d7ff', height: '50px' }">
<el-table-column type="index" label="序号" width="80px" align="center" /> <el-table-column type="index" label="序号" width="80px" align="center" />
<el-table-column property="signalName" label="气象参数名称" align="center" /> <el-table-column property="signalName" label="气象参数名称" align="center" />
<el-table-column property="startTime" label="采集时间" align="center" width="160px" /> <el-table-column property="startTime" label="采集时间" align="center" />
<el-table-column property="taskName" label="监测数值" align="center" width="100px"> <el-table-column property="taskName" label="监测数值" align="center">
<template #default="scope"> <template #default="scope">
<div v-if="scope.row.value">{{ scope.row.value }}{{ scope.row.unit }}</div> <div v-if="scope.row.value">{{ scope.row.value }}{{ scope.row.unit }}</div>
</template> </template>

View File

@ -12,6 +12,12 @@ import Page from '@/components/Pagination/page.vue'
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import Eldialog from '@/components/seccmsdialog/eldialog.vue'; import Eldialog from '@/components/seccmsdialog/eldialog.vue';
import wavEcharts from '@/components/wavEcharts/index.vue'; import wavEcharts from '@/components/wavEcharts/index.vue';
import dayjs from 'dayjs'
function today(){
let startTime = dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss')
let endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
tableData.value = [startTime,endTime]
}
const userStore = useUserStore(); const userStore = useUserStore();
const url = userStore.webApiBaseUrl; const url = userStore.webApiBaseUrl;
function getData() { function getData() {
@ -78,9 +84,10 @@ onBeforeUnmount(() => {
}) })
onMounted(() => { onMounted(() => {
getInit() getInit()
today()
}) })
const tableData = ref([]) const tableData:any = ref([])
const treeloading = ref(false) const treeloading = ref(false)
const environment_data = ref([ const environment_data = ref([
@ -95,7 +102,8 @@ const params: any = ref({
endDate: '', endDate: '',
}) })
function getdata() { function getdata() {
if (tableData.value.length != 0) { console.log(tableData.value)
if (tableData.value) {
params.value.startDate = tableData.value[0] params.value.startDate = tableData.value[0]
params.value.endDate = tableData.value[1] params.value.endDate = tableData.value[1]
} else { } else {
@ -233,7 +241,7 @@ function open(row: any) {
<img src="@/assets/tank/line2.png" alt=""> <img src="@/assets/tank/line2.png" alt="">
<div class="bottom_table"> <div class="bottom_table">
<div class="screenHomepage"> <div class="screenHomepage">
<el-date-picker class="screenHomepage" popper-class="elDatePicker" @change="" <el-date-picker class="screenHomepage" popper-class="elDatePicker" @change="getdata()"
style="width: 300px; margin-right: 10px;" v-model="tableData" type="daterange" style="width: 300px; margin-right: 10px;" v-model="tableData" type="daterange"
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
value-format="YYYY-MM-DD" format="YYYY-MM-DD" /> value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
@ -253,15 +261,15 @@ function open(row: any) {
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }"> :header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
<el-table-column type="index" label="序号" width="80px" align="center" /> <el-table-column type="index" label="序号" width="80px" align="center" />
<el-table-column property="fileName" label="文件名称" align="center" /> <el-table-column property="fileName" label="文件名称" align="center" />
<el-table-column property="duration" label="时长" align="center"> <el-table-column property="duration" label="时长" width="60px" align="center">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.duration }}s</span> <span>{{ scope.row.duration }}s</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="patroldeviceName" label="监测设备" align="center"> <el-table-column property="patroldeviceName" width="160px" label="监测设备" align="center">
</el-table-column> </el-table-column>
<el-table-column property="date" label="录制时间" align="center" /> <el-table-column property="date" label="录制时间" width="160px" align="center" />
<el-table-column property="name" label="操作" align="center" width="80px"> <el-table-column property="name" label="操作" align="center" width="80px">
<template #default="scope"> <template #default="scope">
<el-button class="searchButton" @click="open(scope.row)" <el-button class="searchButton" @click="open(scope.row)"

View File

@ -358,19 +358,20 @@ const tableRowClassName = ({
@selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @selection-change="handleSelectionChange" :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" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column label="序号" type="index" width="50" /> <el-table-column label="序号" align="center" type="index" width="50" />
<el-table-column label="设备编号" prop="deviceCode" width="80" /> <el-table-column label="设备编号" align="center" prop="deviceCode" width="80" />
<el-table-column label="设备名称" prop="deviceName" /> <el-table-column label="设备名称" align="left" prop="deviceName" width="120" />
<el-table-column label="设备类型" prop="deviceTypeName" width="170" /> <el-table-column label="设备类型" align="center" prop="deviceTypeName" width="170" />
<el-table-column label="设备型号" prop="deviceModel" width="170" /> <el-table-column label="设备型号" align="center" prop="deviceModel" width="120" />
<el-table-column label="出厂编号" prop="productionNum" width="150" /> <el-table-column label="出厂编号" align="center" prop="productionNum" width="100" />
<el-table-column label="出厂日期" prop="productionDate" width="160"> <el-table-column label="出厂日期" align="center" prop="productionDate" width="160">
<template #default="scope"> <template #default="scope">
<span>{{ dateFormat(scope.row.productionDate) }}</span> <span>{{ dateFormat(scope.row.productionDate) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="安装位置" prop="place" /> <el-table-column label="网关设备IP" align="center" prop="netdeviceIp" width="120" />
<el-table-column label="网关设备IP" prop="netdeviceIp" width="120" /> <el-table-column label="安装位置" align="left" prop="place" />
<el-table-column fixed="right" label="操作" width="80"> <el-table-column fixed="right" label="操作" width="80">
<template #default="scope"> <template #default="scope">
<span <span

View File

@ -85,6 +85,8 @@ onMounted(() => {
getDeviceByType({ dictcode: 'ykytType' }).then((ress: any) => { getDeviceByType({ dictcode: 'ykytType' }).then((ress: any) => {
typeoptions.value = ress.data typeoptions.value = ress.data
}) })
gettype()
getmeterDeviceId()
init() init()
}) })
const CameraName = ref('') const CameraName = ref('')
@ -113,13 +115,17 @@ function isykyttype(val: any) {
} }
return name return name
} }
const systemcode = ref('')
const meterDeviceId = ref('')
function getData() { function getData() {
loading.value = true loading.value = true
const params = { const params = {
current: queryInfo.value.current, current: queryInfo.value.current,
size: queryInfo.value.size, size: queryInfo.value.size,
signalName: signalName.value, signalName: signalName.value,
mainComponentId: currentNodeid.value mainComponentId: currentNodeid.value,
systemcode: systemcode.value,
meterDeviceId:meterDeviceId.value
} }
queryDeviceSignal(params).then((res: any) => { queryDeviceSignal(params).then((res: any) => {
tableData.value = res.data.records tableData.value = res.data.records
@ -130,7 +136,6 @@ function getData() {
function editclick(row: any) { function editclick(row: any) {
signalform.value = JSON.parse(JSON.stringify(row)) signalform.value = JSON.parse(JSON.stringify(row))
getmeterDeviceId() getmeterDeviceId()
gettype()
if (signalform.value.normalRange !== '' && signalform.value.normalRange !== undefined && signalform.value.normalRange !== null) { if (signalform.value.normalRange !== '' && signalform.value.normalRange !== undefined && signalform.value.normalRange !== null) {
signalrangestart.value = signalform.value.normalRange.match(/(\S*)~/)[1] signalrangestart.value = signalform.value.normalRange.match(/(\S*)~/)[1]
signalrangeend.value = signalform.value.normalRange.match(/~(\S*)/)[1] signalrangeend.value = signalform.value.normalRange.match(/~(\S*)/)[1]
@ -196,8 +201,15 @@ function getmeterDeviceId() {
eterDevice.value = res.data eterDevice.value = res.data
}) })
} }
function getmeterDeviceId1(){
if(!systemcode.value){
meterDeviceId.value = ''
}
getmeterDeviceId()
getData()
}
function addclick() { function addclick() {
gettype()
if (ruleFormRef.value != null) ruleFormRef.value.resetFields(); if (ruleFormRef.value != null) ruleFormRef.value.resetFields();
isSwitch.value = false isSwitch.value = false
signalform.value = {} signalform.value = {}
@ -311,6 +323,24 @@ 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
}
function currency1(list: any, itemcode: any) {
let dictname = ''
list.forEach((element: any) => {
if (element. deviceId== itemcode) {
dictname = element.deviceName
}
})
return dictname
}
</script> </script>
<template> <template>
<div class="faulttemplate-box"> <div class="faulttemplate-box">
@ -337,8 +367,18 @@ const tableRowClassName = ({
<el-col :span="24"> <el-col :span="24">
<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 style="display: flex;align-items: center;">
<el-input v-model="signalName" placeholder="请输入信号名称" style="width: 220px;" clearable /> <el-input v-model="signalName" placeholder="请输入信号名称" @change="getData" style="width: 220px;margin-right: 10px;" clearable />
<el-select v-model="systemcode" placeholder="请选择所属系统" clearable
style="width: 220px;margin-right: 10px;" @change="getmeterDeviceId1">
<el-option v-for="item in belonging" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
<el-select v-model="meterDeviceId" placeholder="请选择辅控设备" clearable @change="getData"
style="width: 220px;" :disabled="!systemcode">
<el-option v-for="item in eterDevice" :key="item.deviceId" :label="item.deviceName"
:value="item.deviceId" />
</el-select>
<el-button class="searchButton" type="primary" style="margin-left: 10px;" <el-button class="searchButton" type="primary" style="margin-left: 10px;"
@click="getData">搜索</el-button> @click="getData">搜索</el-button>
</div> </div>
@ -357,26 +397,35 @@ const tableRowClassName = ({
@selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @selection-change="handleSelectionChange" :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" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column label="序号" type="index" width="50" /> <el-table-column label="序号" align="center" type="index" width="50" />
<el-table-column label="信号编号" prop="signalCode" width="100" /> <el-table-column label="信号编号" align="center" prop="signalCode" width="100" />
<el-table-column label="信号名称" prop="signalName" min-width="140" /> <el-table-column label="信号名称" align="left" prop="signalName" width="140" />
<el-table-column label="信号单位" prop="signalUnit" width="80" /> <el-table-column label="信号单位" align="center" prop="signalUnit" width="80" />
<el-table-column label="遥控遥调类型" prop="ykytType" width="150"> <el-table-column 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 label="是否告警信号" prop="signalType" width="100"> <el-table-column 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>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属系统" align="center" prop="systemcode" width="80">
<el-table-column label="遥信地址(yx)" prop="yxAddr" /> <template #default="scope">
<el-table-column label="遥测地址(yc)" prop="ycAddr" /> <span>{{ currency(belonging,scope.row.systemcode) }}</span>
<el-table-column label="遥控地址(yk)" prop="ykAddr" /> </template>
<el-table-column label="遥调地址(yt)" prop="ytAddr" /> </el-table-column>
<el-table-column label="辅控设备" align="center" prop="meterDeviceId" width="80">
<template #default="scope">
<span>{{ currency1(eterDevice,scope.row.meterDeviceId) }}</span>
</template>
</el-table-column>
<el-table-column label="遥信地址(yx)" align="left" prop="yxAddr" />
<el-table-column label="遥测地址(yc)" align="left" prop="ycAddr" />
<el-table-column label="遥控地址(yk)" align="left" prop="ykAddr" />
<el-table-column label="遥调地址(yt)" align="left" prop="ytAddr" />
<!-- <el-table-column label="数据地址" prop="reportAddr" /> --> <!-- <el-table-column label="数据地址" prop="reportAddr" /> -->
<el-table-column fixed="right" label="操作" width="100"> <el-table-column fixed="right" label="操作" width="100">
<template #default="scope"> <template #default="scope">

View File

@ -1765,17 +1765,17 @@ const isGaoliang: any = ref("")
: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"></el-table-column> <el-table-column label="设备编码" prop="patroldeviceCode" align="center" ></el-table-column>
<el-table-column label="设备名称" prop="patroldeviceName" ></el-table-column> <el-table-column label="设备名称" prop="patroldeviceName" align="center" ></el-table-column>
<el-table-column label="设备类型" prop="typeName" width="80"></el-table-column> <el-table-column label="设备类型" prop="typeName" width="80" align="center" ></el-table-column>
<el-table-column label="设备型号" prop="deviceModel" ></el-table-column> <el-table-column label="设备型号" prop="deviceModel" align="center" ></el-table-column>
<el-table-column label="设备来源" prop="deviceSource" width="80"></el-table-column> <el-table-column label="设备来源" prop="deviceSource" align="center" width="80"></el-table-column>
<el-table-column label="生产厂家" prop="manufacturer" 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"></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 v-if="scope.row.typeName == '硬盘录像机'">

View File

@ -334,21 +334,21 @@ const tableRowClassName = ({
:row-class-name="tableRowClassName" :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" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column label="序号" type="index" width="50" /> <el-table-column label="序号" align="center" type="index" width="50" />
<el-table-column label="设备编号" prop="deviceCode" width="100" /> <el-table-column label="设备编号" align="center" prop="deviceCode" width="80" />
<el-table-column label="设备名称" prop="deviceName" min-width="100" /> <el-table-column label="设备名称" align="center" prop="deviceName" width="180" />
<el-table-column label="设备类型" prop="deviceType" min-width="80"> <el-table-column label="设备类型" align="center" prop="deviceType" width="160">
<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 label="中文描述" prop="deviceDesc" min-width="100" /> <el-table-column label="中文描述" align="left" prop="deviceDesc" min-width="100" />
<el-table-column label="设备型号" prop="deviceModel" width="100" /> <el-table-column label="设备型号" align="center" prop="deviceModel" width="100" />
<el-table-column label="出厂编号" prop="productionNum" width="100" /> <el-table-column label="出厂编号" align="center" prop="productionNum" width="100" />
<el-table-column label="出厂日期" prop="productionDate" width="100" align="center" /> <el-table-column label="出厂日期" prop="productionDate" width="100" align="center" />
<el-table-column label="生产厂家" prop="manufacturer" min-width="100" /> <el-table-column label="生产厂家" align="center" width="100" prop="manufacturer" min-width="100" />
<el-table-column label="生产国家" prop="madein" width="100" align="center" /> <el-table-column label="生产国家" prop="madein" width="100" align="center" />
<el-table-column label="以太网IP地址" prop="ipAddr" width="150" /> <el-table-column label="以太网IP地址" align="center" prop="ipAddr" width="150" />
<el-table-column prop="status" label="设备状态" width="100" align="center"> <el-table-column prop="status" label="设备状态" width="100" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.status === '00'" style="font-size: 14px;color:#FF3300;">停用</span> <span v-if="scope.row.status === '00'" style="font-size: 14px;color:#FF3300;">停用</span>
@ -356,7 +356,7 @@ const tableRowClassName = ({
<span v-else-if="scope.row.status === '02'" style="font-size: 14px;color: #FFCC00;">离线</span> <span v-else-if="scope.row.status === '02'" style="font-size: 14px;color: #FFCC00;">离线</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" width="110"> <el-table-column align="center" fixed="right" label="操作" width="110">
<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; ">

View File

@ -716,17 +716,17 @@ function GetArea() {
: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"></el-table-column> <el-table-column label="设备编码" prop="patroldeviceCode" align="center" ></el-table-column>
<el-table-column label="设备名称" prop="patroldeviceName"></el-table-column> <el-table-column label="设备名称" prop="patroldeviceName" align="center" ></el-table-column>
<el-table-column label="设备型号" prop="deviceModel"></el-table-column> <el-table-column label="设备型号" prop="deviceModel" align="center" ></el-table-column>
<el-table-column label="设备来源" prop="deviceSource" width="110"></el-table-column> <el-table-column label="设备来源" prop="deviceSource" align="center" width="110"></el-table-column>
<el-table-column label="生产厂家" prop="manufacturer" width="110"> <el-table-column label="生产厂家" prop="manufacturer" align="center" width="110">
<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"></el-table-column> <el-table-column label="安装位置" prop="place" align="center" ></el-table-column>
<el-table-column label="实时状态" width="100" prop="datastatus"> <el-table-column label="实时状态" width="100" align="center" prop="datastatus">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.datastatus == 1" style="color:rgb(0, 204, 102)"><img <span v-if="scope.row.datastatus == 1" style="color:rgb(0, 204, 102)"><img
src="@/assets/newimg/u387.png" alt="" src="@/assets/newimg/u387.png" alt=""
@ -736,7 +736,7 @@ function GetArea() {
style="display: inline-block; margin: 0px 5px; ">离线</span> style="display: inline-block; margin: 0px 5px; ">离线</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" width="120" prop="datastatus"> <el-table-column label="状态" width="120" align="center" prop="datastatus">
<template #default="scope"> <template #default="scope">
<el-switch v-model="scope.row.datastatus" active-value="1" inactive-value="0" <el-switch v-model="scope.row.datastatus" active-value="1" inactive-value="0"
@change="switchChange(scope.row)" style="margin-right: 4px"></el-switch> @change="switchChange(scope.row)" style="margin-right: 4px"></el-switch>

View File

@ -3,14 +3,11 @@ import { ref, onMounted, reactive, nextTick } from 'vue'
import Page from '@/components/Pagination/page.vue' import Page from '@/components/Pagination/page.vue'
import { ElMessageBox, ElMessage, ElTable, FormRules, ElTree } from 'element-plus' import { ElMessageBox, ElMessage, ElTable, FormRules, ElTree } from 'element-plus'
import { getDeviceByType } from '@/api/device' import { getDeviceByType } from '@/api/device'
import { queryDevice, addDevice, updateDevice, deleteDeviceById, deleteDeviceByIds, updateDeviceByIds } from '@/api/auxiliarymanage/index';
import { getGatewayList } from '@/api/systemmanage'
import { getdevicedata } from "@/api/device";
import Eldialog from '@/components/seccmsdialog/eldialog.vue' import Eldialog from '@/components/seccmsdialog/eldialog.vue'
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import { import * as echarts from 'echarts'
getBayTree, import { getAlgorithmClassTree, getAlgorithmDeviceParams, getAlgorithmDeviceCurve, getAlgorithmParamsNameList, callAlgorithmAnalyse } from '@/api/question';
} from "@/api/makeTask"; import { fa } from 'element-plus/es/locale'
const userStore = useUserStore(); const userStore = useUserStore();
// //
interface Tree { interface Tree {
@ -35,244 +32,212 @@ const vMove = {
}; };
} }
} }
const tableRowClassName = ({ const defaultProps = { label: "name" };
row,
rowIndex,
}: {
row: any
rowIndex: number
}) => {
if (rowIndex % 2 === 0) {
return 'warning-row'
} else if (rowIndex % 2 === 1) {
return 'success-row'
}
return ''
}
const defaultProps = { label: "dictname" };
const defaultProps1 = {
children: "children",
label: "name"
};
const checktreenode: any = ref({})
const handleNodeClick = (data: Tree) => {
};
const treeRef = ref<InstanceType<typeof ElTree>>() const treeRef = ref<InstanceType<typeof ElTree>>()
const treeData: any = ref([]) const treeData: any = ref([])
const treeloading = ref(false) const treeloading = ref(false)
onMounted(() => { onMounted(() => {
init() init()
}) })
const algorithmClassName = ref('')
const algorithmId = ref('')
const componentId = ref('')
function init() { function init() {
const params = { const params = {
dictcode: 'FaultDiagnosisType' algorithmClassName: algorithmClassName.value
} }
treeloading.value = true treeloading.value = true
getDeviceByType(params).then((res: any) => { getAlgorithmClassTree(params).then((res: any) => {
if (res.data.length !== 0 && res.data !== null) { if (res.data.length !== 0 && res.data !== null) {
treeData.value = res.data treeData.value = res.data
treeloading.value = false treeloading.value = false
if (res.data.length !== 0 && res.data !== null) { if (res.data.length !== 0 && res.data !== null) {
nextTick(() => { componentId.value = res.data[0].children[0].id
treeRef.value?.setCurrentKey(res.data[0].id); algorithmId.value = res.data[0].children[0].parentId
checktreenode.value.code = res.data[0].itemcode
checktreenode.value.name = res.data[0].dictname
});
}
}
})
}
function handleClose() {
serviceOpen.value = false
tieupswitch.value = false
}
//
const serviceOpen = ref(true)
function uphold() {
serviceOpen.value = true
}
//
const tableData = ref([])
const loading = ref(false)
//
const title = ref('')
const tieupswitch = ref(false)
function tieupdevice(row: any) {
title.value = '关联' + row
tieupswitch.value = true
getbaytree()
}
//
//
const treedata = ref([])
const treeRefbay: any = ref(null)
const weitreeloading = ref(false)
const bayId = ref('')
function getbaytree() {
const params = {
stationId: userStore.stationId
}
weitreeloading.value = true
getBayTree(params).then((res: any) => {
if (res.data.length == 0) {
weitableData.value.length = 0
}
weitreeloading.value = false
treedata.value = res.data
bayId.value = res.data[0].children[0].children[0].bayId
nextTick(() => { nextTick(() => {
treeRefbay.value?.setCurrentKey(bayId.value); treeRef.value?.setCurrentKey(componentId.value);
}); });
// getPointsData() gatdata()
getecharts()
getfenList()
}
}
}) })
} }
// function handleNodeClick(data: any, node: any) {
const currentNodeKeybay = ref("") if (data.children.length != 0) {
function handClick(data: Tree, node: any) {
if (data.children) {
node.isCurrent = false node.isCurrent = false
currentNodeKeybay.value = ""
nextTick(() => { nextTick(() => {
currentNodeKeybay.value = bayId.value treeRef.value?.setCurrentKey(componentId.value);
}) })
} else { } else {
bayId.value = data.bayId; componentId.value = data.id
algorithmId.value = data.parentId
gatdata()
getecharts()
getfenList()
canshuList.value = ''
} }
} }
// const parameter: any = ref([])
const weitableData = ref([]) function gatdata() {
const tableloading = ref(false) fixloading.value = true
const bayName = ref('') getAlgorithmDeviceParams({ algorithmId: algorithmId.value, componentId: componentId.value }).then((res: any) => {
// const componentIds = ref('') parameter.value = res.data
// const mainDeviceIds = ref('') fixloading.value = false
function getPointsData() {
tableloading.value = true
const params = {
bayId: bayId.value,
// componentId: componentIds.value,
// mainDeviceId: mainDeviceIds.value,
status: 0,
// patrolDeviceCode: info.value.robotCode,
deviceName: bayName.value
}
getdevicedata(params).then((res: any) => {
tableloading.value = false
weitableData.value = res.data.records
res.data.records.forEach((res: any) => {
res['id'] = res.deviceId
})
}) })
} }
function handPointsChange(val: any) { //echarts
const eacherslist: any = ref([1, 2, 3, 4])
function getecharts() {
checloading.value = true
getAlgorithmDeviceCurve({ algorithmId: algorithmId.value, componentId: componentId.value }).then((res: any) => {
checloading.value = false
eacherslist.value = res.data
setTimeout(() => {
eacherslist.value.forEach((item: any, index: any) => {
drawEchart(item, index)
})
}, 100);
})
}
function drawEchart(item: any, index: any) {
// debugger
const dynamicColor = `fff`;
let myChart = echarts.init(document.getElementById(("deviceEachers" + index)) as HTMLDivElement);
myChart.setOption({
tooltip: {
trigger: 'axis'
},
legend: {
data: [item.series[0].name],
textStyle: { color: dynamicColor, fontSize: 14 }
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
top: '18%',
containLabel: true
},
xAxis: item.xAxis,
yAxis: item.yAxis,
series: item.series,
})
}
//fenxi
const checloading = ref(false)
const fixloading = ref(false)
const fenloading = ref(false)
const fenList: any = ref([])
function getfenList() {
fenloading.value = true
getAlgorithmParamsNameList({ algorithmId: algorithmId.value, componentId: componentId.value }).then((res: any) => {
fenList.value = res.data
fenloading.value = false
})
} }
function resetComponent() { const canshuList: any = ref()
bayId.value = '' const mapList: any = ref()
getPointsData() function analysis() {
fenloading.value = true
callAlgorithmAnalyse({ id: algorithmId.value, componentId: componentId.value }).then((res: any) => {
fenloading.value = false
if (res.data.code == -2) {
ElMessage.warning(res.data.msg)
} else {
ElMessage.success('分析成功')
mapList.value = res.data.mapList
canshuList.value = res.data.result.description
getovercanshu()
}
})
}
function getovercanshu() {
mapList.value.forEach((item: any) => {
fenList.value.forEach((items: any) => {
if (item.paramId == items.id) {
items.paramValue = item.paramValue
}
})
})
} }
</script> </script>
<template> <template>
<div class="faulttemplate-box"> <div class="faulttemplate-box">
<aside id="silderLeft"> <aside id="silderLeft">
<div class="tree_title">
<img src="@/assets/navigation/ty_bq.png" alt="">
<div>算法分类</div>
</div>
<el-input v-model="algorithmClassName" clearable placeholder="请输入名称" @change="init"
style="width:100%;margin-top: 10px;" class="videomonitor-input">
<template #suffix>
<img src="@/assets/videoimg/u2937.png" style="cursor:pointer ;" @click="init">
</template>
</el-input>
<el-tree v-loading="treeloading" ref="treeRef" node-key="id" :data="treeData" :highlight-current="true" <el-tree v-loading="treeloading" ref="treeRef" node-key="id" :data="treeData" :highlight-current="true"
:props="defaultProps" :expand-on-click-node="false" @node-click="handleNodeClick" :props="defaultProps" :expand-on-click-node="false" @node-click="handleNodeClick"
style="height: calc(87vh); overflow: auto;margin-top: 10px;"> style="height: calc(80vh); overflow: auto;margin-top: 10px;">
</el-tree> </el-tree>
<div class="moveBtn" v-move> <div class="moveBtn" v-move>
<div class="moveBtn-line"></div> <div class="moveBtn-line"></div>
</div> </div>
</aside> </aside>
<section class="silderRight1"> <section class="silderRight1">
<div class="right_yop"> <div class="right_center" v-loading="checloading">
<div class="right_button"><el-button class="searchButton" type="primary" @click="uphold">维护</el-button> <div class="tree_title">
<img src="@/assets/navigation/ty_bq.png" alt="">
<div>信号/点位折线图</div>
</div> </div>
<div> <el-scrollbar height="440px">
<div class="echarts_box">
<div v-for="(item, index) in eacherslist" :id="'deviceEachers' + index"
:style="{ width: '100%', height: '160px' }"></div>
</div> </div>
</div>
<div></div>
</section>
<Eldialog v-if="serviceOpen" :title="'维护'" :zIndex="2000" :width="'60%'" @before-close="handleClose">
<template v-slot:PopFrameContent>
<div>
<div>
<el-button class="searchButton" type="primary" @click="tieupdevice('点位')">关联点位</el-button>
<el-button class="searchButton" type="primary" @click="tieupdevice('信号')">关联信号</el-button>
</div>
<div class="tieup">
<div class="tieup_title">
<div class="tieup_title_line"></div>
<div class="tieup_title_text">关联结果</div>
</div>
<div>
<el-table ref="multipleTableRef" :data="tableData" :row-class-name="tableRowClassName"
:v-loading="loading"
style="width: 100%;margin-bottom: 20px;height: calc(35vh);overflow: auto;" row-key="id"
default-expand-all
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
<el-table-column label="序号" type="index" width="50" />
<el-table-column label="设备编号" prop="deviceCode" />
</el-table>
</div>
<span class="dialog-footer"
style="width: 95%;margin: auto; display: flex;display: -webkit-flex; justify-content: center;-webkit-justify-content: center;margin-top: 10px;">
<div class="details-button" @click="handleClose">取消</div>
<div class="details-button" @click="">保存</div>
</span>
</div>
</div>
</template>
</Eldialog>
<Eldialog v-if="tieupswitch" :title="title" :zIndex="2000" :width="'80%'" @before-close="handleClose">
<template v-slot:PopFrameContent>
<div class="faulttemplate-box1">
<aside id="silderLeft1">
<div class="displayflex">
<div class="line"></div>
<div class="title" style="font-size: 14px;color: #fff;">数据列表</div>
</div>
<el-scrollbar>
<el-tree ref="treeRefbay" node-key="bayId" :data="treedata"
:current-node-key="currentNodeKeybay" v-loading="weitreeloading"
:highlight-current="true" :props="defaultProps1" @node-click="handClick">
</el-tree>
</el-scrollbar> </el-scrollbar>
</aside>
<section class="silderRightDialog">
<div
style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:5px">
<div style="display: flex;display: -webkit-flex; align-items: center;width: 80%;">
<el-input v-model="bayName" placeholder="请输入巡视点位名称" clearable @clear="getPointsData()"
@change="getPointsData()" style="margin-right:15px ;width: 30%;" />
<el-button class="searchButton" @click="getPointsData()">搜索</el-button>
<el-button class="searchButton" @click="resetComponent()">重置</el-button>
</div> </div>
<div><el-button class="searchButton" @click="">添加</el-button></div> <div class="right_yop" v-loading="fixloading">
<div class="tree_title">
<img src="@/assets/navigation/ty_bq.png" alt="">
<div>固定参数</div>
</div>
<el-scrollbar height="60px">
<div class="fixed_params">
<div v-for="item in parameter" class="fixed_params_item">
<div>{{ item.paramName }}<span>{{ item.paramValue }}</span></div>
</div>
</div>
</el-scrollbar>
</div>
<div class="right_bottom" v-loading="fenloading">
<div class="tree_title">
<img src="@/assets/navigation/ty_bq.png" alt="">
<div>分析结果</div>
</div>
<el-button class="searchButton" type="primary" style="margin: 10px 0px;"
@click="analysis()">开始分析</el-button>
<el-scrollbar height="80px">
<div class="fixed_params">
<div v-for="item in fenList" class="fixed_params_item">
<div>{{ item.paramName }}<span>{{ item.paramValue ? item.paramValue : '--' }}</span></div>
</div>
</div>
</el-scrollbar>
<div class="right_botom">
分析结果<span v-if="!canshuList">--</span><span v-else>{{ canshuList }}</span>
</div> </div>
<div class="draggable">
<el-table ref="multipleTableRef" :data="weitableData" :row-class-name="tableRowClassName"
:v-loading="loading"
style="width: 100%;margin-bottom: 20px;height: calc(35vh);overflow: auto;" row-key="id"
default-expand-all
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
<el-table-column type="selection" width="30" align="center" />
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="巡视点位名称" prop="deviceName"></el-table-column>
<el-table-column label="所属主设备" prop="mainDeviceName"></el-table-column>
<el-table-column label="所属部件" prop="componentName"></el-table-column>
</el-table>
</div> </div>
</section> </section>
</div>
</template>
</Eldialog>
</div> </div>
</template> </template>
@ -292,9 +257,22 @@ function resetComponent() {
} }
.tree_title {
width: 100%;
display: flex;
align-items: center;
font-size: 16px;
color: #fff;
font-weight: bold;
img {
margin-right: 10px;
}
}
#silderLeft { #silderLeft {
width: 300px; width: 300px;
padding: 5px 0px 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
border-radius: 3px; border-radius: 3px;
position: relative; position: relative;
@ -306,6 +284,8 @@ function resetComponent() {
opacity: 1; opacity: 1;
} }
} }
} }
/* 拖动条 */ /* 拖动条 */
@ -330,146 +310,114 @@ function resetComponent() {
.silderRight1 { .silderRight1 {
flex: 1; flex: 1;
width: 100%; width: 100%;
height: calc(100vh - 160px); height: calc(90vh);
overflow: auto; overflow: auto;
background-color: rgba(255, 255, 255, 0);
border-radius: 3px; border-radius: 3px;
box-sizing: border-box; box-sizing: border-box;
margin-left: 15px; margin-left: 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
.right_yop { .right_yop {
width: 100%; width: 100%;
height: calc(60vh); height: 110px;
box-sizing: border-box;
padding: 15px;
background: url(@/assets/navigation/110tu.png);
background-size: 100% 100%;
.fixed_params {
width: 100%;
display: flex;
align-items: center;
font-family: 'Arial Normal', 'Arial';
font-weight: 400;
color: #FFFFFF;
font-size: 14px;
.fixed_params_item {
margin-right: 20px;
span {
font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
font-weight: 700;
font-size: 18px;
color: #00FFFF
}
}
}
}
.right_center {
width: 100%;
height: 500px;
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 15px;
background: url(@/assets/navigation/sw1.png); background: url(@/assets/navigation/sw1.png);
background-size: 100% 100%; background-size: 100% 100%;
.right_button { .echarts_box {
display: flex;
justify-content: end;
}
}
}
//
.tieup {
width: 100%; width: 100%;
display: flex;
flex-direction: column;
align-items: center;
margin-top: 10px;
}
}
.tieup_title { .right_bottom {
width: 100%;
height: 220px;
box-sizing: border-box;
padding: 15px;
background: url(@/assets/navigation/sw.png);
background-size: 100% 100%;
.fixed_params {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
color: #fff; font-family: 'Arial Normal', 'Arial';
font-size: 18px; font-weight: 400;
margin: 10px 0px; color: #FFFFFF;
font-size: 14px;
.tieup_title_line { .fixed_params_item {
width: 6px;
height: 16px;
background-color: #009bff;
margin-right: 10px; margin-right: 10px;
span {
font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
font-weight: 700;
font-size: 18px;
color: #00FFFF
} }
} }
}
/////////
///
///
.faulttemplate-box1 {
height: 100%;
display: flex;
display: -webkit-flex;
padding-top: 15px;
#silderLeft1 {
width: 300px;
padding: 10px;
box-sizing: border-box;
background-image: url(@/assets/navigation/ty_260x988.png);
background-size: 100% 100%;
height: calc(70vh);
overflow: auto;
} }
.silderRightDialog { .right_botom {
flex: 1;
width: 100%; width: 100%;
height: calc(70vh); font-family: 'Arial Normal', 'Arial';
overflow: auto; font-weight: 400;
// background-color: rgba(255, 255, 255, 1); navigation/ty_260x988.png riis-web/src/assets/navigation/ty_1614x988.png font-style: normal;
border-radius: 3px; font-size: 16px;
box-sizing: border-box; color: #FFFFFF;
margin-left: 15px;
background: url(@/assets/navigation/ty_1614x988.png);
background-size: 100% 100%;
padding: 10px;
}
}
.displayflex { span {
display: flex;
align-items: center;
.line {
width: 5px;
height: 14px;
background: #0099ff;
}
.title {
padding-left: 10px;
font-family: 'Arial Negreta', 'Arial Normal', 'Arial'; font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
font-weight: 700; font-weight: 700;
font-style: normal; font-style: normal;
font-size: 16px; font-size: 24px;
color: #303133; letter-spacing: normal;
text-decoration: none !important; color: #009900;
}
}
:deep(.el-scrollbar) {
height: 80px !important;
}
} }
} }
:deep(.el-tree-node.is-current>.el-tree-node__content) {
width: 100%;
height: 40px;
// color: #fff !important;
}
:deep(.el-tree) {
background-color: #ffffff00 !important;
--el-tree-node-hover-bg-color: #0099ff09;
}
:deep(.el-tree-node__content) {
width: 100% !important;
height: 40px !important;
margin: auto !important;
}
:deep(.el-table:not(.el-table--border) .el-table__cell) {
border: none;
color: #fff;
}
:deep(.el-tree) {
background-color: #ffffff00 !important;
--el-tree-node-hover-bg-color: #0099ff09;
}
:deep(.el-input) {
--el-input-bg-color: #ffffff00 !important;
}
:deep(.el-input-group__append) {
background: #ffffff00 !important;
}
:deep(.el-input .el-input__count .el-input__count-inner) {
background-color: rgba(240, 248, 255, 0);
}
:deep(.el-scrollbar) {
height: 95% !important;
}
</style> </style>

View File

@ -582,12 +582,7 @@ const isVideo = ref(false)
<el-table-column prop="patroldeviceName" label="设备名称" align="center" /> <el-table-column prop="patroldeviceName" label="设备名称" align="center" />
<el-table-column prop="componentName" label="部件名称" align="center" /> <el-table-column prop="componentName" label="部件名称" align="center" />
<el-table-column prop="deviceName" label="点位名称" align="center" /> <el-table-column prop="deviceName" label="点位名称" align="center" />
<el-table-column prop="materialId" label="实物ID" align="center">
<template #default="scope">
<span v-if="scope.row.materialId">{{ scope.row.materialId }}</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column label="点位分类" prop="appearanceType" align="center"> <el-table-column label="点位分类" prop="appearanceType" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.pointType == 1"></span> <span v-if="scope.row.pointType == 1"></span>
@ -595,7 +590,7 @@ const isVideo = ref(false)
<span v-if="scope.row.pointType == 3"></span> <span v-if="scope.row.pointType == 3"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="taskAlarmType" label="告警来源" width="80px" align="center"> <el-table-column prop="taskAlarmType" label="告警来源" width="100px" align="center">
<template #default="scope"> <template #default="scope">
<span>{{ currency(AlarmSourceList, scope.row.taskAlarmType) }}</span> <span>{{ currency(AlarmSourceList, scope.row.taskAlarmType) }}</span>
</template> </template>
@ -620,7 +615,7 @@ const isVideo = ref(false)
</el-table-column> </el-table-column>
<el-table-column prop="custom2" label="缺陷类别" width="90px" align="center"> <el-table-column prop="custom2" label="缺陷类别" width="90px" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="alarmDate" label="告警时间" width="110px" align="center" /> <el-table-column prop="alarmDate" label="告警时间" width="100px" align="center" />
<el-table-column prop="checkFlag" label="状态" width="70px" align="center"> <el-table-column prop="checkFlag" label="状态" width="70px" align="center">
<template #default="scope"> <template #default="scope">
<span>{{ currency(checkFlagList, scope.row.checkFlag) }}</span> <span>{{ currency(checkFlagList, scope.row.checkFlag) }}</span>

View File

@ -2179,15 +2179,15 @@ const open = () => {
v-loading="treeloading"> 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="变电站名称"> <el-table-column property="stationName" label="变电站名称" align="center">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.stationName }} <span style="display: inline-block;color: #409EFF;" <span>{{ scope.row.stationName }} <span style="display: inline-block;color: #409EFF;"
v-if="scope.row.isStationFlag == '1'">(边缘节点)</span></span> v-if="scope.row.isStationFlag == '1'">(边缘节点)</span></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="taskCode" label="任务编码" /> <el-table-column property="taskCode" label="任务编码" align="center" />
<el-table-column property="taskName" label="任务名称" /> <el-table-column property="taskName" label="任务名称" align="center" />
<el-table-column property="taskType" label="任务类型" width="130px"> <el-table-column property="taskType" label="任务类型" width="130px" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.taskType == 1">站端日常巡视任务</span> <span v-if="scope.row.taskType == 1">站端日常巡视任务</span>
<span v-else-if="scope.row.taskType == 2">上级系统控制</span> <span v-else-if="scope.row.taskType == 2">上级系统控制</span>
@ -2850,7 +2850,7 @@ 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" placeholder="请输入账号密码" style="margin-top:30px;width: 100%;" type="password" <el-input v-model="password" autocomplete="new-password" :name="'pwd-'+Date.now()" placeholder="请输入账号密码" style="margin-top:30px;width: 100%;" type="password"
show-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>

View File

@ -763,10 +763,10 @@ function retrunClick() {
@cell-mouse-leave="hoverTableLeave" :row-class-name="tableRowClassName" @cell-mouse-leave="hoverTableLeave" :row-class-name="tableRowClassName"
style="width: 98%;margin:auto;position: relative;margin: 15px 10px;height:calc(100%); "> style="width: 98%;margin:auto;position: relative;margin: 15px 10px;height:calc(100%); ">
<el-table-column type="index" align="center" label="序号" width="60px" /> <el-table-column type="index" align="center" label="序号" width="60px" />
<el-table-column prop="mainDeviceName" label="设备名称" /> <el-table-column prop="mainDeviceName" align="center" width="130px" label="设备名称" />
<el-table-column prop="componentName" label="部件名称" /> <el-table-column prop="componentName" align="center" width="130px" label="部件名称" />
<el-table-column prop="deviceName" label="点位名称" width="160px" /> <el-table-column prop="deviceName" align="center" label="点位名称" width="160px" />
<el-table-column prop="meterType" label="表计类型"> <el-table-column prop="meterType" align="center" label="表计类型">
<template #default="scope"> <template #default="scope">
<span <span
v-if="currency(MeterTypeList, scope.row.meterType) != undefined && currency(MeterTypeList, scope.row.meterType) != ''">{{ v-if="currency(MeterTypeList, scope.row.meterType) != undefined && currency(MeterTypeList, scope.row.meterType) != ''">{{
@ -792,14 +792,14 @@ 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"> <el-table-column prop="desc" label="识别类型" width="140px" align="center" >
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.desc != null && scope.row.desc != ''">{{ scope.row.desc <span v-if="scope.row.desc != null && scope.row.desc != ''">{{ scope.row.desc
}}</span> }}</span>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="识别值" width="100px"> <el-table-column label="识别值" width="100px" align="center">
<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 == 'infrared' || scope.row.valueType == 'sound'">

View File

@ -475,7 +475,7 @@ function removePercentSign(str:any) {
style="width: 99%;margin:auto;position: relative; height:calc(79vh); overflow: auto;margin-top: 10px; " style="width: 99%;margin:auto;position: relative; height:calc(79vh); overflow: auto;margin-top: 10px; "
stripe :header-cell-style="tableBg"> stripe :header-cell-style="tableBg">
<el-table-column type="index" align="center" label="序号" width="60px" /> <el-table-column type="index" align="center" label="序号" width="60px" />
<el-table-column prop="taskName" label="任务名称" min-width="140px" align="left" /> <el-table-column prop="taskName" label="任务名称" min-width="140px" align="center" />
<el-table-column prop="taskType" label="任务类型" width="100px" align="center"> <el-table-column prop="taskType" label="任务类型" width="100px" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.type == 1">例行巡视</span> <span v-if="scope.row.type == 1">例行巡视</span>

View File

@ -283,8 +283,8 @@ onMounted(() => {
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="30" align="center" /> <el-table-column type="selection" width="30" align="center" />
<el-table-column type="index" align="center" label="序号" width="50px" /> <el-table-column type="index" align="center" label="序号" width="50px" />
<el-table-column prop="taskName" label="任务名称" /> <el-table-column prop="taskName" label="任务名称" align="center" />
<el-table-column prop="type" label="任务类型" width="140px"> <el-table-column prop="type" label="任务类型" align="center" width="140px">
<template #default="scope"> <template #default="scope">
<span>{{ currency(InspectionType, scope.row.type) }}</span> <span>{{ currency(InspectionType, scope.row.type) }}</span>
<!-- <span v-if="scope.row.type == 1">例行巡视</span> <!-- <span v-if="scope.row.type == 1">例行巡视</span>
@ -302,9 +302,9 @@ onMounted(() => {
scope.row.result.abnormalCount }}</span> scope.row.result.abnormalCount }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="startTime" label="巡视开始时间" /> <el-table-column prop="startTime" label="巡视开始时间" align="center" />
<el-table-column prop="endTime" label="巡视结束时间" /> <el-table-column prop="endTime" label="巡视结束时间" align="center" />
<el-table-column prop="cexamineUserName" label="审核人" width="100px"/> <el-table-column prop="cexamineUserName" label="审核人" width="100px" align="center"/>
<el-table-column prop="examineDate" label="审核时间" width="170px" align="center" /> <el-table-column prop="examineDate" label="审核时间" width="170px" align="center" />
<el-table-column label="操作" width="120px" align="center"> <el-table-column label="操作" width="120px" align="center">
<template #default="scope"> <template #default="scope">