修改台账录入页面

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

View File

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