feat(generator): 优化删除功能提示信息并添加表格引用

- 为el-table组件添加ref引用便于获取表格实例
- 新增${businessName}TableRef变量定义
- 重构handleDelete方法以支持更灵活的删除确认提示
- 根据表格列动态获取删除项的标识字段和值
- 支持单行和多行选择删除时的差异化提示信息
- 保留原有的删除逻辑与成功提示及列表刷新功能
This commit is contained in:
sl 2025-12-17 20:30:00 +08:00
parent f20a0c4342
commit b8f5243209

View File

@ -82,7 +82,7 @@
</el-row>
</template>
<el-table v-loading="loading" border :data="${businessName}List" @selection-change="handleSelectionChange">
<el-table ref="${businessName}TableRef" v-loading="loading" border :data="${businessName}List" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
#foreach($column in $columns)
#set($javaField=$column.javaField)
@ -275,6 +275,7 @@ const dateRange${AttrName} = ref<[DateModelType, DateModelType]>(['', '']);
const queryFormRef = ref<ElFormInstance>();
const ${businessName}FormRef = ref<ElFormInstance>();
const ${businessName}TableRef = ref<ElTableInstance>();
const dialog = reactive<DialogOption>({
visible: false,
@ -439,11 +440,33 @@ const submitForm = () => {
/** 删除按钮操作 */
const handleDelete = async (row?: ${BusinessName}VO) => {
const _${pkColumn.javaField}s = row?.${pkColumn.javaField} || ids.value;
await proxy?.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').finally(() => loading.value = false);
await del${BusinessName}(_${pkColumn.javaField}s);
proxy?.#[[$modal]]#.msgSuccess("删除成功");
await getList();
// 获取表格的数据列的首列
const columns = (${businessName}TableRef.value?.columns || []) as any[];
const dataColumns = columns.filter((col) => col.type !== 'selection' && col.type !== 'index');
if (dataColumns.length <= 0) {
return;
}
const label = dataColumns[0].label;
const fieldName = dataColumns[0].property;
let rowsData: string;
let num = 1;
if (row) {
rowsData = row[fieldName];
} else {
rowsData = ${businessName}TableRef.value
.getSelectionRows()
.map((item: ${BusinessName}VO) => item[fieldName])
.join(',');
num = ${businessName}TableRef.value.getSelectionRows().length;
}
await proxy?.#[[$modal]]#.confirm('是否确认删除【' + label + '】为【' + rowsData + '】的【' + num + '】条数据项?').finally(() => (loading.value = false));
const _${pkColumn.javaField}s = row?.${pkColumn.javaField} || ids.value;
await del${BusinessName}(_${pkColumn.javaField}s);
proxy?.#[[$modal]]#.msgSuccess('删除成功');
await getList();
}
/** 导出按钮操作 */