From 89380e6260a75d1d3b94de687ebcc2f50d50659d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 03 Feb 2026 15:44:33 +0800
Subject: [PATCH] feat:环境变量配置调整

---
 applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue |   94 +++++++++++++++++++++++-----------------------
 1 files changed, 47 insertions(+), 47 deletions(-)

diff --git a/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue b/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
index a4f639b..bacb202 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="ztzf-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>
@@ -28,10 +28,6 @@
 					<div class="val">{{ formData.areaName || '-' }}</div>
 				</el-col>
 				<el-col :span="12">
-					<div class="label">部署模式</div>
-					<div class="val">{{ deploymentModeLabel(formData.deploymentMode) }}</div>
-				</el-col>
-				<el-col :span="12">
 					<div class="label">排序</div>
 					<div class="val">{{ formData.sort }}</div>
 				</el-col>
@@ -46,19 +42,19 @@
 			<el-row>
 				<el-col :span="12">
 					<el-form-item label="部门名称" prop="deptName">
-						<el-input class="ztzf-data-cockpit-search-input" v-model="formData.deptName" maxlength="50" placeholder="请输入" clearable />
+						<el-input class="command-input" v-model="formData.deptName" maxlength="50" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="部门全称" prop="fullName">
-						<el-input class="ztzf-data-cockpit-search-input" v-model="formData.fullName" maxlength="50" placeholder="请输入" clearable />
+						<el-input class="command-input" v-model="formData.fullName" maxlength="50" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="上级部门" prop="parentId">
 						<el-tree-select
-							class="ztzf-data-cockpit-select"
-							popper-class="ztzf-data-cockpit-tree-select-popper"
+							class="command-select"
+							popper-class="command-tree-select-popper"
 							v-model="formData.parentId"
 							:data="deptTree"
 							:props="treeProps"
@@ -70,52 +66,44 @@
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="部门类型" prop="deptCategory">
-						<el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-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-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="Number(item.dictKey)" />
 						</el-select>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="部门性质" prop="deptNature">
-						<el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-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-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="Number(item.dictKey)" />
 						</el-select>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="排序" prop="sort">
-						<el-input-number v-model="formData.sort" :min="0" :controls="false" placeholder="请输入" />
+						<el-input-number class="command-input" v-model="formData.sort" :min="0" :controls="false" placeholder="请输入" />
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="行政区划" prop="areaCode">
 						<el-cascader
-							class="ztzf-data-cockpit-select"
-							popper-class="ztzf-data-cockpit-select-popper"
+							class="command-cascader"
+							popper-class="command-cascader-popper"
 							v-model="formData.areaCode"
 							:props="areaProps"
 							clearable
 						/>
 					</el-form-item>
 				</el-col>
-				<el-col :span="12">
-					<el-form-item label="部署模式" prop="deploymentMode">
-						<el-radio-group v-model="formData.deploymentMode">
-							<el-radio :label="0">统一部署</el-radio>
-							<el-radio :label="1">独立部署</el-radio>
-						</el-radio-group>
-					</el-form-item>
-				</el-col>
 				<el-col :span="24">
 					<el-form-item label="备注" prop="remark">
-						<el-input class="ztzf-data-cockpit-search-input" v-model="formData.remark" type="textarea" :rows="3" placeholder="请输入" clearable />
+						<el-input class="command-input" v-model="formData.remark" type="textarea" :rows="3" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 			</el-row>
 		</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,17 +117,18 @@
 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,
 	remark: '',
 })
@@ -152,7 +141,7 @@
 const areaProps = {
 	label: 'title',
 	value: 'value',
-	emitPath: false,
+	emitPath: true,
 	checkStrictly: true,
 	lazy: true,
 	lazyLoad(node, resolve) {
@@ -186,10 +175,12 @@
 const emit = defineEmits(['success'])
 const formRef = ref(null)
 const formData = ref(initForm())
-const visible = ref(false)
+const visible = defineModel()
 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 '查看'
@@ -203,14 +194,7 @@
 	deptCategory: fieldRules(true),
 	deptNature: fieldRules(true),
 	areaCode: fieldRules(true),
-	deploymentMode: fieldRules(true),
 	sort: fieldRules(true),
-}
-
-function deploymentModeLabel(value) {
-	if (value === 1) return '独立部署'
-	if (value === 0) return '统一部署'
-	return value ?? '-'
 }
 
 function normalizeAreaCode(value) {
@@ -226,19 +210,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,9 +250,15 @@
 		} 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')
+		emit('success', { parentId: formData.value.parentId || null, mode: dialogMode.value, isAddChild: isAddChild.value })
 	} finally {
 		submitting.value = false
 	}
@@ -273,17 +270,20 @@
 	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