1111
This commit is contained in:
@@ -64,7 +64,7 @@
|
||||
icon="Setting"
|
||||
@click="openContractVariables(scope.row)"
|
||||
>
|
||||
合同参数
|
||||
签署材料参数
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
@@ -214,12 +214,12 @@
|
||||
<!-- 2. 合同人事参数卡片 -->
|
||||
<div v-if="form.contractVariables.length" class="form-card-section">
|
||||
<div class="section-title">
|
||||
<span class="title-text">合同人事参数预设</span>
|
||||
<span class="title-tip">以下参数将自动替换进 DOCX 合同中,请在向员工发送链接前核对填写</span>
|
||||
<span class="title-text">签署材料人事参数预设</span>
|
||||
<span class="title-tip">以下参数将自动替换进 DOCX 签署材料中,请在向员工发送链接前核对填写</span>
|
||||
</div>
|
||||
|
||||
<el-alert
|
||||
title="提示:此处填写的内容将作为合同正式条款,如薪资、合同起止日期、试用期等,请谨慎填写。"
|
||||
title="提示:此处填写的内容将作为签署材料正式条款,如薪资、协议起止日期、试用期等,请谨慎填写。"
|
||||
type="warning"
|
||||
:closable="false"
|
||||
show-icon
|
||||
@@ -292,7 +292,7 @@
|
||||
|
||||
<!-- 任务创建成功与分享弹窗 -->
|
||||
<el-dialog v-model="shareVisible" title="入职任务已创建" width="560px" destroy-on-close>
|
||||
<el-result icon="success" title="任务创建成功!" sub-title="请先确认合同人事参数,再将专属链接发送给候选人">
|
||||
<el-result icon="success" title="任务创建成功!" sub-title="请先确认签署材料人事参数,再将专属链接发送给候选人">
|
||||
<template #extra>
|
||||
<div class="share-box">
|
||||
<div class="share-item">
|
||||
@@ -510,8 +510,8 @@
|
||||
<el-card v-if="detailCustomVars.length" shadow="never" class="mb-3 border-card">
|
||||
<template #header>
|
||||
<div class="card-header-flex">
|
||||
<span class="font-bold card-title-text">合同专属补充信息</span>
|
||||
<el-tag size="small" type="warning">合同专有项</el-tag>
|
||||
<span class="font-bold card-title-text">签署材料专属补充信息</span>
|
||||
<el-tag size="small" type="warning">签署材料专有项</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
<el-descriptions :column="2" border size="default">
|
||||
@@ -611,8 +611,8 @@
|
||||
</el-tab-pane>
|
||||
|
||||
<!-- 3. 合同管理与归档 -->
|
||||
<el-tab-pane label="入职合同列表" name="contracts">
|
||||
<el-empty v-if="!detail.contracts || !detail.contracts.length" description="暂无关联合同" />
|
||||
<el-tab-pane label="入职签署材料列表" name="contracts">
|
||||
<el-empty v-if="!detail.contracts || !detail.contracts.length" description="暂无关联签署材料" />
|
||||
<div v-else class="contracts-panel">
|
||||
<div v-for="item in detail.contracts" :key="item.id" class="contract-card-item">
|
||||
<div class="contract-left">
|
||||
@@ -634,7 +634,7 @@
|
||||
icon="DocumentChecked"
|
||||
@click="generate(item.id)"
|
||||
>
|
||||
生成DOCX合同
|
||||
生成DOCX签署材料
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
@@ -728,24 +728,24 @@
|
||||
@close="closeImageViewer"
|
||||
/>
|
||||
|
||||
<!-- 合同参数录入弹窗 -->
|
||||
<!-- 签署材料参数录入弹窗 -->
|
||||
<el-dialog
|
||||
v-model="contractVariablesVisible"
|
||||
:title="`${contractVariableTask?.taskNo || ''} · 合同参数录入`"
|
||||
:title="`${contractVariableTask?.taskNo || ''} · 签署材料参数录入`"
|
||||
width="1180px"
|
||||
top="4vh"
|
||||
destroy-on-close
|
||||
>
|
||||
<div class="contract-vars-dialog-body">
|
||||
<el-alert
|
||||
title="说明:此处展示本次入职任务关联的所有合同变量。带有【人事变量】标签的项为本次需要 HR 填写的核心条款(如薪资、试用期、合同起止日等);员工变量与公司变量将在流程中自动带入。"
|
||||
title="说明:此处展示本次入职任务关联的所有签署材料变量。带有【人事变量】标签的项为本次需要 HR 填写的核心条款(如薪资、试用期、协议起止日等);员工变量与公司变量将在流程中自动带入。"
|
||||
type="info"
|
||||
show-icon
|
||||
:closable="false"
|
||||
style="margin-bottom: 16px;"
|
||||
/>
|
||||
|
||||
<el-empty v-if="!contractVariableGroups.length" description="当前任务合同无需配置人事变量" />
|
||||
<el-empty v-if="!contractVariableGroups.length" description="当前任务签署材料无需配置人事变量" />
|
||||
|
||||
<div v-else>
|
||||
<!-- 顶部合同分组切换 Tab -->
|
||||
@@ -862,7 +862,7 @@
|
||||
<div class="dialog-footer-flex">
|
||||
<el-button @click="contractVariablesVisible = false">关闭</el-button>
|
||||
<el-button type="primary" icon="Check" :loading="savingAllVars" @click="saveAllContractVariables">
|
||||
一键保存全部合同参数
|
||||
一键保存全部签署材料参数
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
@@ -1112,7 +1112,7 @@ const variableTypeText = (type: string) => {
|
||||
const map: Record<string, string> = {
|
||||
employee: "员工变量",
|
||||
company: "公司变量",
|
||||
contract: "合同人事参数",
|
||||
contract: "人事预设参数",
|
||||
system: "系统变量"
|
||||
};
|
||||
return map[type] || type;
|
||||
@@ -1359,7 +1359,7 @@ async function createTask() {
|
||||
item => item.required && isBlankContractVariableValue(item.variableValue)
|
||||
);
|
||||
if (missingVariable) {
|
||||
return ElMessage.warning(`请填写合同人事参数“${missingVariable.variableName}”`);
|
||||
return ElMessage.warning(`请填写签署材料人事参数“${missingVariable.variableName}”`);
|
||||
}
|
||||
|
||||
creating.value = true;
|
||||
@@ -1403,7 +1403,7 @@ function copyText(text?: string, successMsg = "复制成功") {
|
||||
|
||||
function copyInviteMessage() {
|
||||
if (!createdTaskInfo.value) return;
|
||||
const msg = `【入职邀请】您好!欢迎加入${createdTaskInfo.value.companyName},担任${createdTaskInfo.value.positionName}一职。请点击以下链接完成您的入职登记与合同确认:${createdTaskInfo.value.linkUrl} (链接有效期至:${createdTaskInfo.value.expiresAt})`;
|
||||
const msg = `【入职邀请】您好!欢迎加入${createdTaskInfo.value.companyName},担任${createdTaskInfo.value.positionName}一职。请点击以下链接完成您的入职登记与签署材料确认:${createdTaskInfo.value.linkUrl} (链接有效期至:${createdTaskInfo.value.expiresAt})`;
|
||||
copyText(msg, "邀请文案已复制至剪贴板");
|
||||
}
|
||||
|
||||
@@ -1457,7 +1457,7 @@ async function saveContractVariables(group: OnboardingTaskContractVariableGroup)
|
||||
);
|
||||
|
||||
if (requiredBlank) {
|
||||
return ElMessage.warning("请填写所有必填合同人事参数");
|
||||
return ElMessage.warning("请填写所有必填签署材料人事参数");
|
||||
}
|
||||
|
||||
await onboardingTaskApi.saveTaskContractVariables({
|
||||
@@ -1489,7 +1489,7 @@ async function saveAllContractVariables() {
|
||||
values: buildContractVariableSaveValues(group)
|
||||
});
|
||||
}
|
||||
ElMessage.success("全部合同参数已保存成功!");
|
||||
ElMessage.success("全部签署材料参数已保存成功!");
|
||||
contractVariablesVisible.value = false;
|
||||
} finally {
|
||||
savingAllVars.value = false;
|
||||
@@ -1520,7 +1520,7 @@ function buildContractVariableSaveValues(group: OnboardingTaskContractVariableGr
|
||||
|
||||
async function approve(row: OnboardingTask) {
|
||||
await ElMessageBox.confirm(
|
||||
"确认审核通过?系统将自动创建正式员工档案并锁定合同快照。",
|
||||
"确认审核通过?系统将自动创建正式员工档案并锁定签署材料快照。",
|
||||
"审核通过确认",
|
||||
{ type: "success", confirmButtonText: "审核通过", cancelButtonText: "取消" }
|
||||
);
|
||||
@@ -1546,7 +1546,7 @@ async function reject(row: OnboardingTask) {
|
||||
|
||||
async function generate(taskContractId: number) {
|
||||
await onboardingTaskApi.generateContract(taskContractId);
|
||||
ElMessage.success("DOCX合同文件已生成");
|
||||
ElMessage.success("DOCX签署材料文件已生成");
|
||||
if (detail.value?.task?.id) {
|
||||
await showDetail(detail.value.task, true);
|
||||
}
|
||||
@@ -2163,7 +2163,7 @@ onMounted(loadCompanies);
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
/* 合同参数录入弹窗优化 */
|
||||
/* 签署材料参数录入弹窗优化 */
|
||||
.contract-vars-dialog-body {
|
||||
max-height: 68vh;
|
||||
overflow-y: auto;
|
||||
|
||||
Reference in New Issue
Block a user