From 5a2eea76d731bca3490aa6c6bfb3abcade5d11f7 Mon Sep 17 00:00:00 2001
From: yubo <autumnal_wind@yeah.net>
Date: 星期二, 07 四月 2026 19:18:48 +0800
Subject: [PATCH] style(user): 调整用户档案相关组件样式和模板格式
---
src/views/user/archivesEdit.vue | 225 ++++++++++++++++++++++++++++----------------------------
1 files changed, 112 insertions(+), 113 deletions(-)
diff --git a/src/views/user/archivesEdit.vue b/src/views/user/archivesEdit.vue
index b9fb72d..45d189c 100644
--- a/src/views/user/archivesEdit.vue
+++ b/src/views/user/archivesEdit.vue
@@ -2973,10 +2973,12 @@
import Pagination from '@/components/Pagination'
import { getToken } from '@/utils/auth'
import { pages } from '@/settings'
+import dictMixin from '../../utils/dictMixin'
export default {
name: 'ArchivesEdit',
components: { Treeselect, Pagination },
+ mixins: [dictMixin],
props: {
dialogVisible: {
type: Boolean,
@@ -3850,30 +3852,6 @@
{ type: 'password' },
{ type: 'implicit' }
],
- statusOptions: [],
- empTypeOptions: [],
- nationOptions: [],
- marriageOptions: [],
- educationOptions: [],
- nativePlaceOptions: [],
- archivesStatusOptions: [],
- insuranceTypeOptions: [],
- empCardStatusOptions: [],
- handbookStatusOptions: [],
- ecgOptions: [],
- certificateListOptions: [],
- physicalExamTypeOptions: [],
- contractStatusOptions: [],
- leaveTypeOptions: [],
- insuranceGaersOptions: [],
- applayStatusOptions: [],
- reportStatusOptions: [],
- hospitalizatioFlagOptions: [],
- settleStatusOptions: [],
- arbitrationTypeOptions: [],
- changeTypeOptions: [],
- dimissionTypeOptions: [],
- sexOptions: [],
srcList: [],
getImg: pages.getAccessoryImage
}
@@ -3887,83 +3865,37 @@
this.close()
this.reset()
}
- }
+ },
+ // 字典选项计算属性
+ statusOptions() { return this.getDictOptions('PLITICAL') },
+ empTypeOptions() { return this.getDictOptions('EMPTYPE') },
+ nationOptions() { return this.getDictOptions('NATION') },
+ marriageOptions() { return this.getDictOptions('MARRIAGE') },
+ educationOptions() { return this.getDictOptions('EDUCATION') },
+ nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') },
+ archivesStatusOptions() { return this.getDictOptions('archivesStatus') },
+ insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') },
+ empCardStatusOptions() { return this.getDictOptions('empCardStatus') },
+ handbookStatusOptions() { return this.getDictOptions('handbookStatus') },
+ certificateListOptions() { return this.getDictOptions('certificateList') },
+ physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') },
+ ecgOptions() { return this.getDictOptions('ECG') },
+ contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') },
+ leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') },
+ insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') },
+ applayStatusOptions() { return this.getDictOptions('applayStatus') },
+ reportStatusOptions() { return this.getDictOptions('reportStatus') },
+ hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') },
+ settleStatusOptions() { return this.getDictOptions('settleStatus') },
+ arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') },
+ changeTypeOptions() { return this.getDictOptions('changeType') },
+ dimissionTypeOptions() { return this.getDictOptions('LZTYPE') },
+ sexOptions() { return this.getDictOptions('sex') }
},
mounted() {
this.initDept()
- /* 政治面貌*/
- this.getDicts('PLITICAL').then(response => {
- this.statusOptions = response.data
- })
- this.getDicts('sex').then(response => {
- this.sexOptions = response.data
- })
- this.getDicts('empType').then(response => {
- this.empTypeOptions = response.data
- })
- this.getDicts('NATION').then(response => {
- this.nationOptions = response.data
- })
- this.getDicts('MARRIAGE').then(response => {
- this.marriageOptions = response.data
- })
- this.getDicts('EDUCATION').then(response => {
- this.educationOptions = response.data
- })
- this.getDicts('NATIVEPLACE').then(response => {
- this.nativePlaceOptions = response.data
- })
- this.getDicts('archivesStatus').then(response => {
- this.archivesStatusOptions = response.data
- })
- this.getDicts('INSURANCETYPE').then(response => {
- this.insuranceTypeOptions = response.data
- })
- this.getDicts('empCardStatus').then(response => {
- this.empCardStatusOptions = response.data
- })
- this.getDicts('handbookStatus').then(response => {
- this.handbookStatusOptions = response.data
- })
- this.getDicts('certificateList').then(response => {
- this.certificateListOptions = response.data
- })
- this.getDicts('PHYSICALEXAMTYPE').then(response => {
- this.physicalExamTypeOptions = response.data
- })
- this.getDicts('ECG').then(response => {
- this.ecgOptions = response.data
- })
- this.getDicts('CONTRACTSTATUS').then(response => {
- this.contractStatusOptions = response.data
- })
- this.getDicts('LEAVETYPE').then(response => {
- this.leaveTypeOptions = response.data
- })
- this.getDicts('INSURANCETYPE').then(response => {
- this.insuranceGaersOptions = response.data
- })
- this.getDicts('applayStatus').then(response => {
- this.applayStatusOptions = response.data
- })
- this.getDicts('reportStatus').then(response => {
- this.reportStatusOptions = response.data
- })
- this.getDicts('hospitalizatioFlag').then(response => {
- this.hospitalizatioFlagOptions = response.data
- })
- this.getDicts('settleStatus').then(response => {
- this.settleStatusOptions = response.data
- })
- this.getDicts('ZCTYPE').then(response => {
- this.arbitrationTypeOptions = response.data
- })
- this.getDicts('changeType').then(response => {
- this.changeTypeOptions = response.data
- })
- this.getDicts('LZTYPE').then(response => {
- this.dimissionTypeOptions = response.data
- })
+ // 字典数据已在登录时预加载,直接从 Vuex 获取
+ this.initDictTypes(['PLITICAL', 'sex', 'EMPTYPE', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE'])
},
methods: {
clickImg(node) {
@@ -4378,6 +4310,24 @@
const remarks = ''
val.remark = remarks
this.readon = false
+
+ // 清空所有模块数据,确保切换员工后点击标签会重新加载
+ this.workExperienceData = []
+ this.physicalExamData = []
+ this.contractInfoData = []
+ this.jobChangeData = []
+ this.leaveInfoData = []
+ this.resignData = []
+ this.dimissionAttendData = []
+ this.dimissionLogData = []
+ this.unemploymentData = []
+ this.insuranceData = []
+ this.accidentCasesData = []
+ this.occupationalData = []
+ this.laborTroubleData = []
+ this.badRecordData = []
+ this.remarkInfoData = []
+
this.empBaseInfoForm = { ...val }
this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + this.empBaseInfoForm.empId
this.fileDate.empId = this.empBaseInfoForm.empId
@@ -4540,22 +4490,8 @@
this.accidentCasesForm.sex = val.sex
this.$set(this.accidentCasesForm, 'delFlag', 0)
+ // 只加载附件数据(基本信息已在val中),其他模块懒加载
this.initlabel()
- this.initphysicalExamData()
- this.initList() // 工作经历
- this.initjobChangeData() // 调岗记录
- this.initdimissionLogData() // 入离职记录
- this.initcontractInfoData() // 合同信息
- this.initleaveInfoData() // 请假记录
- this.initresignData() // 辞职申请
- this.initunemploymentData() // 失业金领取
- this.initinsuranceData() // 社保申请
- this.initremarkInfoData() // 备注
- this.initlaborTroubleData() // 仲裁案件
- this.initoccupationalData() // 工伤案件
- this.initbadRecordData() // 不良记录
- this.initaccidentCasesData() // 意外险案件
- this.initdimissionAttendData() // 考勤情况
},
initphysicalExamData(params = {}) {
params.pageSize = this.pagination.size
@@ -6172,57 +6108,120 @@
goAnchor: function(type) {
let item = 1
this.item = type
+ // 根据点击的菜单懒加载对应数据
switch (type) {
case 'jbxx':
item = 0
+ // 基本信息 - 已加载
break
case 'gzjl':
item = 1
+ // 工作经历 - 懒加载
+ if (!this.workExperienceData || this.workExperienceData.length === 0) {
+ this.initList()
+ }
break
case 'tjxx':
item = 2
+ // 体检信息 - 懒加载
+ if (!this.physicalExamData || this.physicalExamData.length === 0) {
+ this.initphysicalExamData()
+ }
break
case 'htxx':
item = 3
+ // 合同信息 - 懒加载
+ if (!this.contractInfoData || this.contractInfoData.length === 0) {
+ this.initcontractInfoData()
+ }
break
case 'tgjl':
item = 4
+ // 调岗记录 - 懒加载
+ if (!this.jobChangeData || this.jobChangeData.length === 0) {
+ this.initjobChangeData()
+ }
break
case 'qjjl':
item = 5
+ // 请假记录 - 懒加载
+ if (!this.leaveInfoData || this.leaveInfoData.length === 0) {
+ this.initleaveInfoData()
+ }
break
case 'czsq':
item = 6
+ // 辞职申请 - 懒加载
+ if (!this.resignData || this.resignData.length === 0) {
+ this.initresignData()
+ }
break
case 'lzdykq':
item = 7
+ // 考勤情况 - 懒加载
+ if (!this.dimissionAttendData || this.dimissionAttendData.length === 0) {
+ this.initdimissionAttendData()
+ }
break
case 'rlzjl':
item = 8
+ // 入离职记录 - 懒加载
+ if (!this.dimissionLogData || this.dimissionLogData.length === 0) {
+ this.initdimissionLogData()
+ }
break
case 'syjlq':
item = 9
+ // 失业金领取 - 懒加载
+ if (!this.unemploymentData || this.unemploymentData.length === 0) {
+ this.initunemploymentData()
+ }
break
case 'sbsq':
item = 10
+ // 社保申请 - 懒加载
+ if (!this.insuranceData || this.insuranceData.length === 0) {
+ this.initinsuranceData()
+ }
break
case 'ywxaj':
item = 11
+ // 意外险案件 - 懒加载
+ if (!this.accidentCasesData || this.accidentCasesData.length === 0) {
+ this.initaccidentCasesData()
+ }
break
case 'gsaj':
item = 12
+ // 工伤案件 - 懒加载
+ if (!this.occupationalData || this.occupationalData.length === 0) {
+ this.initoccupationalData()
+ }
break
case 'lzaj':
item = 13
+ // 仲裁案件 - 懒加载
+ if (!this.laborTroubleData || this.laborTroubleData.length === 0) {
+ this.initlaborTroubleData()
+ }
break
case 'bljl':
item = 14
+ // 不良记录 - 懒加载
+ if (!this.badRecordData || this.badRecordData.length === 0) {
+ this.initbadRecordData()
+ }
break
case 'bz':
item = 15
+ // 备注 - 懒加载
+ if (!this.remarkInfoData || this.remarkInfoData.length === 0) {
+ this.initremarkInfoData()
+ }
break
case 'jljt':
item = 16
+ // 奖励津贴 - 懒加载
break
}
this.$nextTick(() => {
--
Gitblit v1.8.0