Explorar o código

!351 升级最新依赖 && 修复树形 全部展开 全部关闭
Merge pull request !351 from xingyu/dev

芋道源码 %!s(int64=2) %!d(string=hai) anos
pai
achega
661a20dc93
Modificáronse 41 ficheiros con 1046 adicións e 1842 borrados
  1. 5 5
      README.md
  2. 9 9
      yudao-dependencies/pom.xml
  3. 2 2
      yudao-example/yudao-sso-demo-by-code/pom.xml
  4. 2 2
      yudao-example/yudao-sso-demo-by-password/pom.xml
  5. 1 1
      yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
  6. 2 12
      yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
  7. 2 2
      yudao-ui-admin-vue3/README.md
  8. 7 7
      yudao-ui-admin-vue3/package.json
  9. 949 1557
      yudao-ui-admin-vue3/pnpm-lock.yaml
  10. 1 1
      yudao-ui-admin-vue3/src/components/XTable/src/style/light.scss
  11. 7 8
      yudao-ui-admin-vue3/src/components/XTable/src/type.ts
  12. 2 5
      yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
  13. 3 10
      yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
  14. 2 12
      yudao-ui-admin-vue3/src/views/infra/config/index.vue
  15. 1 6
      yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
  16. 1 6
      yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
  17. 1 6
      yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
  18. 1 5
      yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
  19. 4 13
      yudao-ui-admin-vue3/src/views/infra/job/index.vue
  20. 2 12
      yudao-ui-admin-vue3/src/views/pay/app/index.vue
  21. 2 12
      yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
  22. 1 5
      yudao-ui-admin-vue3/src/views/pay/order/index.vue
  23. 1 6
      yudao-ui-admin-vue3/src/views/pay/refund/index.vue
  24. 5 11
      yudao-ui-admin-vue3/src/views/system/dept/index.vue
  25. 2 11
      yudao-ui-admin-vue3/src/views/system/dict/index.vue
  26. 1 6
      yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
  27. 1 6
      yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
  28. 7 13
      yudao-ui-admin-vue3/src/views/system/menu/index.vue
  29. 1 6
      yudao-ui-admin-vue3/src/views/system/notice/index.vue
  30. 1 6
      yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
  31. 1 1
      yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
  32. 1 6
      yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
  33. 2 12
      yudao-ui-admin-vue3/src/views/system/post/index.vue
  34. 1 6
      yudao-ui-admin-vue3/src/views/system/role/index.vue
  35. 2 12
      yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
  36. 1 6
      yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
  37. 1 6
      yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
  38. 1 6
      yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
  39. 2 12
      yudao-ui-admin-vue3/src/views/system/tenant/index.vue
  40. 6 7
      yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
  41. 2 5
      yudao-ui-admin-vue3/src/views/system/user/index.vue

+ 5 - 5
README.md

@@ -188,17 +188,17 @@ ps:核心功能已经实现,正在对接微信小程序中...
 
 | 框架                                                                                          | 说明               | 版本          | 学习指南                                                           |
 |---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------|
