设备录入微调

This commit is contained in:
sjl
2025-11-10 13:10:15 +08:00
parent 308ceb1a03
commit d1eb7f2dad
3 changed files with 72 additions and 11 deletions

View File

@@ -120,8 +120,69 @@ const handleNodeClick = (data: any, node: any, event: any) => {
// 存储所有勾选的节点 // 存储所有勾选的节点
const checkedNodes = ref<any[]>([]) const checkedNodes = ref<any[]>([])
const defaultCheckedKeys = ref<string[]>([]) const defaultCheckedKeys = ref<string[]>([])
// 处理节点勾选变化 // 处理节点勾选变化
const handleCheckChange = (data: any, checkInfo: any) => { const handleCheckChange = (data: any, checkInfo: any) => {
const { checkedNodes: nodes } = checkInfo
// 过滤出监测点层级(level=3)的节点
const monitoringPointNodes = nodes.filter((node: any) => {
return node.level === 3
})
// 限制最多只能勾选5个监测点
if (monitoringPointNodes.length > 5) {
// 获取之前选中的节点
const previousCheckedNodes = checkedNodes.value || []
// 计算新增的节点
const newNodes = monitoringPointNodes.filter(
(node: any) => !previousCheckedNodes.some((prev: any) => prev.id === node.id)
)
// 如果是从父级勾选导致超过限制,保留前几个直到达到限制数量
if (newNodes.length > 0) {
const allowedNewCount = 5 - previousCheckedNodes.length
if (allowedNewCount > 0) {
// 允许添加allowedNewCount个新节点
const allowedNewNodes = newNodes.slice(0, allowedNewCount)
const finalNodes = [...previousCheckedNodes, ...allowedNewNodes]
checkedNodes.value = finalNodes
// 设置树的勾选状态为正确的节点
treeRef.value?.setCheckedNodes(finalNodes)
// 将勾选的监测点节点暴露出去
emit('checkedNodesChange', finalNodes)
// 更新节点的可勾选状态
updateNodeCheckStatus(finalNodes.length)
// 只有在真正超过5个时才提示警告
if (monitoringPointNodes.length > 5) {
ElMessage.warning('最多只能选择5个监测点')
}
return
}
}
// 其他情况回滚到之前的状态
ElMessage.warning('最多只能选择5个监测点')
treeRef.value?.setCheckedNodes(checkedNodes.value)
return
}
checkedNodes.value = monitoringPointNodes
// 将勾选的监测点节点暴露出去
emit('checkedNodesChange', monitoringPointNodes)
// 更新节点的可勾选状态
updateNodeCheckStatus(monitoringPointNodes.length)
}
// 处理节点勾选变化
const handleCheckChange2 = (data: any, checkInfo: any) => {
const { checkedNodes: nodes } = checkInfo const { checkedNodes: nodes } = checkInfo
// 过滤出监测点层级(level=3)的节点 // 过滤出监测点层级(level=3)的节点
const monitoringPointNodes = nodes.filter((node: any) => { const monitoringPointNodes = nodes.filter((node: any) => {

View File

@@ -14,8 +14,7 @@ const calculateValue = (o: number, value: number, num: number, isMin: boolean) =
} else if (value > -1 && value < 0 && isMin == false) { } else if (value > -1 && value < 0 && isMin == false) {
return 0 return 0
} }
console.log('🚀 ~ calculateValue ~ Math.abs(o):', Math.abs(o))
let base let base
if (Math.abs(o) >= 100) { if (Math.abs(o) >= 100) {
base = 100 base = 100

View File

@@ -1068,7 +1068,7 @@ const add = () => {
nodeId: '', nodeId: '',
cntractNo: '', cntractNo: '',
sort: 0, sort: 0,
nodeProcess: '自动分配', nodeProcess: '',
}) })
busBarIndex.value = (deviceInfoList.value.length - 1).toString() busBarIndex.value = (deviceInfoList.value.length - 1).toString()
// 清理监测点数据 // 清理监测点数据
@@ -1325,7 +1325,7 @@ const remove = () => {
message: res.message message: res.message
}) })
reaseStatus() reaseStatus()
console.log('engineeringId',engineeringId)
if (engineeringId) { if (engineeringId) {
setTimeout(() => { setTimeout(() => {
treedata(engineeringId) treedata(engineeringId)
@@ -1359,7 +1359,7 @@ const remove = () => {
case 4: // 监测点层级 case 4: // 监测点层级
const deviceId = nodeData.value.pids ? nodeData.value.pids.split(',')[3] : null const deviceId = nodeData.value.pids ? nodeData.value.pids.split(',')[3] : null
console.log(deviceId)
deleteLine(nodeData.value.id).then((res: any) => { deleteLine(nodeData.value.id).then((res: any) => {
ElMessage({ ElMessage({
type: 'success', type: 'success',
@@ -1421,7 +1421,7 @@ const next = async () => {
nodeId: '', nodeId: '',
cntractNo: '', cntractNo: '',
sort: 0, sort: 0,
nodeProcess: '自动分配', nodeProcess: '',
}) })
busBarIndex.value = (deviceInfoList.value.length - 1).toString() busBarIndex.value = (deviceInfoList.value.length - 1).toString()
nextfalg.value = false nextfalg.value = false
@@ -1771,9 +1771,8 @@ const submitAllLevelData = () => {
pageStatus.value = 1 pageStatus.value = 1
// 清空所有表单 // 清空所有表单
resetAllForms() resetAllForms()
// 刷新树并选中合适的节点 // 刷新树并选中合适的节点
TerminalRef.value.info().then(() => { TerminalRef.value.info()
// 等待树更新完成后,根据之前点击的节点层级选中合适的节点 // 等待树更新完成后,根据之前点击的节点层级选中合适的节点
setTimeout(() => { setTimeout(() => {
let nodeIdToSelect: string|null|undefined = null; let nodeIdToSelect: string|null|undefined = null;
@@ -1794,8 +1793,9 @@ const submitAllLevelData = () => {
nodeIdToSelect = nodeData.value.id; // 设备节点 nodeIdToSelect = nodeData.value.id; // 设备节点
break; break;
} }
if (nodeIdToSelect) { if (nodeIdToSelect) {
setTimeout(() => { setTimeout(() => {
treedata(nodeIdToSelect !== null ? nodeIdToSelect : undefined); treedata(nodeIdToSelect !== null ? nodeIdToSelect : undefined);
// 重新加载节点内容以显示最新数据 // 重新加载节点内容以显示最新数据
@@ -1808,7 +1808,7 @@ const submitAllLevelData = () => {
treedata(); // 选中根节点 treedata(); // 选中根节点
} }
}, 100); }, 100);
})
}) })
} }
/** /**
@@ -2120,7 +2120,7 @@ const handleBusBarTabsEdit = (targetName: any, action: any) => {
nodeId: '', nodeId: '',
cntractNo: '', cntractNo: '',
sort: 0, sort: 0,
nodeProcess: '自动分配', nodeProcess: '',
}) })
busBarIndex.value = (deviceInfoList.value.length - 1).toString() busBarIndex.value = (deviceInfoList.value.length - 1).toString()
} else if (action === 'remove') { } else if (action === 'remove') {
@@ -2240,6 +2240,7 @@ const tabChange = (type: string) => {
} }
const treedata = (selectedNodeId?: string) => { const treedata = (selectedNodeId?: string) => {
if (selectedNodeId) { if (selectedNodeId) {
TerminalRef.value.info(selectedNodeId); TerminalRef.value.info(selectedNodeId);
} else { } else {