feat(ems): 添加通用一键清空功能
- 新增 CommonClearController、CommonClearService、CommonClearMapper 和 XML 文件 - 实现了通用的数据清空接口和后端逻辑 - 在前端多个页面添加了一键清空按钮和相关配置 - 编写了清空功能的快速应用指南文档boardTest
parent
b51eac9bac
commit
943558fac3
@ -0,0 +1,96 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 清空相关配置,需要在组件中设置
|
||||
clearAllConfig: {
|
||||
moduleKey: '', // 业务模块标识,如:'dailyFaultRecord'
|
||||
entityName: '', // 实体名称,如:'日常故障记录'
|
||||
permission: '' // 权限标识,如:'ems/info:dailyFaultRecord:remove'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 一键全部清空数据
|
||||
*/
|
||||
async handleClearAll() {
|
||||
try {
|
||||
// 配置验证
|
||||
if (!this.clearAllConfig.moduleKey) {
|
||||
this.$modal.msgError('清空功能配置错误:未设置模块标识');
|
||||
return;
|
||||
}
|
||||
|
||||
// 第一次确认
|
||||
await this.$confirm(
|
||||
`确定要清空所有${this.clearAllConfig.entityName}数据吗?此操作将删除所有记录!`,
|
||||
'危险操作警告',
|
||||
{
|
||||
confirmButtonText: '继续',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
confirmButtonClass: 'el-button--danger'
|
||||
}
|
||||
);
|
||||
|
||||
// 第二次确认
|
||||
await this.$confirm(
|
||||
`再次确认:您真的要删除所有${this.clearAllConfig.entityName}数据吗?\n此操作不可撤销!`,
|
||||
'二次确认',
|
||||
{
|
||||
confirmButtonText: '确认删除',
|
||||
cancelButtonText: '取消',
|
||||
type: 'error',
|
||||
confirmButtonClass: 'el-button--danger'
|
||||
}
|
||||
);
|
||||
|
||||
// 第三次确认 - 输入确认
|
||||
const { value } = await this.$prompt(
|
||||
`最后确认:请输入"确认清空"来完成操作`,
|
||||
'三次确认',
|
||||
{
|
||||
confirmButtonText: '执行清空',
|
||||
cancelButtonText: '取消',
|
||||
inputPattern: /^确认清空$/,
|
||||
inputErrorMessage: '请输入"确认清空"',
|
||||
inputPlaceholder: '请输入:确认清空',
|
||||
type: 'error',
|
||||
confirmButtonClass: 'el-button--danger'
|
||||
}
|
||||
);
|
||||
|
||||
if (value === '确认清空') {
|
||||
// 执行清空操作
|
||||
await this.executeClearAll();
|
||||
}
|
||||
} catch (error) {
|
||||
// 用户取消操作
|
||||
if (error !== 'cancel' && error !== 'close') {
|
||||
this.$modal.msgError('清空操作失败:' + error.message);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 执行清空操作
|
||||
* 调用通用的后端接口
|
||||
*/
|
||||
async executeClearAll() {
|
||||
try {
|
||||
const response = await request({
|
||||
url: `/ems/common/clearAll/${this.clearAllConfig.moduleKey}`,
|
||||
method: 'delete'
|
||||
});
|
||||
|
||||
this.$modal.msgSuccess(response.msg || `${this.clearAllConfig.entityName}数据已全部清空`);
|
||||
// 刷新列表
|
||||
this.getList && this.getList();
|
||||
} catch (error) {
|
||||
this.$modal.msgError('清空操作失败:' + (error.message || error));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue