Browse Source

虚拟单位重组功能开发

dev-V1.0.1
庄锐波 6 months ago
parent
commit
b03a1b9b04
  1. 45
      zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitBuilder.vue

45
zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitBuilder.vue

@ -191,14 +191,28 @@ const settingForm = ref<{
virIncludeStatistics: string; virIncludeStatistics: string;
virIncludeSearch: string; virIncludeSearch: string;
virShowAtBusiness: string; virShowAtBusiness: string;
virZone: number | null;
virRemark: string; virRemark: string;
}>({ }>({
virIncludeStatistics: '是', virIncludeStatistics: '是',
virIncludeSearch: '是', virIncludeSearch: '是',
virShowAtBusiness: '是', virShowAtBusiness: '是',
virZone: null,
virRemark: '' virRemark: ''
}); });
const zoneOptions = [
{ value: 1, label: '市直' },
{ value: 2, label: '区' },
{ value: 3, label: '区直' },
{ value: 4, label: '街道' },
{ value: 5, label: '市公安' },
{ value: 6, label: '市消防' },
{ value: 15, label: '区公安' },
{ value: 16, label: '区消防' }
];
const zoneMap = new Map(zoneOptions.map(o => [o.value, o.label]));
/** 点击 <-- 按钮打开设置窗口 */ /** 点击 <-- 按钮打开设置窗口 */
const handleTransfer = () => { const handleTransfer = () => {
if (!selectedVirNode.value) { if (!selectedVirNode.value) {
@ -214,6 +228,7 @@ const handleTransfer = () => {
virIncludeStatistics: '是', virIncludeStatistics: '是',
virIncludeSearch: '是', virIncludeSearch: '是',
virShowAtBusiness: '是', virShowAtBusiness: '是',
virZone: null,
virRemark: '' virRemark: ''
}; };
settingDialogVisible.value = true; settingDialogVisible.value = true;
@ -281,7 +296,17 @@ const handleConfirmAdd = async () => {
await addVirtualUnit(form); await addVirtualUnit(form);
ElMessage.success('添加成功'); ElMessage.success('添加成功');
settingDialogVisible.value = false; settingDialogVisible.value = false;
// 记录当前父节点及其祖先,重新加载后保持展开
const expandIds = parentNode.virAncestors
? parentNode.virAncestors.split(',').concat(parentNode.virId)
: [parentNode.virId];
await loadVirtualUnitTree(); await loadVirtualUnitTree();
// 确保父节点链路全部展开
for (const id of expandIds) {
if (!defaultExpandedKeys.value.includes(id)) {
defaultExpandedKeys.value.push(id);
}
}
} catch (e: any) { } catch (e: any) {
ElMessage.error(e.message || '添加失败'); ElMessage.error(e.message || '添加失败');
} }
@ -327,6 +352,7 @@ onMounted(() => {
<el-table-column prop="virName" label="名称" min-width="200" show-overflow-tooltip> <el-table-column prop="virName" label="名称" min-width="200" show-overflow-tooltip>
<template #default="{ row }"> <template #default="{ row }">
<span v-html="highlightName(row.virName)"></span> <span v-html="highlightName(row.virName)"></span>
<span v-if="row.virZone" class="zone-tag">[{{ zoneMap.get(row.virZone) || row.virZone }}]</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="virIncludeStatistics" label="统计" width="100" align="center"> <el-table-column prop="virIncludeStatistics" label="统计" width="100" align="center">
@ -374,7 +400,7 @@ onMounted(() => {
<span v-else :class="{ 'cell-red': row.virShowAtBusiness === '否' }">{{ row.virShowAtBusiness }}</span> <span v-else :class="{ 'cell-red': row.virShowAtBusiness === '否' }">{{ row.virShowAtBusiness }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="custOrderNum" label="自定义排序" width="100" align="center"> <el-table-column prop="custOrderNum" label="排序" width="100" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-input-number <el-input-number
v-if="selectedVirNode?.virId === row.virId" v-if="selectedVirNode?.virId === row.virId"
@ -442,6 +468,11 @@ onMounted(() => {
<el-radio value="否">否</el-radio> <el-radio value="否">否</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="Zone">
<el-radio-group v-model="settingForm.virZone">
<el-radio v-for="opt in zoneOptions" :key="opt.value" :value="opt.value">{{ opt.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="settingForm.virRemark" type="textarea" :rows="3" placeholder="请输入备注"/> <el-input v-model="settingForm.virRemark" type="textarea" :rows="3" placeholder="请输入备注"/>
</el-form-item> </el-form-item>
@ -527,10 +558,22 @@ onMounted(() => {
font-weight: bold; font-weight: bold;
} }
.zone-tag{
color: var(--el-color-primary);
}
:deep(.el-radio-group) { :deep(.el-radio-group) {
flex-wrap: nowrap; flex-wrap: nowrap;
} }
:deep(.el-dialog .el-radio-group) {
flex-wrap: wrap;
.el-radio {
width: 80px;
}
}
:deep(.el-radio-button__inner) { :deep(.el-radio-button__inner) {
padding: 4px 8px; padding: 4px 8px;
} }

Loading…
Cancel
Save