From daeeb93f45621cd6224fe13cbc1da84147eb9d1f Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 09 十月 2025 16:49:40 +0800
Subject: [PATCH] 添加试用期字段,临近转正时提醒一下
---
src/views/personnelManagement/onboarding/index.vue | 97 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 96 insertions(+), 1 deletions(-)
diff --git a/src/views/personnelManagement/onboarding/index.vue b/src/views/personnelManagement/onboarding/index.vue
index 2254175..d993ee6 100644
--- a/src/views/personnelManagement/onboarding/index.vue
+++ b/src/views/personnelManagement/onboarding/index.vue
@@ -11,6 +11,22 @@
clearable
:prefix-icon="Search"
/>
+ <span style="margin-left: 10px;" class="search_title">鍚堝悓寮�濮嬫棩鏈燂細</span>
+ <el-date-picker
+ v-model="searchForm.entryDateStart"
+ type="date"
+ placeholder="璇烽�夋嫨鍚堝悓寮�濮嬫棩鏈�"
+ size="default"
+ @change="(date) => handleDateChange(date,1)"
+ />
+ <span style="margin-left: 10px;" class="search_title">鍚堝悓缁撴潫鏃ユ湡锛�</span>
+ <el-date-picker
+ v-model="searchForm.entryDateEnd"
+ type="date"
+ placeholder="璇烽�夋嫨鍚堝悓缁撴潫鏃ユ湡"
+ size="default"
+ @change="(date) => handleDateChange(date,2)"
+ />
<el-button type="primary" @click="handleQuery" style="margin-left: 10px"
>鎼滅储</el-button
>
@@ -44,6 +60,7 @@
import FormDia from "@/views/personnelManagement/onboarding/components/formDia.vue";
import {staffJoinDel, staffJoinListPage} from "@/api/personnelManagement/onboarding.js";
import {ElMessageBox} from "element-plus";
+import dayjs from "dayjs";
const data = reactive({
searchForm: {
@@ -134,8 +151,39 @@
width:150
},
{
- label: "鍚堝悓骞撮檺",
+ label: "璇曠敤鏈燂紙鏈堬級",
+ prop: "probationPeriod",
+ width: 120,
+ },
+ // {
+ // label: "杞鏃ユ湡",
+ // prop: "probationEndDate",
+ // width: 120,
+ // formatData: (row) => {
+ // // 淇敼涓轰娇鐢ㄥ悎鍚屽紑濮嬫棩鏈熻绠楄浆姝f棩鏈�
+ // if (row.contractStartTime && row.probationPeriod) {
+ // // 璁$畻杞鏃ユ湡锛堝悎鍚屽紑濮嬫棩鏈熷姞涓婅瘯鐢ㄦ湡鏈堟暟锛�
+ // return dayjs(row.contractStartTime).add(row.probationPeriod, 'month').format('YYYY-MM-DD');
+ // }
+ // return '';
+ // },
+ // formatType: (row) => {
+ // // 淇敼涓轰娇鐢ㄥ悎鍚屽紑濮嬫棩鏈熸鏌ユ槸鍚︿复杩戣浆姝o紙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: "鍚堝悓寮�濮嬫棩鏈�",
@@ -174,6 +222,20 @@
const formDia = ref()
const { proxy } = getCurrentInstance()
+const handleDateChange = (value,type) => {
+ searchForm.value.entryDateEnd = null
+ searchForm.value.entryDateStart = null
+ if(type === 1){
+ if (value) {
+ searchForm.value.entryDateStart = dayjs(value).format("YYYY-MM-DD");
+ }
+ }else{
+ if (value) {
+ searchForm.value.entryDateEnd = dayjs(value).format("YYYY-MM-DD");
+ }
+ }
+ getList();
+};
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
const handleQuery = () => {
@@ -191,10 +253,43 @@
tableLoading.value = false;
tableData.value = res.data.records
page.total = res.data.total;
+
+ // 妫�鏌ユ槸鍚︽湁涓磋繎杞鐨勫憳宸ュ苟鎻愰啋
+ checkProbationEnding(tableData.value);
}).catch(err => {
tableLoading.value = false;
})
};
+// 妫�鏌ヤ复杩戣浆姝g殑鍛樺伐骞舵彁閱�
+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;
--
Gitblit v1.9.3