Files
admin-sjzx/src/views/pms/device-boot/deviceter.vue

2000 lines
91 KiB
Vue
Raw Normal View History

2024-02-20 16:47:12 +08:00
<template>
<div class="default-main device-manage" :style="{ height: pageHeight.height }" v-loading="loading">
<Terminal @node-click="nodeClick" @init="nodeClick"></Terminal>
<div class="device-manage-right">
<el-form :inline="true" class="demo-form-inline">
<el-form-item>
<el-button size="small" icon="el-icon-Plus" type="primary" @click="add"> </el-button>
</el-form-item>
<el-form-item>
<el-button size="small" icon="el-icon-Edit" type="primary" @click="update"> </el-button>
</el-form-item>
<el-form-item>
<el-button size="small" icon="el-icon-Close" type="danger" @click="remove"> </el-button>
</el-form-item>
<el-form-item>
<el-button
size="small"
icon="el-icon-Right"
:disabled="nextfalg"
type="primary"
@click="next"
v-if="nodeLevel <= 700 && pageStatus == 2"
>
下一步
</el-button>
</el-form-item>
<el-form-item>
<el-button
size="small"
type="info"
@click="black"
icon="el-icon-Back"
v-if="nodeLevel <= 700 && (pageStatus == 2 || pageStatus == 3)"
>
</el-button>
</el-form-item>
<el-form-item>
<el-button
size="small"
text-align="center"
icon="el-icon-Check"
type="primary"
v-if="pageStatus == 2"
@click="onsubmit"
>
确认提交
</el-button>
</el-form-item>
<el-form-item>
<el-button
size="small"
text-align="center"
icon="el-icon-check"
type="primary"
v-if="pageStatus == 3"
@click="onsubmit"
>
修改提交
</el-button>
</el-form-item>
<el-form-item style="right: 0; position: absolute">
<!-- <i style="font-size: 20px; color: #396" icon="el-icon-LocationInformation"></i> -->
<LocationInformation style="width: 16px; margin-right: 8px; color: #396" />
<span style="font-size: 16px; font-weight: bold; color: #396">当前操作节点</span>
<div style="float: right">
<el-breadcrumb separator-icon="el-icon-ArrowRightBold" style="font-weight: bold">
<!-- <el-breadcrumb-item>台账管理</el-breadcrumb-item> -->
<el-breadcrumb-item v-for="item in titleList" :key="item">
{{ item }}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
</el-form-item>
</el-form>
<el-form
class="main-form overview_scroll"
:label-position="'right'"
:model="AddProjectBO"
label-width="120px"
:inline="true"
ref="mainForm"
>
<el-form-item
id="id100"
class="form-item"
label="项目名称:"
:prop="'projectParam.name'"
:rules="{ required: true, message: '请输入项目名称', trigger: 'blur' }"
>
<el-select v-model="AddProjectBO.projectParam.name" 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="id100"
class="form-item"
label="项目排序:"
:prop="'projectParam.sort'"
:rules="{ required: true, message: '请输入排序', trigger: 'blur' }"
>
<el-input v-model="AddProjectBO.projectParam.sort" placeholder="请输入排序"></el-input>
</el-form-item>
<el-form-item
id="id200"
class="form-item"
label="行政区域:"
:prop="'provinceParam.name'"
:rules="[{ required: true, message: '请选择行政区域', trigger: 'change' }]"
>
<el-select
v-model="AddProjectBO.provinceParam.name"
placeholder="请选择行政区域"
style="width: 100%"
>
<el-option
v-for="item in treeOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
id="id200"
class="form-item"
label="区域排序:"
:prop="'provinceParam.sort'"
:rules="[{ required: true, message: '请输入排序', trigger: 'change' }]"
>
<el-input v-model="AddProjectBO.provinceParam.sort" placeholder="请输入排序"></el-input>
</el-form-item>
<el-form-item
id="id300"
class="form-item"
label="供电公司:"
:prop="'gdInformationParam.name'"
:rules="[{ required: true, message: '请输入供电公司', trigger: 'blur' }]"
>
<el-input v-model="AddProjectBO.gdInformationParam.name" placeholder="请输入供电公司"></el-input>
</el-form-item>
<el-form-item
id="id300"
class="form-item"
label="公司排序:"
:prop="'gdInformationParam.sort'"
:rules="[{ required: true, message: '请输入排序', trigger: 'blur' }]"
>
<el-input v-model="AddProjectBO.gdInformationParam.sort" placeholder="请输入排序"></el-input>
</el-form-item>
<!--变电站((pageStatus != 3 &&(nodeLevel > 300 && (nodeLevel &lt; 700 || pageStatus == 2))) || (pageStatus == 3 && nodeLevel == 400))-->
<el-form-item
class="form-item"
label="变电站:"
:prop="'subStationParam.name'"
:rules="{ required: true, message: '请输入变电站名称', trigger: 'blur' }"
>
<el-input v-model="AddProjectBO.subStationParam.name" placeholder="请输入变电站名称"></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="经度:"
:prop="'subStationParam.lng'"
:rules="[{ required: true, validator: lngff, trigger: 'blur' }]"
>
<el-input v-model="AddProjectBO.subStationParam.lng" placeholder="请输入经度"></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="纬度:"
:prop="'subStationParam.lat'"
:rules="[{ required: true, validator: latff, trigger: 'blur' }]"
>
<el-input v-model="AddProjectBO.subStationParam.lat" placeholder="请输入纬度"></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="电压等级:"
:prop="'subStationParam.scale'"
:rules="[{ required: true, message: '选中电压等级', trigger: 'change' }]"
>
<el-select v-model="AddProjectBO.subStationParam.scale" placeholder="请选择电压等级">
<el-option
v-for="item in voltageLevelArr"
:key="item.name"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="排序:"
:prop="'subStationParam.sort'"
:rules="[{ required: true, message: '输入排序', trigger: 'change' }]"
>
<el-input v-model="AddProjectBO.subStationParam.sort" placeholder="请输入排序"></el-input>
</el-form-item>
<!--终端设备-->
<div
id="id500"
class="form-device"
v-if="
(pageStatus != 3 && nodeLevel > 300 && (nodeLevel <= 700 || pageStatus == 2)) ||
(pageStatus == 3 && 400 < nodeLevel && nodeLevel <= 700)
"
>
<el-tabs
v-if="AddProjectBO.deviceParam && AddProjectBO.deviceParam.length"
v-model="deviceIndex"
type="card"
:editable="pageStatus != 1"
@edit="handleDeviceTabsEdit"
@tab-click="tabChange('deviceIndex')"
>
<el-tab-pane
v-for="(item, index) in AddProjectBO.deviceParam"
:key="index"
:label="item.name ? item.name : '新建终端' + index"
:name="index + ''"
>
<div class="flex">
<el-form-item
class="form-item"
label="名称:"
:prop="'deviceParam.' + index + '.name'"
:rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]"
>
<el-input
v-model="item.name"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
placeholder="请输入名称"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="通讯状态:"
:prop="'deviceParam.' + index + '.comFlag'"
:rules="[{ required: true, message: '请选择通讯状态', trigger: 'change' }]"
>
<el-select v-model="item.comFlag" placeholder="请选择通讯状态" :disabled="true">
<el-option
v-for="option in comStatusArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="通讯类型:"
:prop="'deviceParam.' + index + '.frontType'"
:rules="[{ required: true, message: '请选择通讯类型', trigger: 'change' }]"
>
<el-select
v-model="item.frontType"
placeholder="请选择通讯类型"
:popper-append-to-body="false"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in comTypeStatusArr"
:key="option.id"
:label="option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="终端模型:"
:prop="'deviceParam.' + index + '.devModel'"
:rules="[{ required: true, message: '请选择终端模型', trigger: 'change' }]"
>
<el-select
v-model="item.devModel"
placeholder="请选择终端模型"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in terminalModelArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="数据模型:"
:prop="'deviceParam.' + index + '.devDataType'"
:rules="[{ required: true, message: '请选择数据模型', trigger: 'change' }]"
>
<el-select
v-model="item.devDataType"
placeholder="请选择数据模型"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in dataModelArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="厂家:"
:prop="'deviceParam.' + index + '.manufacturer'"
:rules="[{ required: true, message: '请选择厂家', trigger: 'change' }]"
>
<el-select
v-model="item.manufacturer"
placeholder="请选择厂家"
:popper-append-to-body="false"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in factoryArr"
:key="option.id"
:label="option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="所属前置机:"
:prop="'deviceParam.' + index + '.nodeId'"
:rules="[{ required: true, message: '请选择所属前置机', trigger: 'change' }]"
>
<el-select
v-model="item.nodeId"
placeholder="请选择所属前置机"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in affiliatiedFrontArr"
:key="option.id"
:label="option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="召唤标志:"
:prop="'deviceParam.' + index + '.callFlag'"
:rules="[{ required: true, message: '请选择召唤标志', trigger: 'change' }]"
>
<el-select
v-model="item.callFlag"
placeholder="请选择召唤标志"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in summonSignArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="识别码:"
:prop="'deviceParam.' + index + '.series'"
>
<el-input
v-model="item.series"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
show-password
placeholder="请输入识别码"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="密钥:"
:prop="'deviceParam.' + index + '.devKey'"
>
<el-input
v-model="item.devKey"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
show-password
placeholder="请输入密钥"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="电度功能"
:prop="'deviceParam.' + index + '.electroplate'"
:rules="[{ required: true, message: '请选择电度功能', trigger: 'change' }]"
>
<el-select
v-model="item.electroplate"
placeholder="请选择电度功能"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in electroplateCanArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item class="form-item" label="投运时间:">
<el-date-picker
:popper-append-to-body="false"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
style="width: 100%"
value-format="yyyy-MM-dd"
v-model="item.loginTime"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-date-picker>
</el-form-item>
<el-form-item class="form-item" label="本次定检时间:">
<el-date-picker
:popper-append-to-body="false"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
style="width: 100%"
value-format="yyyy-MM-dd"
v-model="item.thisTimeCheck"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-date-picker>
</el-form-item>
<el-form-item class="form-item" label="下次定检时间:">
<el-date-picker
:popper-append-to-body="false"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
style="width: 100%"
value-format="yyyy-MM-dd"
v-model="item.nextTimeCheck"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-date-picker>
</el-form-item>
<el-form-item class="form-item" label="数据更新时间:">
<el-date-picker
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
v-model="item.updateTime"
style="width: 100%"
:disabled="true"
></el-date-picker>
</el-form-item>
<el-form-item
class="form-item"
label="端口号:"
:prop="'deviceParam.' + index + '.port'"
:rules="[{ required: true, message: '请输入端口号', trigger: 'blur' }]"
>
<el-input
v-model="item.port"
placeholder="请输入端口号"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="合同号:"
:prop="'deviceParam.' + index + '.contract'"
:rules="[{ required: true, message: '请输入合同号', trigger: 'blur' }]"
>
<el-input
v-model="item.contract"
placeholder="请输入合同号"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="ISM卡号:"
:prop="'deviceParam.' + index + '.sim'"
:rules="[{ required: true, message: '请输入ISM卡号', trigger: 'blur' }]"
>
<el-input
v-model="item.sim"
placeholder="请输入ISM卡号"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="排序:"
:prop="'deviceParam.' + index + '.sort'"
:rules="[{ required: true, message: '请输入排序', trigger: 'blur' }]"
>
<el-input
v-model="item.sort"
placeholder="请输入排序"
:disabled="
nodeLevel > 500 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
</div>
</el-tab-pane>
</el-tabs>
</div>
<!--母线-->
<!-- <div
id="id600"
class="form-bus"
v-if="((pageStatus != 3 && (nodeLevel > 400 && (nodeLevel &lt;= 700 || pageStatus == 2))) || (pageStatus == 3 && 400 < nodeLevel && nodeLevel &lt;= 700))"
>
<el-tabs
v-if="
AddProjectBO.deviceParam &&
AddProjectBO.deviceParam.length &&
AddProjectBO.deviceParam[deviceIndex] &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam.length
"
v-model="busBarIndex"
type="card"
:editable="pageStatus != 1"
@edit="handleBusBarTabsEdit"
@tab-click="tabChange('busBarIndex')"
>
<el-tab-pane
v-for="(busItem, bIndex) in AddProjectBO.deviceParam[deviceIndex].subVoltageParam"
:key="bIndex"
:label="busItem.name ? busItem.name : '新建母线' + bIndex"
:name="bIndex + ''"
>
<div class="flex">
<el-form-item
class="form-item"
label="母线名称:"
:prop="'deviceParam.' + [deviceIndex] + '.subVoltageParam.' + bIndex + '.name'"
:rules="{ required: true, message: '请输入母线名称', trigger: 'blur' }"
>
<el-input
v-model="busItem.name"
placeholder="请输入母线名称"
:disabled="
nodeLevel > 600 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="母线编号:"
:prop="'deviceParam.' + [deviceIndex] + '.subVoltageParam.' + bIndex + '.num'"
:rules="{ required: true, message: '请输入母线编号', trigger: 'blur' }"
>
<el-select
v-model="busItem.num"
placeholder="请选择母线编号"
:disabled="
nodeLevel > 600 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in optionarr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="电压等级:"
:prop="'deviceParam.' + [deviceIndex] + '.subVoltageParam.' + bIndex + '.scale'"
:rules="{ required: true, message: '请选择电压等级', trigger: 'blur' }"
>
<el-select
v-model="busItem.scale"
value-key="value"
placeholder="请选择电压等级"
:disabled="
nodeLevel > 600 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
@change="selectChanged"
>
<el-option
v-for="option in voltageLevelArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="母线类型:"
:prop="'deviceParam.' + [deviceIndex] + '.subVoltageParam.' + bIndex + '.model'"
:rules="{ required: true, message: '请选择母线类型', trigger: 'blur' }"
>
<el-select
v-model="busItem.model"
placeholder="请选择母线类型"
:disabled="
nodeLevel > 600 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
>
<el-option
v-for="option in busBarType"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="排序:"
:prop="'deviceParam.' + [deviceIndex] + '.subVoltageParam.' + bIndex + '.sort'"
:rules="{ required: true, message: '请输入排序', trigger: 'blur' }"
>
<el-input
v-model="busItem.sort"
placeholder="请输入排序"
:disabled="
nodeLevel > 600 && (pageStatus == 3 || pageStatus == 2)
? pageStatus == 3 || pageStatus == 2
: pageStatus == 1
"
></el-input>
</el-form-item>
</div>
</el-tab-pane>
</el-tabs>
</div> -->
<!--监测点-->
<!-- <div
id="id700"
class="form-point"
v-if="((pageStatus != 3 && (nodeLevel > 400 && (nodeLevel &lt;= 700 || pageStatus == 2))) || (pageStatus == 3 && 400 < nodeLevel && nodeLevel &lt;= 700))"
>
<el-tabs
type="card"
v-if="
AddProjectBO.deviceParam &&
AddProjectBO.deviceParam.length &&
AddProjectBO.deviceParam[deviceIndex] &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam.length &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam[busBarIndex] &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam[busBarIndex].lineParam &&
AddProjectBO.deviceParam[deviceIndex].subVoltageParam[busBarIndex].lineParam.length
"
v-model="lineIndex"
:editable="pageStatus != 1"
@edit="handleLineTabsEdit"
@tab-click="tabChange('lineIndex')"
>
<el-tab-pane
v-for="(lineItem, lIndex) in AddProjectBO.deviceParam[deviceIndex].subVoltageParam[
busBarIndex
].lineParam"
:key="lIndex"
:label="lineItem.name ? lineItem.name : '新建监测点' + lIndex"
:name="lIndex + ''"
>
<div class="flex">
<el-form-item
class="form-item"
label="监测点名称:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.name'
"
:rules="{ required: true, message: '请输入监测点名称', trigger: 'blur' }"
>
<el-input
v-model="lineItem.name"
:disabled="pageStatus == 1"
placeholder="请输入监测点名称"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="监测点序号:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.num'
"
:rules="{ required: true, message: '请选择监测点序号', trigger: 'blur' }"
>
<el-select
v-model="lineItem.num"
placeholder="请选择序号"
:disabled="pageStatus == 1"
>
<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="基准容量(MVA):">
<el-input
v-model="lineItem.standardCapacity"
:disabled="pageStatus == 1"
placeholder="请输入基准容量(MVA)"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="短路容量(MVA):"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.shortCapacity'
"
:rules="{ required: false, message: '请输入短路容量', trigger: 'blur' }"
>
<el-input
v-model="lineItem.shortCapacity"
:disabled="pageStatus == 1"
placeholder="请输入短路容量(MVA)"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="设备容量(MVA):"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.devCapacity'
"
:rules="{ required: false, message: '请输入设备容量', trigger: 'blur' }"
>
<el-input
v-model="lineItem.devCapacity"
:disabled="pageStatus == 1"
placeholder="请输入设备容量(MVA)"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="协议容量(MVA):"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.dealCapacity'
"
:rules="{ required: false, message: '请输入协议容量', trigger: 'blur' }"
>
<el-input
v-model="lineItem.dealCapacity"
:disabled="pageStatus == 1"
placeholder="请输入协议容量(MVA)"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="测量点间隔:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.timeInterval'
"
:rules="{ required: true, message: '请选择测点间隔', trigger: 'blur' }"
>
<el-select
v-model="lineItem.timeInterval"
placeholder="请选择测量点间隔"
:disabled="pageStatus == 1"
>
<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变比:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.pt1'
"
:rules="{ required: true, message: '请输入pt', trigger: 'blur' }"
>
<div class="flex" style="justify-content: space-between">
<el-input
style="width: 48%"
v-model="lineItem.pt1"
:disabled="pageStatus == 1"
></el-input>
<el-input
style="width: 48%"
v-model="lineItem.pt2"
:disabled="pageStatus == 1"
></el-input>
</div>
</el-form-item>
<el-form-item
class="form-item"
label="CT变比:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.ct1'
"
:rules="{ required: true, message: '请输入ct', trigger: 'blur' }"
>
<div class="flex" style="justify-content: space-between">
<el-input
style="width: 48%"
v-model="lineItem.ct1"
:disabled="pageStatus == 1"
></el-input>
<el-input
style="width: 48%"
v-model="lineItem.ct2"
:disabled="pageStatus == 1"
></el-input>
</div>
</el-form-item>
<el-form-item
class="form-item"
label="接线类型:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.ptType'
"
:rules="{ required: true, message: '请选择接线类型', trigger: 'blur' }"
>
<el-select
v-model="lineItem.ptType"
placeholder="请选择接线类型"
:disabled="pageStatus == 1"
>
<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="干扰源类型:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.loadType'
"
:rules="{ required: true, message: '请选择干扰源类型', trigger: 'blur' }"
>
<el-select
v-model="lineItem.loadType"
placeholder="请选择干扰源类型"
:disabled="pageStatus == 1"
>
<el-option
v-for="option in loadTypeArr"
:key="option.id"
:label="option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="行业类型:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.businessType'
"
:rules="{ required: true, message: '请选择行业类型', trigger: 'blur' }"
>
<el-select
v-model="lineItem.businessType"
placeholder="请选择行业类型"
:disabled="pageStatus == 1"
>
<el-option
v-for="option in industryTypeArr"
:key="option.id"
:label="option.name"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="谐波监测号:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.monitorId'
"
>
<el-input
v-model="lineItem.monitorId"
:disabled="pageStatus == 1"
placeholder="请输入国网谐波监测号"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="电压下偏差:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.uvoltageDev'
"
:rules="{ required: true, message: '请输入电压下偏差', trigger: 'blur' }"
>
<el-input
v-model="lineItem.uvoltageDev"
:disabled="pageStatus == 1"
placeholder="请输入电压下偏差"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="对象名称:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.objName'
"
>
<el-input
v-model="lineItem.objName"
:disabled="pageStatus == 1"
placeholder="请输入对象名称"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="测量点性质:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.powerFlag'
"
:rules="{ required: true, message: '请选择测量点性质', trigger: 'blur' }"
>
<el-select
v-model="lineItem.powerFlag"
placeholder="请选择测量点性质"
:disabled="pageStatus == 1"
>
<el-option
v-for="option in lineNatureArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="电压上偏差:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.voltageDev'
"
:rules="{ required: true, message: '请输入电压上偏差', trigger: 'blur' }"
>
<el-input
v-model="lineItem.voltageDev"
:disabled="pageStatus == 1"
placeholder="请输入电压上偏差"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="备注:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.remark'
"
>
<el-input
v-model="lineItem.remark"
:disabled="pageStatus == 1"
placeholder="请输入备注"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="分类等级:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.calssificationGrade'
"
:rules="{ required: true, message: '请选择分类等级', trigger: 'blur' }"
>
<el-select
v-model="lineItem.calssificationGrade"
placeholder="请选择分类等级"
:disabled="pageStatus == 1"
>
<el-option
v-for="option in pointTypeArr"
:key="option.name"
:label="option.name"
:value="option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="监测点拥有者:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.owner'
"
:rules="{ required: true, message: '请输入监测点拥有者', trigger: 'blur' }"
>
<el-input
v-model="lineItem.owner"
:disabled="pageStatus == 1"
placeholder="请输入监测点拥有者"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="拥有者职务:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.ownerDuty'
"
:rules="{ required: true, message: '请输入拥有者职务', trigger: 'blur' }"
>
<el-input
v-model="lineItem.ownerDuty"
:disabled="pageStatus == 1"
placeholder="请输入拥有者职务"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="电网侧变电站:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.powerSubstationName'
"
:rules="{ required: true, message: '请输入电网侧变电站', trigger: 'blur' }"
>
<el-input
v-model="lineItem.powerSubstationName"
:disabled="pageStatus == 1"
placeholder="请输入电网侧变电站"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="上级变电站:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.superiorsSubstation'
"
:rules="{ required: true, message: '请输入上级变电站', trigger: 'blur' }"
>
<el-input
v-model="lineItem.superiorsSubstation"
:disabled="pageStatus == 1"
placeholder="请输入上级变电站"
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="排序:"
:prop="
'deviceParam.' +
[deviceIndex] +
'.subVoltageParam.' +
[busBarIndex] +
'.lineParam.' +
lIndex +
'.sort'
"
:rules="{ required: true, message: '请输入排序', trigger: 'blur' }"
>
<el-input
v-model="lineItem.sort"
:disabled="pageStatus == 1"
placeholder="请输入排序"
></el-input>
</el-form-item>
</div>
</el-tab-pane>
</el-tabs>
</div> -->
</el-form>
</div>
</div>
</template>
<script setup lang="ts">
defineOptions({
name: 'device-boot/deviceter'
})
import { LocationInformation } from '@element-plus/icons-vue'
import Terminal from '@/components/tree/pms/Terminal.vue'
import { mainHeight } from '@/utils/layout'
import { areaTree } from '@/api/system-boot/dicData'
import { queryTerminal, nodeAllList, delTerminal } from '@/api/Business'
import { useDictData } from '@/stores/dictData'
import { ref, reactive } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
const pageHeight = mainHeight(20)
const loading = ref(false)
const nextfalg = ref(false)
const dictData = useDictData()
const nodeLevel = ref(0)
const pageStatus = ref(1)
const titleList: any = ref([])
const nodeData: any = ref([])
const treeOptions: any = ref([])
const deviceIndex: any = ref('0')
const busBarIndex: any = ref('0')
const lineIndex: any = ref('0')
const projectId: any = ref('0')
const provinceId: any = ref('0')
const gdId: any = ref('0')
const subId: any = ref('0')
const devId: any = ref('0')
const busBarId: any = ref('0')
const lineId: any = ref('0')
const currentGdName: any = ref('')
const affiliatiedFrontArr: any = ref([])
const comTypeStatusArr = dictData.getBasicData('Front_Type')
const factoryArr = dictData.getBasicData('Dev_Manufacturers')
const voltageLevelArr = dictData.getBasicData('Dev_Voltage_Stand')
const typeArr = dictData.getBasicData('Dev_Type')
const industryTypeArr = dictData.getBasicData('Business_Type')
const loadTypeArr = dictData.getBasicData('Interference_Source')
const comStatusArr = ref([
{ name: '中断', value: 0 },
{ name: '正常', value: 1 }
])
/**终端模型选项 */
const terminalModelArr = ref([
{ name: '实际终端', value: 1 },
{ name: '虚拟终端', value: 0 },
{ name: '离线终端', value: 2 }
])
/**电镀功能选项 */
const electroplateCanArr = ref([
{ name: '开启', value: 0 },
{ name: '关闭', value: 1 }
])
/**数据模型选项 */
const dataModelArr = ref([
{ name: '双系统', value: 2 },
{ name: '暂降系统', value: 0 },
{ name: '稳态系统', value: 1 }
])
/**召唤标志选项 */
const summonSignArr = ref([
{ name: '变位触发', value: 0 },
{ name: '周期触发', value: 1 }
])
const busBarDetail = ref({
/**母线名称 */
name: '',
/**母线编号 */
num: 1,
/**电压等级 */
scale: '',
/**母线类型 */
model: 0,
/**母线id */
subvIndex: '',
/**监测点 */
lineParam: [],
/**排序 */
sort: 0
})
/**监测点详情 */
const monitorPointDetail:any = ref({
/**行业类型 */
businessType: '',
/**CT变比 */
ct1: '',
/**CT变比 */
ct2: '',
/**所属部门 */
deptIndex: '',
/**设备容量 */
devCapacity: '',
/**短路容量 */
shortCapacity: '',
/**基准容量 */
standardCapacity: '',
/**监测点id */
lineIndex: '',
/**监测点序号 */
num: 1,
//分类等级
calssificationGrade: 1,
//电网测变电站
powerSubstationName: '',
//监测点拥有着
owner: '',
//拥有者职位
ownerDuty: '',
//上级变电站
superiorsSubstation: '',
/**负荷类型 */
loadType: '',
/**国网监测号 */
monitorId: '',
/**监测点名称 */
name: '',
/**对象名称 */
objName: '',
/**监测点性质 */
powerFlag: 0,
/**PT比 */
pt1: 0,
/**PT比 */
pt2: 0,
/**接线类型 */
ptType: 0,
/**测点间隔 */
timeInterval: 1,
/**协议容量 */
dealCapacity: '',
/**电压等级 */
scale: '',
/**备注 */
remark: '',
/**电压上偏差 */
voltageDev: 10,
/**电压下偏差 */
uvoltageDev: 10,
/**供电公司 */
gdName: currentGdName.value,
/**排序 */
sort: 0
})
const subStationParam = ref({
/**名称 */
name: '',
/**经度 */
lng: '0',
/**纬度 */
lat: '0',
/**电压等级 */
scale: '',
/**排序 */
sort: 0
})
const AddProjectBO: any = ref({
/**项目Id */
projectIndex: 0,
/**行政区域Id */
provinceIndex: 0,
/**供电公司Id*/
gdIndex: 0,
/**变电站Id*/
subIndex: 0,
/**设备Id */
devIndex: 0,
/**母线ID */
subvIndex: 0,
/**项目名称 */
projectParam: {
name: '',
sort: 0
},
/**行政区域 */
provinceParam: {
name: '',
sort: 0
},
/**供电公司 */
gdInformationParam: {
name: '',
sort: 0
},
/**变电站 */
subStationParam: {
name: '',
lng: '0',
lat: '0',
scale: '',
sort: 0
},
/**终端设备 母线 母线下面subVoltage是监测点*/
deviceParam: null
})
const deviceBODetail: any = ref({
/**名称 */
name: '',
/**设备id*/
devIndex: '',
/**设备型号 */
devType: '',
/**ip */
ip: '255.255.255.255',
/**通讯状态 */
comFlag: 0,
/**通讯类型 */
frontType: '',
/**投运时间 */
loginTime: '',
/**数据更新时间 */
updateTime: '',
/**所属变电站 */
zhan: '',
/**所属前置机 */
nodeId: '',
/**终端模型 */
devModel: 1,
/**本次定检时间 */
thisTimeCheck: '',
/**下次定检时间 */
nextTimeCheck: '',
/**厂家 */
manufacturer: '',
/**数据模型 */
devDataType: 2,
/**端口号 */
port: 102,
/**排序 */
sort: 0,
//合同号
contract: '',
//ISM卡号
sim: '',
/**电镀功能 */
electroplate: 0,
/**识别码 */
series: '',
/**召唤标志 */
callFlag: 0,
/**密钥 */
devKey: '',
/**母线*/
subVoltageParam: [],
/**供电公司 */
gdName: currentGdName.value
})
const project = ref([
{ name: '在线项目', value: '在线项目' },
{ name: '普测项目', value: '普测项目' }
])
const arrdess: any = ref((rule: any, value: any, callback: any) => {
let reg1 =
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
let reg2 =
/^[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}$/
let reg3 =
/^[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}$/
if (reg1.test(value)) {
return true
} else if (reg2.test(value)) {
return true
} else if (reg3.test(value)) {
return true
} else if (value == '') {
return callback(new Error('请输入IP/MAC地址'))
} else {
callback(new Error('请输入正确IP/MAC地址'))
}
})
/**经度 */
const lngff: any = ref((rule: any, value: any, callback: any) => {
let reg1 = /^(([1-9]\d?)|(1[0-7]\d))(\.\d{1,6})|180|0(\.\d{1,6})?/
if (reg1.test(value)) {
return true
} else if (value == '') {
return callback(new Error('请输入经度'))
} else {
callback(new Error('请输入正确经度'))
}
})
/**纬度 */
const latff: any = ref((rule: any, value: any, callback: any) => {
let reg2 = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/
if (reg2.test(value)) {
return true
} else if (value == '') {
return callback(new Error('请输入纬度'))
} else {
callback(new Error('请输入正确纬度'))
}
})
const nodeClick = (e: anyObj, data: any) => {
titleList.value = []
getparentsNode(data)
pageStatus.value = 1
nodeLevel.value = data.data.level
nodeData.value = e
if (data.level > 400) {
getNodeIndex()
}
/**不是根节点请求数据 */
if (nodeLevel.value) {
queryNodeContent()
} else {
/**清空数据 */
initAddProjectBo()
initAddProjectBoId()
}
}
const getparentsNode = (node: any) => {
if (!node.parent) {
return
}
titleList.value.unshift(node.label)
getparentsNode(node.parent) //调用递归
}
// 新增
const add = () => {
if (pageStatus.value == 2 || pageStatus.value == 3) {
if (pageStatus.value == 3) {
ElMessage({
type: 'warning',
message: '请先提交修改,再新增'
})
}
return
}
pageStatus.value = 2
/**删除Id属性 */
delete AddProjectBO.value.projectIndex
delete AddProjectBO.value.provinceIndex
delete AddProjectBO.value.gdIndex
delete AddProjectBO.value.subIndex
delete AddProjectBO.value.devIndex
delete AddProjectBO.value.subvIndex
// switch (this.nodeData.data.level) {
switch (nodeLevel.value) {
case 0:
addProject()
break
case 100:
initAddProjectBo()
AddProjectBO.value.projectIndex = projectId.value
addProvince()
break
case 200:
initAddProjectBo()
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
addGdInformation()
break
case 300:
initAddProjectBo()
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
AddProjectBO.value.gdIndex = gdId.value
addSubStation()
break
case 400:
initAddProjectBo()
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
AddProjectBO.value.gdIndex = gdId.value
AddProjectBO.value.subIndex = subId.value
addDevice()
break
case 500:
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
AddProjectBO.value.gdIndex = gdId.value
AddProjectBO.value.subIndex = subId.value
AddProjectBO.value.devIndex = devId.value
addSubVoltage()
break
case 600:
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
AddProjectBO.value.gdIndex = gdId.value
AddProjectBO.value.subIndex = subId.value
AddProjectBO.value.devIndex = devId.value
AddProjectBO.value.subvIndex = busBarId.value
addLine()
break
case 700:
AddProjectBO.value.projectIndex = projectId.value
AddProjectBO.value.provinceIndex = provinceId.value
AddProjectBO.value.gdIndex = gdId.value
AddProjectBO.value.subIndex = subId.value
AddProjectBO.value.devIndex = devId.value
AddProjectBO.value.subvIndex = busBarId.value
addLine()
break
}
deviceBODetail.value.manufacturer = factoryArr[0].id
deviceBODetail.value.devType = typeArr[0].value
deviceBODetail.value.frontType = comTypeStatusArr[0].value
deviceBODetail.value.nodeId = affiliatiedFrontArr[0].id
busBarDetail.value.scale = voltageLevelArr[0].id
subStationParam.value.scale = voltageLevelArr[0].id
monitorPointDetail.value.businessType = industryTypeArr[0].value
monitorPointDetail.value.loadType = loadTypeArr[0].id
}
/**新增项目 */
const addProject=()=> {
nodeLevel.value = 100
AddProjectBO.value.projectParam = { name: '', sort: 0 }
}
// 修改
const update = () => {
console.log('修改')
}
// 删除
const remove = () => {
console.log('删除')
}
// 下一步
const next = () => {
switch (nodeLevel.value) {
case 100:
addProvince()
nextfalg.value = false
break
case 200:
addGdInformation()
nextfalg.value = false
break
case 300:
addSubStation()
nextfalg.value = false
break
case 400:
addDevice()
nextfalg.value = false
break
case 500:
addSubVoltage()
nextfalg.value = false
break
case 600:
addLine()
nextfalg.value = false
break
case 700:
addLine()
nextfalg.value = true
break
}
}
// 撤销
const black = () => {
console.log('撤销')
}
// 确认提交
const onsubmit = () => {
console.log('撤销')
}
const addProvince = () => {
nodeLevel.value = 200
AddProjectBO.value.provinceParam = { name: '', sort: 0 }
}
const addGdInformation = () => {
nodeLevel.value = 300
AddProjectBO.value.gdInformationParam = { name: '', sort: 0 }
}
const addSubStation = () => {
nodeLevel.value = 400
AddProjectBO.value.subStationParam = {
name: '',
lng: '0',
lat: '0',
scale: '',
sort: 0
}
}
const addDevice = () => {
nodeLevel.value = 500
// 不存在,赋值
if (!AddProjectBO.value.deviceParam) {
AddProjectBO.value.deviceParam = []
}
const device = JSON.parse(JSON.stringify(deviceBODetail.value))
device.gdName = currentGdName.value
AddProjectBO.value.deviceParam.push(JSON.parse(JSON.stringify(device)))
deviceIndex.value = AddProjectBO.value.deviceParam.length - 1 + ''
}
const addSubVoltage = () => {}
const addLine = () => {}
const getNodeIndex = () => {
deviceIndex.value = '0'
busBarIndex.value = '0'
lineIndex.value = '0'
}
/**查询节点内容 */
const queryNodeContent = () => {
let data = {
id: nodeData.value.id,
level: nodeLevel.value
}
queryTerminal(data).then(res => {
// console.log("内容详情", res);
if (nodeLevel.value === 500) {
var data = res.data
/**假数据 */
var arr = []
var arr1 = []
//取设备
for (var i = 0; i < data.deviceVO.length; i++) {}
}
/**对接口再放开 */
AddProjectBO.value.projectIndex =
res.data.projectVO && res.data.projectVO.projectIndex ? res.data.projectVO.projectIndex : 0
AddProjectBO.value.provinceIndex =
res.data.provinceVO && res.data.provinceVO.provinceIndex ? res.data.provinceVO.provinceIndex : 0
AddProjectBO.value.gdIndex =
res.data.gdInformationVO && res.data.gdInformationVO.gdIndex ? res.data.gdInformationVO.gdIndex : 0
AddProjectBO.value.subIndex =
res.data.subStationVO && res.data.subStationVO.subIndex ? res.data.subStationVO.subIndex : 0
AddProjectBO.value.projectParam = {
name: res.data.projectVO.name,
sort: res.data.projectVO.sort
}
if (nodeLevel.value > 100) {
// AddProjectBO.value.provinceIndex = res.data.provinceVO.name
AddProjectBO.value.provinceParam = {
name: res.data.provinceVO.name,
sort: res.data.provinceVO.sort
}
AddProjectBO.value.provinceParam.name = res.data.provinceVO.name
}
if (nodeLevel.value > 200) {
AddProjectBO.value.gdInformationParam = {
name: res.data.gdInformationVO.name,
sort: res.data.gdInformationVO.sort
}
currentGdName.value = res.data.gdInformationVO.name
}
if (nodeLevel.value > 300) {
AddProjectBO.value.subStationParam = JSON.parse(JSON.stringify(res.data.subStationVO))
let deviceBO = JSON.parse(JSON.stringify(res.data.deviceVO))
deviceBO.forEach((item: any) => {
item.subVoltageParam = item.subVoltageVOList ? item.subVoltageVOList : []
delete item.subVoltageVOList
item.subVoltageParam.forEach((litem: any) => {
litem.lineParam = litem.lineVO ? litem.lineVO : []
delete litem.lineVO
})
})
AddProjectBO.value.deviceParam = JSON.parse(JSON.stringify(deviceBO))
deviceBO = null
}
})
}
const initAddProjectBo = () => {
AddProjectBO.value.deviceParam = null
}
/**AddProjectBo的Id恢复初始状态 */
const initAddProjectBoId = () => {
/**项目Id */
AddProjectBO.value.projectIndex = 0
AddProjectBO.value.provinceIndex = 0
AddProjectBO.value.gdIndex = 0
AddProjectBO.value.subIndex = 0
}
const tabChange = (type: string) => {
if (type == 'deviceIndex') {
busBarIndex.value = '0'
lineIndex.value = '0'
} else if (type == 'busBarIndex') {
lineIndex.value = '0'
}
}
/**
* 新增/删除设备
*/
const handleDeviceTabsEdit = (targetName: any, action: any) => {
// console.log(targetName);
/**新增 */
if (action === 'add') {
addDevice()
}
/**删除 */
if (action === 'remove') {
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
if (AddProjectBO.value.deviceParam[deviceIndex.value].devIndex) {
let data = {
id: AddProjectBO.value.deviceParam[deviceIndex.value].devIndex,
level: 500
}
delTerminal(data).then((res: any) => {
ElMessage({
type: 'success',
message: res.message
})
reaseStatus()
initAddProjectBo()
initAddProjectBoId()
})
} else {
AddProjectBO.value.deviceParam.splice(deviceIndex.value, 1)
deviceIndex.value = AddProjectBO.value.deviceParam.length
? AddProjectBO.value.deviceParam.length - 1 + ''
: '0'
busBarIndex.value = '0'
lineIndex.value = '0'
ElMessage({
type: 'success',
message: '删除成功'
})
}
})
.catch(() => {
ElMessage({
type: 'info',
message: '已取消删除'
})
})
}
}
/**
* 重置初始状态
*/
const reaseStatus = () => {
nodeData.value = {}
nodeLevel.value = 0
pageStatus.value = 1
projectId.value = 0
provinceId.value = 0
gdId.value = 0
subId.value = 0
devId.value = 0
busBarId.value = 0
lineId.value = 0
deviceIndex.value = '0'
busBarIndex.value = '0'
lineIndex.value = '0'
currentGdName.value = ''
}
const area = () => {
areaTree({ id: '', type: 0 }).then((res: any) => {
treeOptions.value = res.data
})
nodeAllList().then(res => {
// console.log("前置机", res);
affiliatiedFrontArr.value = res.data
deviceBODetail.value.nodeId = res.data[0].id
})
}
area()
</script>
<style lang="scss">
.device-manage {
display: flex;
padding: 15px;
&-right {
overflow: hidden;
flex: 1;
padding: 10px 10px 10px 0;
.el-descriptions__header {
height: 36px;
margin-bottom: 7px;
display: flex;
align-items: center;
}
}
}
.main-form {
display: flex;
flex-wrap: wrap;
.form-top {
width: 100%;
}
.el-form-item {
width: 30%;
margin-bottom: 15px;
.el-select {
width: 100%;
min-width: 0px;
}
}
}
</style>