Browse Source

perf: 优化角色、部门管理页面

xiaoxian521 3 years ago
parent
commit
9271997a30

+ 41 - 26
mock/system.ts

@@ -10,43 +10,58 @@ export default [
         data: {
           list: [
             {
-              name: "董事长",
-              code: "ceo",
+              createTime: 1609837428000,
+              updateTime: 1645477701000,
+              creator: "admin",
+              updater: "",
+              deleted: false,
+              tenantId: 1,
+              id: 1,
+              name: "超级管理员",
+              code: "super_admin",
               sort: 1,
               status: 0,
-              remark: "",
-              id: 1,
-              createTime: 1609837428000
+              type: 1,
+              remark: "超级管理员",
+              dataScope: 1,
+              dataScopeDeptIds: null
             },
             {
-              name: "项目经理",
-              code: "se",
+              createTime: 1609837428000,
+              updateTime: 1645477700000,
+              creator: "admin",
+              updater: "",
+              deleted: false,
+              tenantId: 1,
+              id: 2,
+              name: "普通角色",
+              code: "common",
               sort: 2,
               status: 0,
-              remark: "",
-              id: 2,
-              createTime: 1609837428000
-            },
-            {
-              name: "人力资源",
-              code: "hr",
-              sort: 3,
-              status: 1,
-              remark: "",
-              id: 3,
-              createTime: 1609837428000
+              type: 1,
+              remark: "普通角色",
+              dataScope: 2,
+              dataScopeDeptIds: null
             },
             {
-              name: "普通员工",
-              code: "user",
-              sort: 4,
+              createTime: 1609912175000,
+              updateTime: 1647698441000,
+              creator: "",
+              updater: "1",
+              deleted: false,
+              tenantId: 1,
+              id: 101,
+              name: "测试账号",
+              code: "test",
+              sort: 0,
               status: 0,
-              remark: "",
-              id: 4,
-              createTime: 1609837428000
+              type: 2,
+              remark: "132",
+              dataScope: 1,
+              dataScopeDeptIds: []
             }
           ],
-          total: 4
+          total: 3
         },
         msg: ""
       };

+ 2 - 2
package.json

@@ -57,7 +57,7 @@
     "responsive-storage": "^1.0.11",
     "rgb-hex": "^4.0.0",
     "v-contextmenu": "3.0.0",
-    "vue": "^3.2.32",
+    "vue": "^3.2.33",
     "vue-i18n": "^9.2.0-beta.35",
     "vue-json-pretty": "^2.0.2",
     "vue-router": "^4.0.14",
@@ -123,7 +123,7 @@
     "stylelint-order": "^5.0.0",
     "typescript": "^4.6.3",
     "unplugin-element-plus": "^0.3.4",
-    "vite": "^2.9.2",
+    "vite": "^2.9.5",
     "vite-plugin-mock": "^2.9.6",
     "vite-plugin-remove-console": "^0.0.7",
     "vite-plugin-style-import": "1.4.1",

+ 145 - 145
pnpm-lock.yaml

@@ -86,13 +86,13 @@ specifiers:
   typescript: ^4.6.3
   unplugin-element-plus: ^0.3.4
   v-contextmenu: 3.0.0
-  vite: ^2.9.2
+  vite: ^2.9.5
   vite-plugin-mock: ^2.9.6
   vite-plugin-remove-console: ^0.0.7
   vite-plugin-style-import: 1.4.1
   vite-plugin-windicss: ^1.8.4
   vite-svg-loader: 2.2.0
-  vue: ^3.2.32
+  vue: ^3.2.33
   vue-eslint-parser: ^8.2.0
   vue-i18n: ^9.2.0-beta.35
   vue-json-pretty: ^2.0.2
@@ -110,10 +110,10 @@ dependencies:
   "@ctrl/tinycolor": 3.4.0
   "@logicflow/core": 0.7.1
   "@logicflow/extension": 0.7.1
-  "@pureadmin/components": 1.0.6_vue@3.2.32
-  "@vueuse/core": 8.2.5_vue@3.2.32
-  "@vueuse/motion": 2.0.0-beta.12_vue@3.2.32
-  "@vueuse/shared": 8.2.5_vue@3.2.32
+  "@pureadmin/components": 1.0.6_vue@3.2.33
+  "@vueuse/core": 8.2.5_vue@3.2.33
+  "@vueuse/motion": 2.0.0-beta.12_vue@3.2.33
+  "@vueuse/shared": 8.2.5_vue@3.2.33
   animate.css: 4.1.1
   axios: 0.26.1
   cropperjs: 1.5.12
@@ -121,7 +121,7 @@ dependencies:
   dayjs: 1.11.0
   driver.js: 0.9.8
   echarts: 5.3.2
-  element-plus: 2.1.9_vue@3.2.32
+  element-plus: 2.1.9_vue@3.2.33
   element-resize-detector: 1.2.4
   js-cookie: 3.0.1
   lodash: 4.17.21
@@ -131,19 +131,19 @@ dependencies:
   mockjs: 1.1.0
   nprogress: 0.2.0
   path: 0.12.7
-  pinia: 2.0.13_typescript@4.6.3+vue@3.2.32
+  pinia: 2.0.13_typescript@4.6.3+vue@3.2.33
   qs: 6.10.3
   resize-observer-polyfill: 1.5.1
-  responsive-storage: 1.0.11_vue@3.2.32
+  responsive-storage: 1.0.11_vue@3.2.33
   rgb-hex: 4.0.0
-  v-contextmenu: 3.0.0_vue@3.2.32
-  vue: 3.2.32
-  vue-i18n: 9.2.0-beta.35_vue@3.2.32
-  vue-json-pretty: 2.0.6_vue@3.2.32
-  vue-router: 4.0.14_vue@3.2.32
-  vue-types: 4.1.1_vue@3.2.32
-  vuedraggable: 4.1.0_vue@3.2.32
-  vxe-table: 4.2.0_vue@3.2.32+xe-utils@3.5.4
+  v-contextmenu: 3.0.0_vue@3.2.33
+  vue: 3.2.33
+  vue-i18n: 9.2.0-beta.35_vue@3.2.33
+  vue-json-pretty: 2.0.6_vue@3.2.33
+  vue-router: 4.0.14_vue@3.2.33
+  vue-types: 4.1.1_vue@3.2.33
+  vuedraggable: 4.1.0_vue@3.2.33
+  vxe-table: 4.2.0_vue@3.2.33+xe-utils@3.5.4
   wangeditor: 4.7.12
   xe-utils: 3.5.4
   xgplayer: 2.31.4
