style:可视化大屏列表-编辑-产线字段回显

main
黄伟杰 6 days ago
parent 4de17526dc
commit 3e7aa4a57d

@ -97,7 +97,7 @@ v-for="dict in getStrDictOptions('mes_goview_type')" :key="dict.value" :label="d
</el-form-item> </el-form-item>
<el-form-item label="产线" prop="orgId"> <el-form-item label="产线" prop="orgId">
<el-tree-select <el-tree-select
v-model="createForm.orgId" :data="organizationTree" :props="lineTreeProps" filterable clearable v-model="createForm.orgName" :data="organizationTree" :props="lineTreeProps" filterable clearable
class="!w-240px" placeholder="请选择产线" @change="handleOrgChange" /> class="!w-240px" placeholder="请选择产线" @change="handleOrgChange" />
</el-form-item> </el-form-item>
<el-form-item label="设备" v-if="createForm.type === '1'"> <el-form-item label="设备" v-if="createForm.type === '1'">
@ -229,7 +229,7 @@ const organizationTree = ref<any[]>([])
const lineTreeProps = { const lineTreeProps = {
label: 'name', label: 'name',
children: 'children', children: 'children',
value: 'id' value: 'name'
} }
const deviceList = ref<any[]>([]) const deviceList = ref<any[]>([])
@ -345,6 +345,10 @@ const openEditDialog = (item: DashboardItem) => {
createForm.type = item.type || '' createForm.type = item.type || ''
createForm.orgId = item.orgId || undefined createForm.orgId = item.orgId || undefined
createForm.orgName = item.orgName || '' 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 const fromNew = Array.isArray(item.deviceIdsList) && item.deviceIdsList.length
? normalizeDeviceIdsList(item.deviceIdsList) ? normalizeDeviceIdsList(item.deviceIdsList)
: [] : []
@ -398,11 +402,14 @@ const submitDialog = async () => {
} else { } else {
createForm.deviceIdsList = [] 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) { if (createForm.orgId) {
const org = findOrgNode(organizationTree.value || [], createForm.orgId) const org = findOrgNode(organizationTree.value || [], createForm.orgId)
createForm.orgName = org?.name || '' createForm.orgName = org?.name || createForm.orgName
} else {
createForm.orgName = ''
} }
const route = getRouteByType(createForm.type) const route = getRouteByType(createForm.type)
if (route) { if (route) {
@ -464,13 +471,27 @@ const findOrgNode = (nodes: any[], id: any): any | undefined => {
return 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 = () => { const handleOrgChange = () => {
if (!createForm.orgId) { if (!createForm.orgName) {
createForm.orgId = undefined
createForm.orgName = '' createForm.orgName = ''
return return
} }
const org = findOrgNode(organizationTree.value || [], createForm.orgId) const org = findOrgNodeByName(organizationTree.value || [], createForm.orgName)
createForm.orgName = org?.name || '' createForm.orgId = org?.id ?? undefined
createForm.orgName = org?.name || createForm.orgName
} }
const loadDeviceList = async () => { const loadDeviceList = async () => {

Loading…
Cancel
Save