From 6448ec15bfe0b65fb822a662105bceddc23b58d8 Mon Sep 17 00:00:00 2001
From: yubo <autumnal_wind@yeah.net>
Date: 星期一, 06 四月 2026 21:34:44 +0800
Subject: [PATCH] feat(user): 新增员工档案管理视图组件

---
 src/views/dashboard/ctUser.vue |   43 +++++++++++++++++++------------------------
 1 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/src/views/dashboard/ctUser.vue b/src/views/dashboard/ctUser.vue
index a1165b9..0e3df11 100644
--- a/src/views/dashboard/ctUser.vue
+++ b/src/views/dashboard/ctUser.vue
@@ -66,10 +66,12 @@
 <script>
 // 引用翻页组件
 import Pagination from '@/components/Pagination'
+import dictMixin from '../../utils/dictMixin'
 export default {
   components: {
     Pagination
   },
+  mixins: [dictMixin],
   props: {
     dialogVisible: {
       type: Boolean,
@@ -84,6 +86,7 @@
       default: false
     }
   },
+
   data() {
     return {
       gzdStateList: {
@@ -113,12 +116,12 @@
       defaultProps: {
         children: 'children',
         label: 'label'
-      },
-      educationOptions: [],
-      nativePlaceOptions: [],
-      sexOptions: [],
-      empTypeOptions: [],
-      nationOptions: []
+      }
+      // educationOptions: [],
+      // nativePlaceOptions: [],
+      // sexOptions: [],
+      // empTypeOptions: [],
+      // nationOptions: []
     }
   },
   computed: {
@@ -126,26 +129,18 @@
       get() {
         return this.dialogVisible
       }
-    }
+    },
+    // 字典选项计算属性
+    sexOptions() { return this.getDictOptions('sex') },
+    empStatusOptions() { return this.getDictOptions('empStatus') },
+    empTypeOptions() { return this.getDictOptions('EMPTYPE') },
+    educationOptions() { return this.getDictOptions('EDUCATION') },
+    nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') },
+    nationOptions() { return this.getDictOptions('NATION') }
   },
   mounted() {
-    setTimeout(() => {
-      this.getDicts('EDUCATION').then(response => {
-        this.educationOptions = response.data
-      })
-      this.getDicts('NATIVEPLACE').then(response => {
-        this.nativePlaceOptions = response.data
-      })
-      this.getDicts('sex').then(response => {
-        this.sexOptions = response.data
-      })
-      this.getDicts('empType').then(response => {
-        this.empTypeOptions = response.data
-      })
-      this.getDicts('NATION').then(response => {
-        this.nationOptions = response.data
-      })
-    }, 1000)
+    // 字典数据已在登录时预加载,直接从 Vuex 获取
+    this.initDictTypes(['sex', 'empStatus', 'EMPTYPE', 'EDUCATION', 'NATIVEPLACE', 'NATION'])
   },
   methods: {
     educationFormat(row, column) {

--
Gitblit v1.8.0