From dd57e0e9a989e7ee8b3e3473a7ee6a1dff06a4ae Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 27 Jan 2026 17:19:04 +0800
Subject: [PATCH] feat:调整加载
---
applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue | 49 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue b/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
index 829062d..37310d6 100644
--- a/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
@@ -1,7 +1,7 @@
<template>
- <el-dialog class="command-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
+ <el-dialog class="command-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close
+ :close-on-click-modal="false">
<div class="detail-container" v-if="dialogReadonly">
- <div class="detail-title">机构详情</div>
<el-row>
<el-col :span="12">
<div class="label">部门名称</div>
@@ -71,14 +71,14 @@
<el-col :span="12">
<el-form-item label="部门类型" prop="deptCategory">
<el-select class="command-select" popper-class="command-select-popper" v-model="formData.deptCategory" placeholder="请选择" clearable>
- <el-option v-for="item in dictObj.org_category" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
+ <el-option v-for="item in dictObj.org_category" :key="item.dictKey" :label="item.dictValue" :value="Number(item.dictKey)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门性质" prop="deptNature">
<el-select class="command-select" popper-class="command-select-popper" v-model="formData.deptNature" placeholder="请选择" clearable>
- <el-option v-for="item in dictObj.org_nature" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
+ <el-option v-for="item in dictObj.org_nature" :key="item.dictKey" :label="item.dictValue" :value="Number(item.dictKey)" />
</el-select>
</el-form-item>
</el-col>
@@ -115,7 +115,7 @@
</el-form>
<template #footer>
- <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
+ <el-button v-if="dialogMode != 'view'" color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
<el-button color="#284FE3" v-if="!dialogReadonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit">
保存
</el-button>
@@ -129,15 +129,17 @@
import { add, getDept, getDeptTree, update } from '@/api/system/dept'
import { getLazyTree } from '@/api/base/region'
import { fieldRules, getDictLabel } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
const initForm = () => ({
deptName: '',
fullName: '',
parentId: '',
parentName: '',
- deptCategory: '',
- deptNature: '',
- areaCode: '',
+ deptCategory: null,
+ deptNature: null,
+ areaCode: [],
areaName: '',
deploymentMode: 0,
sort: 0,
@@ -152,7 +154,7 @@
const areaProps = {
label: 'title',
value: 'value',
- emitPath: false,
+ emitPath: true,
checkStrictly: true,
lazy: true,
lazyLoad(node, resolve) {
@@ -189,7 +191,9 @@
const visible = ref(false)
const dialogMode = ref('add')
const submitting = ref(false)
+const isAddChild = ref(false)
const dialogReadonly = computed(() => dialogMode.value === 'view')
+const route = useRoute()
const dialogTitle = computed(() => {
if (dialogMode.value === 'edit') return '编辑'
if (dialogMode.value === 'view') return '查看'
@@ -226,19 +230,26 @@
}
function getFullAreaCode(areaCode) {
- if (!areaCode) return ''
+ if (!areaCode) return []
+ if (Array.isArray(areaCode)) return areaCode
const code = areaCode.toString()
- if (code.includes(',')) return code
+ if (code.includes(',')) return code.split(',')
if (code.endsWith('0000000000')) {
- return code
+ return [code]
} else if (code.endsWith('00000000') && !code.endsWith('0000000000')) {
const provinceCode = code.substring(0, 2) + '0000000000'
- return `${provinceCode},${code}`
+ return [provinceCode, code]
} else {
const provinceCode = code.substring(0, 2) + '0000000000'
const cityCode = code.substring(0, 4) + '00000000'
- return `${provinceCode},${cityCode},${code}`
+ return [provinceCode, cityCode, code]
}
+}
+
+function normalizeNumber(value) {
+ if (value === '' || value === null || value === undefined) return null
+ const num = Number(value)
+ return Number.isNaN(num) ? null : num
}
function handleCancel() {
@@ -259,6 +270,12 @@
} else {
await add(payload)
}
+ const actionText = dialogMode.value === 'add' ? (isAddChild.value ? '新增子项' : '新增') : '编辑'
+ saveOperationLog({
+ requestUri: route.path,
+ title: `${route.name || '部门管理'}-${actionText}`,
+ type: 1
+ })
ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
visible.value = false
emit('success')
@@ -273,17 +290,21 @@
const data = res?.data?.data ?? {}
formData.value = {
...data,
+ deptCategory: normalizeNumber(data.deptCategory),
+ deptNature: normalizeNumber(data.deptNature),
areaCode: getFullAreaCode(data.areaCode),
}
}
function handleClosed() {
formData.value = initForm()
+ isAddChild.value = false
}
async function open({ mode, row, parent } = {}) {
dialogMode.value = mode || 'add'
visible.value = true
+ isAddChild.value = mode === 'add' && !!parent?.id
await getDeptTree().then(res => {
if (deptTree) {
deptTree.value = res?.data?.data ?? []
--
Gitblit v1.9.3