Browse Source

细节处理

zouzs 3 weeks ago
parent
commit
8a23b9f240

+ 1 - 1
src/router/modules/testFingerPrints.ts

@@ -16,4 +16,4 @@ export default {
       }
     }
   ]
-};
+} as RouteConfigsTable;

+ 1 - 1
src/router/modules/testStorage.ts

@@ -25,4 +25,4 @@ export default {
       }
     }
   ]
-};
+} as RouteConfigsTable;

+ 1 - 1
src/router/modules/testTable.ts

@@ -25,4 +25,4 @@ export default {
       }
     }
   ]
-};
+} as RouteConfigsTable;

+ 1 - 1
src/router/modules/testUpload.ts

@@ -25,4 +25,4 @@ export default {
       }
     }
   ]
-};
+} as RouteConfigsTable;

+ 13 - 13
src/views/system/role/components/deptTree.vue

@@ -1,19 +1,19 @@
 <script setup lang="ts">
 import { onMounted, ref, defineEmits, watch, nextTick } from "vue";
-import { getMenuListTree } from "@/api/system/menu";
+import { getSystemRoleDeptTree } from "@/api/system/role";
 import { type CheckboxValueType } from "element-plus";
 
 onMounted(() => {
-  getMenuList();
+  getDeptList();
   console.log(model.value);
 });
 
 const emit = defineEmits(["update:modelValue"]);
 
