From 3b8364727500ab4ea1fc42512bb7384e74432fcd Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 19 一月 2026 14:15:37 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
---
src/views/personnelManagement/dimission/components/formDia.vue | 181 +++++++++++++-------------------------------
1 files changed, 55 insertions(+), 126 deletions(-)
diff --git a/src/views/personnelManagement/dimission/components/formDia.vue b/src/views/personnelManagement/dimission/components/formDia.vue
index 84808f8..2b8a7fd 100644
--- a/src/views/personnelManagement/dimission/components/formDia.vue
+++ b/src/views/personnelManagement/dimission/components/formDia.vue
@@ -12,101 +12,93 @@
<el-form :model="form" label-width="200px" label-position="left" :rules="rules" ref="formRef" style="margin-top: 20px">
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="濮撳悕锛�" prop="staffName">
- <el-select v-model="form.staffName" placeholder="璇烽�夋嫨浜哄憳" style="width: 100%" @change="handleSelect">
+ <el-form-item label="濮撳悕锛�" prop="staffOnJobId">
+ <el-select v-model="form.staffOnJobId"
+ placeholder="璇烽�夋嫨浜哄憳"
+ style="width: 100%"
+ :disabled="operationType === 'edit'"
+ @change="handleSelect">
<el-option
v-for="item in personList"
:key="item.id"
:label="item.staffName"
- :value="item.staffName"
+ :value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鍛樺伐缂栧彿锛�">
- {{ form.staffNo || '-' }}
+ {{ currentStaffRecord.staffNo || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鎬у埆锛�">
- {{ form.sex || '-' }}
+ {{ currentStaffRecord.sex || '-' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鎴风睄浣忓潃锛�">
- {{ form.nativePlace || '-' }}
+ {{ currentStaffRecord.nativePlace || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="宀椾綅锛�">
- {{ form.postName || '-' }}
+ {{ currentStaffRecord.postName || '-' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鐜颁綇鍧�锛�">
- {{ form.adress || '-' }}
+ {{ currentStaffRecord.adress || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="绗竴瀛﹀巻锛�">
- {{ form.firstStudy || '-' }}
+ {{ currentStaffRecord.firstStudy || '-' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="涓撲笟锛�">
- {{ form.profession || '-' }}
+ {{ currentStaffRecord.profession || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="骞撮緞锛�">
- {{ form.age || '-' }}
+ {{ currentStaffRecord.age || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鑱旂郴鐢佃瘽锛�">
- {{ form.phone || '-' }}
+ {{ currentStaffRecord.phone || '-' }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绱ф�ヨ仈绯讳汉锛�">
- {{ form.emergencyContact || '-' }}
+ {{ currentStaffRecord.emergencyContact || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="绱ф�ヨ仈绯讳汉鑱旂郴鐢佃瘽锛�">
- {{ form.emergencyContactPhone || '-' }}
+ {{ currentStaffRecord.emergencyContactPhone || '-' }}
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="鍚堝悓寮�濮嬫棩鏈燂細">
- {{ form.contractStartTime || '-' }}
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鍚堝悓缁撴潫鏃ユ湡锛�">
- {{ form.contractEndTime || '-' }}
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="30">
- <el-col :span="12">
- <el-form-item label="绂昏亴鍘熷洜锛�" prop="dimissionReason">
- <el-select v-model="form.dimissionReason" placeholder="璇烽�夋嫨绂昏亴鍘熷洜" style="width: 100%" @change="handleSelectDimissionReason">
+ <el-form-item label="绂昏亴鍘熷洜锛�" prop="reason">
+ <el-select v-model="form.reason" placeholder="璇烽�夋嫨绂昏亴鍘熷洜" style="width: 100%" @change="handleSelectDimissionReason">
<el-option
v-for="(item, index) in dimissionReasonOptions"
:key="index"
@@ -117,11 +109,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="澶囨敞锛�" prop="dimissionRemark" v-show="form.dimissionReason === 'other'">
+ <el-form-item label="澶囨敞锛�" prop="remark" v-if="form.reason === 'other'">
<el-input
- v-model="form.dimissionRemark"
+ v-model="form.remark"
type="textarea"
- v-show="form.dimissionReason === 'other'"
:rows="3"
placeholder="澶囨敞"
maxlength="500"
@@ -136,7 +127,7 @@
<!-- <el-col :span="12">-->
<!-- <div class="info-item">-->
<!-- <span class="info-label">绂昏亴鍘熷洜锛�</span>-->
-<!-- <el-select v-model="form.dimissionReason" placeholder="璇烽�夋嫨浜哄憳" style="width: 100%" @change="handleSelect">-->
+<!-- <el-select v-model="form.reason" placeholder="璇烽�夋嫨浜哄憳" style="width: 100%" @change="handleSelect">-->
<!-- <el-option-->
<!-- v-for="(item, index) in dimissionReasonOptions"-->
<!-- :key="index"-->
@@ -167,8 +158,8 @@
<script setup>
import {ref, reactive, toRefs, getCurrentInstance} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
+import {staffOnJobListPage} from "@/api/personnelManagement/staffOnJob.js";
+import {createStaffLeave, updateStaffLeave} from "@/api/personnelManagement/staffLeave.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -176,30 +167,13 @@
const operationType = ref('')
const data = reactive({
form: {
- staffNo: "",
- staffName: "",
- sex: "",
- nativePlace: "",
- postName: "",
- sysPostId: 0,
- adress: "",
- firstStudy: "",
- profession: "",
- age: 0,
- phone: "",
- emergencyContact: "",
- emergencyContactPhone: "",
- contractTerm: 0,
- contractStartTime: "",
- contractEndTime: "",
- dimissionDate: "",
- dimissionReason: "",
- dimissionRemark: "",
- staffState: "",
+ staffOnJobId: undefined,
+ reason: "",
+ remark: "",
},
rules: {
staffName: [{ required: true, message: "璇烽�夋嫨浜哄憳" }],
- dimissionReason: [{ required: true, message: "璇烽�夋嫨绂昏亴鍘熷洜"}],
+ reason: [{ required: true, message: "璇烽�夋嫨绂昏亴鍘熷洜"}],
},
dimissionReasonOptions: [
{label: '钖祫寰呴亣', value: 'salary'},
@@ -207,45 +181,51 @@
{label: '宸ヤ綔鐜', value: 'work_environment'},
{label: '涓汉鍘熷洜', value: 'personal_reason'},
{label: '鍏朵粬', value: 'other'},
- ]
+ ],
+ currentStaffRecord: {},
});
-const { form, rules, dimissionReasonOptions } = toRefs(data);
+const { form, rules, dimissionReasonOptions, currentStaffRecord } = toRefs(data);
// 鎵撳紑寮规
const openDialog = (type, row) => {
- getList()
operationType.value = type;
dialogFormVisible.value = true;
if (operationType.value === 'edit') {
- getStaffJoinInfo(row.id).then(res => {
- form.value = {...res.data}
- })
+ currentStaffRecord.value = row
+ form.value.staffOnJobId = row.staffOnJobId
+ form.value.reason = row.reason
+ form.value.remark = row.remark
+ personList.value = [
+ {
+ staffName: row.staffName,
+ id: row.staffOnJobId,
+ }
+ ]
+ } else {
+ getList()
}
}
const handleSelectDimissionReason = (val) => {
if (val === 'other') {
- form.value.dimissionRemark = ''
+ form.value.remark = ''
}
}
// 鎻愪氦浜у搧琛ㄥ崟
const submitForm = () => {
form.value.staffState = 0
- if (form.value.dimissionReason !== 'other') {
- form.value.dimissionRemark = ''
- }
- if (!form.value.sysPostId) {
- form.value.sysPostId = 0;
+ if (form.value.reason !== 'other') {
+ form.value.remark = ''
}
proxy.$refs["formRef"].validate(valid => {
if (valid) {
if (operationType.value === "add") {
- staffJoinAdd(form.value).then(res => {
+ createStaffLeave(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
})
} else {
- staffJoinUpdate(form.value).then(res => {
+ updateStaffLeave(currentStaffRecord.value.id, form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
})
@@ -258,25 +238,9 @@
const closeDia = () => {
// 琛ㄥ崟宸叉敞閲婏紝鎵嬪姩閲嶇疆琛ㄥ崟鏁版嵁
form.value = {
- staffNo: "",
- staffName: "",
- sex: "",
- nativePlace: "",
- postName: "",
- sysPostId: 0,
- adress: "",
- firstStudy: "",
- profession: "",
- age: 0,
- phone: "",
- emergencyContact: "",
- emergencyContactPhone: "",
- contractTerm: 0,
- contractStartTime: "",
- contractEndTime: "",
- dimissionDate: "",
- dimissionReason: "",
- staffState: "",
+ staffOnJobId: undefined,
+ reason: "",
+ remark: "",
};
dialogFormVisible.value = false;
emit('close')
@@ -298,46 +262,11 @@
};
const handleSelect = (val) => {
- let obj = personList.value.find(item => item.staffName === val)
+ let obj = personList.value.find(item => item.id === val)
+ currentStaffRecord.value = {}
if (obj) {
- let {
- sex,
- phone,
- staffNo,
- nativePlace,
- postName,
- sysPostId,
- adress,
- firstStudy,
- profession,
- age,
- emergencyContact,
- emergencyContactPhone,
- contractTerm,
- contractStartTime,
- contractEndTime,
- staffName
- } = obj
// 淇濈暀绂昏亴鏃ユ湡鍜岀鑱屽師鍥狅紝鍙洿鏂板憳宸ヤ俊鎭�
- form.value = {
- ...form.value,
- sex,
- phone,
- staffNo,
- nativePlace,
- postName,
- sysPostId,
- adress,
- firstStudy,
- profession,
- age,
- emergencyContact,
- emergencyContactPhone,
- contractTerm,
- contractStartTime,
- contractEndTime,
- staffName
- }
+ currentStaffRecord.value = obj
}
}
defineExpose({
--
Gitblit v1.9.3