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

Merge pull request  from xingyu/dev
This commit is contained in:
芋道源码 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
README.md
yudao-dependencies
yudao-example
yudao-sso-demo-by-code
yudao-sso-demo-by-password
yudao-framework/yudao-spring-boot-starter-biz-pay
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views
yudao-ui-admin-vue3
README.mdpackage.jsonpnpm-lock.yaml
src
components/XTable/src
views
infra
apiErrorLog
codegen
config
dataSourceConfig
fileConfig
fileList
job
pay
system
dept
dict
errorCode
loginlog
menu
notice
oauth2
operatelog
post
role
sensitiveWord
sms
smsChannel
smsLog
smsTemplate
tenant
tenantPackage
user

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+ | |
| [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 |

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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()

View File

@ -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 |

View File

@ -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": {

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-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 // 是否开启表格内顶部操作栏插槽
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

View File

@ -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,

View File

@ -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>

View File

@ -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()

View File

@ -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()

View File

@ -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

View File

@ -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 })

View File

@ -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>

View File

@ -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 {

View File

@ -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()

View File

@ -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()

View File

@ -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) => {

View File

@ -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

View File

@ -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 '未设置'

View File

@ -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()

View File

@ -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()

View File

@ -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>

View File

@ -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>

View File

@ -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()

View File

@ -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()

View File

@ -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')"

View File

@ -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>

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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>

View File

@ -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()

View File

@ -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()

View File

@ -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'))

View File

@ -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