@@ -158,8 +158,8 @@ devDependencies:
   "@iconify-icons/mdi": 1.2.8
   "@iconify-icons/ri": 1.2.1
   "@iconify-icons/uil": 1.2.1
-  "@iconify/vue": 3.2.1_vue@3.2.32
-  "@intlify/vite-plugin-vue-i18n": 3.3.1_8d42b6fd1280c3a2cc3b36c6b35fef46
+  "@iconify/vue": 3.2.1_vue@3.2.33
+  "@intlify/vite-plugin-vue-i18n": 3.3.1_3d08e1d9025840888da5ae870455a383
   "@pureadmin/theme": 0.0.1
   "@types/element-resize-detector": 1.1.3
   "@types/js-cookie": 3.0.1
@@ -171,8 +171,8 @@ devDependencies:
   "@types/qs": 6.9.7
   "@typescript-eslint/eslint-plugin": 5.16.0_bc68a9cd5bf604202498b1a9faaf9387
   "@typescript-eslint/parser": 5.16.0_eslint@8.11.0+typescript@4.6.3
-  "@vitejs/plugin-legacy": 1.8.1_vite@2.9.2
-  "@vitejs/plugin-vue": 2.3.1_vite@2.9.2+vue@3.2.32
+  "@vitejs/plugin-legacy": 1.8.1_vite@2.9.5
+  "@vitejs/plugin-vue": 2.3.1_vite@2.9.5+vue@3.2.33
   "@vitejs/plugin-vue-jsx": 1.3.10
   "@vue/eslint-config-prettier": 7.0.0_eslint@8.11.0+prettier@2.6.0
   "@vue/eslint-config-typescript": 10.0.0_67e26bb50fed2173443e3fe1262a69b2
@@ -202,12 +202,12 @@ devDependencies:
   stylelint-config-standard: 24.0.0_stylelint@14.6.0
   stylelint-order: 5.0.0_stylelint@14.6.0
   typescript: 4.6.3
-  unplugin-element-plus: 0.3.4_rollup@2.70.1+vite@2.9.2
-  vite: 2.9.2_sass@1.49.9
-  vite-plugin-mock: 2.9.6_7a7c25d612186dcba4127a365587ade3
+  unplugin-element-plus: 0.3.4_rollup@2.70.1+vite@2.9.5
+  vite: 2.9.5_sass@1.49.9
+  vite-plugin-mock: 2.9.6_9bee6d01fd796cb52b526d4503041d36
   vite-plugin-remove-console: 0.0.7
-  vite-plugin-style-import: 1.4.1_vite@2.9.2
-  vite-plugin-windicss: 1.8.4_vite@2.9.2
+  vite-plugin-style-import: 1.4.1_vite@2.9.5
+  vite-plugin-windicss: 1.8.4_vite@2.9.5
   vite-svg-loader: 2.2.0
   vue-eslint-parser: 8.3.0_eslint@8.11.0
   windicss: 3.5.1
@@ -246,7 +246,7 @@ packages:
       }
     dev: false
 
