From 9fe04f4d9567a4de97f5f25d36557ab70b833782 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期一, 15 九月 2025 08:37:38 +0800
Subject: [PATCH] 提交

---
 src/views/components/formDialog.vue |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/src/views/components/formDialog.vue b/src/views/components/formDialog.vue
index a92743c..3cb0e76 100644
--- a/src/views/components/formDialog.vue
+++ b/src/views/components/formDialog.vue
@@ -97,6 +97,22 @@
             />
           </el-select>
 
+          <!-- 级联选择组件 -->
+          <el-cascader
+              v-else-if="item.type === 'cascader'"
+              v-model="state.formData[item.prop]"
+              :options="getCascaderOptions(item)"
+              :props="item.props || {}"
+              :placeholder="item.placeholder || '请选择'"
+              :disabled="state.title === '查看' || item.disabled"
+              :clearable="item.clearable !== false"
+              :filterable="item.filterable"
+              :show-all-levels="item.showAllLevels !== false"
+              :style="item.style || 'width: 100%'"
+              @change="item.changeEvent ? handleEvent(item.changeEvent, state.formData[item.prop]) : null"
+          />
+
+
           <!-- 日期选择器组件 -->
           <el-date-picker
               v-else-if="item.type === 'date'"
@@ -279,6 +295,27 @@
   return []
 }
 
+const getCascaderOptions = (item) => {
+  if (!item.options) return []
+
+  // 如果是函数,执行函数获取选项
+  if (typeof item.options === 'function') {
+    return item.options()
+  }
+
+  // 如果是数组,直接返回
+  if (Array.isArray(item.options)) {
+    return item.options
+  }
+
+  // 如果是响应式引用
+  if (item.options && typeof item.options === 'object' && 'value' in item.options) {
+    return item.options.value
+  }
+
+  return []
+}
+
 // 文件上传前的校验
 const beforeUpload = (rawFile, item) => {
   const maxSize = item.maxSize || 5
@@ -341,7 +378,7 @@
       if (userItem) {
         userItem.options = () => userList.map(user => ({
           value: user.userId,
-          label: user.userName
+          label: user.nickName
         }))
         state.formData.reformUserId = null
         await nextTick()

--
Gitblit v1.9.2