From 175465239fc7d4f5bbcefcb42519577d946429ce Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 08 十一月 2025 10:44:15 +0800
Subject: [PATCH] 合同年限
---
src/views/personnelManagement/onboarding/components/formDia.vue | 51 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/src/views/personnelManagement/onboarding/components/formDia.vue b/src/views/personnelManagement/onboarding/components/formDia.vue
index ba9dd6f..a13d6ba 100644
--- a/src/views/personnelManagement/onboarding/components/formDia.vue
+++ b/src/views/personnelManagement/onboarding/components/formDia.vue
@@ -29,7 +29,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="绫嶈疮锛�" prop="nativePlace">
+ <el-form-item label="鎴风睄浣忓潃锛�" prop="nativePlace">
<el-input v-model="form.nativePlace" placeholder="璇疯緭鍏�" clearable/>
</el-form-item>
</el-col>
@@ -41,7 +41,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="瀹跺涵浣忓潃锛�" prop="adress">
+ <el-form-item label="鐜颁綇鍧�锛�" prop="adress">
<el-input v-model="form.adress" placeholder="璇疯緭鍏�" clearable/>
</el-form-item>
</el-col>
@@ -59,11 +59,6 @@
</el-col>
</el-row>
<el-row :gutter="30">
- <el-col :span="12">
- <el-form-item label="韬唤璇佸彿锛�" prop="identityCard">
- <el-input v-model="form.identityCard" placeholder="璇疯緭鍏�" clearable/>
- </el-form-item>
- </el-col>
<el-col :span="12">
<el-form-item label="骞撮緞锛�" prop="age">
<el-input-number v-model="form.age" :precision="0" :step="1" style="width: 100%"/>
@@ -90,7 +85,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="鍚堝悓骞撮檺锛�" prop="contractTerm">
- <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%"/>
+ <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
@@ -105,6 +100,7 @@
format="YYYY-MM-DD"
clearable
style="width: 100%"
+ @change="calculateContractTerm"
/>
</el-form-item>
</el-col>
@@ -118,6 +114,7 @@
format="YYYY-MM-DD"
clearable
style="width: 100%"
+ @change="calculateContractTerm"
/>
</el-form-item>
</el-col>
@@ -137,7 +134,7 @@
import {ref} from "vue";
import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
const { proxy } = getCurrentInstance()
-const emit = defineEmits(['confirm'])
+const emit = defineEmits(['close'])
const dialogFormVisible = ref(false);
const operationType = ref('')
@@ -151,7 +148,6 @@
adress: "",
firstStudy: "",
profession: "",
- identityCard: "",
age: 0,
phone: "",
emergencyContact: "",
@@ -170,7 +166,6 @@
adress: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
firstStudy: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
profession: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- identityCard: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
age: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
phone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
emergencyContact: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -189,8 +184,12 @@
if (operationType.value === 'edit') {
getStaffJoinInfo(row.id).then(res => {
form.value = {...res.data}
+ // 缂栬緫鏃朵篃璁$畻涓�娆″悎鍚屽勾闄�
+ calculateContractTerm();
})
- }
+ } else {
+ form.value.id = ''
+ }
}
// 鎻愪氦浜у搧琛ㄥ崟
const submitForm = () => {
@@ -211,6 +210,34 @@
}
})
}
+// 璁$畻鍚堝悓骞撮檺
+const calculateContractTerm = () => {
+ if (form.value.contractStartTime && form.value.contractEndTime) {
+ const startDate = new Date(form.value.contractStartTime);
+ const endDate = new Date(form.value.contractEndTime);
+
+ if (endDate > startDate) {
+ // 璁$畻骞翠唤宸�
+ const yearDiff = endDate.getFullYear() - startDate.getFullYear();
+ const monthDiff = endDate.getMonth() - startDate.getMonth();
+ const dayDiff = endDate.getDate() - startDate.getDate();
+
+ let years = yearDiff;
+
+ // 濡傛灉缁撴潫鏃ユ湡鐨勬湀鏃ュ皬浜庡紑濮嬫棩鏈熺殑鏈堟棩锛屽垯鍑忓幓1骞�
+ if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
+ years = yearDiff - 1;
+ }
+
+ form.value.contractTerm = Math.max(0, years);
+ } else {
+ form.value.contractTerm = 0;
+ }
+ } else {
+ form.value.contractTerm = 0;
+ }
+};
+
// 鍏抽棴寮规
const closeDia = () => {
proxy.resetForm("formRef");
--
Gitblit v1.9.3