diff --git a/src/views/report/dashboardList/index.vue b/src/views/report/dashboardList/index.vue index 9b82150e..e670de80 100644 --- a/src/views/report/dashboardList/index.vue +++ b/src/views/report/dashboardList/index.vue @@ -97,7 +97,7 @@ v-for="dict in getStrDictOptions('mes_goview_type')" :key="dict.value" :label="d @@ -229,7 +229,7 @@ const organizationTree = ref([]) const lineTreeProps = { label: 'name', children: 'children', - value: 'id' + value: 'name' } const deviceList = ref([]) @@ -345,6 +345,10 @@ const openEditDialog = (item: DashboardItem) => { createForm.type = item.type || '' createForm.orgId = item.orgId || undefined createForm.orgName = item.orgName || '' + if (!createForm.orgName && createForm.orgId) { + const org = findOrgNode(organizationTree.value || [], createForm.orgId) + createForm.orgName = org?.name || '' + } const fromNew = Array.isArray(item.deviceIdsList) && item.deviceIdsList.length ? normalizeDeviceIdsList(item.deviceIdsList) : [] @@ -398,11 +402,14 @@ const submitDialog = async () => { } else { createForm.deviceIdsList = [] } + if (!createForm.orgId && createForm.orgName) { + const org = findOrgNodeByName(organizationTree.value || [], createForm.orgName) + createForm.orgId = org?.id ?? undefined + createForm.orgName = org?.name || createForm.orgName + } if (createForm.orgId) { const org = findOrgNode(organizationTree.value || [], createForm.orgId) - createForm.orgName = org?.name || '' - } else { - createForm.orgName = '' + createForm.orgName = org?.name || createForm.orgName } const route = getRouteByType(createForm.type) if (route) { @@ -464,13 +471,27 @@ const findOrgNode = (nodes: any[], id: any): any | undefined => { return undefined } +const findOrgNodeByName = (nodes: any[], name: any): any | undefined => { + const target = String(name ?? '').trim() + if (!target) return undefined + for (const node of nodes) { + if (String(node.name) === target) return node + const children = Array.isArray(node.children) ? node.children : [] + const found = findOrgNodeByName(children, target) + if (found) return found + } + return undefined +} + const handleOrgChange = () => { - if (!createForm.orgId) { + if (!createForm.orgName) { + createForm.orgId = undefined createForm.orgName = '' return } - const org = findOrgNode(organizationTree.value || [], createForm.orgId) - createForm.orgName = org?.name || '' + const org = findOrgNodeByName(organizationTree.value || [], createForm.orgName) + createForm.orgId = org?.id ?? undefined + createForm.orgName = org?.name || createForm.orgName } const loadDeviceList = async () => {