From 3bd0ac27a231a1a2b5b7ae2f44501fea69c4ab1f Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 27 三月 2023 11:00:27 +0800
Subject: [PATCH] 优化

---
 src/views/system/role/components/RolePermissionDrawer.vue |  321 ++++++++++++++++++++++++++--------------------------
 1 files changed, 160 insertions(+), 161 deletions(-)

diff --git a/src/views/system/role/components/RolePermissionDrawer.vue b/src/views/system/role/components/RolePermissionDrawer.vue
index 69f4b7a..3fbe54b 100644
--- a/src/views/system/role/components/RolePermissionDrawer.vue
+++ b/src/views/system/role/components/RolePermissionDrawer.vue
@@ -1,5 +1,9 @@
 <template>
-  <BasicDrawer v-bind="$attrs" @register="registerDrawer" width="650px" destroyOnClose showFooter>
+  <BasicDrawer v-bind="$attrs"
+               @register="registerDrawer"
+               width="650px"
+               destroyOnClose
+               showFooter>
     <template #title>
       瑙掕壊鏉冮檺閰嶇疆
       <a-dropdown>
@@ -18,19 +22,9 @@
         </template>
       </a-dropdown>
     </template>
-    <BasicTree
-      ref="treeRef"
-      checkable
-      :treeData="treeData"
-      :checkedKeys="checkedKeys"
-      :expandedKeys="expandedKeys"
-      :selectedKeys="selectedKeys"
-      :checkStrictly="checkStrictly"
-      :clickRowToExpand="false"
-      title="鎵�鎷ユ湁鐨勭殑鏉冮檺"
-      @check="onCheck"
-      @select="onTreeNodeSelect"
-    >
+    <BasicTree ref="treeRef" checkable :treeData="treeData" :checkedKeys="checkedKeys" :expandedKeys="expandedKeys"
+      :selectedKeys="selectedKeys" :checkStrictly="checkStrictly" :clickRowToExpand="false" title="鎵�鎷ユ湁鐨勭殑鏉冮檺"
+      @check="onCheck" @select="onTreeNodeSelect">
       <template #title="{ slotTitle, ruleFlag }">
         {{ slotTitle }}
         <Icon v-if="ruleFlag" icon="ant-design:align-left-outlined" style="margin-left: 5px; color: red"></Icon>
@@ -39,168 +33,173 @@
     <!--鍙充笅瑙掓寜閽�-->
     <template #footer>
       <PopConfirmButton title="纭畾鏀惧純缂栬緫锛�" @confirm="closeDrawer" okText="纭畾" cancelText="鍙栨秷">鍙栨秷</PopConfirmButton>
-      <a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost style="margin-right: 0.8rem">浠呬繚瀛�</a-button>
+      <a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost
+        style="margin-right: 0.8rem">浠呬繚瀛�</a-button>
       <a-button @click="handleSubmit(true)" type="primary" :loading="loading">淇濆瓨骞跺叧闂�</a-button>
     </template>
     <RoleDataRuleDrawer @register="registerDrawer1" />
   </BasicDrawer>
 </template>
 <script lang="ts" setup>
-  import { ref, computed, unref, onMounted } from 'vue';
-  import { BasicDrawer, useDrawer, useDrawerInner } from '/src/components/Drawer';
-  import { BasicTree, TreeItem } from '/src/components/Tree';
-  import { PopConfirmButton } from '/@/components/Button';
-  import RoleDataRuleDrawer from './RoleDataRuleDrawer.vue';
-  import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '../role.api';
-  const emit = defineEmits(['register']);
-  //鏍戠殑淇℃伅
-  const treeData = ref<TreeItem[]>([]);
-  //鏍戠殑鍏ㄩ儴鑺傜偣淇℃伅
-  const allTreeKeys = ref([]);
-  //鏍戠殑閫夋嫨鑺傜偣淇℃伅
-  const checkedKeys = ref([]);
-  const defaultCheckedKeys = ref([]);
-  //鏍戠殑閫変腑鐨勮妭鐐逛俊鎭�
-  const selectedKeys = ref([]);
-  const roleId = ref('');
-  //鏍戠殑瀹炰緥
-  const treeRef = ref(null);
-  const loading = ref(false);
+import { ref, computed, unref, onMounted } from 'vue'
+import { BasicDrawer, useDrawer, useDrawerInner } from '/src/components/Drawer'
+import { BasicTree, TreeItem } from '/src/components/Tree'
+import { PopConfirmButton } from '/@/components/Button'
+import RoleDataRuleDrawer from './RoleDataRuleDrawer.vue'
+import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '../role.api'
+const emit = defineEmits(['register'])
+//鏍戠殑淇℃伅
+const treeData = ref<TreeItem[]>([])
+//鏍戠殑鍏ㄩ儴鑺傜偣淇℃伅
+const allTreeKeys = ref([])
+//鏍戠殑閫夋嫨鑺傜偣淇℃伅
+const checkedKeys = ref([])
+const defaultCheckedKeys = ref([])
+//鏍戠殑閫変腑鐨勮妭鐐逛俊鎭�
+const selectedKeys = ref([])
+const roleId = ref('')
+//鏍戠殑瀹炰緥
+const treeRef = ref(null)
+const loading = ref(false)
 
