修改台账录入页面

This commit is contained in:
GGJ
2025-03-24 20:47:12 +08:00
parent d4c7a9b0ca
commit d6b92db9c8
3 changed files with 103 additions and 19 deletions

View File

@@ -118,3 +118,11 @@ export function queryAllByType(params: any) {
params
})
}
//获取用户
export function selectUserList(data: any) {
return createAxios({
url: '/supervision-boot/userReport/selectUserList',
method: 'post',
data
})
}

View File

@@ -72,16 +72,20 @@ const info = (id: any) => {
} else {
res.data.forEach((item: any) => {
item.icon = 'el-icon-Menu'
item.plevel = item.level
item.level = (item.level + 1) * 100
item.children.forEach((item2: any) => {
item2.icon = 'el-icon-HomeFilled'
item2.plevel = item2.level
item2.level = (item2.level + 1) * 100
expanded.value.push(item2.id)
item2.children.forEach((item3: any) => {
item3.icon = 'el-icon-CollectionTag'
item3.plevel = item3.level
item3.level = (item3.level + 1) * 100
item3.children.forEach((item4: any) => {
item4.icon = 'el-icon-Flag'
item4.plevel = item4.level
item4.level = (item4.level + 1) * 100
item4.children.forEach((item5: any) => {
item5.icon = 'el-icon-OfficeBuilding'
@@ -89,12 +93,15 @@ const info = (id: any) => {
item5.level = (item5.level == 7 ? 4 : item5.level) * 100
item5.children.forEach((item6: any) => {
item6.icon = 'el-icon-Film'
item6.plevel = item6.level
item6.level = (item6.level + 1) * 100
item6.children.forEach((item7: any) => {
item7.icon = 'el-icon-Share'
item7.plevel = item7.level
item7.level = (item7.level + 1) * 100
item7.children.forEach((item8: any) => {
item8.icon = 'el-icon-Location'
item8.plevel = item8.level
item8.level = (item8.level + 1) * 100
})
})

View File

@@ -89,6 +89,7 @@
:rules="{ required: true, message: '请输入项目名称', trigger: 'blur' }"
>
<el-select
filterable
v-model="AddProjectBO.projectParam.name"
:disabled="
nodeLevel > 100 && (pageStatus == 3 || pageStatus == 2)
@@ -140,6 +141,7 @@
:rules="[{ required: true, message: '请选择行政区域', trigger: 'change' }]"
>
<el-select
filterable
v-model="AddProjectBO.provinceParam.name"
placeholder="请选择行政区域"
style="width: 100%"
@@ -241,9 +243,9 @@
:rules="{ required: true, message: '请输入变电站名称', trigger: 'blur' }"
>
<el-select
filterable
v-model="AddProjectBO.subStationParam.name"
placeholder="请选择变电站"
filterable
@change="subStationChange"
:disabled="
nodeLevel > 400 && (pageStatus == 3 || pageStatus == 2)
@@ -318,6 +320,7 @@
:rules="[{ required: true, message: '选中电压等级', trigger: 'change' }]"
>
<el-select
filterable
v-model="AddProjectBO.subStationParam.scale"
:disabled="
nodeLevel > 400 && (pageStatus == 3 || pageStatus == 2)
@@ -401,6 +404,7 @@
]"
>
<el-select
filterable
v-model="item.comFlag"
placeholder="请选择通讯状态"
:disabled="true"
@@ -422,6 +426,7 @@
]"
>
<el-select
filterable
v-model="item.frontType"
placeholder="请选择通讯类型"
:popper-append-to-body="false"
@@ -448,6 +453,7 @@
]"
>
<el-select
filterable
v-model="item.devModel"
placeholder="请选择终端模型"
:disabled="
@@ -473,6 +479,7 @@
]"
>
<el-select
filterable
v-model="item.devDataType"
placeholder="请选择数据模型"
:disabled="
@@ -496,6 +503,7 @@
:rules="[{ required: true, message: '请选择厂家', trigger: 'change' }]"
>
<el-select
filterable
v-model="item.manufacturer"
placeholder="请选择厂家"
:popper-append-to-body="false"
@@ -522,6 +530,7 @@
]"
>
<el-select
filterable
v-model="item.nodeId"
placeholder="请选择所属前置机"
:disabled="
@@ -547,6 +556,7 @@
]"
>
<el-select
filterable
v-model="item.callFlag"
placeholder="请选择召唤标志"
:disabled="
@@ -604,6 +614,7 @@
]"
>
<el-select
filterable
v-model="item.electroplate"
placeholder="请选择电度功能"
:disabled="
@@ -689,6 +700,7 @@
]"
>
<el-select
filterable
v-model="item.devType"
placeholder="请选择终端型号"
:disabled="
@@ -842,6 +854,7 @@
:rules="{ required: true, message: '请输入母线编号', trigger: 'blur' }"
>
<el-select
filterable
v-model="busItem.num"
placeholder="请选择母线编号"
:disabled="
@@ -871,6 +884,7 @@
:rules="{ required: true, message: '请选择电压等级', trigger: 'blur' }"
>
<el-select
filterable
v-model="busItem.scale"
value-key="value"
placeholder="请选择电压等级"
@@ -902,6 +916,7 @@
:rules="{ required: true, message: '请选择母线类型', trigger: 'blur' }"
>
<el-select
filterable
v-model="busItem.model"
placeholder="请选择母线类型"
:disabled="
@@ -1020,6 +1035,7 @@
}"
>
<el-select
filterable
v-model="lineItem.num"
placeholder="请选择序号"
:disabled="pageStatus == 1"
@@ -1047,6 +1063,7 @@
:rules="{ required: true, message: '请选择接线类型', trigger: 'blur' }"
>
<el-select
filterable
v-model="lineItem.ptType"
placeholder="请选择接线类型"
:disabled="pageStatus == 1"
@@ -1078,6 +1095,7 @@
}"
>
<el-select
filterable
v-model="lineItem.powerFlag"
placeholder="请选择测量点性质"
:disabled="pageStatus == 1"
@@ -1096,16 +1114,17 @@
v-if="lineItem.powerFlag == 1"
>
<el-select
v-model="lineItem.newStationId"
filterable
v-model="lineItem.objId"
placeholder="请选择用户名称"
:disabled="pageStatus == 1"
clearable
>
<el-option
v-for="option in newStationIdArr"
:key="option.name"
:label="option.name"
:value="option.value"
:key="option.id"
:label="option.projectName"
:value="option.id"
></el-option>
</el-select>
</el-form-item>
@@ -1192,6 +1211,7 @@
:rules="{ required: true, message: '请选择测点间隔', trigger: 'blur' }"
>
<el-select
filterable
v-model="lineItem.timeInterval"
placeholder="请选择测量点间隔"
:disabled="pageStatus == 1"
@@ -1278,6 +1298,7 @@
}"
>
<el-select
filterable
v-model="lineItem.loadType"
placeholder="请选择干扰源类型"
:disabled="pageStatus == 1"
@@ -1300,17 +1321,19 @@
[busBarIndex] +
'.lineParam.' +
lIndex +
'.businessType'
'.bigObjType'
"
:rules="{ required: true, message: '请选择用户大类', trigger: 'blur' }"
>
<el-select
v-model="lineItem.businessType"
filterable
v-model="lineItem.bigObjType"
placeholder="请选择用户大类"
:disabled="pageStatus == 1"
@change="lineItem.smallObjType = ''"
>
<el-option
v-for="option in industryTypeArr"
v-for="option in bigList"
:key="option.id"
:label="option.name"
:value="option.id"
@@ -1327,17 +1350,20 @@
[busBarIndex] +
'.lineParam.' +
lIndex +
'.businessType'
'.smallObjType'
"
:rules="{ required: true, message: '请选择用户小类', trigger: 'blur' }"
>
<el-select
v-model="lineItem.businessType"
filterable
v-model="lineItem.smallObjType"
placeholder="请选择用户小类"
:disabled="pageStatus == 1"
>
<el-option
v-for="option in industryTypeArr"
v-for="option in bigList.filter(
item => item.id == lineItem.bigObjType
)[0]?.children"
:key="option.id"
:label="option.name"
:value="option.id"
@@ -1359,6 +1385,7 @@
:rules="{ required: true, message: '请选择行业类型', trigger: 'blur' }"
>
<el-select
filterable
v-model="lineItem.businessType"
placeholder="请选择行业类型"
:disabled="pageStatus == 1"
@@ -1491,7 +1518,7 @@
"
:rules="{ required: true, message: '请选择分类等级', trigger: 'blur' }"
>
<el-select
<el-select filterable
v-model="lineItem.calssificationGrade"
placeholder="请选择分类等级"
:disabled="pageStatus == 1"
@@ -1611,7 +1638,8 @@ import {
updateTerminal,
addTerminal,
selectDown,
queryAllByType
queryAllByType,
selectUserList
} from '@/api/device-boot/Business'
import { useDictData } from '@/stores/dictData'
import { ref, reactive, onMounted } from 'vue'
@@ -1649,7 +1677,7 @@ const affiliatiedFrontArr: any = ref([])
const comTypeStatusArr = dictData.getBasicData('Front_Type')
const factoryArr = dictData.getBasicData('Dev_Manufacturers')
const voltageLevelArr = dictData.getBasicData('Dev_Voltage_Stand')
console.log('🚀 ~ voltageLevelArr:', voltageLevelArr)
const typeArr = dictData.getBasicData('Dev_Type')
const industryTypeArr = dictData.getBasicData('Business_Type')
const loadTypeArr = dictData.getBasicData('Interference_Source')
@@ -1666,11 +1694,12 @@ const busBarType = ref([
{ name: '实际母线', value: 0 },
{ name: '虚拟母线', value: 1 }
])
const bigList: any = ref([])
const smallList: any = ref([])
const comStatusArr = ref([
{ name: '中断', value: 0 },
{ name: '正常', value: 1 }
])
/**终端模型选项 */
const terminalModelArr = ref([
{ name: '实际终端', value: 1 },
@@ -1743,6 +1772,10 @@ const busBarDetail = ref({
})
/**监测点详情 */
const monitorPointDetail: any = ref({
/**用户大类 */
bigObjType: '',
/**用户小类 */
smallObjType: '',
/**行业类型 */
businessType: '',
/**CT变比 */
@@ -1755,7 +1788,7 @@ const monitorPointDetail: any = ref({
devCapacity: '',
/**短路容量 */
shortCapacity: '',
newStationId: '',
objId: '',
/**基准容量 */
standardCapacity: '',
/**监测点id */
@@ -1849,7 +1882,7 @@ const deviceBODetail: any = ref({
/**终端型号 */
devType: '',
/**ip */
ip: '255.255.255.255',
ip: '',
/**通讯状态 */
comFlag: 0,
/**通讯类型 */
@@ -2100,6 +2133,36 @@ const addProject = () => {
nodeLevel.value = 100
AddProjectBO.value.projectParam = { name: '', sort: 0 }
}
const category = () => {
queryAllByType({ type: 0, pid: 0 }).then(res => {
bigList.value = convertToTree(res.data)
})
}
// 组装用户大小类
const convertToTree = (data: any) => {
const nodeMap: any = {}
const roots: any = []
// 第一步将所有节点存储到一个以id为键的映射中
data.forEach(item => {
nodeMap[item.id] = { ...item, children: [] }
})
// 第二步遍历数据根据pid找到对应的父节点并将当前节点添加到父节点的children数组中
data.forEach(item => {
const parentId = item.pid
if (parentId === '0') {
roots.push(nodeMap[item.id])
} else {
const parent = nodeMap[parentId]
if (parent) {
parent.children.push(nodeMap[item.id])
}
}
})
return roots
}
// 修改
const update = () => {
if (Object.keys(nodeData.value).length == 0) {
@@ -2127,6 +2190,11 @@ const update = () => {
}
pageStatus.value = 3
// 使用 scrollTo 方法,并启用平滑滚动
scrollBox.scrollTo({
top: scrollBox.scrollHeight, // 滚动到内容的最底部
behavior: 'smooth' // 启用平滑滚动动画
})
}
// 删除
const remove = () => {
@@ -2424,7 +2492,7 @@ const queryNodeContent = () => {
}
let data = {
id: nodeData.value.id,
level: nodeData.value.plevel == 7 ? '700' : nodeLevel.value
level: nodeData.value.plevel * 100
}
queryTerminal(data).then(res => {
// console.log("内容详情", res);
@@ -2940,7 +3008,7 @@ const area = () => {
deviceBODetail.value.nextTimeCheck = year + 1 + '-' + month + '-' + (day - 1 > 10 ? day - 1 : '0' + (day - 1))
}
const setDown = () => {
selectDown().then(res => {
selectUserList({}).then(res => {
newStationIdArr.value = res.data
})
}
@@ -2957,6 +3025,7 @@ onMounted(() => {
} else {
setDown()
}
category()
})
area()
</script>