diff --git a/src/api/modules/biz/onboarding.ts b/src/api/modules/biz/onboarding.ts
index ab4c00b..571dad8 100644
--- a/src/api/modules/biz/onboarding.ts
+++ b/src/api/modules/biz/onboarding.ts
@@ -217,6 +217,10 @@ export const onboardingTaskApi = {
return taskHttp.post("revoke", params);
},
+ deleteTask(id: number) {
+ return taskHttp.post("delete", { id });
+ },
+
reviewMaterial(params: {
taskMaterialId: number;
reviewStatus: string;
@@ -390,6 +394,13 @@ export const onboardingTaskApi = {
);
},
+ deleteVersion(id: number) {
+ return moduleRequest("/biz/onboarding/contract-template/").post(
+ "version/delete",
+ { id }
+ );
+ },
+
variablePage(params: {
templateVersionId: number;
pageNum: number;
diff --git a/src/views/biz/onboarding/contract/index.vue b/src/views/biz/onboarding/contract/index.vue
index 1a2e097..f99d21a 100644
--- a/src/views/biz/onboarding/contract/index.vue
+++ b/src/views/biz/onboarding/contract/index.vue
@@ -174,6 +174,15 @@
>
停用
+
+
+ 删除
+
@@ -565,6 +574,13 @@ async function changeVersionStatus(row: OnboardingContractVersion, status: strin
ElMessage.success(`版本状态已更新为:${versionText(status)}`);
}
+async function removeVersion(row: OnboardingContractVersion) {
+ await ElMessageBox.confirm(`确认删除合同版本“${row.versionNo}”?此操作不可撤销。`, "删除确认", { type: "warning" });
+ await onboardingTaskApi.deleteVersion(row.id);
+ await loadVersions();
+ ElMessage.success("版本删除成功");
+}
+
function downloadDocx(fileId?: number) {
if (!fileId) return ElMessage.warning("暂无 DOCX 源文件");
window.open(`/api/sys/dev/file/download?id=${fileId}`, "_blank");
diff --git a/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue b/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue
index 9aa6b18..0bd79ea 100644
--- a/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue
+++ b/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue
@@ -356,13 +356,15 @@ function toggleMaterial(materialTypeId: number, selected: boolean) {
}
}
-function openCreate() {
+async function openCreate() {
Object.assign(form, emptyForm());
positions.value = [];
+ await loadBaseData();
visible.value = true;
}
async function openEdit(row: OnboardingTemplate) {
+ await loadBaseData();
const { data } = await onboardingTaskApi.onboardingTemplateDetail({ id: row.id! });
Object.assign(form, emptyForm(), data);
await loadPositions(form.companyId);
diff --git a/src/views/biz/onboarding/task/index.vue b/src/views/biz/onboarding/task/index.vue
index 4d64808..28f3106 100644
--- a/src/views/biz/onboarding/task/index.vue
+++ b/src/views/biz/onboarding/task/index.vue
@@ -106,6 +106,16 @@
>
撤销
+
+
+ 删除
+
@@ -495,6 +505,14 @@
>
归档该任务
+
+ 删除该任务
+
关闭
@@ -1012,6 +1030,18 @@ async function revoke(row: OnboardingTask) {
proTable.value?.refresh();
}
+async function removeTask(row: OnboardingTask) {
+ await ElMessageBox.confirm(
+ `确认永久删除已撤销的入职任务【${row.taskNo}】吗?此操作将清理该任务全部数据,且不可恢复。`,
+ "删除任务确认",
+ { type: "error", confirmButtonText: "确定删除", cancelButtonText: "取消" }
+ );
+ await onboardingTaskApi.deleteTask(row.id);
+ ElMessage.success("入职任务已删除");
+ detailVisible.value = false;
+ proTable.value?.refresh();
+}
+
onMounted(loadCompanies);