联调文件管理页面
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
<pane style="background: #fff">
|
||||
<div class="device-manage-right">
|
||||
<el-form :inline="true" class="demo-form-inline" style="height: 42px">
|
||||
<el-form-item style="position: relative; z-index: 2">
|
||||
<el-form-item style="position: relative; z-index: 2" v-if="connectionMethod != 'MQTT'">
|
||||
<el-button icon="el-icon-Plus" type="primary" @click="add" v-if="nodeLevel != 4">
|
||||
{{
|
||||
nodeLevel == 0
|
||||
@@ -57,7 +57,13 @@
|
||||
修改提交
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item style="right: 500px; position: absolute; overflow: hidden">
|
||||
<el-form-item style="position: relative; z-index: 2" v-else>
|
||||
<span style="font-size: 16px; font-weight: bold; color: var(--el-color-primary)">
|
||||
治理设备/便携式设备不支持操作!
|
||||
</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="right: 300px; position: absolute; overflow: hidden">
|
||||
<LocationInformation
|
||||
style="width: 16px; margin-right: 8px; color: var(--el-color-primary)"
|
||||
/>
|
||||
@@ -66,7 +72,7 @@
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="right: 0; position: absolute; overflow: hidden">
|
||||
<div class="title" :class="titleList.length > 5 ? 'titleScroll' : ''">
|
||||
<div class="title" :class="titleList.length > 2 ? 'titleScroll' : ''">
|
||||
<span v-for="(item, index) in titleList" :key="index">
|
||||
{{ index == 0 ? '' : ' > ' }}{{ item }}
|
||||
</span>
|
||||
@@ -82,28 +88,24 @@
|
||||
ref="mainForm"
|
||||
:model="formData"
|
||||
>
|
||||
<el-form-item
|
||||
id="id100"
|
||||
class="form-item"
|
||||
label="设备名称:"
|
||||
:rules="{ required: true, message: '请输入设备名称', trigger: 'blur' }"
|
||||
>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="project[2].name"
|
||||
:disabled="true"
|
||||
placeholder="请选择设备类型"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in project"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!--工程-->
|
||||
<el-form-item
|
||||
id="id300"
|
||||
class="form-item"
|
||||
label="工程名称:"
|
||||
v-if="nodeLevel > 0 || pageStatus == 2"
|
||||
prop="engineeringParam.name"
|
||||
:rules="{ required: true, message: '请输入工程名称', trigger: 'blur' }"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="formData.engineeringParam.name"
|
||||
placeholder="请输入工程名称"
|
||||
:disabled="
|
||||
!((nodeLevel == 1 && pageStatus == 3) || (nodeLevel == 0 && pageStatus == 2))
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<!-- 省下拉框 -->
|
||||
<el-form-item
|
||||
id="id200"
|
||||
@@ -157,25 +159,8 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
id="id300"
|
||||
class="form-item"
|
||||
label="工程名称:"
|
||||
v-if="nodeLevel > 0 || pageStatus == 2"
|
||||
prop="engineeringParam.name"
|
||||
:rules="{ required: true, message: '请输入工程名称', trigger: 'blur' }"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="formData.engineeringParam.name"
|
||||
placeholder="请输入工程名称"
|
||||
:disabled="
|
||||
!((nodeLevel == 1 && pageStatus == 3) || (nodeLevel == 0 && pageStatus == 2))
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
id="id300"
|
||||
class="form-item"
|
||||
label="描述:"
|
||||
prop="engineeringParam.description"
|
||||
@@ -190,6 +175,23 @@
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
class="form-item"
|
||||
label="排序:"
|
||||
prop="engineeringParam.sort"
|
||||
v-if="nodeLevel > 0 || pageStatus == 2"
|
||||
:rules="[{ required: true, message: '请输入排序', trigger: 'blur' }]"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model.trim.number="formData.engineeringParam.sort"
|
||||
placeholder="请输入排序"
|
||||
:disabled="
|
||||
!((nodeLevel == 1 && pageStatus == 3) || (nodeLevel == 0 && pageStatus == 2))
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!--项目-->
|
||||
<div style="width: 100%" v-if="nodeLevel > 0 || pageStatus == 2">
|
||||
<el-tabs
|
||||
@@ -198,7 +200,7 @@
|
||||
:addable="false"
|
||||
:closable="pageStatus != 1"
|
||||
@edit="handleDeviceTabsEdit"
|
||||
@tab-click="tabChange('deviceIndex')"
|
||||
@tab-click="tabChange('deviceIndex', $event)"
|
||||
>
|
||||
<el-tab-pane
|
||||
v-for="(item, index) in formData.projectInfoList"
|
||||
@@ -266,6 +268,63 @@
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="拓扑图:"
|
||||
:prop="'projectInfoList[' + index + '].topoId'"
|
||||
:rules="[
|
||||
{ required: true, message: '请选择拓扑图', trigger: 'change' }
|
||||
]"
|
||||
>
|
||||
<el-select
|
||||
v-model="item.topoId"
|
||||
placeholder="请选择拓扑图"
|
||||
popper-class="productSelector "
|
||||
:disabled="
|
||||
!(
|
||||
(nodeLevel == 2 && pageStatus == 3) ||
|
||||
((nodeLevel == 1 || (nodeLevel == 0 && pageStatus == 2)) &&
|
||||
pageStatus == 2)
|
||||
)
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in images"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
<span>
|
||||
<img
|
||||
:src="item.url"
|
||||
v-if="item.url"
|
||||
class="image-preview"
|
||||
/>
|
||||
</span>
|
||||
<span style="float: right">
|
||||
{{ item.name }}
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
class="form-item"
|
||||
label="排序:"
|
||||
:prop="'projectInfoList[' + index + '].sort'"
|
||||
:rules="[{ required: true, message: '请输入排序', trigger: 'blur' }]"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model.trim.number="item.sort"
|
||||
placeholder="请输入排序"
|
||||
:disabled="
|
||||
!(
|
||||
(nodeLevel == 2 && pageStatus == 3) ||
|
||||
((nodeLevel == 1 || (nodeLevel == 0 && pageStatus == 2)) &&
|
||||
pageStatus == 2)
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -282,27 +341,27 @@
|
||||
:addable="false"
|
||||
:closable="pageStatus != 1"
|
||||
@edit="handleBusBarTabsEdit"
|
||||
@tab-click="tabChange('busBarIndex')"
|
||||
@tab-click="tabChange('busBarIndex', $event)"
|
||||
>
|
||||
<el-tab-pane
|
||||
v-for="(busItem, bIndex) in formData.deviceInfoList"
|
||||
:key="bIndex"
|
||||
:label="busItem.name ? busItem.name : '新建装置' + bIndex"
|
||||
:label="busItem.name ? busItem.name : '新建设备' + bIndex"
|
||||
:name="bIndex + ''"
|
||||
>
|
||||
<div class="flex mt10">
|
||||
<div class="flex mt10" v-if="busItem.devAccessMethod == 'CLD'">
|
||||
<el-form-item
|
||||
class="form-item"
|
||||
label="装置名称:"
|
||||
label="设备名称:"
|
||||
:prop="'deviceInfoList[' + bIndex + '].name'"
|
||||
:rules="[
|
||||
{ required: true, message: '请输入装置名称', trigger: 'blur' }
|
||||
{ required: true, message: '请输入设备名称', trigger: 'blur' }
|
||||
]"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="busItem.name"
|
||||
placeholder="请输入装置名称"
|
||||
placeholder="请输入设备名称"
|
||||
:disabled="
|
||||
!(
|
||||
(nodeLevel == 3 && pageStatus == 3) ||
|
||||
@@ -315,17 +374,17 @@
|
||||
<el-form-item
|
||||
id="id200"
|
||||
class="form-item"
|
||||
label="装置类型:"
|
||||
label="设备类型:"
|
||||
:prop="'deviceInfoList[' + bIndex + '].devType'"
|
||||
:rules="[
|
||||
{ required: true, message: '请选择装置类型', trigger: 'change' }
|
||||
{ required: true, message: '请选择设备类型', trigger: 'change' }
|
||||
]"
|
||||
>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devType"
|
||||
placeholder="请选择装置类型"
|
||||
placeholder="请选择设备类型"
|
||||
style="width: 100%"
|
||||
:disabled="
|
||||
!(
|
||||
@@ -346,17 +405,17 @@
|
||||
<el-form-item
|
||||
id="id200"
|
||||
class="form-item"
|
||||
label="装置型号:"
|
||||
label="设备型号:"
|
||||
:prop="'deviceInfoList[' + bIndex + '].devModel'"
|
||||
:rules="[
|
||||
{ required: true, message: '请选择装置型号', trigger: 'change' }
|
||||
{ required: true, message: '请选择设备型号', trigger: 'change' }
|
||||
]"
|
||||
>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devModel"
|
||||
placeholder="请选择装置型号"
|
||||
placeholder="请选择设备型号"
|
||||
style="width: 100%"
|
||||
:disabled="
|
||||
!(
|
||||
@@ -377,17 +436,17 @@
|
||||
<el-form-item
|
||||
id="id200"
|
||||
class="form-item"
|
||||
label="装置接入方式:"
|
||||
label="设备接入方式:"
|
||||
:prop="'deviceInfoList[' + bIndex + '].devAccessMethod'"
|
||||
:rules="[
|
||||
{ required: true, message: '请选择装置接入方式', trigger: 'change' }
|
||||
{ required: true, message: '请选择设备接入方式', trigger: 'change' }
|
||||
]"
|
||||
>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devAccessMethod"
|
||||
placeholder="请选择装置接入方式"
|
||||
placeholder="请选择设备接入方式"
|
||||
style="width: 100%"
|
||||
:disabled="
|
||||
!(
|
||||
@@ -403,11 +462,11 @@
|
||||
|
||||
<el-form-item
|
||||
class="form-item"
|
||||
label="装置mac地址:"
|
||||
label="设备mac地址:"
|
||||
:prop="'deviceInfoList[' + bIndex + '].mac'"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: '请输入装置mac地址',
|
||||
message: '请输入设备mac地址',
|
||||
trigger: 'blur'
|
||||
}"
|
||||
>
|
||||
@@ -516,7 +575,7 @@
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
v-model="busItem.sort"
|
||||
v-model.trim.number="busItem.sort"
|
||||
placeholder="请输入排序"
|
||||
:disabled="
|
||||
!(
|
||||
@@ -528,6 +587,68 @@
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex mt10" v-else>
|
||||
<el-form-item class="form-item" label="设备名称:">
|
||||
<el-input
|
||||
clearable
|
||||
v-model="busItem.name"
|
||||
placeholder="请输入设备名称"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item id="id200" class="form-item" label="设备类型:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devType"
|
||||
placeholder="请选择设备类型"
|
||||
style="width: 100%"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in devTypeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label || item.name"
|
||||
:value="item.value || item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item id="id200" class="form-item" label="设备型号:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devModel"
|
||||
placeholder="请选择设备型号"
|
||||
style="width: 100%"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in devModelOptions"
|
||||
:key="option.id"
|
||||
:label="option.name"
|
||||
:value="option.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item id="id200" class="form-item" label="设备接入方式:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="busItem.devAccessMethod"
|
||||
placeholder="请选择设备接入方式"
|
||||
style="width: 100%"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option label="CLD" value="CLD"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="设备mac地址:">
|
||||
<MacAddressInput
|
||||
v-model="busItem.mac"
|
||||
:disabled="!(pageStatus == 2 && nodeLevel == 2)"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
@@ -543,7 +664,7 @@
|
||||
:addable="false"
|
||||
:closable="pageStatus != 1"
|
||||
@edit="handleLineTabsEdit"
|
||||
@tab-click="tabChange('lineIndex')"
|
||||
@tab-click="tabChange('lineIndex', $event)"
|
||||
>
|
||||
<el-tab-pane
|
||||
v-for="(lineItem, lIndex) in formData.lineInfoList"
|
||||
@@ -551,7 +672,7 @@
|
||||
:label="lineItem.name ? lineItem.name : '新建监测点' + lIndex"
|
||||
:name="lIndex + ''"
|
||||
>
|
||||
<div class="flex mt10">
|
||||
<div class="flex mt10" v-if="connectionMethod != 'MQTT'">
|
||||
<el-form-item
|
||||
class="form-item"
|
||||
label="监测点名称:"
|
||||
@@ -1076,6 +1197,174 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="flex mt10" v-else>
|
||||
<el-form-item class="form-item" label="监测点名称:">
|
||||
<el-input
|
||||
clearable
|
||||
v-model="lineItem.name"
|
||||
placeholder="请输入监测点名称"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="线路号:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.lineNo"
|
||||
placeholder="请选择线路号"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in pointNumArr"
|
||||
:key="option.name"
|
||||
:label="option.name"
|
||||
:value="option.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="接线方式:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.conType"
|
||||
placeholder="请选择接线方式"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in wiringTypeArr"
|
||||
:key="option.name"
|
||||
:label="option.name"
|
||||
:value="option.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="统计间隔:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.lineInterval"
|
||||
placeholder="请选择统计间隔"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in lineSpaceArr"
|
||||
:key="option.name"
|
||||
:label="option.name"
|
||||
:value="option.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="PT变比:">
|
||||
<div style="width: 100%; display: flex; justify-content: space-between">
|
||||
<el-input
|
||||
clearable-number
|
||||
:controls="false"
|
||||
:min="1"
|
||||
style="width: 48%"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
v-model.number="lineItem.ptRatio"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<span
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
:
|
||||
</span>
|
||||
<el-input
|
||||
clearable-number
|
||||
:controls="false"
|
||||
:min="1"
|
||||
style="width: 48%"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
v-model.number="lineItem.pt2Ratio"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item" label="CT变比:">
|
||||
<div style="width: 100%; display: flex; justify-content: space-between">
|
||||
<el-input
|
||||
clearable-number
|
||||
:controls="false"
|
||||
:min="1"
|
||||
style="width: 48%"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
v-model.number="lineItem.ctRatio"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
<span
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
:
|
||||
</span>
|
||||
<el-input
|
||||
clearable-number
|
||||
:controls="false"
|
||||
:min="1"
|
||||
style="width: 48%"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
v-model.number="lineItem.ct2Ratio"
|
||||
:disabled="true"
|
||||
></el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item class="form-item" label="电压等级:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.volGrade"
|
||||
placeholder="请选择电压等级"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in voltageLevelOptions"
|
||||
:key="option.value"
|
||||
:label="option.name"
|
||||
:value="option.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item class="form-item" label="监测位置:">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.position"
|
||||
placeholder="请选择监测位置"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in linePosition"
|
||||
:key="option.id"
|
||||
:label="option.name"
|
||||
:value="option.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item class="form-item" label="通讯状态:">
|
||||
<!-- (0:运行;1:检修;2:停运;3:调试;4:退运) -->
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
v-model="lineItem.runStatus"
|
||||
placeholder="请选择通讯状态"
|
||||
:disabled="true"
|
||||
>
|
||||
<el-option label="离线" :value="1" />
|
||||
<el-option label="在线" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
@@ -1163,8 +1452,10 @@ import {
|
||||
pushLog,
|
||||
queryPushResult
|
||||
} from '@/api/cs-device-boot/cloudDeviceEntry'
|
||||
import { getTopoTemplate } from '@/api/cs-device-boot/topologyTemplate'
|
||||
import { getFileUrl } from '@/api/system-boot/file'
|
||||
import tree from '@/assets/map/area.json'
|
||||
import { queryByCode, queryCsDictTree } from '@/api/system-boot/dictTree'
|
||||
import { queryByCode, queryCsDictTree, queryByid } from '@/api/system-boot/dictTree'
|
||||
import MacAddressInput from '@/components/form/mac/MacAddressInput.vue'
|
||||
import { auditEngineering } from '@/api/cs-device-boot/edData'
|
||||
import { convertToObject } from 'typescript'
|
||||
@@ -1219,7 +1510,8 @@ const formData = ref({
|
||||
city: '',
|
||||
description: '',
|
||||
name: '',
|
||||
province: ''
|
||||
province: '',
|
||||
sort: 0
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1279,6 +1571,8 @@ interface ProjectInfo {
|
||||
name: string
|
||||
area: string
|
||||
description: string
|
||||
sort: number | string
|
||||
topoId: string
|
||||
}
|
||||
// 项目信息列表
|
||||
//const projectInfoList = ref<ProjectInfo[]>([])
|
||||
@@ -1341,6 +1635,7 @@ const arrdess: any = ref((rule: any, value: any, callback: any) => {
|
||||
callback(new Error('请输入正确IP/MAC地址'))
|
||||
}
|
||||
})
|
||||
const connectionMethod = ref('')
|
||||
|
||||
// 省市选择相关数据
|
||||
const provinceOptions = computed(() => areaTree)
|
||||
@@ -1407,15 +1702,16 @@ const nodeClick = (e: anyObj, data: any) => {
|
||||
pageStatus.value = 1
|
||||
|
||||
nodeData.value = e
|
||||
|
||||
if (nodeData.value.level == 0) {
|
||||
if (nodeData.value.level == -1) {
|
||||
nodeLevel.value = 0
|
||||
} else if (nodeData.value.level == 0) {
|
||||
nodeLevel.value = 1
|
||||
} else if (nodeData.value.level == 1) {
|
||||
//工程节点
|
||||
nodeLevel.value = 1
|
||||
nodeLevel.value = 2
|
||||
} else if (nodeData.value.level == 2) {
|
||||
//项目
|
||||
nodeLevel.value = 2
|
||||
nodeLevel.value = 3
|
||||
} else if (nodeData.value.level == 3) {
|
||||
//设备
|
||||
nodeLevel.value = 3
|
||||
@@ -1465,7 +1761,16 @@ const handleDialogClose = () => {
|
||||
}
|
||||
countdown.value = 0
|
||||
}
|
||||
|
||||
const images: any = ref([])
|
||||
const getImageList = async () => {
|
||||
getTopoTemplate().then(res => {
|
||||
images.value = res.data
|
||||
images.value.forEach(async item => {
|
||||
let row = await getFileUrl({ filePath: item.filePath })
|
||||
item.url = row.data
|
||||
})
|
||||
})
|
||||
}
|
||||
const onAdd = async () => {
|
||||
resultDialogVisible.value = true
|
||||
pushResult.value = null
|
||||
@@ -1606,13 +1911,16 @@ const queryNodeContent = () => {
|
||||
}
|
||||
|
||||
getInfoById(nodeData.value.id).then((res: any) => {
|
||||
connectionMethod.value = 'CLD'
|
||||
Object.assign(formData.value.engineeringParam, res.data)
|
||||
formData.value.engineeringParam.name = res.data.engineeringName
|
||||
formData.value.engineeringParam.description = res.data.engineeringDescription
|
||||
formData.value.engineeringParam.sort = res.data.sort
|
||||
formData.value.projectInfoList = res.data.projectInfoList || []
|
||||
|
||||
if (nodeLevel.value >= 2) {
|
||||
formData.value.deviceInfoList = res.data.deviceInfoList || []
|
||||
connectionMethod.value = formData.value.deviceInfoList[0].devAccessMethod || 'CLD'
|
||||
}
|
||||
if (nodeLevel.value >= 3) {
|
||||
formData.value.lineInfoList = res.data.lineInfoList || []
|
||||
@@ -1640,6 +1948,7 @@ const add = () => {
|
||||
// 初始化工程参数
|
||||
formData.value.engineeringParam.city = ''
|
||||
formData.value.engineeringParam.description = ''
|
||||
formData.value.engineeringParam.sort = 0
|
||||
formData.value.engineeringParam.name = ''
|
||||
formData.value.engineeringParam.province = ''
|
||||
// 清理其他层级数据
|
||||
@@ -1652,7 +1961,9 @@ const add = () => {
|
||||
formData.value.projectInfoList.push({
|
||||
name: '',
|
||||
area: '',
|
||||
description: ''
|
||||
description: '',
|
||||
sort: 0,
|
||||
topoId: ''
|
||||
})
|
||||
deviceIndex.value = (formData.value.projectInfoList.length - 1).toString()
|
||||
// 清理设备和监测点数据
|
||||
@@ -1716,13 +2027,13 @@ const update = () => {
|
||||
})
|
||||
return
|
||||
}
|
||||
if (nodeData.value.level == 0) {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '不能修改根节点'
|
||||
})
|
||||
return
|
||||
}
|
||||
// if (nodeData.value.level == 0) {
|
||||
// ElMessage({
|
||||
// type: 'warning',
|
||||
// message: '不能修改根节点'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
if (pageStatus.value == 2 || pageStatus.value == 3) {
|
||||
if (pageStatus.value == 2) {
|
||||
ElMessage({
|
||||
@@ -1754,6 +2065,7 @@ const updateEngineering = (id: any) => {
|
||||
id: id, // 工程ID用于修改
|
||||
city: engData.city,
|
||||
description: engData.description,
|
||||
sort: engData.sort,
|
||||
name: engData.name,
|
||||
province: engData.province
|
||||
}
|
||||
@@ -1781,7 +2093,15 @@ const updateProjectFunc = (id: any) => {
|
||||
return
|
||||
}
|
||||
|
||||
deleteProject(id, currentProject.name, currentProject.area, currentProject.description, 1).then((res: any) => {
|
||||
deleteProject(
|
||||
id,
|
||||
currentProject.name,
|
||||
currentProject.area,
|
||||
currentProject.description,
|
||||
1,
|
||||
currentProject.sort,
|
||||
currentProject.topoId
|
||||
).then((res: any) => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '修改项目成功'
|
||||
@@ -1906,13 +2226,13 @@ const remove = () => {
|
||||
})
|
||||
return
|
||||
}
|
||||
if (nodeData.value.level == 0) {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '无法删除根节点'
|
||||
})
|
||||
return
|
||||
}
|
||||
// if (nodeData.value.level == 0) {
|
||||
// ElMessage({
|
||||
// type: 'error',
|
||||
// message: '无法删除根节点'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
if (nodeData.value.id == null) {
|
||||
ElMessage.warning('无法删除该节点')
|
||||
return
|
||||
@@ -1945,7 +2265,7 @@ const remove = () => {
|
||||
case 2: // 项目层级
|
||||
// 删除项目后选中工程节点
|
||||
const engineeringId = nodeData.value.pids ? nodeData.value.pids.split(',')[1] : null
|
||||
deleteProject(nodeData.value.id, '', '', '', 0).then((res: any) => {
|
||||
deleteProject(nodeData.value.id, '', '', '', 0, '', '').then((res: any) => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: res.message
|
||||
@@ -2025,7 +2345,9 @@ const next = async () => {
|
||||
formData.value.projectInfoList.push({
|
||||
name: '',
|
||||
area: '',
|
||||
description: ''
|
||||
description: '',
|
||||
sort: 0,
|
||||
topoId: ''
|
||||
})
|
||||
deviceIndex.value = (formData.value.projectInfoList.length - 1).toString()
|
||||
nextfalg.value = false
|
||||
@@ -2467,6 +2789,7 @@ const resetAllForms = () => {
|
||||
// 清空工程表单
|
||||
formData.value.engineeringParam.city = ''
|
||||
formData.value.engineeringParam.description = ''
|
||||
formData.value.engineeringParam.sort = 0
|
||||
formData.value.engineeringParam.name = ''
|
||||
formData.value.engineeringParam.province = ''
|
||||
|
||||
@@ -2475,6 +2798,7 @@ const resetAllForms = () => {
|
||||
project.name = ''
|
||||
project.area = ''
|
||||
project.description = ''
|
||||
;(project.sort = 0), (project.topoId = '')
|
||||
})
|
||||
|
||||
// 清空设备表单
|
||||
@@ -2534,6 +2858,7 @@ const submitData = () => {
|
||||
engineering: {
|
||||
city: formData.value.engineeringParam.city,
|
||||
description: formData.value.engineeringParam.description,
|
||||
sort: formData.value.engineeringParam.sort,
|
||||
name: formData.value.engineeringParam.name,
|
||||
province: formData.value.engineeringParam.province
|
||||
}
|
||||
@@ -2557,6 +2882,8 @@ const submitData = () => {
|
||||
project: {
|
||||
area: formData.value.projectInfoList[deviceIndex.value]?.area || '',
|
||||
description: formData.value.projectInfoList[deviceIndex.value]?.description || '',
|
||||
topoIds: [formData.value.projectInfoList[deviceIndex.value]?.topoId] || [],
|
||||
sort: formData.value.projectInfoList[deviceIndex.value]?.sort || 0,
|
||||
name: formData.value.projectInfoList[deviceIndex.value]?.name || '',
|
||||
engineeringId: nodeData.value?.id || ''
|
||||
}
|
||||
@@ -2723,7 +3050,9 @@ const handleDeviceTabsEdit = (targetName: any, action: any) => {
|
||||
formData.value.projectInfoList.push({
|
||||
name: '',
|
||||
area: '',
|
||||
description: ''
|
||||
description: '',
|
||||
sort: 0,
|
||||
topoId: ''
|
||||
})
|
||||
deviceIndex.value = (formData.value.projectInfoList.length - 1).toString()
|
||||
} else if (action === 'remove') {
|
||||
@@ -2741,7 +3070,9 @@ const handleDeviceTabsEdit = (targetName: any, action: any) => {
|
||||
formData.value.projectInfoList[deviceIndex.value].name,
|
||||
formData.value.projectInfoList[deviceIndex.value].area,
|
||||
formData.value.projectInfoList[deviceIndex.value].description,
|
||||
0 // 0表示删除
|
||||
0, // 0表示删除
|
||||
formData.value.projectInfoList[deviceIndex.value].sort,
|
||||
formData.value.projectInfoList[deviceIndex.value].topoId
|
||||
).then((res: any) => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
@@ -2924,12 +3255,13 @@ const handleLineTabsEdit = (targetName: any, action: any) => {
|
||||
}
|
||||
}
|
||||
|
||||
const tabChange = (type: string) => {
|
||||
const tabChange = (type: string, e: any) => {
|
||||
if (type == 'deviceIndex') {
|
||||
busBarIndex.value = '0'
|
||||
lineIndex.value = '0'
|
||||
} else if (type == 'busBarIndex') {
|
||||
lineIndex.value = '0'
|
||||
connectionMethod.value = formData.value.deviceInfoList[e.index].devAccessMethod
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2962,7 +3294,7 @@ const reaseStatus = () => {
|
||||
lineIndex.value = '0'
|
||||
currentGdName.value = ''
|
||||
}
|
||||
|
||||
const devModelOptions = ref([])
|
||||
const area = async () => {
|
||||
nodeAllList()
|
||||
.then(res => {
|
||||
@@ -2981,6 +3313,16 @@ const area = async () => {
|
||||
})
|
||||
.then(() => {
|
||||
return queryByCode('Device_Type').then(res => {
|
||||
queryByid(res.data.id).then((list: any) => {
|
||||
devModelOptions.value = list.data.map((item: any, index: any) => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
...item
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
return queryCsDictTree(res.data.id).then(res => {
|
||||
devTypeOptions.value = res.data
|
||||
})
|
||||
@@ -3000,6 +3342,7 @@ const area = async () => {
|
||||
|
||||
onMounted(() => {
|
||||
nodeData.value.level = 0
|
||||
getImageList()
|
||||
nextTick(() => {
|
||||
const dom = document.getElementById('navigation-splitpanes')
|
||||
if (dom && dom.offsetHeight > 0) {
|
||||
@@ -3074,14 +3417,14 @@ area()
|
||||
background: #fff !important;
|
||||
}
|
||||
.title {
|
||||
width: 500px;
|
||||
overflow: hidden;
|
||||
width: 300px;
|
||||
// overflow: hidden;
|
||||
// display: flex;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
}
|
||||
.titleScroll {
|
||||
animation: scroll 10s linear infinite; /* 滚动动画 */
|
||||
animation: scroll 7s linear infinite; /* 滚动动画 */
|
||||
}
|
||||
@keyframes scroll {
|
||||
0% {
|
||||
@@ -3091,4 +3434,13 @@ area()
|
||||
transform: translateX(-160%); /* 滚动到左侧 */
|
||||
}
|
||||
}
|
||||
.image-preview {
|
||||
height: 50px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.productSelector .el-select-dropdown__item {
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user