!351 升级最新依赖 && 修复树形 全部展开 全部关闭

Merge pull request !351 from xingyu/dev
pull/2/head
芋道源码 2023-01-04 14:26:01 +00:00 committed by Gitee
commit 661a20dc93
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
41 changed files with 1039 additions and 1835 deletions

View File

@ -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+ | | | [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) | | [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) | | [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.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?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 | | | [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) | | [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 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) | | [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) | | [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) | | [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) | | [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) | | [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 | | [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 | | [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.28 |
| [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 | | [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 |
| [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 | | [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 |

View File

@ -16,16 +16,16 @@
<properties> <properties>
<revision>1.6.5-snapshot</revision> <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 相关 --> <!-- Web 相关 -->
<knife4j.version>3.0.3</knife4j.version> <knife4j.version>3.0.3</knife4j.version>
<swagger-annotations.version>1.6.8</swagger-annotations.version> <swagger-annotations.version>1.6.8</swagger-annotations.version>
<servlet.versoin>2.5</servlet.versoin> <servlet.versoin>2.5</servlet.versoin>
<!-- DB 相关 --> <!-- DB 相关 -->
<druid.version>1.2.15</druid.version> <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> <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> <redisson.version>3.18.0</redisson.version>
<!-- 服务保障相关 --> <!-- 服务保障相关 -->
<lock4j.version>2.2.3</lock4j.version> <lock4j.version>2.2.3</lock4j.version>
@ -37,14 +37,14 @@
<!-- Test 测试相关 --> <!-- Test 测试相关 -->
<podam.version>7.2.11.RELEASE</podam.version> <podam.version>7.2.11.RELEASE</podam.version>
<jedis-mock.version>1.0.5</jedis-mock.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 工作流相关 --> <!-- Bpm 工作流相关 -->
<flowable.version>6.7.2</flowable.version> <flowable.version>6.8.0</flowable.version>
<!-- 工具类相关 --> <!-- 工具类相关 -->
<lombok.version>1.18.24</lombok.version> <lombok.version>1.18.24</lombok.version>
<mapstruct.version>1.5.3.Final</mapstruct.version> <mapstruct.version>1.5.3.Final</mapstruct.version>
<hutool.version>5.8.10</hutool.version> <hutool.version>5.8.11</hutool.version>
<easyexcel.verion>3.1.3</easyexcel.verion> <easyexcel.verion>3.1.4</easyexcel.verion>
<velocity.version>2.3</velocity.version> <velocity.version>2.3</velocity.version>
<screw.version>1.0.5</screw.version> <screw.version>1.0.5</screw.version>
<fastjson.version>1.2.83</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
@ -55,7 +55,7 @@
<jsch.version>0.1.55</jsch.version> <jsch.version>0.1.55</jsch.version>
<tika-core.version>2.6.0</tika-core.version> <tika-core.version>2.6.0</tika-core.version>
<aj-captcha.version>1.3.0</aj-captcha.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> <ip2region.version>2.6.6</ip2region.version>
<!-- 三方云服务相关 --> <!-- 三方云服务相关 -->
<okio.version>3.0.0</okio.version> <okio.version>3.0.0</okio.version>
@ -63,7 +63,7 @@
<minio.version>8.4.6</minio.version> <minio.version>8.4.6</minio.version>
<aliyun-java-sdk-core.version>4.6.3</aliyun-java-sdk-core.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> <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> <justauth.version>1.4.0</justauth.version>
<jimureport.version>1.5.6</jimureport.version> <jimureport.version>1.5.6</jimureport.version>
<xercesImpl.version>2.12.2</xercesImpl.version> <xercesImpl.version>2.12.2</xercesImpl.version>

View File

@ -21,7 +21,7 @@
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <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> </properties>
<dependencyManagement> <dependencyManagement>
@ -52,7 +52,7 @@
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.8.10</version> <version>5.8.11</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -21,7 +21,7 @@
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <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> </properties>
<dependencyManagement> <dependencyManagement>
@ -52,7 +52,7 @@
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.8.10</version> <version>5.8.11</version>
</dependency> </dependency>
<dependency> <dependency>

View File

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

View File

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

View File

@ -29,11 +29,11 @@
| 框架 | 说明 | 版本 | | 框架 | 说明 | 版本 |
| --- | --- |--------| | --- | --- |--------|
| [Vue](https://staging-cn.vuejs.org/) | vue 框架 | 3.2.45 | | [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 | | [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.28 |
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 | | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 |
| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 | | [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 | | [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.7 |
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 |
| [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 | | [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 |

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,7 +12,7 @@
</template> </template>
<template #actionbtns_default="{ row }"> <template #actionbtns_default="{ row }">
<XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" /> <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> </template>
</XTable> </XTable>
</ContentWrap> </ContentWrap>
@ -132,11 +132,6 @@ const handleUpdate = async (rowId: number) => {
unref(treeRef)?.setCheckedKeys(res.menuIds) unref(treeRef)?.setCheckedKeys(res.menuIds)
} }
//
const handleDelete = async (rowId: number) => {
await deleteData(rowId)
}
// //
const submitForm = async () => { const submitForm = async () => {
const elForm = unref(formRef)?.getElFormRef() const elForm = unref(formRef)?.getElFormRef()
@ -147,7 +142,11 @@ const submitForm = async () => {
// //
try { try {
const data = unref(formRef)?.formModel as TenantPackageApi.TenantPackageVO 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') { if (actionType.value === 'create') {
await TenantPackageApi.createTenantPackageTypeApi(data) await TenantPackageApi.createTenantPackageTypeApi(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))

View File

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