Quellcode durchsuchen

pms 新建用户 显示左侧树选中的部门

zhangcl vor 1 Monat
Ursprung
Commit
a16a65d548

+ 13 - 0
src/store/modules/usersTreeStore.ts

@@ -0,0 +1,13 @@
+import { defineStore } from 'pinia'
+
+export const useTreeStore = defineStore('tree', {
+  state: () => ({
+    selectedId: null // 用户管理 存储当前选中的 组织结构 树节点 ID
+  }),
+  actions: {
+    // 更新选中的节点 ID
+    setSelectedId(id) {
+      this.selectedId = id;
+    }
+  }
+});

+ 4 - 1
src/views/system/user/DeptTree.vue

@@ -38,7 +38,7 @@
 import { ElTree } from 'element-plus'
 import * as DeptApi from '@/api/system/dept'
 import { defaultProps, handleTree } from '@/utils/tree'
-
+import { useTreeStore } from '@/store/modules/usersTreeStore'
 defineOptions({ name: 'SystemUserDeptTree' })
 
 const deptName = ref('')
@@ -49,6 +49,8 @@ const menuX = ref(0);
 const menuY = ref(0);
 const firstLevelKeys = ref([])
 let selectedNode = null;
+const treeStore = useTreeStore();
+
 const handleRightClick = (event, { node, data }) => {
   event.preventDefault();
   menuX.value = event.clientX;
@@ -94,6 +96,7 @@ const filterNode = (name: string, data: Tree) => {
 /** 处理部门被点击 */
 const handleNodeClick = async (row: { [key: string]: any }) => {
   emits('node-click', row)
+  treeStore.setSelectedId(row.id);
 }
 const emits = defineEmits(['node-click'])
 

+ 8 - 3
src/views/system/user/UserForm.vue

@@ -104,19 +104,23 @@ import * as PostApi from '@/api/system/post'
 import * as DeptApi from '@/api/system/dept'
 import * as UserApi from '@/api/system/user'
 import { FormRules } from 'element-plus'
+import { useTreeStore } from '@/store/modules/usersTreeStore'
 
 defineOptions({ name: 'SystemUserForm' })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
-
+// 从store中共享组织部门id
+const treeStore = useTreeStore();
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 const formType = ref('') // 表单的类型:create - 新增;update - 修改
+const selectedDeptId = ref(null);  // 通过store存储的部门id 由父组件传递过来
+
 const formData = ref({
   nickname: '',
-  deptId: '',
+  deptId: selectedDeptId.value,
   mobile: '',
   email: '',
   id: undefined,
@@ -156,6 +160,7 @@ const open = async (type: string, id?: number) => {
   dialogVisible.value = true
   dialogTitle.value = t('action.' + type)
   formType.value = type
+  selectedDeptId.value = treeStore.selectedId;
   resetForm()
   // 修改时,设置数据
   if (id) {
@@ -203,7 +208,7 @@ const submitForm = async () => {
 const resetForm = () => {
   formData.value = {
     nickname: '',
-    deptId: '',
+    deptId: selectedDeptId.value,
     mobile: '',
     email: '',
     id: undefined,