-| [Spring Boot](https://spring.io/projects/spring-boot)                                       | 应用开发框架           | 2.7.6       | [文档](https://github.com/YunaiV/SpringBoot-Labs)                |
+| [Spring Boot](https://spring.io/projects/spring-boot)                                       | 应用开发框架           | 2.7.7       | [文档](https://github.com/YunaiV/SpringBoot-Labs)                |
 | [MySQL](https://www.mysql.com/cn/)                                                          | 数据库服务器           | 5.7 / 8.0+  |                                                                |
 | [Druid](https://github.com/alibaba/druid)                                                   | JDBC 连接池、监控组件    | 1.2.15      | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
-| [MyBatis Plus](https://mp.baomidou.com/)                                                    | MyBatis 增强工具包    | 3.5.2       | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao)         |
-| [Dynamic Datasource](https://dynamic-datasource.com/)                                       | 动态数据源            | 3.6.0       | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
+| [MyBatis Plus](https://mp.baomidou.com/)                                                    | MyBatis 增强工具包    | 3.5.3       | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao)         |
+| [Dynamic Datasource](https://dynamic-datasource.com/)                                       | 动态数据源            | 3.6.1       | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
 | [Redis](https://redis.io/)                                                                  | key-value 数据库    | 5.0 / 6.0   |                                                                |
 | [Redisson](https://github.com/redisson/redisson)                                            | Redis 客户端        | 3.18.0      | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao)           |
 | [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架           | 5.3.24      | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao)               |
 | [Spring Security](https://github.com/spring-projects/spring-security)                       | Spring 安全框架      | 5.7.5       | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
 | [Hibernate Validator](https://github.com/hibernate/hibernate-validator)                     | 参数校验组件           | 6.2.5       | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao)      |
-| [Flowable](https://github.com/flowable/flowable-engine)                                     | 工作流引擎            | 6.7.2       | [文档](https://doc.iocoder.cn/bpm/)                              |
+| [Flowable](https://github.com/flowable/flowable-engine)                                     | 工作流引擎            | 6.8.0       | [文档](https://doc.iocoder.cn/bpm/)                              |
 | [Quartz](https://github.com/quartz-scheduler)                                               | 任务调度组件           | 2.3.2       | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao)             |
 | [Knife4j](https://gitee.com/xiaoym/knife4j)                                                 | Swagger 增强 UI 实现 | 3.0.3       | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao)         |
 | [Resilience4j](https://github.com/resilience4j/resilience4j)                                | 服务保障组件           | 1.7.1       | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao)    |
@@ -222,7 +222,7 @@ ps:核心功能已经实现,正在对接微信小程序中...
 | 框架                                                                   |      说明      |   版本   |
 |----------------------------------------------------------------------|:------------:|:------:|
 | [Vue](https://staging-cn.vuejs.org/)                                 |    Vue 框架    | 3.2.45 |
-| [Vite](https://cn.vitejs.dev//)                                      |   开发与构建工具    | 4.0.3  |
+| [Vite](https://cn.vitejs.dev//)                                      |   开发与构建工具    | 4.0.4  |
 | [Element Plus](https://element-plus.org/zh-CN/)                      | Element Plus | 2.2.28 |
 | [TypeScript](https://www.typescriptlang.org/docs/)                   |  TypeScript  | 4.9.4  |
 | [pinia](https://pinia.vuejs.org/)                                    |    vuex5     | 2.0.28 |

+ 9 - 9
yudao-dependencies/pom.xml

@@ -16,16 +16,16 @@
     <properties>
         <revision>1.6.5-snapshot</revision>
         <!-- 统一依赖管理 -->
-        <spring.boot.version>2.7.6</spring.boot.version>
+        <spring.boot.version>2.7.7</spring.boot.version>
         <!-- Web 相关 -->
         <knife4j.version>3.0.3</knife4j.version>
         <swagger-annotations.version>1.6.8</swagger-annotations.version>
         <servlet.versoin>2.5</servlet.versoin>
         <!-- DB 相关 -->
         <druid.version>1.2.15</druid.version>
-        <mybatis-plus.version>3.5.2</mybatis-plus.version>
+        <mybatis-plus.version>3.5.3</mybatis-plus.version>
         <mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version>
-        <dynamic-datasource.version>3.6.0</dynamic-datasource.version>
+        <dynamic-datasource.version>3.6.1</dynamic-datasource.version>
         <redisson.version>3.18.0</redisson.version>
         <!-- 服务保障相关 -->
         <lock4j.version>2.2.3</lock4j.version>
@@ -37,14 +37,14 @@
         <!-- Test 测试相关 -->
         <podam.version>7.2.11.RELEASE</podam.version>
         <jedis-mock.version>1.0.5</jedis-mock.version>
-        <mockito-inline.version>4.8.0</mockito-inline.version>
+        <mockito-inline.version>4.11.0</mockito-inline.version>
         <!-- Bpm 工作流相关 -->
-        <flowable.version>6.7.2</flowable.version>
+        <flowable.version>6.8.0</flowable.version>
         <!-- 工具类相关 -->
         <lombok.version>1.18.24</lombok.version>
         <mapstruct.version>1.5.3.Final</mapstruct.version>
-        <hutool.version>5.8.10</hutool.version>
-        <easyexcel.verion>3.1.3</easyexcel.verion>
+        <hutool.version>5.8.11</hutool.version>
+        <easyexcel.verion>3.1.4</easyexcel.verion>
         <velocity.version>2.3</velocity.version>
         <screw.version>1.0.5</screw.version>
         <fastjson.version>1.2.83</fastjson.version>
@@ -55,7 +55,7 @@
         <jsch.version>0.1.55</jsch.version>
         <tika-core.version>2.6.0</tika-core.version>
         <aj-captcha.version>1.3.0</aj-captcha.version>
-        <netty-all.version>4.1.85.Final</netty-all.version>
+        <netty-all.version>4.1.86.Final</netty-all.version>
         <ip2region.version>2.6.6</ip2region.version>
         <!-- 三方云服务相关 -->
         <okio.version>3.0.0</okio.version>
@@ -63,7 +63,7 @@
         <minio.version>8.4.6</minio.version>
         <aliyun-java-sdk-core.version>4.6.3</aliyun-java-sdk-core.version>
         <aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version>
-        <tencentcloud-sdk-java.version>3.1.637</tencentcloud-sdk-java.version>
+        <tencentcloud-sdk-java.version>3.1.660</tencentcloud-sdk-java.version>
         <justauth.version>1.4.0</justauth.version>
         <jimureport.version>1.5.6</jimureport.version>
         <xercesImpl.version>2.12.2</xercesImpl.version>

+ 2 - 2
yudao-example/yudao-sso-demo-by-code/pom.xml

@@ -21,7 +21,7 @@
         <maven.compiler.target>8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <!-- 统一依赖管理 -->
-        <spring.boot.version>2.7.6</spring.boot.version>
+        <spring.boot.version>2.7.7</spring.boot.version>
     </properties>
 
     <dependencyManagement>
@@ -52,7 +52,7 @@
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
-            <version>5.8.10</version>
+            <version>5.8.11</version>
         </dependency>
 
         <dependency>

+ 2 - 2
yudao-example/yudao-sso-demo-by-password/pom.xml

@@ -21,7 +21,7 @@
         <maven.compiler.target>8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <!-- 统一依赖管理 -->
-        <spring.boot.version>2.7.6</spring.boot.version>
+        <spring.boot.version>2.7.7</spring.boot.version>
     </properties>
 
     <dependencyManagement>
@@ -52,7 +52,7 @@
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
-            <version>5.8.10</version>
+            <version>5.8.11</version>
         </dependency>
 
         <dependency>

+ 1 - 1
yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml

@@ -52,7 +52,7 @@
         <dependency>
             <groupId>com.alipay.sdk</groupId>
             <artifactId>alipay-sdk-java</artifactId>
-            <version>4.35.0.ALL</version>
+            <version>4.35.9.ALL</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.bouncycastle</groupId>

+ 2 - 12
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['${permissionPrefix}:export']"
-          @click="handleExport()"
+          @click="exportList('${table.classComment}.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -40,7 +40,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['${permissionPrefix}:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -119,11 +119,6 @@ const handleCreate = () => {
   modelLoading.value = false
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('${table.classComment}.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -141,11 +136,6 @@ const handleDetail = async (rowId: number) => {
   modelLoading.value = false
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 2 - 2
yudao-ui-admin-vue3/README.md

@@ -29,11 +29,11 @@
 | 框架 | 说明 | 版本     |
 | --- | --- |--------|
 | [Vue](https://staging-cn.vuejs.org/) | vue 框架 | 3.2.45 |
-| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3  |
+| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.4  |
 | [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.28 |
 | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4  |
 | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 |
-| [vueuse](https://vueuse.org/) | 常用工具集 | 9.8.2  |
+| [vueuse](https://vueuse.org/) | 常用工具集 | 9.10.0  |
 | [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.7  |
 | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2  |
 | [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6  |

+ 7 - 7
yudao-ui-admin-vue3/package.json

@@ -1,6 +1,6 @@
 {
   "name": "yudao-ui-admin-vue3",
-  "version": "1.6.5.1901",
+  "version": "1.6.5-snapshot.1901",
   "description": "基于vue3、vite4、element-plus、typesScript",
   "author": "xingyu",
   "private": false,
@@ -25,7 +25,7 @@
   },
   "dependencies": {
     "@iconify/iconify": "^3.0.1",
-    "@vueuse/core": "^9.9.0",
+    "@vueuse/core": "^9.10.0",
     "@wangeditor/editor": "^5.1.23",
     "@wangeditor/editor-for-vue": "^5.1.10",
     "@zxcvbn-ts/core": "^2.1.0",
@@ -55,9 +55,9 @@
     "xe-utils": "^3.5.7"
   },
   "devDependencies": {
-    "@commitlint/cli": "^17.3.0",
-    "@commitlint/config-conventional": "^17.3.0",
-    "@iconify/json": "^2.2.1",
+    "@commitlint/cli": "^17.4.0",
+    "@commitlint/config-conventional": "^17.4.0",
+    "@iconify/json": "^2.2.2",
     "@intlify/unplugin-vue-i18n": "^0.8.1",
     "@purge-icons/generated": "^0.9.0",
     "@types/intro.js": "^5.1.0",
@@ -94,7 +94,7 @@
     "stylelint-order": "^5.0.0",
     "terser": "^5.16.1",
     "typescript": "4.9.4",
-    "vite": "4.0.3",
+    "vite": "4.0.4",
     "vite-plugin-compression": "^0.5.1",
     "vite-plugin-ejs": "^1.6.4",
     "vite-plugin-eslint": "^1.8.1",
@@ -104,7 +104,7 @@
     "vite-plugin-svg-icons": "^2.0.1",
     "vite-plugin-vue-setup-extend": "^0.4.0",
     "vite-plugin-windicss": "^1.8.10",
-    "vue-tsc": "^1.0.19",
+    "vue-tsc": "^1.0.20",
     "windicss": "^3.5.6"
   },
   "engines": {

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 949 - 1557
yudao-ui-admin-vue3/pnpm-lock.yaml


+ 1 - 1
yudao-ui-admin-vue3/src/components/XTable/src/style/light.scss

@@ -13,4 +13,4 @@ $vxe-danger-color: #f56c6c !default;
 $vxe-disabled-color: #bfbfbf !default;
 $vxe-primary-disabled-color: #c0c4cc !default;
 
-@import 'vxe-table/styles/index.scss';
+@import 'vxe-table/styles/index';

+ 7 - 8
yudao-ui-admin-vue3/src/components/XTable/src/type.ts

@@ -7,15 +7,14 @@ export type XTableProps<D = any> = VxeGridProps<D> & {
   topActionSlots?: boolean // 是否开启表格内顶部操作栏插槽
   treeConfig?: VxeTablePropTypes.TreeConfig // 树形表单配置
   isList?: boolean // 是否不带分页的list
-  getListApi?: Function
-  getAllListApi?: Function
-  deleteApi?: Function
-  exportListApi?: Function
+  getListApi?: Function // 获取列表接口
+  getAllListApi?: Function // 获取全部数据接口 用于 vxe 导出
+  deleteApi?: Function // 删除接口
+  exportListApi?: Function // 导出接口
   exportName?: string // 导出文件夹名称
-  params?: any
-  pagination?: boolean | VxeGridPropTypes.PagerConfig
-  toolBar?: boolean | VxeGridPropTypes.ToolbarConfig
-  afterFetch?: Function
+  params?: any // 其他查询参数
+  pagination?: boolean | VxeGridPropTypes.PagerConfig // 分页配置参数
+  toolBar?: boolean | VxeGridPropTypes.ToolbarConfig // 右侧工具栏配置参数
 }
 export type XColumns = VxeGridPropTypes.Columns
 

+ 2 - 5
yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue

@@ -8,7 +8,7 @@
           type="warning"
           preIcon="ep:download"
           :title="t('action.export')"
-          @click="handleExport()"
+          @click="exportList('错误数据.xls')"
         />
       </template>
       <template #duration_default="{ row }">
@@ -81,10 +81,7 @@ const handleDetail = (row: ApiErrorLogApi.ApiErrorLogVO) => {
   dialogTitle.value = t('action.detail')
   dialogVisible.value = true
 }
-// 导出
-const handleExport = async () => {
-  await exportList('错误数据.xls')
-}
+
 // 异常处理操作
 const handleProcessClick = (
   row: ApiErrorLogApi.ApiErrorLogVO,

+ 3 - 10
yudao-ui-admin-vue3/src/views/infra/codegen/index.vue

@@ -32,7 +32,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:codegen:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
         <!-- 操作:同步 -->
         <XTextButton
@@ -52,7 +52,7 @@
     </XTable>
   </ContentWrap>
   <!-- 弹窗:导入表 -->
-  <ImportTable ref="importRef" @ok="handleQuery()" />
+  <ImportTable ref="importRef" @ok="reload()" />
   <!-- 弹窗:预览代码 -->
   <Preview ref="previewRef" />
 </template>
@@ -103,17 +103,10 @@ const handleSynchDb = (row: CodegenTableVO) => {
       message.success('同步成功')
     })
 }
+
 // 生成代码操作
 const handleGenTable = async (row: CodegenTableVO) => {
   const res = await CodegenApi.downloadCodegenApi(row.id)
   download.zip(res, 'codegen-' + row.className + '.zip')
 }
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-// 查询操作
-const handleQuery = async () => {
-  await reload()
-}
 </script>

+ 2 - 12
yudao-ui-admin-vue3/src/views/infra/config/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['infra:config:export']"
-          @click="handleExport()"
+          @click="exportList('配置.xls')"
         />
       </template>
       <template #visible_default="{ row }">
@@ -43,7 +43,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:config:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -123,11 +123,6 @@ const handleCreate = () => {
   setDialogTile('create')
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('配置.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -143,11 +138,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue

@@ -31,7 +31,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:data-source-config:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => {
   setDialogTile('detail')
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue

@@ -41,7 +41,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:file-config:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -283,11 +283,6 @@ const handleTest = async (rowId: number) => {
   message.alert('测试通过,上传文件成功!访问地址:' + res)
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async (formEl: FormInstance | undefined) => {
   if (!formEl) return

+ 1 - 6
yudao-ui-admin-vue3/src/views/infra/fileList/index.vue

@@ -21,7 +21,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:file:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -162,11 +162,6 @@ const handleDetail = (row: FileApi.FileVO) => {
   dialogVisible.value = true
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // ========== 复制相关 ==========
 const handleCopy = async (text: string) => {
   const { copy, copied, isSupported } = useClipboard({ source: text })

+ 1 - 5
yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue

@@ -8,7 +8,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['infra:job:export']"
-          @click="handleExport()"
+          @click="exportList('定时任务详情.xls')"
         />
       </template>
       <template #beginTime_default="{ row }">
@@ -77,8 +77,4 @@ const handleDetail = async (row: JobLogApi.JobLogVO) => {
   dialogTitle.value = t('action.detail')
   dialogVisible.value = true
 }
-// 导出操作
-const handleExport = async () => {
-  await exportList('定时任务详情.xls')
-}
 </script>

+ 4 - 13
yudao-ui-admin-vue3/src/views/infra/job/index.vue

@@ -17,14 +17,14 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['infra:job:export']"
-          @click="handleExport()"
+          @click="exportList('定时任务.xls')"
         />
         <XButton
           type="info"
           preIcon="ep:zoom-in"
           title="执行日志"
           v-hasPermi="['infra:job:query']"
-          @click="handleJobLog"
+          @click="handleJobLog()"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -46,7 +46,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['infra:job:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
         <el-dropdown class="p-0.5" v-hasPermi="['infra:job:trigger', 'infra:job:query']">
           <XTextButton :title="t('action.more')" postIcon="ep:arrow-down" />
@@ -179,11 +179,6 @@ const handleCreate = () => {
   setDialogTile('create')
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('定时任务.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -248,10 +243,6 @@ const parseTime = (time) => {
   return time_str
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
 const handleChangeStatus = async (row: JobApi.JobVO) => {
   const text = row.status === InfraJobStatusEnum.STOP ? '开启' : '关闭'
   const status =
@@ -275,7 +266,7 @@ const handleChangeStatus = async (row: JobApi.JobVO) => {
     })
 }
 // 执行日志
-const handleJobLog = (rowId: number) => {
+const handleJobLog = (rowId?: number) => {
   if (rowId) {
     push('/job/job-log?id=' + rowId)
   } else {

+ 2 - 12
yudao-ui-admin-vue3/src/views/pay/app/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['pay:app:export']"
-          @click="handleExport()"
+          @click="exportList('应用信息.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -40,7 +40,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['pay:app:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -115,11 +115,6 @@ const handleCreate = () => {
   setDialogTile('create')
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('应用信息.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -135,11 +130,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 2 - 12
yudao-ui-admin-vue3/src/views/pay/merchant/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['pay:merchant:export']"
-          @click="handleExport()"
+          @click="exportList('商户列表.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -40,7 +40,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['pay:merchant:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -113,11 +113,6 @@ const handleCreate = () => {
   setDialogTile('create')
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('商户列表.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -133,11 +128,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 5
yudao-ui-admin-vue3/src/views/pay/order/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['pay:order:export']"
-          @click="handleExport()"
+          @click="exportList('订单数据.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -72,10 +72,6 @@ const setDialogTile = (type: string) => {
 const handleCreate = () => {
   setDialogTile('create')
 }
-// 导出操作
-const handleExport = async () => {
-  await exportList('订单数据.xls')
-}
 
 // 详情操作
 const handleDetail = async (rowId: number) => {

+ 1 - 6
yudao-ui-admin-vue3/src/views/pay/refund/index.vue

@@ -9,7 +9,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['pay:refund:export']"
-          @click="handleExport()"
+          @click="exportList('退款订单.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -49,11 +49,6 @@ const [registerTable, { exportList }] = useXTable({
   exportListApi: RefundApi.exportRefundApi
 })
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('退款订单.xls')
-}
-
 // ========== CRUD 相关 ==========
 const dialogVisible = ref(false) // 是否显示弹出层
 const detailData = ref() // 详情 Ref

+ 5 - 11
yudao-ui-admin-vue3/src/views/system/dept/index.vue

@@ -1,7 +1,7 @@
 <template>
   <ContentWrap>
     <!-- 列表 -->
-    <XTable @register="registerTable" show-overflow>
+    <XTable ref="xGrid" @register="registerTable" show-overflow>
       <template #toolbar_buttons>
         <!-- 操作:新增 -->
         <XButton
@@ -11,8 +11,8 @@
           v-hasPermi="['system:dept:create']"
           @click="handleCreate()"
         />
-        <XButton title="展开所有" @click="xGrid?.setAllTreeExpand(true)" />
-        <XButton title="关闭所有" @click="xGrid?.clearTreeExpand()" />
+        <XButton title="展开所有" @click="xGrid?.Ref.setAllTreeExpand(true)" />
+        <XButton title="关闭所有" @click="xGrid?.Ref.clearTreeExpand()" />
       </template>
       <template #leaderUserId_default="{ row }">
         <span>{{ userNicknameFormat(row) }}</span>
@@ -30,7 +30,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:dept:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -77,7 +77,6 @@
 <script setup lang="ts" name="Dept">
 import { nextTick, onMounted, ref, unref } from 'vue'
 import { ElSelect, ElTreeSelect, ElOption } from 'element-plus'
-import { VxeGridInstance } from 'vxe-table'
 import { handleTree, defaultProps } from '@/utils/tree'
 import { useI18n } from '@/hooks/web/useI18n'
 import { useMessage } from '@/hooks/web/useMessage'
@@ -90,7 +89,7 @@ import { getListSimpleUsersApi, UserVO } from '@/api/system/user'
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 // 列表相关的变量
-const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref
+const xGrid = ref<any>() // 列表 Grid Ref
 const treeConfig = {
   transform: true,
   rowField: 'id',
@@ -174,11 +173,6 @@ const submitForm = async () => {
   })
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 const userNicknameFormat = (row) => {
   if (!row || !row.leaderUserId) {
     return '未设置'

+ 2 - 11
yudao-ui-admin-vue3/src/views/system/dict/index.vue

@@ -31,7 +31,7 @@
             preIcon="ep:delete"
             :title="t('action.del')"
             v-hasPermi="['system:dict:delete']"
-            @click="handleTypeDelete(row.id)"
+            @click="typeDeleteData(row.id)"
           />
         </template>
       </XTable>
@@ -74,7 +74,7 @@
               v-hasPermi="['system:dict:delete']"
               preIcon="ep:delete"
               :title="t('action.del')"
-              @click="handleDataDelete(row.id)"
+              @click="dataDeleteData(row.id)"
             />
           </template>
         </XTable>
@@ -202,15 +202,6 @@ const setDialogTile = (type: string) => {
   dialogVisible.value = true
 }
 
-// 删除操作
-const handleTypeDelete = async (rowId: number) => {
-  await typeDeleteData(rowId)
-}
-
-const handleDataDelete = async (rowId: number) => {
-  await dataDeleteData(rowId)
-}
-
 // 提交按钮
 const submitTypeForm = async () => {
   const elForm = unref(typeFormRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/errorCode/index.vue

@@ -32,7 +32,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:error-code:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交新增/修改的表单
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/loginlog/index.vue

@@ -8,7 +8,7 @@
           type="warning"
           preIcon="ep:download"
           :title="t('action.export')"
-          @click="handleExport()"
+          @click="exportList('登录列表.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -54,9 +54,4 @@ const handleDetail = async (row: LoginLogVO) => {
   detailData.value = row
   dialogVisible.value = true
 }
-
-// 导出操作
-const handleExport = async () => {
-  await exportList('登录列表.xls')
-}
 </script>

+ 7 - 13
yudao-ui-admin-vue3/src/views/system/menu/index.vue

@@ -1,7 +1,7 @@
 <template>
   <ContentWrap>
     <!-- 列表 -->
-    <XTable @register="registerTable" show-overflow>
+    <XTable ref="xGrid" @register="registerTable" show-overflow>
       <template #toolbar_buttons>
         <!-- 操作:新增 -->
         <XButton
@@ -11,8 +11,8 @@
           v-hasPermi="['system:menu:create']"
           @click="handleCreate()"
         />
-        <XButton title="展开所有" @click="xGrid?.setAllTreeExpand(true)" />
-        <XButton title="关闭所有" @click="xGrid?.clearTreeExpand()" />
+        <XButton title="展开所有" @click="xGrid?.Ref.setAllTreeExpand(true)" />
+        <XButton title="关闭所有" @click="xGrid?.Ref.clearTreeExpand()" />
       </template>
       <template #name_default="{ row }">
         <Icon :icon="row.icon" />
@@ -31,7 +31,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:menu:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -194,7 +194,6 @@ import {
 } from 'element-plus'
 import { Tooltip } from '@/components/Tooltip'
 import { IconSelect } from '@/components/Icon'
-import { VxeGridInstance } from 'vxe-table'
 // 业务相关的 import
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants'
@@ -206,9 +205,10 @@ import { useXTable } from '@/hooks/web/useXTable'
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 const { wsCache } = useCache()
+
+const xGrid = ref<any>(null)
+
 // 列表相关的变量
-// 列表相关的变量
-const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref
 const treeConfig = {
   transform: true,
   rowField: 'id',
@@ -334,10 +334,4 @@ const submitForm = async () => {
 const isExternal = (path: string) => {
   return /^(https?:|mailto:|tel:)/.test(path)
 }
-
-// ========== 删除 ==========
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
 </script>

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/notice/index.vue

@@ -32,7 +32,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:notice:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -126,11 +126,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交新增/修改的表单
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue

@@ -48,7 +48,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:oauth2-client:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -184,11 +184,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交新增/修改的表单
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 1
yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue

@@ -5,7 +5,7 @@
       <template #actionbtns_default="{ row }">
         <!-- 操作:详情 -->
         <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" />
-        <!-- 操作:删除 -->
+        <!-- 操作:登出 -->
         <XTextButton
           preIcon="ep:delete"
           :title="t('action.logout')"

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/operatelog/index.vue

@@ -9,7 +9,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['system:operate-log:export']"
-          @click="handleExport()"
+          @click="exportList('操作日志.xls')"
         />
       </template>
       <template #duration="{ row }">
@@ -68,9 +68,4 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => {
   detailData.value = row
   dialogVisible.value = true
 }
-
-// 导出操作
-const handleExport = async () => {
-  await exportList('操作日志.xls')
-}
 </script>

+ 2 - 12
yudao-ui-admin-vue3/src/views/system/post/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['system:post:export']"
-          @click="handleExport()"
+          @click="exportList('岗位列表.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -40,7 +40,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:post:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -117,11 +117,6 @@ const handleCreate = () => {
   modelLoading.value = false
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('岗位列表.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -139,11 +134,6 @@ const handleDetail = async (rowId: number) => {
   modelLoading.value = false
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交新增/修改的表单
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/role/index.vue

@@ -46,7 +46,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:role:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -217,11 +217,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 2 - 12
yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue

@@ -17,7 +17,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['system:sensitive-word:export']"
-          @click="handleExport()"
+          @click="exportList('敏感词数据.xls')"
         />
       </template>
       <template #tags_default="{ row }">
@@ -50,7 +50,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:sensitive-word:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -147,11 +147,6 @@ const handleCreate = () => {
   setDialogTile('create')
 }
 
-// 导出操作
-const handleExport = async () => {
-  await exportList('敏感词数据.xls')
-}
-
 // 修改操作
 const handleUpdate = async (rowId: number) => {
   setDialogTile('update')
@@ -167,11 +162,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue

@@ -32,7 +32,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:sms-channel:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -123,11 +123,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue

@@ -8,7 +8,7 @@
           type="warning"
           preIcon="ep:download"
           :title="t('action.export')"
-          @click="handleExport()"
+          @click="exportList('短信日志.xls')"
         />
       </template>
       <template #actionbtns_default="{ row }">
@@ -57,9 +57,4 @@ const handleDetail = (row: SmsLoglApi.SmsLogVO) => {
   detailData.value = row
   dialogVisible.value = true
 }
-
-// 导出操作
-const handleExport = async () => {
-  await exportList('短信日志.xls')
-}
 </script>

+ 1 - 6
yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue

@@ -38,7 +38,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:sms-template:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -166,11 +166,6 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 2 - 12
yudao-ui-admin-vue3/src/views/system/tenant/index.vue

@@ -16,7 +16,7 @@
           preIcon="ep:download"
           :title="t('action.export')"
           v-hasPermi="['system:tenant:export']"
-          @click="handleExport()"
+          @click="exportList('租户列表.xls')"
         />
       </template>
       <template #accountCount_default="{ row }">
@@ -46,7 +46,7 @@
           preIcon="ep:delete"
           :title="t('action.del')"
           v-hasPermi="['system:tenant:delete']"
-          @click="handleDelete(row.id)"
+          @click="deleteData(row.id)"
         />
       </template>
     </XTable>
@@ -149,16 +149,6 @@ const handleDetail = async (rowId: number) => {
   setDialogTile('detail')
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
-// 导出操作
-const handleExport = async () => {
-  await exportList('租户列表.xls')
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()

+ 6 - 7
yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue

@@ -12,7 +12,7 @@
       </template>
       <template #actionbtns_default="{ row }">
         <XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" />
-        <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="handleDelete(row.id)" />
+        <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="deleteData(row.id)" />
       </template>
     </XTable>
   </ContentWrap>
@@ -132,11 +132,6 @@ const handleUpdate = async (rowId: number) => {
   unref(treeRef)?.setCheckedKeys(res.menuIds)
 }
 
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
-
 // 提交按钮
 const submitForm = async () => {
   const elForm = unref(formRef)?.getElFormRef()
@@ -147,7 +142,11 @@ const submitForm = async () => {
       // 提交请求
       try {
         const data = unref(formRef)?.formModel as TenantPackageApi.TenantPackageVO
-        data.menuIds = treeRef.value!.getCheckedKeys(false) as number[]
+        data.menuIds = [
+          ...(treeRef.value!.getCheckedKeys(false) as unknown as Array<number>),
+          ...(treeRef.value!.getHalfCheckedKeys() as unknown as Array<number>)
+        ]
+        console.info(data.menuIds)
         if (actionType.value === 'create') {
           await TenantPackageApi.createTenantPackageTypeApi(data)
           message.success(t('common.createSuccess'))

+ 2 - 5
yudao-ui-admin-vue3/src/views/system/user/index.vue

@@ -112,7 +112,7 @@
                     preIcon="ep:delete"
                     :title="t('action.del')"
                     v-hasPermi="['system:user:delete']"
-                    @click="handleDelete(row.id)"
+                    @click="deleteData(row.id)"
                   />
                 </el-dropdown-item>
               </el-dropdown-menu>
@@ -405,10 +405,7 @@ const handleDetail = async (rowId: number) => {
   detailData.value = res
   await setDialogTile('detail')
 }
-// 删除操作
-const handleDelete = async (rowId: number) => {
-  await deleteData(rowId)
-}
+
 // 提交按钮
 const submitForm = async () => {
   loading.value = true