-const menuList = ref([]);
-const getMenuList = async () => {
-  let res = await getMenuListTree();
-  menuList.value = res.data;
+const deptList = ref([]);
+const getDeptList = async () => {
+  let res = await getSystemRoleDeptTree("2");
+  deptList.value = res.depts;
 };
 
 const model = defineModel();
@@ -23,7 +23,7 @@ watch(
   (value: number[]) => {
     nextTick(() => {
       setCheckedKeys(value, true);
-      const allKeys = getAllKeys(menuList.value);
+      const allKeys = getAllKeys(deptList.value);
       menuNodeAll.value = value.length === allKeys.length;
       isIndeterminate.value = value.length > 0 && value.length < allKeys.length;
     });
@@ -39,22 +39,22 @@ const menuExpand = ref(false);
 const isIndeterminate = ref(false);
 const handleCheckedTreeExpand = (value: CheckboxValueType) => {
   // 递归展开
-  for (let i = 0; i < menuList.value.length; i++) {
-    menuRef.value.store.nodesMap[menuList.value[i].id].expanded = value;
+  for (let i = 0; i < deptList.value.length; i++) {
+    menuRef.value.store.nodesMap[deptList.value[i].id].expanded = value;
   }
 };
 
 const handleCheckedTreeNodeAll = (value: CheckboxValueType) => {
-  menuRef.value.setCheckedNodes(value ? menuList.value : []);
+  menuRef.value.setCheckedNodes(value ? deptList.value : []);
   isIndeterminate.value = false;
-  const allKeys = getAllKeys(menuList.value);
+  const allKeys = getAllKeys(deptList.value);
   model.value = value ? allKeys : [];
   console.log(model.value);
   console.log(menuNodeAll.value);
 };
 
 const handleTreeCheck = (_: any, checkedState: any) => {
-  const allKeys = getAllKeys(menuList.value);
+  const allKeys = getAllKeys(deptList.value);
   const checkedCount = checkedState.checkedKeys.length;
   menuNodeAll.value = checkedCount === allKeys.length;
   isIndeterminate.value = checkedCount > 0 && checkedCount < allKeys.length;
@@ -103,7 +103,7 @@ const setCheckedKeys = (keys: number[], leafOnly: boolean) => {
     <el-tree
       ref="menuRef"
       class="tree-border"
-      :data="menuList"
+      :data="deptList"
       show-checkbox
       node-key="id"
       empty-text="加载中,请稍后"

+ 25 - 21
src/views/system/role/index.vue

@@ -11,7 +11,7 @@
         showNumber: 3
       }"
       :table="{
-        actionBar: { buttons, type: 'link', width: 180, showNumber: 2 },
+        actionBar: { buttons, type: 'link', width: 180, showNumber: 3 },
         adaptive: { offsetBottom: 50 },
         onSelectionChange: handleSelect,
         onFormChange: handleTableChange,
@@ -63,7 +63,11 @@
       }"
       :dialog="{ title: '分配数据权限', width: 600, confirmLoading }"
       @confirm="handlePermissionSubmit"
-    />
+    >
+      <template #plus-field-deptIds>
+        <dept-tree ref="deptRef" v-model="form.deptIds" />
+      </template>
+    </PlusDialogForm>
   </div>
 </template>
 
@@ -101,11 +105,16 @@ import {
 } from "@/api/system/role";
 import MenuTree from "@/views/system/role/components/menuTree.vue";
 import { getMenuListTreeSelect } from "@/api/system/menu";
+import DeptTree from "@/views/system/role/components/deptTree.vue";
+import { useRouter } from "vue-router";
+import { useMultiTagsStoreHook } from "@/store/modules/multiTags";
 
 defineOptions({
   name: "Role"
 });
 
+const router = useRouter();
+
 onMounted(async () => {
   await getDeptList();
 });
@@ -221,9 +230,8 @@ const tableConfig: PlusColumn[] = [
       endPlaceholder: "结束日期",
       style: { width: "100%" },
       unlinkPanels: true,
-      format: "YYYY-MM-DD"
+      format: "YYYY-MM-DD HH:mm:ss"
     },
-    hideInTable: true,
     colProps: { span: 16 }
   }
 ];
@@ -242,6 +250,7 @@ interface State {
     businessType: string;
     deptId: number;
     menuIds: number[];
+    deptIds: number[];
     remark: string;
     roleKey: string;
     roleName: string;
@@ -263,6 +272,7 @@ const state = reactive<State>({
     businessType: "",
     deptId: null,
     menuIds: [],
+    deptIds: [],
     remark: "",
     roleKey: "",
     roleName: "",
@@ -445,6 +455,7 @@ const handleCreate = (): void => {
     businessType: "",
     deptId: null,
     menuIds: [],
+    deptIds: [],
     remark: "",
     roleKey: "",
     roleName: "",
@@ -545,7 +556,7 @@ const handlePermissionSubmit = async (values: FieldValues) => {
     if (res.code === 200) {
       ElMessage.success("修改成功");
       confirmLoading.value = false;
-      dialogVisible.value = false;
+      dialogPermissionVisible.value = false;
       refresh();
     } else {
       ElMessage.error(res.msg);
@@ -574,23 +585,21 @@ buttons.value = [
     text: "修改",
     code: "edit",
     // props v0.1.16 版本新增函数类型
-    props: {
-      type: "primary"
-    }
+    props: { type: "primary" },
+    show: (row: any) => row.roleKey !== "admin"
   },
   {
     // 删除
     text: "删除",
     code: "delete",
-    props: { type: "danger" }
+    props: { type: "danger" },
+    show: (row: any) => row.roleKey !== "admin"
   },
   {
     text: "数据权限",
-    code: "dataPermission"
-  },
-  {
-    text: "分配用户",
-    code: "assignUser"
+    code: "dataPermission",
+    props: { type: "primary" },
+    show: (row: any) => row.roleKey !== "admin"
   }
 ];
 
@@ -606,9 +615,6 @@ const handleTableOption = ({ row, buttonRow }: ButtonsCallBackParams): void => {
     case "dataPermission":
       handleDataPermission(row.roleId);
       break;
-    case "assignUser":
-      handleAssignUser(row.roleId);
-      break;
   }
 };
 
@@ -641,15 +647,13 @@ const handleDelete = (id: string) => {
 const handleDataPermission = async (id: string) => {
   console.log(id);
   let res = await getSystemRoleById(id);
+  let res1 = await getSystemRoleDeptTree(id);
   form.value = res.data;
+  form.value.deptIds = res1.checkedKeys;
   state.isCreate = false;
   state.dialogPermissionVisible = true;
 };
 
-const handleAssignUser = (id: string) => {
-  console.log(id);
-};
-
 const { form, confirmLoading, rules, dialogVisible, dialogPermissionVisible } =
   toRefs(state);
 </script>

+ 11 - 0
src/views/system/user/index.vue

@@ -0,0 +1,11 @@
+<script setup lang="ts">
+defineOptions({
+  name: "User"
+});
+</script>
+
+<template>
+  <div />
+</template>
+
+<style scoped lang="scss"></style>