-  //灞曞紑鎶樺彔鐨刱ey
-  const expandedKeys = ref<any>([]);
-  //鐖跺瓙鑺傜偣閫変腑鐘舵�佹槸鍚﹀叧鑱�
-  const checkStrictly = ref<boolean>(true);
-  const [registerDrawer1, { openDrawer: openDataRuleDrawer }] = useDrawer();
-  const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
-    await reset();
-    setDrawerProps({ confirmLoading: false, loading: true });
-    roleId.value = data.roleId;
-    //鍒濆鍖栨暟鎹�
-    const roleResult = await queryTreeListForRole();
-    treeData.value = roleResult.treeList;
-    allTreeKeys.value = roleResult.ids;
-    expandedKeys.value = roleResult.ids;
-    //鍒濆鍖栬鑹茶彍鍗曟暟鎹�
-    const permResult = await queryRolePermission({ roleId: unref(roleId) });
-    checkedKeys.value = permResult;
-    defaultCheckedKeys.value = permResult;
-    setDrawerProps({ loading: false });
-  });
-  /**
-   * 鐐瑰嚮閫変腑
-   */
-  function onCheck(o) {
-    checkedKeys.value = o.checked ? o.checked : o;
+//灞曞紑鎶樺彔鐨刱ey
+const expandedKeys = ref<any>([])
+//鐖跺瓙鑺傜偣閫変腑鐘舵�佹槸鍚﹀叧鑱�
+const checkStrictly = ref<boolean>(true)
+const [registerDrawer1, { openDrawer: openDataRuleDrawer }] = useDrawer()
+const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
+  await reset()
+  setDrawerProps({ confirmLoading: false, loading: true })
+  roleId.value = data.roleId
+  //鍒濆鍖栨暟鎹�
+  const roleResult = await queryTreeListForRole()
+  treeData.value = roleResult.treeList
+  allTreeKeys.value = roleResult.ids
+  expandedKeys.value = roleResult.ids
+  //鍒濆鍖栬鑹茶彍鍗曟暟鎹�
+  const permResult = await queryRolePermission({ roleId: unref(roleId) })
+  checkedKeys.value = permResult
+  defaultCheckedKeys.value = permResult
+  setDrawerProps({ loading: false })
+})
+/**
+ * 鐐瑰嚮閫変腑
+ */
+function onCheck(o) {
+  checkedKeys.value = o.checked ? o.checked : o
+}
+/**
+ * 閫変腑鑺傜偣锛屾墦寮�鏁版嵁鏉冮檺鎶藉眽
+ */
+function onTreeNodeSelect(key) {
+  if (key && key.length > 0) {
+    selectedKeys.value = key
   }
-  /**
-   * 閫変腑鑺傜偣锛屾墦寮�鏁版嵁鏉冮檺鎶藉眽
-   */
-  function onTreeNodeSelect(key) {
-    if (key && key.length > 0) {
-      selectedKeys.value = key;
-    }
-    openDataRuleDrawer(true, { functionId: unref(selectedKeys)[0], roleId: unref(roleId) });
+  openDataRuleDrawer(true, { functionId: unref(selectedKeys)[0], roleId: unref(roleId) })
+}
+/**
+ * 鏁版嵁閲嶇疆
+ */
+function reset() {
+  treeData.value = []
+  allTreeKeys.value = []
+  checkedKeys.value = []
+  defaultCheckedKeys.value = []
+  selectedKeys.value = []
+  roleId.value = ''
+}
+/**
+ * 鑾峰彇tree瀹炰緥
+ */
+function getTree() {
+  const tree = unref(treeRef)
+  if (!tree) {
+    throw new Error('tree is null!')
   }
-  /**
-   * 鏁版嵁閲嶇疆
-   */
-  function reset() {
-    treeData.value = [];
-    allTreeKeys.value = [];
-    checkedKeys.value = [];
-    defaultCheckedKeys.value = [];
-    selectedKeys.value = [];
-    roleId.value = '';
+  return tree
+}
+/**
+ * 鎻愪氦
+ */
+async function handleSubmit(exit) {
+  let params = {
+    roleId: unref(roleId),
+    permissionIds: unref(getTree().getCheckedKeys()).join(','),
+    lastpermissionIds: unref(defaultCheckedKeys).join(','),
   }
-  /**
-   * 鑾峰彇tree瀹炰緥
-   */
-  function getTree() {
-    const tree = unref(treeRef);
-    if (!tree) {
-      throw new Error('tree is null!');
-    }
-    return tree;
+  //update-begin-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨
+  if (loading.value === false) {
+    await doSave(params)
+  } else {
+    console.log('璇风瓑寰呬笂娆℃墽琛屽畬姣�!')
   }
-  /**
-   * 鎻愪氦
-   */
-  async function handleSubmit(exit) {
-    let params = {
-      roleId: unref(roleId),
-      permissionIds: unref(getTree().getCheckedKeys()).join(','),
-      lastpermissionIds: unref(defaultCheckedKeys).join(','),
-    };
-    //update-begin-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨
-    if(loading.value===false){
-      await doSave(params)
-    }else{
-      console.log('璇风瓑寰呬笂娆℃墽琛屽畬姣�!');
-    }
-    if(exit){
-      // 濡傛灉鍏抽棴
-      closeDrawer();
-    }else{
-      // 娌℃湁鍏抽棴闇�瑕侀噸鏂拌幏鍙栭�変腑鏁版嵁
-      const permResult = await queryRolePermission({ roleId: unref(roleId) });
-      defaultCheckedKeys.value = permResult;
-    }
+  if (exit) {
+    // 濡傛灉鍏抽棴
+    closeDrawer()
+  } else {
+    // 娌℃湁鍏抽棴闇�瑕侀噸鏂拌幏鍙栭�変腑鏁版嵁
+    const permResult = await queryRolePermission({ roleId: unref(roleId) })
+    defaultCheckedKeys.value = permResult
   }
-  
-  // VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 #352
-  async function doSave(params) {
-    loading.value = true;
-    await saveRolePermission(params);
-    setTimeout(()=>{
-      loading.value = false;
-    }, 500)
-  }
-  //update-end-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨
+}
 
-  /**
-   * 鏍戣彍鍗曢�夋嫨
-   * @param key
-   */
-  function treeMenuClick({ key }) {
-    if (key === 'checkAll') {
-      checkedKeys.value = allTreeKeys.value;
-    } else if (key === 'cancelCheck') {
-      checkedKeys.value = [];
-    } else if (key === 'openAll') {
-      expandedKeys.value = allTreeKeys.value;
-    } else if (key === 'closeAll') {
-      expandedKeys.value = [];
-    } else if (key === 'relation') {
-      checkStrictly.value = false;
-    } else {
-      checkStrictly.value = true;
-    }
+// VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 #352
+async function doSave(params) {
+  loading.value = true
+  await saveRolePermission(params)
+  setTimeout(() => {
+    loading.value = false
+  }, 500)
+}
+//update-end-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨
+
+/**
+ * 鏍戣彍鍗曢�夋嫨
+ * @param key
+ */
+function treeMenuClick({ key }) {
+  if (key === 'checkAll') {
+    checkedKeys.value = allTreeKeys.value
+  } else if (key === 'cancelCheck') {
+    checkedKeys.value = []
+  } else if (key === 'openAll') {
+    expandedKeys.value = allTreeKeys.value
+  } else if (key === 'closeAll') {
+    expandedKeys.value = []
+  } else if (key === 'relation') {
+    checkStrictly.value = false
+  } else {
+    checkStrictly.value = true
   }
+}
 </script>
 
 <style lang="less" scoped>
-  /** 鍥哄畾鎿嶄綔鎸夐挳 */
-  .jeecg-basic-tree {
-    position: absolute;
-    width: 618px;
-  }
-  //update-begin---author:wangshuai ---date:20230202  for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------
-  .line {
-    height: 1px;
-    width: 100%;
-    border-bottom: 1px solid #f0f0f0;
-  }
-  .more-icon {
-    font-size: 20px !important;
-    color: black;
-    display: inline-flex;
-    float: right;
-    margin-right: 2px;
-    cursor: pointer;
-  }
-  :deep(.jeecg-tree-header){
-    border-bottom: none;
-  }
-  //update-end---author:wangshuai ---date:20230202  for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------
+/** 鍥哄畾鎿嶄綔鎸夐挳 */
+.jeecg-basic-tree {
+  position: absolute;
+  width: 618px;
+}
+
+//update-begin---author:wangshuai ---date:20230202  for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------
+.line {
+  height: 1px;
+  width: 100%;
+  border-bottom: 1px solid #f0f0f0;
+}
+
+.more-icon {
+  font-size: 20px !important;
+  color: black;
+  display: inline-flex;
+  float: right;
+  margin-right: 2px;
+  cursor: pointer;
+}
+
+:deep(.jeecg-tree-header) {
+  border-bottom: none;
+}
+
+//update-end---author:wangshuai ---date:20230202  for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------
 </style>

--
Gitblit v1.9.3