| | |
| | | width:150 |
| | | }, |
| | | { |
| | | label: "合同年限", |
| | | label: "试用期(月)", |
| | | prop: "probationPeriod", |
| | | width: 120, |
| | | }, |
| | | // { |
| | | // label: "转正日期", |
| | | // prop: "probationEndDate", |
| | | // width: 120, |
| | | // formatData: (row) => { |
| | | // // 修改为使用合同开始日期计算转正日期 |
| | | // if (row.contractStartTime && row.probationPeriod) { |
| | | // // 计算转正日期(合同开始日期加上试用期月数) |
| | | // return dayjs(row.contractStartTime).add(row.probationPeriod, 'month').format('YYYY-MM-DD'); |
| | | // } |
| | | // return ''; |
| | | // }, |
| | | // formatType: (row) => { |
| | | // // 修改为使用合同开始日期检查是否临近转正(7天内) |
| | | // if (row.contractStartTime && row.probationPeriod) { |
| | | // const probationEndDate = dayjs(row.contractStartTime).add(row.probationPeriod, 'month'); |
| | | // const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day'); |
| | | |
| | | // if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) { |
| | | // return 'warning'; // 使用警告样式标记临近转正的员工 |
| | | // } |
| | | // } |
| | | // return ''; |
| | | // } |
| | | // }, |
| | | { |
| | | label: "合同年限(年)", |
| | | prop: "contractTerm", |
| | | width: 120, |
| | | }, |
| | | { |
| | | label: "合同开始日期", |
| | |
| | | tableLoading.value = false; |
| | | tableData.value = res.data.records |
| | | page.total = res.data.total; |
| | | |
| | | // 检查是否有临近转正的员工并提醒 |
| | | checkProbationEnding(tableData.value); |
| | | }).catch(err => { |
| | | tableLoading.value = false; |
| | | }) |
| | | }; |
| | | // 检查临近转正的员工并提醒 |
| | | const checkProbationEnding = (data) => { |
| | | const probationEndingSoon = []; |
| | | |
| | | data.forEach(item => { |
| | | // 修改为使用合同开始日期检查 |
| | | if (item.contractStartTime && item.probationPeriod) { |
| | | const probationEndDate = dayjs(item.contractStartTime).add(item.probationPeriod, 'month'); |
| | | const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day'); |
| | | |
| | | if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) { |
| | | probationEndingSoon.push({ |
| | | staffName: item.staffName, |
| | | probationEndDate: probationEndDate.format('YYYY-MM-DD'), |
| | | daysLeft: daysUntilProbationEnd |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | if (probationEndingSoon.length > 0) { |
| | | let message = '以下员工将在7天内转正:\n'; |
| | | probationEndingSoon.forEach(item => { |
| | | message += `${item.staffName}(${item.probationEndDate},还有${item.daysLeft}天)\n`; |
| | | }); |
| | | |
| | | // 显示提醒消息 |
| | | proxy.$modal.msgInfo(message); |
| | | } |
| | | }; |
| | | // 表格选择数据 |
| | | const handleSelectionChange = (selection) => { |
| | | selectedRows.value = selection; |