修改测试问题

This commit is contained in:
guanj
2026-01-07 21:01:28 +08:00
parent 02a95c1dcd
commit 545e3836d1
24 changed files with 969 additions and 568 deletions

View File

@@ -89,6 +89,7 @@
:rules="{ required: true, message: '请输入设备名称', trigger: 'blur' }"
>
<el-select
clearable
filterable
v-model="project[2].name"
:disabled="true"
@@ -108,11 +109,12 @@
id="id200"
class="form-item"
label="省:"
prop="engineeringParam.province"
prop="engineeringParam.province"
v-if="nodeLevel > 0 || pageStatus == 2"
:rules="{ required: true, message: '请选择省', trigger: 'change' }"
>
<el-select
clearable
filterable
v-model="formData.engineeringParam.province"
:disabled="
@@ -134,11 +136,12 @@
id="id200"
class="form-item"
label="市:"
prop="engineeringParam.city"
prop="engineeringParam.city"
v-if="nodeLevel > 0 || pageStatus == 2"
:rules="{ required: true, message: '请选择市', trigger: 'change' }"
>
<el-select
clearable
filterable
v-model="formData.engineeringParam.city"
:disabled="
@@ -158,12 +161,11 @@
id="id300"
class="form-item"
label="工程名称:"
v-if="nodeLevel > 0 || pageStatus == 2"
prop="engineeringParam.name"
:rules="{ required: true, message: '请输入工程名称', trigger: 'blur' }"
>
<el-input
<el-input clearable
v-model="formData.engineeringParam.name"
placeholder="请输入工程名称"
:disabled="
@@ -175,10 +177,10 @@
id="id300"
class="form-item"
label="描述:"
prop="engineeringParam.description"
prop="engineeringParam.description"
v-if="nodeLevel > 0 || pageStatus == 2"
>
<el-input
<el-input clearable
v-model="formData.engineeringParam.description"
placeholder="请输入描述"
:disabled="
@@ -211,7 +213,7 @@
{ required: true, message: '请输入项目名称', trigger: 'blur' }
]"
>
<el-input
<el-input clearable
v-model="item.name"
placeholder="请输入项目名称"
:disabled="
@@ -229,7 +231,7 @@
:prop="'projectInfoList[' + index + '].area'"
:rules="[{ required: true, message: '请输入地市', trigger: 'blur' }]"
>
<el-input
<el-input clearable
v-model="item.area"
placeholder="请输入地市"
:disabled="
@@ -247,7 +249,7 @@
:prop="'projectInfoList[' + index + '].description'"
:rules="[{ required: true, message: '请输入描述', trigger: 'blur' }]"
>
<el-input
<el-input clearable
v-model="item.description"
placeholder="请输入描述"
:disabled="
@@ -292,7 +294,7 @@
{ required: true, message: '请输入装置名称', trigger: 'blur' }
]"
>
<el-input
<el-input clearable
v-model="busItem.name"
placeholder="请输入装置名称"
:disabled="
@@ -308,12 +310,13 @@
id="id200"
class="form-item"
label="装置类型:"
:prop="'deviceInfoList[' + bIndex + '].devType'"
:prop="'deviceInfoList[' + bIndex + '].devType'"
:rules="[
{ required: true, message: '请选择装置类型', trigger: 'change' }
]"
>
<el-select
clearable
filterable
v-model="busItem.devType"
placeholder="请选择装置类型"
@@ -338,12 +341,13 @@
id="id200"
class="form-item"
label="装置型号:"
:prop="'deviceInfoList[' + bIndex + '].devModel'"
:prop="'deviceInfoList[' + bIndex + '].devModel'"
:rules="[
{ required: true, message: '请选择装置型号', trigger: 'change' }
]"
>
<el-select
clearable
filterable
v-model="busItem.devModel"
placeholder="请选择装置型号"
@@ -368,12 +372,13 @@
id="id200"
class="form-item"
label="装置接入方式:"
:prop="'deviceInfoList[' + bIndex + '].devAccessMethod'"
:prop="'deviceInfoList[' + bIndex + '].devAccessMethod'"
:rules="[
{ required: true, message: '请选择装置接入方式', trigger: 'change' }
]"
>
<el-select
clearable
filterable
v-model="busItem.devAccessMethod"
placeholder="请选择装置接入方式"
@@ -393,7 +398,7 @@
<el-form-item
class="form-item"
label="装置mac地址:"
:prop="'deviceInfoList[' + bIndex + '].mac'"
:prop="'deviceInfoList[' + bIndex + '].mac'"
:rules="{
required: true,
message: '请输入装置mac地址',
@@ -411,14 +416,18 @@
:rules="[{ required: true, message: '请输入网络设备ID', trigger: 'blur' }]"
>
<el-input
<el-input clearable
v-model="busItem.ndid"
disabled
placeholder="请输入网络设备ID"
></el-input>
</el-form-item> -->
<el-form-item class="form-item" label="合同号:" :prop="'deviceInfoList[' + bIndex + '].cntractNo'">
<el-input
<el-form-item
class="form-item"
label="合同号:"
:prop="'deviceInfoList[' + bIndex + '].cntractNo'"
>
<el-input clearable
v-model="busItem.cntractNo"
placeholder="请输入合同号"
:disabled="
@@ -433,12 +442,13 @@
<el-form-item
class="form-item"
label="所属前置机:"
:prop="'deviceInfoList[' + bIndex + '].nodeId'"
:prop="'deviceInfoList[' + bIndex + '].nodeId'"
:rules="[
{ required: true, message: '请选择所属前置机', trigger: 'change' }
]"
>
<el-select
clearable
filterable
v-model="busItem.nodeId"
placeholder="请选择所属前置机"
@@ -452,8 +462,12 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item class="form-item" label="进程号:" :prop="'deviceInfoList[' + bIndex + '].nodeProcess'">
<el-input
<el-form-item
class="form-item"
label="进程号:"
:prop="'deviceInfoList[' + bIndex + '].nodeProcess'"
>
<el-input clearable
v-model="busItem.nodeProcess"
placeholder="自动分配"
:disabled="true"
@@ -466,7 +480,7 @@
:prop="'deviceInfoList[' + bIndex + '].sort'"
:rules="[{ required: true, message: '请输入排序', trigger: 'blur' }]"
>
<el-input
<el-input clearable
v-model="busItem.sort"
placeholder="请输入排序"
:disabled="
@@ -513,7 +527,7 @@
trigger: 'blur'
}"
>
<el-input
<el-input clearable
v-model="lineItem.name"
placeholder="请输入监测点名称"
:disabled="
@@ -536,6 +550,7 @@
}"
>
<el-select
clearable
filterable
v-model="lineItem.lineNo"
placeholder="请选择线路号"
@@ -562,6 +577,7 @@
:rules="{ required: true, message: '请选择接线方式', trigger: 'blur' }"
>
<el-select
clearable
filterable
v-model="lineItem.conType"
placeholder="请选择接线方式"
@@ -588,6 +604,7 @@
:rules="{ required: true, message: '请选择统计间隔', trigger: 'blur' }"
>
<el-select
clearable
filterable
v-model="lineItem.lineInterval"
placeholder="请选择统计间隔"
@@ -614,7 +631,7 @@
:rules="{ required: true, message: '请输入pt', trigger: 'blur' }"
>
<div style="width: 100%; display: flex; justify-content: space-between">
<el-input-number
<el-input clearable-number
:controls="false"
:min="1"
style="width: 48%"
@@ -627,7 +644,7 @@
pageStatus == 2)
)
"
></el-input-number>
></el-input>
<span
style="
display: flex;
@@ -637,7 +654,7 @@
>
:
</span>
<el-input-number
<el-input clearable-number
:controls="false"
:min="1"
style="width: 48%"
@@ -650,17 +667,17 @@
pageStatus == 2)
)
"
></el-input-number>
></el-input>
</div>
</el-form-item>
<el-form-item
class="form-item"
label="CT变比:"
:prop="'lineInfoList[' + lIndex + '].ctRatio'"
:prop="'lineInfoList[' + lIndex + '].ctRatio'"
:rules="{ required: true, message: '请输入ct', trigger: 'blur' }"
>
<div style="width: 100%; display: flex; justify-content: space-between">
<el-input-number
<el-input clearable-number
:controls="false"
:min="1"
style="width: 48%"
@@ -673,7 +690,7 @@
pageStatus == 2)
)
"
></el-input-number>
></el-input>
<span
style="
display: flex;
@@ -683,7 +700,7 @@
>
:
</span>
<el-input-number
<el-input clearable-number
:controls="false"
:min="1"
style="width: 48%"
@@ -696,12 +713,17 @@
pageStatus == 2)
)
"
></el-input-number>
></el-input>
</div>
</el-form-item>
<el-form-item class="form-item" label="基准容量(MVA):" :prop="'lineInfoList[' + lIndex + '].basicCapacity'" :rules="{ required: true, message: '请输入基准容量', trigger: 'blur' }">
<el-input-number
<el-form-item
class="form-item"
label="基准容量(MVA):"
:prop="'lineInfoList[' + lIndex + '].basicCapacity'"
:rules="{ required: true, message: '请输入基准容量', trigger: 'blur' }"
>
<el-input clearable-number
:controls="false"
:min="0"
style="width: 100%"
@@ -714,15 +736,15 @@
)
"
placeholder="请输入基准容量(MVA)"
></el-input-number>
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="短路容量(MVA):"
:prop="'lineInfoList[' + lIndex + '].shortCircuitCapacity'"
:prop="'lineInfoList[' + lIndex + '].shortCircuitCapacity'"
:rules="{ required: true, message: '请输入短路容量', trigger: 'blur' }"
>
<el-input-number
<el-input clearable-number
:controls="false"
:min="0"
style="width: 100%"
@@ -735,15 +757,15 @@
)
"
placeholder="请输入短路容量(MVA)"
></el-input-number>
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="设备容量(MW):"
:prop="'lineInfoList[' + lIndex + '].devCapacity'"
:prop="'lineInfoList[' + lIndex + '].devCapacity'"
:rules="{ required: true, message: '请输入设备容量', trigger: 'blur' }"
>
<el-input-number
<el-input clearable-number
:controls="false"
:min="0"
style="width: 100%"
@@ -756,15 +778,15 @@
)
"
placeholder="请输入设备容量(MVA)"
></el-input-number>
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="协议容量(MW):"
:prop="'lineInfoList[' + lIndex + '].protocolCapacity'"
:prop="'lineInfoList[' + lIndex + '].protocolCapacity'"
:rules="{ required: true, message: '请输入协议容量', trigger: 'blur' }"
>
<el-input-number
<el-input clearable-number
:controls="false"
:min="0"
style="width: 100%"
@@ -777,16 +799,17 @@
)
"
placeholder="请输入协议容量(MW)"
></el-input-number>
></el-input>
</el-form-item>
<el-form-item
class="form-item"
label="电压等级:"
:prop="'lineInfoList[' + lIndex + '].volGrade'"
:prop="'lineInfoList[' + lIndex + '].volGrade'"
:rules="{ required: true, message: '请选择电压等级', trigger: 'blur' }"
>
<el-select
clearable
filterable
v-model="lineItem.volGrade"
placeholder="请选择电压等级"
@@ -806,13 +829,9 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="用户对象:"
:prop="'lineInfoList[' + lIndex + '].monitorUser'"
:rules="{ required: true, message: '请选择用户对象', trigger: 'blur' }"
>
<el-form-item class="form-item" label="用户对象:">
<el-select
clearable
filterable
v-model="lineItem.monitorUser"
placeholder="请选择用户对象"
@@ -835,7 +854,7 @@
<el-form-item
class="form-item"
label="监测对象类型:"
:prop="'lineInfoList[' + lIndex + '].monitorObj'"
:prop="'lineInfoList[' + lIndex + '].monitorObj'"
:rules="{
required: true,
message: '请选择监测对象类型',
@@ -843,6 +862,7 @@
}"
>
<el-select
clearable
filterable
v-model="lineItem.monitorObj"
placeholder="请选择监测对象类型"
@@ -862,13 +882,45 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
class="form-item"
label="监测位置:"
:prop="'lineInfoList[' + lIndex + '].position'"
:rules="{
required: true,
message: '请选择监测位置',
trigger: 'blur'
}"
>
<el-select
clearable
filterable
v-model="lineItem.position"
placeholder="请选择监测位置"
:disabled="
!(
(nodeLevel == 4 && pageStatus == 3) ||
((nodeLevel == 3 || (nodeLevel == 2 && pageStatus == 2)) &&
pageStatus == 2)
)
"
>
<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="是否治理:"
:prop="'lineInfoList[' + lIndex + '].govern'"
:prop="'lineInfoList[' + lIndex + '].govern'"
:rules="{ required: true, message: '请选择是否治理', trigger: 'blur' }"
>
<el-select
clearable
filterable
v-model="lineItem.govern"
placeholder="请选择是否治理"
@@ -890,8 +942,9 @@
:prop="'lineInfoList[' + lIndex + '].runStatus'"
:rules="{ required: true, message: '请选择运行状态', trigger: 'blur' }"
>
<!-- 0运行1检修2停运3调试4退运 -->
<!-- 0运行1检修2停运3调试4退运 -->
<el-select
clearable
filterable
v-model="lineItem.runStatus"
placeholder="请选择运行状态"
@@ -1035,6 +1088,7 @@ const busBarId: any = ref('0')
const lineId: any = ref('0')
const userList: any = ref([])
const monitorObjList: any = ref([])
const linePosition: any = ref([])
const currentGdName: any = ref('')
const affiliatiedFrontArr: any = ref([])
@@ -1046,19 +1100,17 @@ const treeClickCount = ref(0)
const areaTree: any = tree
const formData = ref({
lineInfoList: [] as LineInfo[],
projectInfoList:[] as ProjectInfo[],
deviceInfoList :[] as DeviceInfo[],
engineeringParam: {
city: '',
description: '',
name: '',
province: ''
}
lineInfoList: [] as LineInfo[],
projectInfoList: [] as ProjectInfo[],
deviceInfoList: [] as DeviceInfo[],
engineeringParam: {
city: '',
description: '',
name: '',
province: ''
}
})
const project = ref([
{ name: '治理设备', value: '治理设备' },
{ name: '便携式设备', value: '便携式设备' },
@@ -1127,6 +1179,7 @@ interface LineInfo {
devMac: string
monitorUser: string
monitorObj: string
position: string
govern: string | number
runStatus: string | number
basicCapacity: number
@@ -1506,6 +1559,7 @@ const add = () => {
monitorUser: '',
devMac: '',
monitorObj: '',
position: '',
govern: 0,
runStatus: 0,
basicCapacity: 0,
@@ -1682,8 +1736,9 @@ const updateLineFunc = (id: any) => {
ct2Ratio: currentLine.ct2Ratio || 1,
monitorUser: currentLine.monitorUser || '',
monitorObj: currentLine.monitorObj || '',
govern: currentLine.govern ,
runStatus: currentLine.runStatus ,
position: currentLine.position || '',
govern: currentLine.govern,
runStatus: currentLine.runStatus,
basicCapacity: currentLine.basicCapacity || 0,
shortCircuitCapacity: currentLine.shortCircuitCapacity || 0,
devCapacity: currentLine.devCapacity || 0,
@@ -1878,6 +1933,7 @@ const next = async () => {
monitorUser: '',
devMac: '',
monitorObj: '',
position: '',
govern: 0,
runStatus: 0,
basicCapacity: 0,
@@ -1900,7 +1956,6 @@ const next = async () => {
}
}
})
}
// 撤销
@@ -1925,21 +1980,21 @@ const black = () => {
const onsubmit = async () => {
await mainForm.value.validate((valid: any) => {
if (valid) {
if (pageStatus.value == 2) {
// 新增
// 检查是否是多层级新增还是单层级新增
if (
tempAllLevelData.value.engineering !== null ||
tempAllLevelData.value.projects.length > 0 ||
tempAllLevelData.value.devices.length > 0 ||
tempAllLevelData.value.lines.length > 0
) {
// 多层级新增,一次性提交所有数据
submitAllLevelData()
} else {
// 单层级新增,使用原有的提交方式
submitData()
}
if (pageStatus.value == 2) {
// 新增
// 检查是否是多层级新增还是单层级新增
if (
tempAllLevelData.value.engineering !== null ||
tempAllLevelData.value.projects.length > 0 ||
tempAllLevelData.value.devices.length > 0 ||
tempAllLevelData.value.lines.length > 0
) {
// 多层级新增,一次性提交所有数据
submitAllLevelData()
} else {
// 单层级新增,使用原有的提交方式
submitData()
}
} else if (pageStatus.value == 3) {
// 修改
switch (nodeLevel.value) {
@@ -1958,7 +2013,6 @@ const onsubmit = async () => {
}
}
}
})
}
@@ -2003,7 +2057,9 @@ const submitAllLevelData = async () => {
case 2: // 工程 + 项目 + 设备
// 工程信息
const engineeringData2 = tempAllLevelData.value.engineering || { ...formData.value.engineeringParam }
const engineeringData2 = tempAllLevelData.value.engineering || {
...formData.value.engineeringParam
}
// 项目信息
const projectData2 =
tempAllLevelData.value.projects.length > 0
@@ -2059,7 +2115,9 @@ const submitAllLevelData = async () => {
case 3: // 工程 + 项目 + 设备 + 监测点
case 4:
// 工程信息
const engineeringData3 = tempAllLevelData.value.engineering || { ...formData.value.engineeringParam }
const engineeringData3 = tempAllLevelData.value.engineering || {
...formData.value.engineeringParam
}
// 项目信息
const projectData3 =
@@ -2255,10 +2313,8 @@ const submitAllLevelData = async () => {
}
}, 100)
})
}
})
}
/**
* 重置所有表单
@@ -2302,6 +2358,7 @@ const resetAllForms = () => {
line.volGrade = ''
line.monitorUser = ''
line.monitorObj = ''
line.position = ''
line.govern = 0
line.runStatus = 0
line.basicCapacity = 0
@@ -2469,6 +2526,7 @@ const submitData = () => {
ct2Ratio: currentLine.ct2Ratio,
monitorUser: currentLine.monitorUser,
monitorObj: currentLine.monitorObj,
position: currentLine.position,
govern: currentLine.govern,
runStatus: currentLine.runStatus,
basicCapacity: currentLine.basicCapacity,
@@ -2620,7 +2678,9 @@ const handleBusBarTabsEdit = (targetName: any, action: any) => {
} else {
// 如果是新增模式下删除未保存的设备
formData.value.deviceInfoList.splice(busBarIndex.value, 1)
busBarIndex.value = formData.value.deviceInfoList.length ? (formData.value.deviceInfoList.length - 1).toString() : '0'
busBarIndex.value = formData.value.deviceInfoList.length
? (formData.value.deviceInfoList.length - 1).toString()
: '0'
lineIndex.value = '0'
ElMessage({
type: 'success',
@@ -2656,6 +2716,7 @@ const handleLineTabsEdit = (targetName: any, action: any) => {
devMac: '',
monitorUser: '',
monitorObj: '',
position: '',
govern: 0,
runStatus: 0,
basicCapacity: 0,
@@ -2682,14 +2743,18 @@ const handleLineTabsEdit = (targetName: any, action: any) => {
// 从列表中移除
formData.value.lineInfoList.splice(lineIndex.value, 1)
// 重新设置当前选中的tab
lineIndex.value = formData.value.lineInfoList.length ? (formData.value.lineInfoList.length - 1).toString() : '0'
lineIndex.value = formData.value.lineInfoList.length
? (formData.value.lineInfoList.length - 1).toString()
: '0'
pageStatus.value = 1
treedata()
})
} else {
// 如果是新增模式下删除未保存的监测点
formData.value.lineInfoList.splice(lineIndex.value, 1)
lineIndex.value = formData.value.lineInfoList.length ? (formData.value.lineInfoList.length - 1).toString() : '0'
lineIndex.value = formData.value.lineInfoList.length
? (formData.value.lineInfoList.length - 1).toString()
: '0'
ElMessage({
type: 'success',
message: '删除成功'
@@ -2777,6 +2842,9 @@ const area = () => {
getDicDataByTypeCode({ dictTypeCode: 'M_Obj_Types' }).then(res => {
monitorObjList.value = res.data
})
getDicDataByTypeCode({ dictTypeCode: 'Line_Position' }).then(res => {
linePosition.value = res.data
})
}
onMounted(() => {