修改冀北现场反馈问题

This commit is contained in:
GGJ
2025-12-15 09:33:34 +08:00
parent d30b8247cf
commit 9f5b2ecc46
28 changed files with 700 additions and 468 deletions

View File

@@ -3,10 +3,10 @@
<splitpanes style="height: 100%" class="default-theme" id="navigation-splitpanes">
<pane :size="size">
<AssessTree
ref="AssessTreeRef"
:default-expand-all="false"
@node-click="handleNodeClick"
@init="handleNodeClick"
ref="assessTreeRef"
:highlight-current="true"
:current-node-key="currentTreeKey"
:expand-on-click-node="false"
@@ -263,7 +263,7 @@ onMounted(() => {
})
// 添加树组件的引用
const assessTreeRef = ref<any>(null)
const AssessTreeRef = ref()
// 控制树组件当前高亮的节点key
const currentTreeKey = ref<string | number | null>(null)
// 保存上一次真正有效的节点key子节点
@@ -308,6 +308,44 @@ const handleNodeClick = (data: any, node: any) => {
infoLoading.value = true
outcomeLoading.value = true
}
const setId = (id: any) => {
setTimeout(() => {
lastValidNodeKey.value = id
currentTreeKey.value = lastValidNodeKey.value
dotList.value = findNodeByTreeId(AssessTreeRef.value?.tree, id)?.name || {}
currentNodeName.value = findNodeByTreeId(AssessTreeRef.value?.tree, id)?.name || '' //data?.name || ''
currentNodeId.value = id
AssessTreeRef.value?.scrollToNode(id)
}, 100)
}
/**
* 递归查找树形结构中匹配treeId的节点对象
* @param {Array} treeData - 树形结构数据(数组)
* @param {string} targetTreeId - 要查找的treeId
* @returns {object|null} 匹配的节点对象未找到返回null
*/
const findNodeByTreeId = (treeData: any, id: any) => {
// 遍历每一个顶层节点
for (const node of treeData) {
// 1. 当前节点匹配,直接返回
if (node.id === id) {
return node
}
// 2. 当前节点有子节点,递归查找子节点
if (node.children && Array.isArray(node.children) && node.children.length > 0) {
const foundNode: any = findNodeByTreeId(node.children, id)
// 子节点中找到则返回(终止递归)
if (foundNode) {
return foundNode
}
}
}
// 遍历完所有节点未找到返回null
return null
}
defineExpose({
setId
})
</script>
<style lang="scss" scoped>
.splitpanes.default-theme .splitpanes__pane {

View File

@@ -110,10 +110,10 @@
<el-collapse-item title="谐波电流/电压评估结果" :name="4">
<div class="flickerWaves" style="height: 520px">
<vxe-table :data="harmonicCurrents" height="520px" v-bind="defaultAttribute" :cell-class-name="getCellClassName3" style="width: 50%">
<vxe-column title="谐波次数" field="name" />
<vxe-column title="谐波次数" field="name" width="90px"/>
<vxe-colgroup title="电容器谐波电流评估值(A)">
<vxe-column field="notInvested" title="未投入" min-width="160px" />
<vxe-column field="hasInvested" title="已投入" min-width="160px" />
<vxe-column field="notInvested" title="未投入" />
<vxe-column field="hasInvested" title="已投入" />
</vxe-colgroup>
<vxe-column title="国标限值(%)" field="limitData" />
<vxe-column title="判断">
@@ -131,10 +131,10 @@
:cell-class-name="getCellClassName3"
style="width: 50%"
>
<vxe-column title="谐波次数" field="name" />
<vxe-column title="谐波次数" field="name" width="90px"/>
<vxe-colgroup title="电容器谐波电压评估值(%)">
<vxe-column field="notInvested" title="未投入" min-width="160px" />
<vxe-column field="hasInvested" title="已投入" min-width="160px" />
<vxe-column field="notInvested" title="未投入" />
<vxe-column field="hasInvested" title="已投入" />
</vxe-colgroup>
<vxe-column title="国标限值(A)" field="limitData" />
<vxe-column title="判断">

View File

@@ -1,20 +1,39 @@
<template>
<div class="default-main">
<el-tabs type="border-card" v-model="activeName">
<el-tab-pane label="评估用户维护" name="1"><User v-if="activeName == '1'"/></el-tab-pane>
<el-tab-pane label="用户二级评估" name="2"><Assess v-if="activeName == '2'"/></el-tab-pane>
<el-tab-pane label="参数字典维护" name="3"><Dictionary v-if="activeName == '3'"/></el-tab-pane>
<el-tab-pane label="评估用户维护" name="1"><User v-if="activeName == '1'" /></el-tab-pane>
<el-tab-pane label="用户二级评估" name="2"><Assess ref="AssessRef" v-if="activeName == '2'" /></el-tab-pane>
<el-tab-pane label="参数字典维护" name="3"><Dictionary v-if="activeName == '3'" /></el-tab-pane>
</el-tabs>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { ref, reactive, watch } from 'vue'
import User from '@/views/pqs/runManage/assessment/components/uese/index.vue'
import Assess from '@/views/pqs/runManage/assessment/components/assess/index.vue'
import Dictionary from '@/views/pqs/runManage/assessment/components/dictionary/index.vue'
import { useRoute } from 'vue-router'
const route = useRoute()
defineOptions({
name: 'runManage/assessment'
})
const AssessRef = ref()
const activeName = ref('1')
watch(
() => route.query.t,
async (newValue, oldValue) => {
if (route.fullPath.includes('runManage/assessment')) {
let type = (route.query.type as string) || 'null'
if (type == 'null') {
} else if (type == '2') {
activeName.value = '2'
setTimeout(() => {
AssessRef.value.setId((route.query.secondAssessmentId as string) || '')
}, 500)
}
}
},
{ deep: true, immediate: true }
)
</script>
<style lang="scss" scoped></style>