From 32f10392ab00b07e85c0b4229037c30af7c3f28e Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 27 一月 2026 10:42:49 +0800
Subject: [PATCH] 浪潮对接单点登录:mis调整2
---
src/views/personnelManagement/payrollManagement/components/formDia.vue | 184 ++++++++++++++++++++++-----------------------
1 files changed, 90 insertions(+), 94 deletions(-)
diff --git a/src/views/personnelManagement/payrollManagement/components/formDia.vue b/src/views/personnelManagement/payrollManagement/components/formDia.vue
index cf93559..01285ae 100644
--- a/src/views/personnelManagement/payrollManagement/components/formDia.vue
+++ b/src/views/personnelManagement/payrollManagement/components/formDia.vue
@@ -10,35 +10,35 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鏈堜唤锛�" prop="payDate">
- <el-date-picker
- v-model="form.payDate"
- type="month"
- value-format="YYYY-MM-DD"
- format="YYYY-MM"
- placeholder="璇烽�夋嫨鏈堜唤"
- clearable
- :disabled="operationType === 'edit'"
- style="width: 100%"
- />
+ <el-date-picker
+ v-model="form.payDate"
+ type="month"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM"
+ placeholder="璇烽�夋嫨鏈堜唤"
+ clearable
+ :disabled="operationType === 'edit'"
+ style="width: 100%"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="濮撳悕锛�" prop="staffId">
- <el-select v-model="form.staffId" placeholder="璇烽�夋嫨浜哄憳" style="width: 100%" @change="handleSelect" :disabled="operationType === 'edit'">
- <el-option
- v-for="item in personList"
- :key="item.id"
- :label="item.staffName"
- :value="item.id"
- />
- </el-select>
+ <el-select v-model="form.staffId" placeholder="璇烽�夋嫨浜哄憳" style="width: 100%" @change="handleSelect" :disabled="operationType === 'edit'">
+ <el-option
+ v-for="item in personList"
+ :key="item.id"
+ :label="item.staffName"
+ :value="item.id"
+ />
+ </el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="搴斿嚭鍕ゅぉ鏁帮細" prop="shouldAttendedNum">
- <el-input v-model="form.shouldAttendedNum" placeholder="璇疯緭鍏�" clearable type="number"/>
+ <el-input v-model="form.shouldAttendedNum" placeholder="璇疯緭鍏�" clearable type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -110,48 +110,48 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="绀句繚鍏徃锛�" prop="socialSecurityCompanies">
- <el-input v-model="form.socialSecurityCompanies" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.socialSecurityCompanies" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绀句繚鍚堣锛�" prop="socialSecurityTotal">
- <el-input v-model="form.socialSecurityTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.socialSecurityTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍏Н閲戜釜浜猴細" prop="providentFundIndividuals">
- <el-input v-model="form.providentFundIndividuals" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.providentFundIndividuals" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鍏Н閲戝叕鍙革細" prop="providentFundCompany">
- <el-input v-model="form.providentFundCompany" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.providentFundCompany" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍏Н閲戝悎璁★細" prop="providentFundTotal">
- <el-input v-model="form.providentFundTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.providentFundTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="搴旂◣宸ヨ祫锛�" prop="taxableWaget">
- <el-input v-model="form.taxableWaget" :precision="0" :step="1" style="width: 100%" type="number"/>
+ <el-input v-model="form.taxableWaget" :precision="0" :step="1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="涓汉鎵�寰楃◣锛�" prop="personalIncomeTax">
- <el-input v-model="form.personalIncomeTax" :step="0.1" style="width: 100%" type="number"/>
+ <el-input v-model="form.personalIncomeTax" :step="0.1" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="瀹炲彂宸ヨ祫锛�" prop="actualWages">
- <el-input v-model="form.actualWages" style="width: 100%" type="number"/>
+ <el-input v-model="form.actualWages" style="width: 100%" type="number"/>
</el-form-item>
</el-col>
</el-row>
@@ -168,8 +168,8 @@
<script setup>
import {ref} from "vue";
+import {getStaffJoinInfo, getStaffOnJob, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
import {compensationAdd, compensationUpdate} from "@/api/personnelManagement/payrollManagement.js";
-import {staffOnJobInfo, staffOnJobListPage} from "@/api/personnelManagement/staffOnJob.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -177,54 +177,54 @@
const operationType = ref('')
const data = reactive({
form: {
- payDate: "",
+ payDate: "",
staffId: "",
- name: "",
- shouldAttendedNum: "",
- actualAttendedNum: "",
- basicSalary: "",
- postSalary: "",
- deductionAbsenteeism: "",
- sickLeaveDeductions: "",
- deductionPersonalLeave: "",
- forgetClockDeduct: "",
- performanceScore: "",
- performancePay: "",
- payableWages: "",
- socialSecurityIndividuals: "",
- socialSecurityCompanies: "",
- socialSecurityTotal: "",
- providentFundIndividuals: "",
- providentFundCompany: "",
- providentFundTotal: "",
- taxableWaget: "",
- personalIncomeTax: "",
- actualWages: "",
+ name: "",
+ shouldAttendedNum: "",
+ actualAttendedNum: "",
+ basicSalary: "",
+ postSalary: "",
+ deductionAbsenteeism: "",
+ sickLeaveDeductions: "",
+ deductionPersonalLeave: "",
+ forgetClockDeduct: "",
+ performanceScore: "",
+ performancePay: "",
+ payableWages: "",
+ socialSecurityIndividuals: "",
+ socialSecurityCompanies: "",
+ socialSecurityTotal: "",
+ providentFundIndividuals: "",
+ providentFundCompany: "",
+ providentFundTotal: "",
+ taxableWaget: "",
+ personalIncomeTax: "",
+ actualWages: "",
},
rules: {
- payDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
- staffId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
+ payDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
+ staffId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
staffName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- shouldAttendedNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- actualAttendedNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- basicSalary: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- postSalary: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- deductionAbsenteeism: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- sickLeaveDeductions: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- deductionPersonalLeave: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- forgetClockDeduct: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- performanceScore: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- performancePay: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- payableWages: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- socialSecurityIndividuals: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- socialSecurityCompanies: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- socialSecurityTotal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- providentFundIndividuals: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- providentFundCompany: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- providentFundTotal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- taxableWaget: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- personalIncomeTax: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- actualWages: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ shouldAttendedNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ actualAttendedNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ basicSalary: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ postSalary: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ deductionAbsenteeism: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ sickLeaveDeductions: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ deductionPersonalLeave: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ forgetClockDeduct: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ performanceScore: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ performancePay: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ payableWages: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ socialSecurityIndividuals: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ socialSecurityCompanies: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ socialSecurityTotal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ providentFundIndividuals: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ providentFundCompany: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ providentFundTotal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ taxableWaget: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ personalIncomeTax: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ actualWages: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
},
});
const { form, rules } = toRefs(data);
@@ -234,27 +234,23 @@
const openDialog = (type, row) => {
operationType.value = type;
dialogFormVisible.value = true;
- staffOnJobListPage({
- current: -1,
- size: -1,
- staffState: 1
- }).then(res => {
- personList.value = res.data.records || []
+ getStaffOnJob().then(res => {
+ personList.value = res.data
})
- form.value = {}
+ form.value = {}
if (operationType.value === 'edit') {
- staffOnJobInfo(row.staffId).then(res => {
- form.value = {...row}
- form.value.payDate = form.value.payDate + '-01'
+ getStaffJoinInfo(row.id).then(res => {
+ form.value = {...row}
+ form.value.payDate = form.value.payDate + '-01'
})
}
}
const handleSelect = (value) => {
- console.log('value', value)
- const index = personList.value.findIndex(row => row.id === value)
- if (index > -1) {
- form.value.name = personList.value[index].staffName
- }
+ console.log('value', value)
+ const index = personList.value.findIndex(row => row.id === value)
+ if (index > -1) {
+ form.value.name = personList.value[index].staffName
+ }
}
// 鎻愪氦浜у搧琛ㄥ崟
const submitForm = () => {
@@ -262,12 +258,12 @@
if (valid) {
form.value.staffState = 1
if (operationType.value === "add") {
- compensationAdd(form.value).then(res => {
+ compensationAdd(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
})
} else {
- compensationUpdate(form.value).then(res => {
+ compensationUpdate(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
})
@@ -280,20 +276,20 @@
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;
@@ -316,4 +312,4 @@
<style scoped>
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3