批量更新功能

This commit is contained in:
2026-09-14 16:15:44 +08:00
parent 6f106e43af
commit a26c98b92b
79 changed files with 4529 additions and 724 deletions
+20 -18
View File
@@ -81,11 +81,9 @@
<el-table-column label="下次联系时间" width="160" align="center">
<template #default="{ row }">{{ formatDateTime(row.next_contact_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="220" align="center" fixed="right">
<el-table-column label="操作" width="100" align="center" fixed="right">
<template #default="{ row }">
<el-button link type="primary" size="small" :disabled="row.locked === 1" @click="openEdit(row)">
编辑
</el-button>
<!-- 编辑 / 删除已收口到「线索详情」内,列表只保留转化 -->
<el-button
link
type="warning"
@@ -95,15 +93,6 @@
>
转化
</el-button>
<el-button
link
type="danger"
size="small"
:disabled="row.locked === 1 || row.status === 2"
@click="handleDelete(row)"
>
删除
</el-button>
</template>
</el-table-column>
<template #empty><el-empty description="暂无线索" :image-size="80" /></template>
@@ -128,6 +117,8 @@
v-model:visible="detailVisible"
:clue="currentEditData"
@refresh="fetchList"
@edit="handleDetailEdit"
@delete="handleDetailDelete"
/>
</div>
</template>
@@ -209,11 +200,6 @@ function openCreate() {
editVisible.value = true;
}
function openEdit(row) {
currentEditData.value = { ...row };
editVisible.value = true;
}
function openConvert(row) {
currentEditData.value = { ...row };
convertVisible.value = true;
@@ -229,6 +215,20 @@ function handleConvertSuccess() {
ElMessage.success("线索已转化,可在商机管理中继续跟进");
}
/** 详情内编辑:收起详情后打开编辑弹窗(详情数据即当前行) */
function handleDetailEdit() {
detailVisible.value = false;
editVisible.value = true;
}
/** 详情内删除:复用删除逻辑,删除成功后收起详情 */
async function handleDetailDelete() {
const row = currentEditData.value;
if (!row) return;
if (await handleDelete(row)) detailVisible.value = false;
}
/** 删除线索:返回是否删除成功,供详情内调用判断是否需要收起抽屉 */
async function handleDelete(row) {
try {
await ElMessageBox.confirm(`确定删除线索「${row.clue_name}」吗?删除后不可恢复。`, "删除确认", {
@@ -237,8 +237,10 @@ async function handleDelete(row) {
await deleteClue(row.id);
ElMessage.success("删除成功");
fetchList();
return true;
} catch (e) {
if (e !== "cancel") ElMessage.error(e.message || "删除失败");
return false;
}
}
</script>