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