1111
This commit is contained in:
@@ -2,13 +2,13 @@
|
||||
<div class="table-box">
|
||||
<ProTable
|
||||
ref="templateTable"
|
||||
title="合同模板列表"
|
||||
title="签署材料模板列表"
|
||||
:columns="templateColumns"
|
||||
:request-api="onboardingTaskApi.templatePage"
|
||||
>
|
||||
<template #tableHeader>
|
||||
<el-button type="primary" icon="Plus" @click="openTemplateCreate">
|
||||
新增合同模板
|
||||
新增签署材料模板
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
@@ -60,10 +60,10 @@
|
||||
</template>
|
||||
</ProTable>
|
||||
|
||||
<!-- 新增 / 编辑合同模板基础信息弹窗 -->
|
||||
<!-- 新增 / 编辑签署材料模板基础信息弹窗 -->
|
||||
<el-dialog
|
||||
v-model="templateVisible"
|
||||
:title="templateEditing ? '编辑合同模板' : '新增合同模板'"
|
||||
:title="templateEditing ? '编辑签署材料模板' : '新增签署材料模板'"
|
||||
width="720px"
|
||||
destroy-on-close
|
||||
append-to-body
|
||||
@@ -112,7 +112,7 @@
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
class="w-full"
|
||||
placeholder="请选择该合同可适用的岗位"
|
||||
placeholder="请选择该签署材料可适用的岗位"
|
||||
:disabled="!templateForm.departmentId"
|
||||
>
|
||||
<el-option
|
||||
@@ -132,7 +132,7 @@
|
||||
<el-input v-model="templateForm.templateName" placeholder="如:标准全职劳动合同" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="合同类型" required>
|
||||
<el-form-item label="材料类型" required>
|
||||
<el-input v-model="templateForm.contractType" placeholder="如:劳动合同、保密协议、竞业协议" />
|
||||
</el-form-item>
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="模板说明">
|
||||
<el-input v-model="templateForm.description" type="textarea" :rows="3" placeholder="合同模板适用说明或签署注意事项" />
|
||||
<el-input v-model="templateForm.description" type="textarea" :rows="3" placeholder="签署材料模板适用说明或签署注意事项" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -154,10 +154,10 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 一站式合同版本与配置大抽屉 -->
|
||||
<!-- 一站式签署材料版本与配置大抽屉 -->
|
||||
<el-drawer
|
||||
v-model="drawerVisible"
|
||||
:title="`合同模板管理 · ${selectedTemplate?.templateName || ''}`"
|
||||
:title="`签署材料模板管理 · ${selectedTemplate?.templateName || ''}`"
|
||||
size="1150px"
|
||||
destroy-on-close
|
||||
>
|
||||
@@ -188,7 +188,7 @@
|
||||
上传新版本 DOCX
|
||||
</el-button>
|
||||
<span class="pane-tip-text">
|
||||
支持多版本迭代。启用某个版本后,该版本的 DOCX 将用于生成新入职员工的合同。
|
||||
支持多版本迭代。启用某个版本后,该版本的 DOCX 将用于生成新入职员工的签署材料。
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
</template>
|
||||
</el-drawer>
|
||||
|
||||
<!-- 上传合同 DOCX 版本弹窗 -->
|
||||
<!-- 上传签署材料 DOCX 版本弹窗 -->
|
||||
<el-dialog
|
||||
v-model="versionVisible"
|
||||
title="上传新版本 DOCX"
|
||||
@@ -334,7 +334,7 @@
|
||||
<!-- 变量配置弹窗 -->
|
||||
<el-dialog
|
||||
v-model="variablesVisible"
|
||||
:title="`合同变量配置 · 版本 ${selectedVersion?.versionNo || ''}`"
|
||||
:title="`签署材料变量配置 · 版本 ${selectedVersion?.versionNo || ''}`"
|
||||
width="1220px"
|
||||
top="4vh"
|
||||
destroy-on-close
|
||||
@@ -353,7 +353,7 @@
|
||||
<el-tabs v-model="variableTab" type="card" class="variable-filter-tabs">
|
||||
<el-tab-pane :label="`全部变量 (${variableCounts.all})`" name="all" />
|
||||
<el-tab-pane :label="`员工填写 (${variableCounts.employee})`" name="employee" />
|
||||
<el-tab-pane :label="`人事合同参数 (${variableCounts.hr})`" name="hr" />
|
||||
<el-tab-pane :label="`人事预设参数 (${variableCounts.hr})`" name="hr" />
|
||||
<el-tab-pane :label="`公司信息 (${variableCounts.company})`" name="company" />
|
||||
<el-tab-pane :label="`系统预置 (${variableCounts.system})`" name="system" />
|
||||
</el-tabs>
|
||||
@@ -439,7 +439,7 @@
|
||||
<el-select v-model="variableForm.variableType" class="w-full">
|
||||
<el-option label="员工填写(从新员工基本信息/动态字段读取)" value="employee" />
|
||||
<el-option label="公司信息(从公司档案自动读取)" value="company" />
|
||||
<el-option label="合同/人事填写(人事发起时录入)" value="contract" />
|
||||
<el-option label="人事预设填写(人事发起时录入)" value="contract" />
|
||||
<el-option label="系统生成(签署日期等)" value="system" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -630,7 +630,7 @@ const templateColumns: ColumnProps<OnboardingContractTemplate>[] = [
|
||||
},
|
||||
{ prop: "templateCode", label: "模板编码", minWidth: 160, search: { el: "input" } },
|
||||
{ prop: "templateName", label: "模板名称", minWidth: 200, search: { el: "input" } },
|
||||
{ prop: "contractType", label: "合同类型", width: 140, search: { el: "input" } },
|
||||
{ prop: "contractType", label: "材料类型", width: 140, search: { el: "input" } },
|
||||
{
|
||||
prop: "status",
|
||||
label: "状态",
|
||||
@@ -738,7 +738,7 @@ async function saveTemplate() {
|
||||
|| !templateForm.templateName
|
||||
|| !templateForm.contractType
|
||||
) {
|
||||
return ElMessage.warning("请完整填写公司、部门、适用岗位及合同模板基本信息");
|
||||
return ElMessage.warning("请完整填写公司、部门、适用岗位及签署材料模板基本信息");
|
||||
}
|
||||
await onboardingTaskApi.saveTemplate(templateForm, templateEditing.value);
|
||||
templateVisible.value = false;
|
||||
@@ -747,7 +747,7 @@ async function saveTemplate() {
|
||||
}
|
||||
|
||||
async function removeTemplate(row: OnboardingContractTemplate) {
|
||||
await ElMessageBox.confirm(`确认删除合同模板“${row.templateName}”?`, "删除确认", { type: "warning" });
|
||||
await ElMessageBox.confirm(`确认删除签署材料模板“${row.templateName}”?`, "删除确认", { type: "warning" });
|
||||
await onboardingTaskApi.deleteTemplate([row.id]);
|
||||
templateTable.value?.refresh();
|
||||
ElMessage.success("删除成功");
|
||||
@@ -760,7 +760,7 @@ function openVersionCreate() {
|
||||
|
||||
function beforeDocxUpload(file: File) {
|
||||
if (!file.name.toLowerCase().endsWith(".docx")) {
|
||||
ElMessage.error("合同模板仅支持 DOCX 文件");
|
||||
ElMessage.error("签署材料模板仅支持 DOCX 文件");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -796,7 +796,7 @@ async function changeVersionStatus(row: OnboardingContractVersion, status: strin
|
||||
}
|
||||
|
||||
async function removeVersion(row: OnboardingContractVersion) {
|
||||
await ElMessageBox.confirm(`确认删除合同版本“${row.versionNo}”?此操作不可撤销。`, "删除确认", { type: "warning" });
|
||||
await ElMessageBox.confirm(`确认删除签署材料版本“${row.versionNo}”?此操作不可撤销。`, "删除确认", { type: "warning" });
|
||||
await onboardingTaskApi.deleteVersion(row.id);
|
||||
await loadVersions();
|
||||
ElMessage.success("版本删除成功");
|
||||
@@ -819,7 +819,7 @@ async function downloadDocx(fileId?: number) {
|
||||
const encodedName =
|
||||
disposition.match(/filename\*=UTF-8\'\'([^;]+)/i)?.[1] ||
|
||||
disposition.match(/filename="?([^";]+)"?/i)?.[1];
|
||||
let fileName = "合同模板.docx";
|
||||
let fileName = "签署材料模板.docx";
|
||||
if (encodedName) {
|
||||
try {
|
||||
fileName = decodeURIComponent(encodedName.replace(/\+/g, "%20"));
|
||||
@@ -870,7 +870,7 @@ function variableTypeText(type: string) {
|
||||
const map: Record<string, string> = {
|
||||
employee: "员工填写",
|
||||
company: "公司信息",
|
||||
contract: "人事合同参数",
|
||||
contract: "人事预设参数",
|
||||
system: "系统自动",
|
||||
unresolved: "待确认"
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user