-  /@ant-design/icons-vue/6.1.0_vue@3.2.32:
+  /@ant-design/icons-vue/6.1.0_vue@3.2.33:
     resolution:
       {
         integrity: sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==
@@ -256,7 +256,7 @@ packages:
     dependencies:
       "@ant-design/colors": 6.0.0
       "@ant-design/icons-svg": 4.2.1
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /@antfu/utils/0.5.1:
@@ -644,7 +644,7 @@ packages:
     engines: { node: ">=6.9.0" }
     dependencies:
       "@babel/code-frame": 7.16.7
-      "@babel/parser": 7.17.8
+      "@babel/parser": 7.17.9
       "@babel/types": 7.17.0
     dev: true
 
@@ -877,7 +877,7 @@ packages:
     engines: { node: ">=10" }
     dev: false
 
-  /@element-plus/icons-vue/1.1.4_vue@3.2.32:
+  /@element-plus/icons-vue/1.1.4_vue@3.2.33:
     resolution:
       {
         integrity: sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==
@@ -885,7 +885,7 @@ packages:
     peerDependencies:
       vue: ^3.2.0
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_ec5c0ebd3030a0a5109338876648df1b:
@@ -1033,7 +1033,7 @@ packages:
       }
     dev: true
 
-  /@iconify/vue/3.2.1_vue@3.2.32:
+  /@iconify/vue/3.2.1_vue@3.2.33:
     resolution:
       {
         integrity: sha512-c4R6ZgFo1JrJ8aPMMgOPgfU7lBswihMGR+yWe/P4ZukC3kTkeT4+lkt9Pc/itVFMkwva/S/7u9YofmYv57fnNQ==
@@ -1041,7 +1041,7 @@ packages:
     peerDependencies:
       vue: 3.x
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: true
 
   /@intlify/bundle-utils/3.0.0_vue-i18n@9.2.0-beta.35:
@@ -1063,7 +1063,7 @@ packages:
       "@intlify/shared": 9.2.0-beta.35
       jsonc-eslint-parser: 1.4.1
       source-map: 0.6.1
-      vue-i18n: 9.2.0-beta.35_vue@3.2.32
+      vue-i18n: 9.2.0-beta.35_vue@3.2.33
       yaml-eslint-parser: 0.3.2
     dev: true
 
@@ -1107,7 +1107,7 @@ packages:
       }
     engines: { node: ">= 12" }
 
-  /@intlify/vite-plugin-vue-i18n/3.3.1_8d42b6fd1280c3a2cc3b36c6b35fef46:
+  /@intlify/vite-plugin-vue-i18n/3.3.1_3d08e1d9025840888da5ae870455a383:
     resolution:
       {
         integrity: sha512-b9HIUANzL4/LmrA5RqeiPabZl2/RiWNAJ90TVZ8kSi3APRZ4BbmwUAclKe8ip+1jCDhqaGO/qfAI7SbQ0Y76Uw==
@@ -1129,8 +1129,8 @@ packages:
       debug: 4.3.4
       fast-glob: 3.2.11
       source-map: 0.6.1
-      vite: 2.9.2_sass@1.49.9
-      vue-i18n: 9.2.0-beta.35_vue@3.2.32
+      vite: 2.9.5_sass@1.49.9
+      vue-i18n: 9.2.0-beta.35_vue@3.2.33
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1229,7 +1229,7 @@ packages:
       }
     dev: false
 
-  /@pureadmin/components/1.0.6_vue@3.2.32:
+  /@pureadmin/components/1.0.6_vue@3.2.33:
     resolution:
       {
         integrity: sha512-k+ZF/vsnLAZDkTGpBqZ44s9LTPZsCDFRnfNNXlGy7+TXInarzopuVWeQHGsPbHB3LPHcNd2/4MBjOq4NKYglpw==
@@ -1238,8 +1238,8 @@ packages:
       vue: ^3.2.0
     dependencies:
       "@ant-design/icons-svg": 4.2.1
-      "@ant-design/icons-vue": 6.1.0_vue@3.2.32
-      vue: 3.2.32
+      "@ant-design/icons-vue": 6.1.0_vue@3.2.33
+      vue: 3.2.33
     dev: false
 
   /@pureadmin/theme/0.0.1:
@@ -1585,7 +1585,7 @@ packages:
       eslint-visitor-keys: 3.3.0
     dev: true
 
-  /@vitejs/plugin-legacy/1.8.1_vite@2.9.2:
+  /@vitejs/plugin-legacy/1.8.1_vite@2.9.5:
     resolution:
       {
         integrity: sha512-kmBWKq7EeNvzS4AqPBqUKdoWG/NYQXh7StUFMWR3D21aN5Mfmar7CTO2a7K+bBxJH/vAL9gnnueA0wb7cycCmQ==
@@ -1595,11 +1595,11 @@ packages:
       vite: ^2.8.0
     dependencies:
       "@babel/standalone": 7.17.9
-      core-js: 3.21.1
+      core-js: 3.22.0
       magic-string: 0.26.1
       regenerator-runtime: 0.13.9
       systemjs: 6.12.1
-      vite: 2.9.2_sass@1.49.9
+      vite: 2.9.5_sass@1.49.9
     dev: true
 
   /@vitejs/plugin-vue-jsx/1.3.10:
@@ -1619,7 +1619,7 @@ packages:
       - supports-color
     dev: true
 
-  /@vitejs/plugin-vue/2.3.1_vite@2.9.2+vue@3.2.32:
+  /@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33:
     resolution:
       {
         integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==
@@ -1629,8 +1629,8 @@ packages:
       vite: ^2.5.10
       vue: ^3.2.25
     dependencies:
-      vite: 2.9.2_sass@1.49.9
-      vue: 3.2.32
+      vite: 2.9.5_sass@1.49.9
+      vue: 3.2.33
     dev: true
 
   /@vue/babel-helper-vue-transform-on/1.0.2:
@@ -1672,14 +1672,14 @@ packages:
       source-map: 0.6.1
     dev: true
 
-  /@vue/compiler-core/3.2.32:
+  /@vue/compiler-core/3.2.33:
     resolution:
       {
-        integrity: sha512-bRQ8Rkpm/aYFElDWtKkTPHeLnX5pEkNxhPUcqu5crEJIilZH0yeFu/qUAcV4VfSE2AudNPkQSOwMZofhnuutmA==
+        integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==
       }
     dependencies:
       "@babel/parser": 7.17.9
-      "@vue/shared": 3.2.32
+      "@vue/shared": 3.2.33
       estree-walker: 2.0.2
       source-map: 0.6.1
     dev: false
@@ -1694,14 +1694,14 @@ packages:
       "@vue/shared": 3.2.31
     dev: true
 
-  /@vue/compiler-dom/3.2.32:
+  /@vue/compiler-dom/3.2.33:
     resolution:
       {
-        integrity: sha512-maa3PNB/NxR17h2hDQfcmS02o1f9r9QIpN1y6fe8tWPrS1E4+q8MqrvDDQNhYVPd84rc3ybtyumrgm9D5Rf/kg==
+        integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==
       }
     dependencies:
-      "@vue/compiler-core": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/compiler-core": 3.2.33
+      "@vue/shared": 3.2.33
     dev: false
 
   /@vue/compiler-sfc/3.2.31:
@@ -1722,18 +1722,18 @@ packages:
       source-map: 0.6.1
     dev: true
 
-  /@vue/compiler-sfc/3.2.32:
+  /@vue/compiler-sfc/3.2.33:
     resolution:
       {
-        integrity: sha512-uO6+Gh3AVdWm72lRRCjMr8nMOEqc6ezT9lWs5dPzh1E9TNaJkMYPaRtdY9flUv/fyVQotkfjY/ponjfR+trPSg==
+        integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==
       }
     dependencies:
       "@babel/parser": 7.17.9
-      "@vue/compiler-core": 3.2.32
-      "@vue/compiler-dom": 3.2.32
-      "@vue/compiler-ssr": 3.2.32
-      "@vue/reactivity-transform": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/compiler-core": 3.2.33
+      "@vue/compiler-dom": 3.2.33
+      "@vue/compiler-ssr": 3.2.33
+      "@vue/reactivity-transform": 3.2.33
+      "@vue/shared": 3.2.33
       estree-walker: 2.0.2
       magic-string: 0.25.9
       postcss: 8.4.12
@@ -1750,14 +1750,14 @@ packages:
       "@vue/shared": 3.2.31
     dev: true
 
-  /@vue/compiler-ssr/3.2.32:
+  /@vue/compiler-ssr/3.2.33:
     resolution:
       {
-        integrity: sha512-ZklVUF/SgTx6yrDUkaTaBL/JMVOtSocP+z5Xz/qIqqLdW/hWL90P+ob/jOQ0Xc/om57892Q7sRSrex0wujOL2Q==
+        integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==
       }
     dependencies:
-      "@vue/compiler-dom": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/compiler-dom": 3.2.33
+      "@vue/shared": 3.2.33
     dev: false
 
   /@vue/devtools-api/6.1.3:
@@ -1822,60 +1822,60 @@ packages:
       magic-string: 0.25.9
     dev: true
 
-  /@vue/reactivity-transform/3.2.32:
+  /@vue/reactivity-transform/3.2.33:
     resolution:
       {
-        integrity: sha512-CW1W9zaJtE275tZSWIfQKiPG0iHpdtSlmTqYBu7Y62qvtMgKG5yOxtvBs4RlrZHlaqFSE26avLAgQiTp4YHozw==
+        integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==
       }
     dependencies:
       "@babel/parser": 7.17.9
-      "@vue/compiler-core": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/compiler-core": 3.2.33
+      "@vue/shared": 3.2.33
       estree-walker: 2.0.2
       magic-string: 0.25.9
     dev: false
 
-  /@vue/reactivity/3.2.32:
+  /@vue/reactivity/3.2.33:
     resolution:
       {
-        integrity: sha512-4zaDumuyDqkuhbb63hRd+YHFGopW7srFIWesLUQ2su/rJfWrSq3YUvoKAJE8Eu1EhZ2Q4c1NuwnEreKj1FkDxA==
+        integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==
       }
     dependencies:
-      "@vue/shared": 3.2.32
+      "@vue/shared": 3.2.33
     dev: false
 
-  /@vue/runtime-core/3.2.32:
+  /@vue/runtime-core/3.2.33:
     resolution:
       {
-        integrity: sha512-uKKzK6LaCnbCJ7rcHvsK0azHLGpqs+Vi9B28CV1mfWVq1F3Bj8Okk3cX+5DtD06aUh4V2bYhS2UjjWiUUKUF0w==
+        integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==
       }
     dependencies:
-      "@vue/reactivity": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/reactivity": 3.2.33
+      "@vue/shared": 3.2.33
     dev: false
 
-  /@vue/runtime-dom/3.2.32:
+  /@vue/runtime-dom/3.2.33:
     resolution:
       {
-        integrity: sha512-AmlIg+GPqjkNoADLjHojEX5RGcAg+TsgXOOcUrtDHwKvA8mO26EnLQLB8nylDjU6AMJh2CIYn8NEgyOV5ZIScQ==
+        integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==
       }
     dependencies:
-      "@vue/runtime-core": 3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/runtime-core": 3.2.33
+      "@vue/shared": 3.2.33
       csstype: 2.6.20
     dev: false
 
-  /@vue/server-renderer/3.2.32_vue@3.2.32:
+  /@vue/server-renderer/3.2.33_vue@3.2.33:
     resolution:
       {
-        integrity: sha512-TYKpZZfRJpGTTiy/s6bVYwQJpAUx3G03z4G7/3O18M11oacrMTVHaHjiPuPqf3xQtY8R4LKmQ3EOT/DRCA/7Wg==
+        integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==
       }
     peerDependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dependencies:
-      "@vue/compiler-ssr": 3.2.32
-      "@vue/shared": 3.2.32
-      vue: 3.2.32
+      "@vue/compiler-ssr": 3.2.33
+      "@vue/shared": 3.2.33
+      vue: 3.2.33
     dev: false
 
   /@vue/shared/3.2.31:
@@ -1885,14 +1885,14 @@ packages:
       }
     dev: true
 
-  /@vue/shared/3.2.32:
+  /@vue/shared/3.2.33:
     resolution:
       {
-        integrity: sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw==
+        integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==
       }
     dev: false
 
-  /@vueuse/core/8.2.5_vue@3.2.32:
+  /@vueuse/core/8.2.5_vue@3.2.33:
     resolution:
       {
         integrity: sha512-5prZAA1Ji2ltwNUnzreu6WIXYqHYP/9U2BiY5mD/650VYLpVcwVlYznJDFcLCmEWI3o3Vd34oS1FUf+6Mh68GQ==
@@ -1907,9 +1907,9 @@ packages:
         optional: true
     dependencies:
       "@vueuse/metadata": 8.2.5
-      "@vueuse/shared": 8.2.5_vue@3.2.32
-      vue: 3.2.32
-      vue-demi: 0.12.4_vue@3.2.32
+      "@vueuse/shared": 8.2.5_vue@3.2.33
+      vue: 3.2.33
+      vue-demi: 0.12.4_vue@3.2.33
     dev: false
 
   /@vueuse/metadata/8.2.5:
@@ -1919,7 +1919,7 @@ packages:
       }
     dev: false
 
-  /@vueuse/motion/2.0.0-beta.12_vue@3.2.32:
+  /@vueuse/motion/2.0.0-beta.12_vue@3.2.33:
     resolution:
       {
         integrity: sha512-cAZqXexLX6xo+H1N1Mv+wBSSqG4wB+BdjIuHQ50jwlelXCDxSi8gj0K/9nDS+aUZtWh6YMwS6UGCKg58jMVglA==
@@ -1931,16 +1931,16 @@ packages:
       "@vue/composition-api":
         optional: true
     dependencies:
-      "@vueuse/core": 8.2.5_vue@3.2.32
-      "@vueuse/shared": 8.2.5_vue@3.2.32
+      "@vueuse/core": 8.2.5_vue@3.2.33
+      "@vueuse/shared": 8.2.5_vue@3.2.33
       framesync: 6.1.0
       popmotion: 11.0.3
       style-value-types: 5.1.0
-      vue: 3.2.32
-      vue-demi: 0.12.4_vue@3.2.32
+      vue: 3.2.33
+      vue-demi: 0.12.4_vue@3.2.33
     dev: false
 
-  /@vueuse/shared/8.2.5_vue@3.2.32:
+  /@vueuse/shared/8.2.5_vue@3.2.33:
     resolution:
       {
         integrity: sha512-lNWo+7sk6JCuOj4AiYM+6HZ6fq4xAuVq1sVckMQKgfCJZpZRe4i8es+ZULO5bYTKP+VrOCtqrLR2GzEfrbr3YQ==
@@ -1954,8 +1954,8 @@ packages:
       vue:
         optional: true
     dependencies:
-      vue: 3.2.32
-      vue-demi: 0.12.4_vue@3.2.32
+      vue: 3.2.33
+      vue-demi: 0.12.4_vue@3.2.33
     dev: false
 
   /@windicss/config/1.8.4:
@@ -2757,10 +2757,10 @@ packages:
     requiresBuild: true
     dev: false
 
-  /core-js/3.21.1:
+  /core-js/3.22.0:
     resolution:
       {
-        integrity: sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
+        integrity: sha512-8h9jBweRjMiY+ORO7bdWSeWfHhLPO7whobj7Z2Bl0IDo00C228EdGgH7FE4jGumbEjzcFfkfW8bXgdkEDhnwHQ==
       }
     requiresBuild: true
     dev: true
@@ -3220,7 +3220,7 @@ packages:
       }
     dev: true
 
-  /element-plus/2.1.9_vue@3.2.32:
+  /element-plus/2.1.9_vue@3.2.33:
     resolution:
       {
         integrity: sha512-6mWqS3YrmJPnouWP4otzL8+MehfOnDFqDbcIdnmC07p+Z0JkWe/CVKc4Wky8AYC8nyDMUQyiZYvooCbqGuM7pg==
@@ -3229,12 +3229,12 @@ packages:
       vue: ^3.2.0
     dependencies:
       "@ctrl/tinycolor": 3.4.0
-      "@element-plus/icons-vue": 1.1.4_vue@3.2.32
+      "@element-plus/icons-vue": 1.1.4_vue@3.2.33
       "@floating-ui/dom": 0.4.4
       "@popperjs/core": 2.11.5
       "@types/lodash": 4.14.181
       "@types/lodash-es": 4.17.6
-      "@vueuse/core": 8.2.5_vue@3.2.32
+      "@vueuse/core": 8.2.5_vue@3.2.33
       async-validator: 4.0.7
       dayjs: 1.11.0
       escape-html: 1.0.3
@@ -3243,7 +3243,7 @@ packages:
       lodash-unified: 1.0.2_da03a4540fbd16bbaafbb96724306afd
       memoize-one: 6.0.0
       normalize-wheel-es: 1.1.2
-      vue: 3.2.32
+      vue: 3.2.33
     transitivePeerDependencies:
       - "@vue/composition-api"
     dev: false
@@ -5697,7 +5697,7 @@ packages:
     engines: { node: ">=0.10.0" }
     dev: true
 
-  /pinia/2.0.13_typescript@4.6.3+vue@3.2.32:
+  /pinia/2.0.13_typescript@4.6.3+vue@3.2.33:
     resolution:
       {
         integrity: sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==
@@ -5714,8 +5714,8 @@ packages:
     dependencies:
       "@vue/devtools-api": 6.1.4
       typescript: 4.6.3
-      vue: 3.2.32
-      vue-demi: 0.12.4_vue@3.2.32
+      vue: 3.2.33
+      vue-demi: 0.12.4_vue@3.2.33
     dev: false
 
   /please-upgrade-node/3.2.0:
@@ -6442,7 +6442,7 @@ packages:
       supports-preserve-symlinks-flag: 1.0.0
     dev: true
 
-  /responsive-storage/1.0.11_vue@3.2.32:
+  /responsive-storage/1.0.11_vue@3.2.33:
     resolution:
       {
         integrity: sha512-XY/21b7FKCXwBWGLuxp5KUQOAh8jOTsdfRMz0RVE9P+HhK4oYXKcNESDLxE1mD5MWPg/i+k4SGogro5daMrE9A==
@@ -6450,7 +6450,7 @@ packages:
     peerDependencies:
       vue: ^3.2.0
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /restore-cursor/3.1.0:
@@ -7352,7 +7352,7 @@ packages:
     engines: { node: ">= 0.8" }
     dev: true
 
-  /unplugin-element-plus/0.3.4_rollup@2.70.1+vite@2.9.2:
+  /unplugin-element-plus/0.3.4_rollup@2.70.1+vite@2.9.5:
     resolution:
       {
         integrity: sha512-U6rbBBPzBO1NsCpD5pmp6KnuR4Gwbqphndgix1TW9uMY1+P+gYHolbnECHwRngbPk3+IDIPJhKXz0a6pD7T6fw==
@@ -7362,7 +7362,7 @@ packages:
       "@rollup/pluginutils": 4.2.0
       es-module-lexer: 0.10.5
       magic-string: 0.26.1
-      unplugin: 0.6.1_rollup@2.70.1+vite@2.9.2
+      unplugin: 0.6.1_rollup@2.70.1+vite@2.9.5
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -7370,7 +7370,7 @@ packages:
       - webpack
     dev: true
 
-  /unplugin/0.6.1_rollup@2.70.1+vite@2.9.2:
+  /unplugin/0.6.1_rollup@2.70.1+vite@2.9.5:
     resolution:
       {
         integrity: sha512-cQqRCgQ2v/Q4fPIWNVZ6sNIDdl5v8JXOnlsUOsGzT4fblTONoPWaytiYSpu5qJ9lvSDZYAQN6BRVo3XQoZMfUQ==
@@ -7392,7 +7392,7 @@ packages:
     dependencies:
       chokidar: 3.5.3
       rollup: 2.70.1
-      vite: 2.9.2_sass@1.49.9
+      vite: 2.9.5_sass@1.49.9
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.3
     dev: true
@@ -7450,7 +7450,7 @@ packages:
     hasBin: true
     dev: true
 
-  /v-contextmenu/3.0.0_vue@3.2.32:
+  /v-contextmenu/3.0.0_vue@3.2.33:
     resolution:
       {
         integrity: sha512-zi38JxmTt66TmljgV1JbfEa9WvoQkpzRuEwZK7Tjb2XoRejbWLozQtkyTWXJa6x6Y3FrVDfgT36w01gpTpo41A==
@@ -7459,7 +7459,7 @@ packages:
     peerDependencies:
       vue: ^3.0.0
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /v8-compile-cache/2.3.0:
@@ -7479,7 +7479,7 @@ packages:
       spdx-expression-parse: 3.0.1
     dev: true
 
-  /vite-plugin-mock/2.9.6_7a7c25d612186dcba4127a365587ade3:
+  /vite-plugin-mock/2.9.6_9bee6d01fd796cb52b526d4503041d36:
     resolution:
       {
         integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==
@@ -7499,7 +7499,7 @@ packages:
       fast-glob: 3.2.11
       mockjs: 1.1.0
       path-to-regexp: 6.2.0
-      vite: 2.9.2_sass@1.49.9
+      vite: 2.9.5_sass@1.49.9
     transitivePeerDependencies:
       - rollup
       - supports-color
@@ -7512,7 +7512,7 @@ packages:
       }
     dev: true
 
-  /vite-plugin-style-import/1.4.1_vite@2.9.2:
+  /vite-plugin-style-import/1.4.1_vite@2.9.5:
     resolution:
       {
         integrity: sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==
@@ -7526,12 +7526,12 @@ packages:
       es-module-lexer: 0.9.3
       fs-extra: 10.0.1
       magic-string: 0.25.9
-      vite: 2.9.2_sass@1.49.9
+      vite: 2.9.5_sass@1.49.9
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /vite-plugin-windicss/1.8.4_vite@2.9.2:
+  /vite-plugin-windicss/1.8.4_vite@2.9.5:
     resolution:
       {
         integrity: sha512-LSZAO8BZn3x406GRbYX5t5ONXXJVdqiQtN1qrznLA/Dy5/NzZVhfcrL6N1qEYYO7HsCDT4pLAjTzObvDnM9Y8A==
@@ -7542,7 +7542,7 @@ packages:
       "@windicss/plugin-utils": 1.8.4
       debug: 4.3.4
       kolorist: 1.5.1
-      vite: 2.9.2_sass@1.49.9
+      vite: 2.9.5_sass@1.49.9
       windicss: 3.5.1
     transitivePeerDependencies:
       - supports-color
@@ -7558,10 +7558,10 @@ packages:
       svgo: 2.8.0
     dev: true
 
-  /vite/2.9.2_sass@1.49.9:
+  /vite/2.9.5_sass@1.49.9:
     resolution:
       {
-        integrity: sha512-ScbfYsiG1N/xE2TnZWYWJ8aOFBQovEl4VLU+0dktxqXvqdAvcTOEUM5YqwaBkmNHSHUGHLPd92tuXFQ35wDkVw==
+        integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==
       }
     engines: { node: ">=12.2.0" }
     hasBin: true
@@ -7586,7 +7586,7 @@ packages:
       fsevents: 2.3.2
     dev: true
 
-  /vue-demi/0.12.4_vue@3.2.32:
+  /vue-demi/0.12.4_vue@3.2.33:
     resolution:
       {
         integrity: sha512-ztPDkFt0TSUdoq1ZI6oD730vgztBkiByhUW7L1cOTebiSBqSYfSQgnhYakYigBkyAybqCTH7h44yZuDJf2xILQ==
@@ -7601,7 +7601,7 @@ packages:
       "@vue/composition-api":
         optional: true
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /vue-eslint-parser/8.3.0_eslint@8.11.0:
@@ -7625,7 +7625,7 @@ packages:
       - supports-color
     dev: true
 
-  /vue-i18n/9.2.0-beta.35_vue@3.2.32:
+  /vue-i18n/9.2.0-beta.35_vue@3.2.33:
     resolution:
       {
         integrity: sha512-kTYzZSB3B/ar3M9RfQ0KAyTGfvRw544qVzY++/sNV4stOKG6NxIDOdHdYTfVEXTSkczFwoZHTKXTWNVpx+GuHA==
@@ -7638,10 +7638,10 @@ packages:
       "@intlify/shared": 9.2.0-beta.35
       "@intlify/vue-devtools": 9.2.0-beta.35
       "@vue/devtools-api": 6.1.4
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vue-json-pretty/2.0.6_vue@3.2.32:
+  /vue-json-pretty/2.0.6_vue@3.2.33:
     resolution:
       {
         integrity: sha512-aVdxw8ZRGR/Uj8GEaJ1/W2Ks/MdCfv5t2HRbbd+ICp3nL7msKRLN+1qOkSzaMvDygbDPxGhwUHBxZz8nxP+r3A==
@@ -7650,10 +7650,10 @@ packages:
     peerDependencies:
       vue: ">=3.0.0"
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vue-router/4.0.14_vue@3.2.32:
+  /vue-router/4.0.14_vue@3.2.33:
     resolution:
       {
         integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==
@@ -7662,10 +7662,10 @@ packages:
       vue: ^3.2.0
     dependencies:
       "@vue/devtools-api": 6.1.3
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vue-types/4.1.1_vue@3.2.32:
+  /vue-types/4.1.1_vue@3.2.33:
     resolution:
       {
         integrity: sha512-Jq2GZ/w6rExJbLA/h7nHBFLciu+YNekgox0DB64wN1snZ4IIJMq+qnqp1/vE4fc7vEjZcP5KGhLzkkSjIHLRzw==
@@ -7675,23 +7675,23 @@ packages:
       vue: ^2.0.0 || ^3.0.0
     dependencies:
       is-plain-object: 5.0.0
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vue/3.2.32:
+  /vue/3.2.33:
     resolution:
       {
-        integrity: sha512-6L3jKZApF042OgbCkh+HcFeAkiYi3Lovi8wNhWqIK98Pi5efAMLZzRHgi91v+60oIRxdJsGS9sTMsb+yDpY8Eg==
+        integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==
       }
     dependencies:
-      "@vue/compiler-dom": 3.2.32
-      "@vue/compiler-sfc": 3.2.32
-      "@vue/runtime-dom": 3.2.32
-      "@vue/server-renderer": 3.2.32_vue@3.2.32
-      "@vue/shared": 3.2.32
+      "@vue/compiler-dom": 3.2.33
+      "@vue/compiler-sfc": 3.2.33
+      "@vue/runtime-dom": 3.2.33
+      "@vue/server-renderer": 3.2.33_vue@3.2.33
+      "@vue/shared": 3.2.33
     dev: false
 
-  /vuedraggable/4.1.0_vue@3.2.32:
+  /vuedraggable/4.1.0_vue@3.2.33:
     resolution:
       {
         integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==
@@ -7700,10 +7700,10 @@ packages:
       vue: ^3.0.1
     dependencies:
       sortablejs: 1.14.0
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vxe-table/4.2.0_vue@3.2.32+xe-utils@3.5.4:
+  /vxe-table/4.2.0_vue@3.2.33+xe-utils@3.5.4:
     resolution:
       {
         integrity: sha512-ddb4OdTdhjT+E+5gu+NbJuTLJa/BlzUb98O0ZsVwGYUnMWoYqHh68JRkHxFona/Dxv6ir8HBX7kZamfoWhB+NQ==
@@ -7712,7 +7712,7 @@ packages:
       vue: ^3.2.2
       xe-utils: ^3.5.0
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
       xe-utils: 3.5.4
     dev: false
 

+ 46 - 39
src/components/ReIcon/src/iconifyIconOffline.ts

@@ -25,10 +25,13 @@ import Tickets from "@iconify-icons/ep/tickets";
 import OfficeBuilding from "@iconify-icons/ep/office-building";
 import Notebook from "@iconify-icons/ep/notebook";
 import Rank from "@iconify-icons/ep/rank";
-import videoPlay from "@iconify-icons/ep/video-play";
+import VideoPlay from "@iconify-icons/ep/video-play";
 import Monitor from "@iconify-icons/ep/monitor";
 import Search from "@iconify-icons/ep/search";
 import Refresh from "@iconify-icons/ep/refresh";
+import EditPen from "@iconify-icons/ep/edit-pen";
+import Delete from "@iconify-icons/ep/delete";
+import More from "@iconify-icons/ep/more-filled";
 addIcon("check", Check);
 addIcon("menu", Menu);
 addIcon("home-filled", HomeFilled);
@@ -51,52 +54,56 @@ addIcon("location", Location);
 addIcon("tickets", Tickets);
 addIcon("office-building", OfficeBuilding);
 addIcon("notebook", Notebook);
-addIcon("video-play", videoPlay);
+addIcon("video-play", VideoPlay);
 addIcon("rank", Rank);
 addIcon("monitor", Monitor);
 addIcon("search", Search);
 addIcon("refresh", Refresh);
+addIcon("edits", EditPen);
+addIcon("delete", Delete);
+addIcon("more", More);
 
 // remixicon
-import arrowRightSLine from "@iconify-icons/ri/arrow-right-s-line";
-import arrowLeftSLine from "@iconify-icons/ri/arrow-left-s-line";
-import logoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line";
-import nodeTree from "@iconify-icons/ri/node-tree";
-import ubuntuFill from "@iconify-icons/ri/ubuntu-fill";
-import questionLine from "@iconify-icons/ri/question-line";
-import checkboxCircleLine from "@iconify-icons/ri/checkbox-circle-line";
-import informationLine from "@iconify-icons/ri/information-line";
-import closeCircleLine from "@iconify-icons/ri/close-circle-line";
-import arrowUpLine from "@iconify-icons/ri/arrow-up-line";
-import arrowDownLine from "@iconify-icons/ri/arrow-down-line";
-import bookmark2Line from "@iconify-icons/ri/bookmark-2-line";
-import addFill from "@iconify-icons/ri/add-circle-line";
-import listCheck from "@iconify-icons/ri/list-check";
-import more2Fill from "@iconify-icons/ri/more-2-fill";
-
-addIcon("arrow-right-s-line", arrowRightSLine);
-addIcon("arrow-left-s-line", arrowLeftSLine);
-addIcon("logout-circle-r-line", logoutCircleRLine);
-addIcon("node-tree", nodeTree);
-addIcon("ubuntu-fill", ubuntuFill);
-addIcon("question-line", questionLine);
-addIcon("checkbox-circle-line", checkboxCircleLine);
-addIcon("information-line", informationLine);
-addIcon("close-circle-line", closeCircleLine);
-addIcon("arrow-up-line", arrowUpLine);
-addIcon("arrow-down-line", arrowDownLine);
-addIcon("bookmark-2-line", bookmark2Line);
-addIcon("add", addFill);
-addIcon("list-check", listCheck);
-addIcon("more-2-fill", more2Fill);
+import ArrowRightSLine from "@iconify-icons/ri/arrow-right-s-line";
+import ArrowLeftSLine from "@iconify-icons/ri/arrow-left-s-line";
+import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line";
+import NodeTree from "@iconify-icons/ri/node-tree";
+import UbuntuFill from "@iconify-icons/ri/ubuntu-fill";
+import QuestionLine from "@iconify-icons/ri/question-line";
+import CheckboxCircleLine from "@iconify-icons/ri/checkbox-circle-line";
+import InformationLine from "@iconify-icons/ri/information-line";
+import CloseCircleLine from "@iconify-icons/ri/close-circle-line";
+import ArrowUpLine from "@iconify-icons/ri/arrow-up-line";
+import ArrowDownLine from "@iconify-icons/ri/arrow-down-line";
+import Bookmark2Line from "@iconify-icons/ri/bookmark-2-line";
+import AddFill from "@iconify-icons/ri/add-circle-line";
+import ListCheck from "@iconify-icons/ri/list-check";
+import More2Fill from "@iconify-icons/ri/more-2-fill";
+import Database from "@iconify-icons/ri/database-2-line";
+addIcon("arrow-right-s-line", ArrowRightSLine);
+addIcon("arrow-left-s-line", ArrowLeftSLine);
+addIcon("logout-circle-r-line", LogoutCircleRLine);
+addIcon("node-tree", NodeTree);
+addIcon("ubuntu-fill", UbuntuFill);
+addIcon("question-line", QuestionLine);
+addIcon("checkbox-circle-line", CheckboxCircleLine);
+addIcon("information-line", InformationLine);
+addIcon("close-circle-line", CloseCircleLine);
+addIcon("arrow-up-line", ArrowUpLine);
+addIcon("arrow-down-line", ArrowDownLine);
+addIcon("bookmark-2-line", Bookmark2Line);
+addIcon("add", AddFill);
+addIcon("list-check", ListCheck);
+addIcon("more-2-fill", More2Fill);
+addIcon("database", Database);
 
 // Font Awesome 4
-import faUser from "@iconify-icons/fa/user";
-import faLock from "@iconify-icons/fa/lock";
-import faSignOut from "@iconify-icons/fa/sign-out";
-addIcon("fa-user", faUser);
-addIcon("fa-lock", faLock);
-addIcon("fa-sign-out", faSignOut);
+import FaUser from "@iconify-icons/fa/user";
+import FaLock from "@iconify-icons/fa/lock";
+import FaSignOut from "@iconify-icons/fa/sign-out";
+addIcon("fa-user", FaUser);
+addIcon("fa-lock", FaLock);
+addIcon("fa-sign-out", FaSignOut);
 
 // Unicons
 import Import from "@iconify-icons/uil/import";

+ 6 - 1
src/style/element-plus.scss

@@ -36,7 +36,12 @@
   z-index: 99999 !important;
 }
 
-// 自定义popover的类名
+/* 重置button中icon的margin */
+.reset-margin [class*="el-icon"] + span {
+  margin-left: 2px !important;
+}
+
+/* 自定义popover的类名 */
 .pure-popper {
   padding: 0 !important;
 }

+ 29 - 17
src/views/system/dept/index.vue

@@ -79,11 +79,11 @@ onMounted(() => {
           :loading="loading"
           @click="onSearch"
         >
-          搜索</el-button
-        >
-        <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)"
-          >重置</el-button
-        >
+          搜索
+        </el-button>
+        <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)">
+          重置
+        </el-button>
       </el-form-item>
     </el-form>
 
@@ -129,6 +129,7 @@ onMounted(() => {
           <el-table-column label="状态" align="center" prop="status" width="80">
             <template #default="scope">
               <el-tag
+                :size="size"
                 :type="scope.row.status === 0 ? 'danger' : 'success'"
                 effect="plain"
               >
@@ -141,13 +142,12 @@ onMounted(() => {
             align="center"
             width="180"
             prop="createTime"
-          >
-            <template #default="scope">
-              <span>{{
-                dayjs(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
-              }}</span>
-            </template>
-          </el-table-column>
+            :formatter="
+              ({ createTime }) => {
+                return dayjs(createTime).format('YYYY-MM-DD HH:mm:ss');
+              }
+            "
+          />
           <el-table-column
             label="备注"
             align="center"
@@ -158,17 +158,29 @@ onMounted(() => {
             fixed="right"
             label="操作"
             align="center"
-            width="130"
+            width="140"
           >
             <template #default="scope">
-              <el-button type="text" @click="handleUpdate(scope.row)"
-                >修改</el-button
+              <el-button
+                class="reset-margin"
+                type="text"
+                :size="size"
+                @click="handleUpdate(scope.row)"
+                :icon="useRenderIcon('edits')"
               >
+                修改
+              </el-button>
               <el-popconfirm title="是否确认删除?">
                 <template #reference>
-                  <el-button type="text" @click="handleDelete(scope.row)"
-                    >删除</el-button
+                  <el-button
+                    class="reset-margin"
+                    type="text"
+                    :size="size"
+                    :icon="useRenderIcon('delete')"
+                    @click="handleDelete(scope.row)"
                   >
+                    删除
+                  </el-button>
                 </template>
               </el-popconfirm>
             </template>

+ 101 - 31
src/views/system/role/index.vue

@@ -15,8 +15,8 @@ import { Switch, message } from "@pureadmin/components";
 import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
 
 const form = reactive({
+  name: "",
   code: "",
-  user: "",
   status: ""
 });
 let dataList = ref([]);
@@ -49,7 +49,11 @@ function handleSelectionChange(val) {
 
 function onChange(checked, { $index, row }) {
   ElMessageBox.confirm(
-    `确认要<strong>停用</strong><strong style='color:var(--el-color-primary)'>${row.name}</strong>角色吗?`,
+    `确认要<strong>${
+      row.status === 0 ? "停用" : "启用"
+    }</strong><strong style='color:var(--el-color-primary)'>${
+      row.name
+    }</strong>角色吗?`,
     "系统提示",
     {
       confirmButtonText: "确定",
@@ -112,16 +116,16 @@ onMounted(() => {
       :model="form"
       class="bg-white w-99/100 pl-8 pt-4"
     >
-      <el-form-item label="角色编码:" prop="code">
-        <el-input v-model="form.code" placeholder="请输入" clearable />
+      <el-form-item label="角色名称:" prop="name">
+        <el-input v-model="form.name" placeholder="请输入" clearable />
       </el-form-item>
-      <el-form-item label="角色名称:" prop="user">
-        <el-input v-model="form.user" placeholder="请输入" clearable />
+      <el-form-item label="角色标识:" prop="code">
+        <el-input v-model="form.code" placeholder="请输入" clearable />
       </el-form-item>
       <el-form-item label="状态:" prop="status">
         <el-select v-model="form.status" placeholder="请选择" clearable>
-          <el-option label="开启" value="1" />
-          <el-option label="关闭" value="0" />
+          <el-option label="开启" value="1" />
+          <el-option label="关闭" value="0" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -131,11 +135,11 @@ onMounted(() => {
           :loading="loading"
           @click="onSearch"
         >
-          搜索</el-button
-        >
-        <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)"
-          >重置</el-button
-        >
+          搜索
+        </el-button>
+        <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)">
+          重置
+        </el-button>
       </el-form-item>
     </el-form>
 
@@ -146,9 +150,9 @@ onMounted(() => {
       @refresh="onSearch"
     >
       <template #buttons>
-        <el-button type="primary" :icon="useRenderIcon('add')"
-          >新增角色</el-button
-        >
+        <el-button type="primary" :icon="useRenderIcon('add')">
+          新增角色
+        </el-button>
       </template>
       <template v-slot="{ size, checkList }">
         <el-table
@@ -173,10 +177,26 @@ onMounted(() => {
             width="70"
           />
           <el-table-column label="角色编号" align="center" prop="id" />
-          <el-table-column label="角色编码" align="center" prop="code" />
           <el-table-column label="角色名称" align="center" prop="name" />
-          <el-table-column label="角色排序" align="center" prop="sort" />
-          <el-table-column label="状态" align="center" prop="status">
+          <el-table-column label="角色标识" align="center" prop="code" />
+          <el-table-column label="角色类型" align="center" prop="type">
+            <template #default="scope">
+              <el-tag
+                :size="size"
+                :type="scope.row.type === 1 ? 'danger' : ''"
+                effect="plain"
+              >
+                {{ scope.row.type === 1 ? "内置" : "自定义" }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column label="显示顺序" align="center" prop="sort" />
+          <el-table-column
+            label="状态"
+            align="center"
+            width="130"
+            prop="status"
+          >
             <template #default="scope">
               <Switch
                 :size="size === 'small' ? 'small' : 'default'"
@@ -195,30 +215,74 @@ onMounted(() => {
             align="center"
             width="180"
             prop="createTime"
-          >
-            <template #default="scope">
-              <span>{{
-                dayjs(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
-              }}</span>
-            </template>
-          </el-table-column>
+            :formatter="
+              ({ createTime }) => {
+                return dayjs(createTime).format('YYYY-MM-DD HH:mm:ss');
+              }
+            "
+          />
           <el-table-column
             fixed="right"
             label="操作"
-            width="130"
+            width="180"
             align="center"
           >
             <template #default="scope">
-              <el-button type="text" @click="handleUpdate(scope.row)"
-                >修改</el-button
+              <el-button
+                class="reset-margin"
+                type="text"
+                :size="size"
+                @click="handleUpdate(scope.row)"
+                :icon="useRenderIcon('edits')"
               >
+                修改
+              </el-button>
               <el-popconfirm title="是否确认删除?">
                 <template #reference>
-                  <el-button type="text" @click="handleDelete(scope.row)"
-                    >删除</el-button
+                  <el-button
+                    class="reset-margin"
+                    type="text"
+                    :size="size"
+                    :icon="useRenderIcon('delete')"
+                    @click="handleDelete(scope.row)"
                   >
+                    删除
+                  </el-button>
                 </template>
               </el-popconfirm>
+              <el-dropdown>
+                <el-button
+                  class="ml-3"
+                  type="text"
+                  :size="size"
+                  @click="handleUpdate(scope.row)"
+                  :icon="useRenderIcon('more')"
+                />
+                <template #dropdown>
+                  <el-dropdown-menu>
+                    <el-dropdown-item>
+                      <el-button
+                        class="reset-margin !h-20px !text-gray-500"
+                        type="text"
+                        :size="size"
+                        :icon="useRenderIcon('menu')"
+                      >
+                        菜单权限
+                      </el-button>
+                    </el-dropdown-item>
+                    <el-dropdown-item>
+                      <el-button
+                        class="reset-margin !h-20px !text-gray-500"
+                        type="text"
+                        :size="size"
+                        :icon="useRenderIcon('database')"
+                      >
+                        数据权限
+                      </el-button>
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </template>
+              </el-dropdown>
             </template>
           </el-table-column>
         </el-table>
@@ -237,3 +301,9 @@ onMounted(() => {
     </EpTableProBar>
   </div>
 </template>
+
+<style scoped lang="scss">
+:deep(.el-dropdown-menu__item i) {
+  margin: 0;
+}
+</style>