Compare commits

...

2 Commits

Author SHA1 Message Date
DESKTOP-CUI7KST\HXGK 592bbb6aa7 上次 2 years ago
DESKTOP-CUI7KST\HXGK da63994266 修改员工档案信息页面 2 years ago
  1. 75
      src/api/hr/people/datacont.ts
  2. 109
      src/api/hr/people/index.ts
  3. 87
      src/api/hr/people/type.ts
  4. 13
      src/types/components.d.ts
  5. 46
      src/views/hr/archives/archivescont.vue
  6. 119
      src/views/hr/archives/basicinformation/appraisalrecord.vue
  7. 118
      src/views/hr/archives/basicinformation/appraisalrecordadd.vue
  8. 132
      src/views/hr/archives/basicinformation/appraisalrecordedit.vue
  9. 71
      src/views/hr/archives/basicinformation/charactercolor.vue
  10. 44
      src/views/hr/archives/basicinformation/content.vue
  11. 211
      src/views/hr/archives/basicinformation/editcontent.vue
  12. 52
      src/views/hr/archives/basicinformation/emergencycontact.vue
  13. 35
      src/views/hr/archives/basicinformation/emergencycontactadd.vue
  14. 37
      src/views/hr/archives/basicinformation/emergencycontactedit.vue
  15. 7
      src/views/hr/archives/basicinformation/familymembersadd.vue
  16. 125
      src/views/hr/archives/basicinformation/rewardsandpunishments.vue
  17. 112
      src/views/hr/archives/basicinformation/rewardsandpunishmentsadd.vue
  18. 130
      src/views/hr/archives/basicinformation/rewardsandpunishmentsedit.vue
  19. 60
      src/views/hr/archives/basicinformation/workingcouple.vue
  20. 88
      src/views/hr/archives/basicinformation/workingcoupleadd.vue
  21. 63
      src/views/hr/archives/basicinformation/workingcoupleedit.vue

75
src/api/hr/people/datacont.ts

@ -126,7 +126,7 @@ export const healthStates = [
/** /**
* *
*/ */
export const userPoliticaloutloo =[ export const userPoliticaloutlook = [
{ {
id: 1, id: 1,
name: "群众" name: "群众"
@ -308,6 +308,23 @@ export const healthStates = [
name: "离职" name: "离职"
} }
]; ];
/**
*
*/
export const Householdregistration = [
{
id: 1,
name: "农业户口"
},
{
id: 2,
name: "非农业户口"
}
];
/** /**
* *
*/ */
@ -347,7 +364,7 @@ export const education =[
}, },
{ {
id: 6, id: 6,
name:'函数专科' name: '函授专科'
}, },
{ {
id: 7, id: 7,
@ -355,7 +372,7 @@ export const education =[
}, },
{ {
id: 8, id: 8,
name:'函数本科' name: '函授本科'
}, },
{ {
id: 9, id: 9,
@ -548,3 +565,55 @@ export const postChangeType=[
name: "最高学历" name: "最高学历"
} }
] ]
/**
*
*/
export const year = [
{
id: 1,
name: "2020年"
},
{
id: 2,
name: "2021年"
},
{
id: 3,
name: "2022年"
},
{
id: 4,
name: "2023年"
}
]
/**
*
*/
export const level = [
{
id: 1,
name: "A"
},
{
id: 2,
name: "B"
},
{
id: 3,
name: "C"
},
{
id: 4,
name: "D"
},
{
id: 5,
name: "E"
},
{
id: 6,
name: "F"
}
]

109
src/api/hr/people/index.ts

@ -22,7 +22,11 @@ import {
editUserAboutOrg, editUserAboutOrg,
teamClassQueay, teamClassQueay,
searchPeoleCont, searchPeoleCont,
queryPeopleCont queryPeopleCont,
RewardsAndPunishmentsContAdd,
RewardsAndPunishmentsContEdit,
AppraisalrecordContAdd,
AppraisalrecordContEdit
} from './type'; } from './type';
/** /**
* *
@ -366,3 +370,106 @@ import {
data: data data: data
}); });
} }
// export function xxxxxx(data?: contId) { 括号后无具体内容,则提交数据时,then内直接写data,且要打印出来检查,若有内容,则直接加花括号即可
// return request({ contId:集成前面的Id
// url: '/hrapi/staff/useraboutorglist',
// method: 'post',
// data: data
// });
// }
/**
*
*/
export function getRewardsAndPunishmentsCont(data?: contId) {
return request({
url: '/hrapi/staff/rewardsandpunishmentslist',
method: 'post',
data: data
});
}
/**
*
*/
export function addRewardsAndPunishmentsCont(data?: RewardsAndPunishmentsContAdd) {
return request({
url: '/hrapi/staff/addRewardsAndPunishments',
method: 'post',
data: data
});
}
/**
*
*/
export function editRewardsAndPunishmentsCont(data?: RewardsAndPunishmentsContEdit) {
return request({
url: '/hrapi/staff/editrewardsandpunishments',
method: 'post',
data: data
});
}
/**
*
*/
export function editRewardsAndPunishmentsContState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editRewardsAndPunishmentssatte',
method: 'post',
data: data
});
}
/**
*
*/
export function getAppraisalrecordCont(data?: contId) {
return request({
url: '/hrapi/staff/Appraisalrecordlist',
method: 'post',
data: data
});
}
/**
*
*/
export function addAppraisalrecordCont(data?: AppraisalrecordContAdd) {
return request({
url: '/hrapi/staff/addAppraisalrecord',
method: 'post',
data: data
});
}
/**
*
*/
export function editAppraisalrecordCont(data?: AppraisalrecordContEdit) {
return request({
url: '/hrapi/staff/editAppraisalrecord',
method: 'post',
data: data
});
}
/**
*
*/
export function editAppraisalrecordContState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editAppraisalrecordsatte',
method: 'post',
data: data
});
}
/**
*
*/
export function getPeopleColor(data?: contId) {
return request({
url: '/hrapi/staff/getPeopleColor',
method: 'post',
data: data
});
}

87
src/api/hr/people/type.ts

@ -30,6 +30,7 @@ export interface archivesCont{
eitetime?: number //1657002602; eitetime?: number //1657002602;
wechat?: string //""; wechat?: string //"";
workwechat?: string //""; workwechat?: string //"";
interests?: string
state?: number //1; state?: number //1;
key?: number //4929995352838144; key?: number //4929995352838144;
isadmin?: number //0; isadmin?: number //0;
@ -43,6 +44,7 @@ export interface archivesCont{
gender?: number //1; gender?: number //1;
birthday?: number //195062400; birthday?: number //195062400;
myfolk?: string //"汉族"; myfolk?: string //"汉族";
bloodtype?: string
nativeplace?: string //"济宁高新区恒信公馆"; nativeplace?: string //"济宁高新区恒信公馆";
idcardstartdate?: number //1173801600; idcardstartdate?: number //1173801600;
idcardenddate?: number //1804953600; idcardenddate?: number //1804953600;
@ -55,6 +57,7 @@ export interface archivesCont{
constellationing?: number //12; constellationing?: number //12;
isdoubleworker?: number //2; isdoubleworker?: number //2;
isveterans?: number //2; isveterans?: number //2;
natureofAccount?: number
veteransnumber?: string //""; veteransnumber?: string //"";
jobstartdate?: number //825609600; jobstartdate?: number //825609600;
entrydate?: number //0; entrydate?: number //0;
@ -134,9 +137,14 @@ export interface emergencyContact{
export interface shuangzhigong { export interface shuangzhigong {
id: number id: number
number?: string number?: string
workcouple?: string
name?: string name?: string
company?: string company?: string
department?: string department?: string
section?: string
job?: string
level?: string
mobilephone?: number
position?: string position?: string
tel?: string tel?: string
time?: number time?: number
@ -257,6 +265,7 @@ export interface myinfostruct{
eitetime?: number //1671160648, eitetime?: number //1671160648,
wechat?: string //"", wechat?: string //"",
workwechat?: string //"KaiXinGuo", workwechat?: string //"KaiXinGuo",
interests?: string
state?: number //1, state?: number //1,
key?: number //15993815826844528, key?: number //15993815826844528,
isadmin?: number //4, isadmin?: number //4,
@ -270,6 +279,7 @@ export interface myinfostruct{
gender?: number //1, gender?: number //1,
birthday?: number //592848000, birthday?: number //592848000,
myfolk?: string //"汉族", myfolk?: string //"汉族",
bloodtype?: string
nativeplace?: string //"山东省宁阳县华丰镇白土厂村15号", nativeplace?: string //"山东省宁阳县华丰镇白土厂村15号",
idcardstartdate?: number //0, idcardstartdate?: number //0,
idcardenddate?: number //0, idcardenddate?: number //0,
@ -282,6 +292,7 @@ export interface myinfostruct{
constellationing?: number //1, constellationing?: number //1,
isdoubleworker?: number //2, isdoubleworker?: number //2,
isveterans?: number //2, isveterans?: number //2,
natureofAccount?: number
veteransnumber?: string //"", veteransnumber?: string //"",
jobstartdate?: number //0, jobstartdate?: number //0,
entrydate?: number //0, entrydate?: number //0,
@ -353,17 +364,20 @@ export interface userManOrFucont{
idcardaddress?: string idcardaddress?: string
idcardIssued?: string idcardIssued?: string
currentresidence?: string currentresidence?: string
bloodtype?: string
nativeplace?: string nativeplace?: string
email?: string email?: string
internaltelephone?: string internaltelephone?: string
hireclass?: number hireclass?: number
emptype?: number emptype?: number
isveterans?: number isveterans?: number
natureofAccount?: number
veteransnumber?: string veteransnumber?: string
passportno?: string passportno?: string
globalroaming?: string globalroaming?: string
wechat?: string wechat?: string
workwechat?: string workwechat?: string
interests?: string
constellationing?: number constellationing?: number
maritalstatus?: number maritalstatus?: number
} }
@ -374,6 +388,8 @@ export interface emergencyContactInfo extends contId{
name?: string name?: string
relationship?: string relationship?: string
mobilephone?: string mobilephone?: string
political?: string
company?: string
} }
/** /**
* *
@ -398,9 +414,14 @@ export interface delJjlxr extends contId{
*/ */
export interface doubleWorkCont extends contId { export interface doubleWorkCont extends contId {
name?: string name?: string
workcouple?: string
company?: string company?: string
department?: string department?: string
section?: string
job?: string
level?: string
position?: string position?: string
time?: string
mobilephone?: string mobilephone?: string
} }
/** /**
@ -566,3 +587,69 @@ export interface queryPeopleCont{
tema: number // 1, tema: number // 1,
temaname: string // "长白班" temaname: string // "长白班"
} }
/**
*
*/
export interface RewardsAndPunishmentsCont {
id?: string
level?: string
type?: string
content?: string
time?: string
company?: string
}
/**
*
*/
export interface jiangchengjilu {
id?: string
level?: string
type?: string
content?: string
time?: string
company?: string
}
/**
*
*/
export interface RewardsAndPunishmentsContAdd extends contId {
list?: RewardsAndPunishmentsCont[]
}
/**
*
*/
export interface RewardsAndPunishmentsContEdit extends RewardsAndPunishmentsCont {
id?: string
}
/**
*
*/
export interface AppraisalrecordCont {
id?: string
level?: string
year?: string
}
/**
*
*/
export interface kaopingjilu {
id?: string
level?: string
year?: string
}
/**
*
*/
export interface AppraisalrecordContAdd extends contId {
list?: AppraisalrecordCont[]
}
/**
*
*/
export interface AppraisalrecordContEdit extends AppraisalrecordCont {
id?: string
}

13
src/types/components.d.ts

@ -9,7 +9,6 @@ export {}
declare module '@vue/runtime-core' { declare module '@vue/runtime-core' {
export interface GlobalComponents { export interface GlobalComponents {
'副本': typeof import('./../components/DesignForm/formControlAttr - 副本.vue')['default']
AceDrawer: typeof import('./../components/DesignForm/aceDrawer.vue')['default'] AceDrawer: typeof import('./../components/DesignForm/aceDrawer.vue')['default']
AddNode: typeof import('./../components/workflow/addNode.vue')['default'] AddNode: typeof import('./../components/workflow/addNode.vue')['default']
ApproverDrawer: typeof import('./../components/workflow/drwer/approverDrawer.vue')['default'] ApproverDrawer: typeof import('./../components/workflow/drwer/approverDrawer.vue')['default']
@ -22,6 +21,7 @@ declare module '@vue/runtime-core' {
DesignLayoutPage: typeof import('./../components/DesignForm/designLayout/designLayoutPage.vue')['default'] DesignLayoutPage: typeof import('./../components/DesignForm/designLayout/designLayoutPage.vue')['default']
DiyIconfont: typeof import('./../components/DesignForm/public/expand/diy-iconfont.vue')['default'] DiyIconfont: typeof import('./../components/DesignForm/public/expand/diy-iconfont.vue')['default']
DragControl: typeof import('./../components/DesignForm/dragControl.vue')['default'] DragControl: typeof import('./../components/DesignForm/dragControl.vue')['default']
ElAffix: typeof import('element-plus/es')['ElAffix']
ElAside: typeof import('element-plus/es')['ElAside'] ElAside: typeof import('element-plus/es')['ElAside']
ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
@ -51,8 +51,10 @@ declare module '@vue/runtime-core' {
ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage'] ElImage: typeof import('element-plus/es')['ElImage']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink']
ElMain: typeof import('element-plus/es')['ElMain'] ElMain: typeof import('element-plus/es')['ElMain']
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
@ -61,18 +63,15 @@ declare module '@vue/runtime-core' {
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElProgress: typeof import('element-plus/es')['ElProgress'] ElProgress: typeof import('element-plus/es')['ElProgress']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
<<<<<<< HEAD
=======
ElSelectV2: typeof import('element-plus/es')['ElSelectV2'] ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElSlider: typeof import('element-plus/es')['ElSlider'] ElSlider: typeof import('element-plus/es')['ElSlider']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElStep: typeof import('element-plus/es')['ElStep'] ElStep: typeof import('element-plus/es')['ElStep']
ElSteps: typeof import('element-plus/es')['ElSteps'] ElSteps: typeof import('element-plus/es')['ElSteps']
>>>>>>> v7_master
ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
@ -106,9 +105,13 @@ declare module '@vue/runtime-core' {
HeadToolsNew: typeof import('./../components/DesignForm/public/headToolsNew.vue')['default'] HeadToolsNew: typeof import('./../components/DesignForm/public/headToolsNew.vue')['default']
IconSelect: typeof import('./../components/IconSelect/index.vue')['default'] IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default'] IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
IEpClose: typeof import('~icons/ep/close')['default'] IEpClose: typeof import('~icons/ep/close')['default']
IEpDelete: typeof import('~icons/ep/delete')['default'] IEpDelete: typeof import('~icons/ep/delete')['default']
IEpEdit: typeof import('~icons/ep/edit')['default'] IEpEdit: typeof import('~icons/ep/edit')['default']
IEpMessageBox: typeof import('~icons/ep/message-box')['default']
IEpOperation: typeof import('~icons/ep/operation')['default']
IEpPicture: typeof import('~icons/ep/picture')['default']
IEpPlus: typeof import('~icons/ep/plus')['default'] IEpPlus: typeof import('~icons/ep/plus')['default']
IEpRefresh: typeof import('~icons/ep/refresh')['default'] IEpRefresh: typeof import('~icons/ep/refresh')['default']
IEpSearch: typeof import('~icons/ep/search')['default'] IEpSearch: typeof import('~icons/ep/search')['default']

46
src/views/hr/archives/archivescont.vue

@ -9,6 +9,7 @@
*/ */
import UserContent from '@/views/hr/archives/basicinformation/content.vue' import UserContent from '@/views/hr/archives/basicinformation/content.vue'
import EditUserContent from '@/views/hr/archives/basicinformation/editcontent.vue' import EditUserContent from '@/views/hr/archives/basicinformation/editcontent.vue'
import CharacterColor from '@/views/hr/archives/basicinformation/charactercolor.vue'
import OrgNexus from '@/views/hr/archives/basicinformation/orgnexus.vue' import OrgNexus from '@/views/hr/archives/basicinformation/orgnexus.vue'
import EmergencyContactPage from '@/views/hr/archives/basicinformation/emergencycontact.vue' import EmergencyContactPage from '@/views/hr/archives/basicinformation/emergencycontact.vue'
import WorkingCouplePage from '@/views/hr/archives/basicinformation/workingcouple.vue' import WorkingCouplePage from '@/views/hr/archives/basicinformation/workingcouple.vue'
@ -16,6 +17,8 @@ import FamilyMembers from '@/views/hr/archives/basicinformation/familymembers.vu
import EducationalExperience from '@/views/hr/archives/basicinformation/educationalexperience.vue' import EducationalExperience from '@/views/hr/archives/basicinformation/educationalexperience.vue'
import InnerWork from '@/views/hr/archives/basicinformation/innerwork.vue' import InnerWork from '@/views/hr/archives/basicinformation/innerwork.vue'
import OutsideWork from '@/views/hr/archives/basicinformation/outsideWork.vue' import OutsideWork from '@/views/hr/archives/basicinformation/outsideWork.vue'
import Rewardsandpunishments from '@/views/hr/archives/basicinformation/rewardsandpunishments.vue'
import Appraisalrecord from '@/views/hr/archives/basicinformation/appraisalrecord.vue'
import Editpwd from '@/views/hr/archives/basicinformation/editpwd.vue' import Editpwd from '@/views/hr/archives/basicinformation/editpwd.vue'
import EditOrg from '@/views/hr/archives/basicinformation/editorg.vue' import EditOrg from '@/views/hr/archives/basicinformation/editorg.vue'
@ -88,6 +91,7 @@ const editMyOrgCont = ref(false);
userConting.eitetime = data.data.eitetime //1671160648, userConting.eitetime = data.data.eitetime //1671160648,
userConting.wechat = data.data.wechat //"", userConting.wechat = data.data.wechat //"",
userConting.workwechat = data.data.workwechat //"KaiXinGuo", userConting.workwechat = data.data.workwechat //"KaiXinGuo",
userConting.interests = data.data.interests
userConting.state = data.data.state //1, userConting.state = data.data.state //1,
userConting.key = data.data.key //15993815826844528, userConting.key = data.data.key //15993815826844528,
userConting.isadmin = data.data.isadmin //4, userConting.isadmin = data.data.isadmin //4,
@ -101,6 +105,7 @@ const editMyOrgCont = ref(false);
userConting.gender = data.data.gender //1, userConting.gender = data.data.gender //1,
userConting.birthday = data.data.birthday //592848000, userConting.birthday = data.data.birthday //592848000,
userConting.myfolk = data.data.myfolk //"", userConting.myfolk = data.data.myfolk //"",
userConting.bloodtype = data.data.bloodtype
userConting.nativeplace = data.data.nativeplace //"15", userConting.nativeplace = data.data.nativeplace //"15",
userConting.idcardstartdate = data.data.idcardstartdate //0, userConting.idcardstartdate = data.data.idcardstartdate //0,
userConting.idcardenddate = data.data.idcardenddate //0, userConting.idcardenddate = data.data.idcardenddate //0,
@ -113,6 +118,7 @@ const editMyOrgCont = ref(false);
userConting.constellationing = data.data.constellationing //1, userConting.constellationing = data.data.constellationing //1,
userConting.isdoubleworker = data.data.isdoubleworker //2, userConting.isdoubleworker = data.data.isdoubleworker //2,
userConting.isveterans = data.data.isveterans //2, userConting.isveterans = data.data.isveterans //2,
userConting.natureofAccount = data.data.natureofAccount
userConting.veteransnumber = data.data.veteransnumber //"", userConting.veteransnumber = data.data.veteransnumber //"",
userConting.jobstartdate = data.data.jobstartdate //0, userConting.jobstartdate = data.data.jobstartdate //0,
userConting.entrydate = data.data.entrydate //0, userConting.entrydate = data.data.entrydate //0,
@ -305,20 +311,16 @@ function editmvorg(){
} }
</script> </script>
<template> <template>
<el-dialog v-model="boxShow" custom-class="dialog_box" :title="boxTitle" top="50px" :before-close="closeArchivesBox" width="80%"> <el-dialog v-model="boxShow" custom-class="dialog_box" :title="boxTitle" top="50px" :before-close="closeArchivesBox"
width="80%">
<el-row v-loading="rowLoading" :gutter="20"> <el-row v-loading="rowLoading" :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-card shadow="always" class="box-card-left"> <el-card shadow="always" class="box-card-left">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-upload <el-upload class="avatar-uploader" :action="imgUploadApiUrl" :show-file-list="false"
class="avatar-uploader" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
:action="imgUploadApiUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<el-avatar :size="180" :src="userIcon" /> <el-avatar :size="180" :src="userIcon" />
</el-upload> </el-upload>
@ -405,10 +407,14 @@ function editmvorg(){
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClickUser"> <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClickUser">
<el-tab-pane label="基本信息" name="1"> <el-tab-pane label="基本信息" name="1">
<UserContent v-if="!editMyCont&&activeName=='1'" v-model:editShow="editMyCont" :usercont="userConting" :tabsid="activeName" /> <UserContent v-if="!editMyCont && activeName == '1'" v-model:editShow="editMyCont"
<EditUserContent v-if="editMyCont" v-model:editShow="editMyCont" :usercont="userConting" :tabsid="activeName" @refreshcontdata="refreshContPage" /> :usercont="userConting" :tabsid="activeName" />
<EditUserContent v-if="editMyCont" v-model:editShow="editMyCont" :usercont="userConting"
:tabsid="activeName" @refreshcontdata="refreshContPage" />
</el-tab-pane>
<el-tab-pane label="彩色性格" name="2">
<CharacterColor :usercont="userConting" :tabsid="activeName" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="彩色性格" name="2">彩色性格</el-tab-pane>
<el-tab-pane label="行政组织关系" name="3"> <el-tab-pane label="行政组织关系" name="3">
<OrgNexus :usercont="userConting" :tabsid="activeName" /> <OrgNexus :usercont="userConting" :tabsid="activeName" />
</el-tab-pane> </el-tab-pane>
@ -430,8 +436,12 @@ function editmvorg(){
<el-tab-pane label="集团外部工作履历" name="9"> <el-tab-pane label="集团外部工作履历" name="9">
<OutsideWork :usercont="userConting" :tabsid="activeName" /> <OutsideWork :usercont="userConting" :tabsid="activeName" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="奖惩记录" name="10">奖惩记录</el-tab-pane> <el-tab-pane label="奖惩记录" name="10">
<el-tab-pane label="考评记录" name="11">考评记录</el-tab-pane> <Rewardsandpunishments :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="考评记录" name="11">
<Appraisalrecord :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="修改登陆密码" name="12"> <el-tab-pane label="修改登陆密码" name="12">
<Editpwd :usercont="userConting" :tabsid="activeName" /> <Editpwd :usercont="userConting" :tabsid="activeName" />
</el-tab-pane> </el-tab-pane>
@ -440,7 +450,8 @@ function editmvorg(){
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<EditOrg v-model:editShow="editMyOrgCont" :usercont="userConting" :tabsid="activeName" @refreshcontdata="refreshContPage" /> <EditOrg v-model:editShow="editMyOrgCont" :usercont="userConting" :tabsid="activeName"
@refreshcontdata="refreshContPage" />
</el-dialog> </el-dialog>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped>
@ -448,24 +459,31 @@ function editmvorg(){
background-color: aqua; background-color: aqua;
height: 50px; height: 50px;
} }
.box-card-left { .box-card-left {
text-align: center; text-align: center;
.username { .username {
margin-top: 20px; margin-top: 20px;
font-size: 35px; font-size: 35px;
} }
.usernumber { .usernumber {
margin-top: 10px; margin-top: 10px;
font-size: 25px; font-size: 25px;
} }
.user_cont { .user_cont {
width: 90%; width: 90%;
margin: auto; margin: auto;
text-align: left; text-align: left;
.col_box { .col_box {
margin-top: 10px; margin-top: 10px;
.cont_size { .cont_size {
font-size: 16px; font-size: 16px;
.svg_box { .svg_box {
margin-right: 10px; margin-right: 10px;
} }

119
src/views/hr/archives/basicinformation/appraisalrecord.vue

@ -0,0 +1,119 @@
<!--
@ 作者: 袁纪菲
@ 时间: 2024-03-04
@ 备注: 考评记录
-->
<script lang='ts' setup>
import {kaopingjilu} from '@/api/hr/people/type'
import { getAppraisalrecordCont,editAppraisalrecordContState } from '@/api/hr/people/index'
import AddAppraisalrecord from '@/views/hr/archives/basicinformation/appraisalrecordadd.vue'
import EditAppraisalrecord from '@/views/hr/archives/basicinformation/appraisalrecordedit.vue'
const props = defineProps({
tabsid:{
type:String,
default:"1"
},
usercont:{
type:Object,
default(){
return {}
}
}
});
const addkpjlBoxPage = ref(false) //
const editkpjlBoxPage = ref(false) //
const tableLoading = ref(false)
const kpjlList = ref<kaopingjilu[]>([])
const kpjlInfo = ref<kaopingjilu>()
const getkpjlList = () => {
tableLoading.value = true;
getAppraisalrecordCont({id:props.usercont.keystr})
.then(( data )=>{
kpjlList.value = data.data
})
.finally(()=>{tableLoading.value = false;})
}
/**
* 监听数据
*/
watch(() => props.tabsid,() => {
if(props.tabsid == "3"){
getkpjlList()
}
})
/**
* 添加数据
*/
const addkpjlBox = (key:string) => {
addkpjlBoxPage.value = true;
}
/**
* 编辑奖惩记录
*/
const editkpjlBox = (cont:kaopingjilu) => {
kpjlInfo.value = cont
editkpjlBoxPage.value = true;
}
/**
* 删除奖惩记录
*/
const delkpjlBox = (cont:kaopingjilu) => {
ElMessageBox.confirm("确认删除<"+cont.id+">此数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
editAppraisalrecordContState({id:toString(),state:3,isdel:1}).then(() => {
ElMessage.success("删除成功");
getkpjlList()
});
});
}
</script>
<template>
<AddAppraisalrecord v-model:addisshow="addkpjlBoxPage" :keyval="props.usercont.keystr" @restdata="getkpjlList" />
<EditAppraisalrecord v-model:editisshow="editkpjlBoxPage" :keyval="props.usercont.keystr" :datacont="kpjlInfo" @restdata="getkpjlList" />
<el-table
v-loading="tableLoading"
highlight-current-row
:data="kpjlList"
border
:header-cell-style="{background:'#F5F7FA'}"
>
<el-table-column label="考核年度" prop="year" />
<el-table-column label="考核等级" prop="level" />
<el-table-column fixed="right" align="right" width="130">
<template #header>
<el-button
type="primary"
link
size="small"
@click.stop="addkpjlBox(props.usercont.keystr)"
>
<i-ep-plus /> 新增
</el-button>
</template>
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="editkpjlBox(scope.row)"
>
<i-ep-edit />编辑
</el-button>
<el-button
type="primary"
link
size="small"
@click.stop="delkpjlBox(scope.row)"
>
<i-ep-delete />删除
</el-button>
</template>
</el-table-column>
</el-table>
</template>
<style></style>

118
src/views/hr/archives/basicinformation/appraisalrecordadd.vue

@ -0,0 +1,118 @@
<!--
@ 作者:袁纪菲
@ 时间: 2024-3-4
@ 备注: 添加考评记录
-->
<script lang='ts' setup>
import { AppraisalrecordCont } from '@/api/hr/people/type'
import { addAppraisalrecordCont} from '@/api/hr/people/index'
import { year } from '@/api/hr/people/datacont';
import { level } from '@/api/hr/people/datacont';
const props = defineProps({
addisshow:{
type:Boolean,
default:false
},
keyval:{
type:String,
default:""
}
});
const addLoading = ref(false)
const emits = defineEmits(["update:addisshow","restdata"]);
const addkpjlFormRef = ref(ElForm);
const kpjlFormData = reactive<AppraisalrecordCont>({});
/**
* 弹窗显示控制
*/
const addshow = computed({
get: () => props.addisshow,
set: (val) => {
emits("update:addisshow", val);
},
});
/**
* 表单验证规则
*/
const addkpjlRules = reactive({
});
/**
* 关闭弹窗
*/
const clostAddBoxkpjl = () => {
emits("update:addisshow", false);
initkpjlData()
}
/**
* 初始化数据
*/
const initkpjlData = () => {
addkpjlFormRef.value.resetFields();
addLoading.value = false;
}
/**
* 提交数据
*/
const submitAddkpjl = () => {
// console.log("",kpjlFormData)
// addLoading.value = true;
addkpjlFormRef.value.validate((isValid: boolean) => {
if (isValid) {
let listAry = new Array
listAry.push(kpjlFormData)
addAppraisalrecordCont({id:props.keyval,list:listAry})
.then(() =>{
ElMessage.success("新增成功");
clostAddBoxkpjl();
emits('restdata');
})
.finally(() =>{addLoading.value = false;})
}
});
}
</script>
<template>
<el-dialog
v-model="addshow"
width="500"
title="添加考评记录"
append-to-body
:before-close="clostAddBoxkpjl"
>
<el-form
ref="addkpjlFormRef"
:model="kpjlFormData"
:rules="addkpjlRules"
label-width="140px"
>
<el-form-item label="考核年度" prop="year">
<el-select v-model="kpjlFormData.year" placeholder="请选择考核年度" >
<el-option
v-for="item in year"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="考核等级" prop="level">
<el-select v-model="kpjlFormData.level" placeholder="请选择考核等级" >
<el-option
v-for="item in level"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addLoading" @click="submitAddkpjl" > </el-button>
<el-button @click="clostAddBoxkpjl"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style></style>

132
src/views/hr/archives/basicinformation/appraisalrecordedit.vue

@ -0,0 +1,132 @@
<!--
@ 作者: 袁纪菲
@ 时间: 2024-3-4
@ 备注: 编辑考评记录
-->
<script lang='ts' setup>
import { AppraisalrecordCont } from '@/api/hr/people/type'
import { editAppraisalrecordCont } from '@/api/hr/people/index'
import { year } from '@/api/hr/people/datacont';
import { level } from '@/api/hr/people/datacont';
const props = defineProps({
editisshow:{
type:Boolean,
default:false
},
keyval:{
type:String,
default:""
},
datacont:{
type:Object,
default(){
return {}
}
}
});
const editLoading = ref(false)
const emits = defineEmits(["update:addisshow","restdata"]); //
const editkpjlFormRef = ref(ElForm); //
const kpjlFormData = reactive<AppraisalrecordCont>({});
/**
* 弹窗显示控制
*/
const editshow = computed({
get: () => props.editisshow,
set: (val) => {
emits("update:addisshow", val);
},
});
/**
* 表单验证规则
*/
const editkpjlRules = reactive({
});
/**
* 关闭弹窗
*/
const clostEditBoxkpjl = () => {
emits("update:addisshow", false);
initkpjlData()
}
/**
* 初始化数据
*/
const initkpjlData = () => {
editkpjlFormRef.value.resetFields();
editLoading.value = false;
}
/**
* 提交数据
*/
const submitEditkpjl = () => {
// console.log("",kpjlFormData)
// addLoading.value = true;
editkpjlFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editAppraisalrecordCont(kpjlFormData)
.then(() =>{
ElMessage.success("编辑成功");
clostEditBoxkpjl();
emits('restdata');
})
.finally(() =>{editLoading.value = false;})
}
});
}
/**
* 监听数据
*/
watch(() => props.editisshow,() => {
if(props.editisshow){
kpjlFormData.id = props.datacont.id.toString();
kpjlFormData.level = props.datacont.level;
kpjlFormData.year = props.datacont.year;
}
})
</script>
<template>
<el-dialog
v-model="editshow"
width="500"
title="编辑考评记录"
append-to-body
:before-close="clostEditBoxkpjl"
>
<el-form
ref="editkpjlFormRef"
:model="kpjlFormData"
:rules="editkpjlRules"
label-width="140px"
>
<el-form-item label="考核年度" prop="year">
<el-select v-model="kpjlFormData.year" placeholder="请选择考核年度" >
<el-option
v-for="item in year"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="考核等级" prop="level">
<el-select v-model="kpjlFormData.level" placeholder="请选择考核等级" >
<el-option
v-for="item in level"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="editLoading" @click="submitEditkpjl" > </el-button>
<el-button @click="clostEditBoxkpjl"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style></style>

71
src/views/hr/archives/basicinformation/charactercolor.vue

@ -0,0 +1,71 @@
<!--
@ 作者: 袁纪菲
@ 时间: 2024-2-28
@ 备注: 色彩性格
-->
<script lang='ts' setup>
import * as echarts from 'echarts';
import axios from 'axios';
import { getPeopleColor} from '@/api/hr/people/index'
onMounted(() => {
const dom = document.getElementById('myChart');
const myChart = echarts.init(dom); // echarts
window.addEventListener('resize', () => {
myChart.resize(); //
});
const option = {
title: {
text: '性格色彩特质'
},
tooltip: {
trigger: 'axis'
},
legend: {
left: 'center',
data: [
'A Phone',
'Another Phone',
'Precipitation',
'Evaporation'
]
},
radar: [
{
indicator: [
{ text: '红色', max: 100 },
{ text: '蓝色', max: 100 },
{ text: '黄色', max: 100 },
{ text: '绿色', max: 100 }
],
center: ['25%', '40%'],
radius: 100
},
],
series: [
{
type: 'radar',
tooltip: {
trigger: 'item'
},
areaStyle: {},
data: [
{
value: [60, 73, 85, 40],
name: '性格色彩'
}
]
},
]
};
//
myChart.setOption(option);
});
</script>
<template>
<div ref="myChart" id="myChart" :style="{ width: '800px', height: '400px' }"></div>
</template>
<style></style>

44
src/views/hr/archives/basicinformation/content.vue

@ -40,13 +40,7 @@ function editCont(){
</script> </script>
<template> <template>
<el-descriptions <el-descriptions class="margin-top" direction="vertical" :column="4" border :width="80">
class="margin-top"
direction="vertical"
:column="4"
border
:width="80"
>
<template #extra> <template #extra>
<el-button type="primary" link size="small" @click="editCont"><i-ep-edit />编辑</el-button> <el-button type="primary" link size="small" @click="editCont"><i-ep-edit />编辑</el-button>
</template> </template>
@ -169,7 +163,17 @@ function editCont(){
</template> </template>
{{ props.usercont.internaltelephone }}&nbsp; {{ props.usercont.internaltelephone }}&nbsp;
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2">
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<Notification />
</el-icon> </el-text>
</template>
{{ props.usercont.bloodtype }}&nbsp;
</el-descriptions-item>
<el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="0213-lmp" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="0213-lmp" class="svg_box"></svg-icon> </el-text>
</template> </template>
@ -274,6 +278,16 @@ function editCont(){
{{ props.usercont.globalroaming }}&nbsp; {{ props.usercont.globalroaming }}&nbsp;
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<HomeFilled />
</el-icon> </el-text>
</template>
<span v-if="props.usercont.natureofAccount == 2">农业户口</span>
<span v-else>非农业户口</span>&nbsp;
</el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="wechat" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="wechat" class="svg_box"></svg-icon> </el-text>
@ -287,11 +301,19 @@ function editCont(){
{{ props.usercont.workwechat }}&nbsp; {{ props.usercont.workwechat }}&nbsp;
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<Star />
</el-icon> </el-text>
</template>
{{ props.usercont.interests }}&nbsp;
</el-descriptions-item>
<el-descriptions-item :span="2"> <el-descriptions-item :span="2">
&nbsp; &nbsp;
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

211
src/views/hr/archives/basicinformation/editcontent.vue

@ -8,7 +8,7 @@ import { myinfostruct,userManOrFucont } from '@/api/hr/people/type'
import { editMyInfoing } from '@/api/hr/people/index' import { editMyInfoing } from '@/api/hr/people/index'
// import { calculateDatesMonth } from '@/api/publicapi' // import { calculateDatesMonth } from '@/api/publicapi'
import { haveDateTime } from '@/api/handle' import { haveDateTime } from '@/api/handle'
import { userGender,healthStates,userMaritalstatus,userPoliticaloutloo,userConstellationing,userHireclass,emptypeOptionsAll,yesOrno } from '@/api/hr/people/datacont' import { userGender, healthStates, userMaritalstatus, userPoliticaloutlook, userConstellationing, userHireclass, emptypeOptionsAll, Householdregistration, yesOrno } from '@/api/hr/people/datacont'
const props = defineProps({ const props = defineProps({
editShow: { editShow: {
@ -80,17 +80,20 @@ function submitEditMyCont(){
submitEditCont.idcardaddress = myContData.idcardaddress submitEditCont.idcardaddress = myContData.idcardaddress
submitEditCont.idcardIssued = myContData.idcardIssued submitEditCont.idcardIssued = myContData.idcardIssued
submitEditCont.currentresidence = myContData.currentresidence submitEditCont.currentresidence = myContData.currentresidence
submitEditCont.bloodtype = myContData.bloodtype
submitEditCont.nativeplace = myContData.nativeplace submitEditCont.nativeplace = myContData.nativeplace
submitEditCont.email = myContData.email submitEditCont.email = myContData.email
submitEditCont.internaltelephone = myContData.internaltelephone submitEditCont.internaltelephone = myContData.internaltelephone
submitEditCont.hireclass = myContData.hireclass submitEditCont.hireclass = myContData.hireclass
submitEditCont.emptype = myContData.emptype submitEditCont.emptype = myContData.emptype
submitEditCont.isveterans = myContData.isveterans submitEditCont.isveterans = myContData.isveterans
submitEditCont.natureofAccount = myContData.natureofAccount
submitEditCont.veteransnumber = myContData.veteransnumber submitEditCont.veteransnumber = myContData.veteransnumber
submitEditCont.passportno = myContData.passportno submitEditCont.passportno = myContData.passportno
submitEditCont.globalroaming = myContData.globalroaming submitEditCont.globalroaming = myContData.globalroaming
submitEditCont.wechat = myContData.wechat submitEditCont.wechat = myContData.wechat
submitEditCont.workwechat = myContData.workwechat submitEditCont.workwechat = myContData.workwechat
submitEditCont.interests = myContData.interests
submitEditCont.constellationing = myContData.constellationing submitEditCont.constellationing = myContData.constellationing
submitEditCont.maritalstatus = myContData.maritalstatus submitEditCont.maritalstatus = myContData.maritalstatus
editMyInfoing(submitEditCont) editMyInfoing(submitEditCont)
@ -131,6 +134,7 @@ onMounted(() => {
myContData.eitetime = props.usercont.eitetime //1671160648, myContData.eitetime = props.usercont.eitetime //1671160648,
myContData.wechat = props.usercont.wechat //"", myContData.wechat = props.usercont.wechat //"",
myContData.workwechat = props.usercont.workwechat //"KaiXinGuo", myContData.workwechat = props.usercont.workwechat //"KaiXinGuo",
myContData.interests = props.usercont.interests
myContData.state = props.usercont.state //1, myContData.state = props.usercont.state //1,
myContData.key = props.usercont.key //15993815826844528, myContData.key = props.usercont.key //15993815826844528,
myContData.isadmin = props.usercont.isadmin //4, myContData.isadmin = props.usercont.isadmin //4,
@ -144,6 +148,7 @@ onMounted(() => {
myContData.gender = props.usercont.gender //1, myContData.gender = props.usercont.gender //1,
myContData.birthday = props.usercont.birthday //592848000, myContData.birthday = props.usercont.birthday //592848000,
myContData.myfolk = props.usercont.myfolk //"", myContData.myfolk = props.usercont.myfolk //"",
myContData.bloodtype = props.usercont.bloodtype
myContData.nativeplace = props.usercont.nativeplace //"15", myContData.nativeplace = props.usercont.nativeplace //"15",
myContData.idcardstartdate = props.usercont.idcardstartdate //0, myContData.idcardstartdate = props.usercont.idcardstartdate //0,
myContData.idcardenddate = props.usercont.idcardenddate //0, myContData.idcardenddate = props.usercont.idcardenddate //0,
@ -156,6 +161,7 @@ onMounted(() => {
myContData.constellationing = props.usercont.constellationing //1, myContData.constellationing = props.usercont.constellationing //1,
myContData.isdoubleworker = props.usercont.isdoubleworker //2, myContData.isdoubleworker = props.usercont.isdoubleworker //2,
myContData.isveterans = props.usercont.isveterans //2, myContData.isveterans = props.usercont.isveterans //2,
myContData.natureofAccount = props.usercont.natureofAccount
myContData.veteransnumber = props.usercont.veteransnumber //"", myContData.veteransnumber = props.usercont.veteransnumber //"",
myContData.jobstartdate = props.usercont.jobstartdate //0, myContData.jobstartdate = props.usercont.jobstartdate //0,
myContData.entrydate = props.usercont.entrydate //0, myContData.entrydate = props.usercont.entrydate //0,
@ -212,18 +218,8 @@ const computingClickTime = (value: string) => {
} }
</script> </script>
<template> <template>
<el-form <el-form ref="editPostFormRef" :model="myContData" :rules="editMycontRules">
ref="editPostFormRef" <el-descriptions class="margin-top" direction="vertical" :column="4" border :width="80">
:model="myContData"
:rules="editMycontRules"
>
<el-descriptions
class="margin-top"
direction="vertical"
:column="4"
border
:width="80"
>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
@ -247,27 +243,18 @@ const computingClickTime = (value: string) => {
</template> </template>
<el-form-item prop="gender"> <el-form-item prop="gender">
<el-select v-model="myContData.gender" class="m-2" placeholder="请选择性别" size="default"> <el-select v-model="myContData.gender" class="m-2" placeholder="请选择性别" size="default">
<el-option <el-option v-for="item in userGender" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in userGender"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="healthcondition" class="svg_box"></svg-icon> 健康状况<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="healthcondition" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="health"> <el-form-item prop="health">
<el-select v-model="myContData.health" class="m-2" placeholder="请选择健康状况" size="default"> <el-select v-model="myContData.health" class="m-2" placeholder="请选择健康状况" size="default">
<el-option <el-option v-for="item in healthStates" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in healthStates"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -277,12 +264,7 @@ const computingClickTime = (value: string) => {
</template> </template>
<el-form-item> <el-form-item>
<el-select v-model="myContData.maritalstatus" class="m-2" placeholder="请选择婚姻状况" size="default"> <el-select v-model="myContData.maritalstatus" class="m-2" placeholder="请选择婚姻状况" size="default">
<el-option <el-option v-for="item in userMaritalstatus" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in userMaritalstatus"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -292,34 +274,24 @@ const computingClickTime = (value: string) => {
</template> </template>
<el-form-item> <el-form-item>
<el-select v-model="myContData.politicaloutlook" class="m-2" placeholder="请选择政治面貌" size="default"> <el-select v-model="myContData.politicaloutlook" class="m-2" placeholder="请选择政治面貌" size="default">
<el-option <el-option v-for="item in userPoliticaloutlook" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in userPoliticaloutloo"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="shengri" class="svg_box"></svg-icon> 出生日期<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="shengri" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="birthdaytime"> <el-form-item prop="birthdaytime">
<el-date-picker <el-date-picker v-model="myContData.birthdaytime" type="date" placeholder="请选择出生日期" format="YYYY-MM-DD"
v-model="myContData.birthdaytime" value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
type="date"
placeholder="请选择出生日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="zhqxgl" class="svg_box"></svg-icon> 身份证号<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="zhqxgl" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="idcardno"> <el-form-item prop="idcardno">
<el-input v-model="myContData.idcardno" placeholder="请输入身份证号" /> <el-input v-model="myContData.idcardno" placeholder="请输入身份证号" />
@ -330,15 +302,8 @@ const computingClickTime = (value: string) => {
<el-text><svg-icon icon-class="bdzj-bg" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="bdzj-bg" class="svg_box"></svg-icon> </el-text>
</template> </template>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker v-model="myContData.idcardstarttimedata" type="date" placeholder="身份证有效期开始"
v-model="myContData.idcardstarttimedata" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
type="date"
placeholder="身份证有效期开始"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
@ -346,15 +311,8 @@ const computingClickTime = (value: string) => {
<el-text><svg-icon icon-class="bdzj-bg" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="bdzj-bg" class="svg_box"></svg-icon> </el-text>
</template> </template>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker v-model="myContData.idcardendtimedata" type="date" placeholder="身份证有效期结束"
v-model="myContData.idcardendtimedata" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
type="date"
placeholder="身份证有效期结束"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2"> <el-descriptions-item :span="2">
@ -383,7 +341,8 @@ const computingClickTime = (value: string) => {
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2"> <el-descriptions-item :span="2">
<template #label> <template #label>
<el-text><svg-icon icon-class="address" class="svg_box"></svg-icon> 现居住地<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="address" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="currentresidence"> <el-form-item prop="currentresidence">
<el-input v-model="myContData.currentresidence" placeholder="请输入现居住地" /> <el-input v-model="myContData.currentresidence" placeholder="请输入现居住地" />
@ -405,7 +364,19 @@ const computingClickTime = (value: string) => {
<el-input v-model="myContData.internaltelephone" placeholder="请输入内线电话" /> <el-input v-model="myContData.internaltelephone" placeholder="请输入内线电话" />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2">
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<Notification />
</el-icon> </el-text>
</template>
<el-form-item>
<el-input v-model="myContData.bloodtype" placeholder="请输入血型" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="0213-lmp" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="0213-lmp" class="svg_box"></svg-icon> </el-text>
</template> </template>
@ -427,42 +398,30 @@ const computingClickTime = (value: string) => {
</template> </template>
<el-form-item> <el-form-item>
<el-select v-model="myContData.constellationing" class="m-2" placeholder="请选择星座" size="default"> <el-select v-model="myContData.constellationing" class="m-2" placeholder="请选择星座" size="default">
<el-option <el-option v-for="item in userConstellationing" :key="item.id" :label="item.name"
v-for="item in userConstellationing" :value="item.id" />
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="guyong" class="svg_box"></svg-icon> 雇佣类型<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="guyong" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="hireclass"> <el-form-item prop="hireclass">
<el-select v-model="myContData.hireclass" class="m-2" placeholder="请选雇佣类型" size="default"> <el-select v-model="myContData.hireclass" class="m-2" placeholder="请选雇佣类型" size="default">
<el-option <el-option v-for="item in userHireclass" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in userHireclass"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="jianzhi" class="svg_box"></svg-icon> 用工关系<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="jianzhi" class="svg_box"></svg-icon> <i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="emptype"> <el-form-item prop="emptype">
<el-select v-model="myContData.emptype" class="m-2" placeholder="请选择工关系" size="default"> <el-select v-model="myContData.emptype" class="m-2" placeholder="请选择工关系" size="default">
<el-option <el-option v-for="item in emptypeOptionsAll" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in emptypeOptionsAll"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -471,24 +430,18 @@ const computingClickTime = (value: string) => {
<el-text><svg-icon icon-class="role" class="svg_box"></svg-icon> 入职日期<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="role" class="svg_box"></svg-icon> 入职日期<i class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="entrydatetime"> <el-form-item prop="entrydatetime">
<el-date-picker <el-date-picker v-model="myContData.entrydatetime" type="date" placeholder="入职日期" format="YYYY-MM-DD"
v-model="myContData.entrydatetime" value-format="YYYY-MM-DD" style="width: 100%;" size="default" @change="computingClickTime" />
type="date"
placeholder="入职日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
@change="computingClickTime"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="iconfont-riyongbaihuo" class="svg_box"></svg-icon> 试用期(月)<i class="hong_mi">*</i></el-text> <el-text><svg-icon icon-class="iconfont-riyongbaihuo" class="svg_box"></svg-icon> ()<i
class="hong_mi">*</i></el-text>
</template> </template>
<el-form-item prop="probationperiod"> <el-form-item prop="probationperiod">
<el-input-number v-model="myContData.probationperiod" :min="1" placeholder="请输入试用期(月)" style="width:100%" @change="computingTime" /> <el-input-number v-model="myContData.probationperiod" :min="1" placeholder="请输入试用期(月)"
style="width:100%" @change="computingTime" />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
@ -496,15 +449,8 @@ const computingClickTime = (value: string) => {
<el-text><svg-icon icon-class="qxsp" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="qxsp" class="svg_box"></svg-icon> </el-text>
</template> </template>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker v-model="myContData.planformaldatetime" type="date" placeholder="预计转正日期"
v-model="myContData.planformaldatetime" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
type="date"
placeholder="预计转正日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
@ -512,15 +458,8 @@ const computingClickTime = (value: string) => {
<el-text><svg-icon icon-class="gdqr" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="gdqr" class="svg_box"></svg-icon> </el-text>
</template> </template>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker v-model="myContData.jobstartdatestr" type="date" placeholder="参加工作日期"
v-model="myContData.jobstartdatestr" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
type="date"
placeholder="参加工作日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%;"
size="default"
/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
@ -529,12 +468,7 @@ const computingClickTime = (value: string) => {
</template> </template>
<el-form-item> <el-form-item>
<el-select v-model="myContData.isveterans" class="m-2" placeholder="请选是否为退役军人" size="default"> <el-select v-model="myContData.isveterans" class="m-2" placeholder="请选是否为退役军人" size="default">
<el-option <el-option v-for="item in yesOrno" :key="item.id" :label="item.name" :value="item.id" />
v-for="item in yesOrno"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -563,6 +497,20 @@ const computingClickTime = (value: string) => {
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<HomeFilled />
</el-icon> </el-text>
</template>
<el-form-item>
<el-select v-model="myContData.natureofAccount" class="m-2" placeholder="请选择户口类型" size="default">
<el-option v-for="item in Householdregistration" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<el-text><svg-icon icon-class="wechat" class="svg_box"></svg-icon> </el-text> <el-text><svg-icon icon-class="wechat" class="svg_box"></svg-icon> </el-text>
@ -580,6 +528,17 @@ const computingClickTime = (value: string) => {
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-text><el-icon>
<Star />
</el-icon> </el-text>
</template>
<el-form-item prop="nameusedbefore">
<el-input v-model="myContData.interests" placeholder="请输入兴趣爱好" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :span="2"> <el-descriptions-item :span="2">
&nbsp; &nbsp;
</el-descriptions-item> </el-descriptions-item>
@ -594,10 +553,12 @@ const computingClickTime = (value: string) => {
.el-form-item--default { .el-form-item--default {
margin-bottom: 0px; margin-bottom: 0px;
} }
.dialog-footer { .dialog-footer {
margin-top: 15px; margin-top: 15px;
text-align: right; text-align: right;
} }
.hong_mi { .hong_mi {
color: #FF0000; color: #FF0000;
margin-left: 5px; margin-left: 5px;

52
src/views/hr/archives/basicinformation/emergencycontact.vue

@ -42,7 +42,7 @@ function getJinjiLianXirenList(){
* 监听数据 * 监听数据
*/ */
watch(() => props.tabsid, () => { watch(() => props.tabsid, () => {
if(props.tabsid == "4"){ if (props.tabsid == "6") {
getJinjiLianXirenList() getJinjiLianXirenList()
} }
}) })
@ -77,51 +77,33 @@ function delJjlxrBox(cont:emergencyContact){
} }
</script> </script>
<template> <template>
<el-table <el-table v-loading="tableLoading" highlight-current-row :data="jinjilianxirenList" border
v-loading="tableLoading" :header-cell-style="{ background: '#F5F7FA' }">
highlight-current-row
:data="jinjilianxirenList"
border
:header-cell-style="{background:'#F5F7FA'}"
>
<el-table-column label="姓名" prop="name" width="150" /> <el-table-column label="姓名" prop="name" width="100" />
<el-table-column label="联系电话" prop="tel" /> <el-table-column label="联系电话" prop="tel" width="120" />
<el-table-column label="与本人关系" prop="relationship" width="150" align="center" /> <el-table-column label="与本人关系" prop="relationship" width="100" align="center" />
<el-table-column fixed="right" align="right" width="150"> <el-table-column label="工作单位" prop="company" align="center" />
<el-table-column label="政治面貌" prop="political" width="90" align="center" />
<el-table-column fixed="right" align="right" width="100">
<template #header> <template #header>
<el-button <el-button type="primary" link size="small" @click.stop="addJjlxrBox(props.usercont.keystr)">
type="primary"
link
size="small"
@click.stop="addJjlxrBox(props.usercont.keystr)"
>
<i-ep-plus /> 新增 <i-ep-plus /> 新增
</el-button> </el-button>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-button <el-button type="primary" link size="small" @click.stop="editJjlxrBox(scope.row)">
type="primary"
link
size="small"
@click.stop="editJjlxrBox(scope.row)"
>
<i-ep-edit />编辑 <i-ep-edit />编辑
</el-button> </el-button>
<el-button <el-button type="primary" link size="small" @click.stop="delJjlxrBox(scope.row)">
type="primary"
link
size="small"
@click.stop="delJjlxrBox(scope.row)"
>
<i-ep-delete />删除 <i-ep-delete />删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<AddEmergencyContactPage v-model:addisshow="addJjlxrBoxPage" :keyval="props.usercont.keystr" @restdata="getJinjiLianXirenList" /> <AddEmergencyContactPage v-model:addisshow="addJjlxrBoxPage" :keyval="props.usercont.keystr"
<EditEmergencyContactPage v-model:editisshow="editJjlxrBoxPage" :keyval="props.usercont.keystr" :datacont="jjlxrCont" @restdata="getJinjiLianXirenList" /> @restdata="getJinjiLianXirenList" />
<EditEmergencyContactPage v-model:editisshow="editJjlxrBoxPage" :keyval="props.usercont.keystr" :datacont="jjlxrCont"
@restdata="getJinjiLianXirenList" />
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

35
src/views/hr/archives/basicinformation/emergencycontactadd.vue

@ -6,6 +6,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import { emergencyContactInfo, emergencyContactAdd } from '@/api/hr/people/type' import { emergencyContactInfo, emergencyContactAdd } from '@/api/hr/people/type'
import { addEmergencyContactInfo } from '@/api/hr/people/index' import { addEmergencyContactInfo } from '@/api/hr/people/index'
import { userPoliticaloutlook } from '@/api/hr/people/datacont'
const props = defineProps({ const props = defineProps({
addisshow: { addisshow: {
@ -37,6 +38,8 @@ const addshow = computed({
name: [{ required: true, message: "请输入紧急联系人姓名", trigger: "blur" }], name: [{ required: true, message: "请输入紧急联系人姓名", trigger: "blur" }],
relationship: [{ required: true, message: "请输入与紧急联系人关系", trigger: "blur" }], relationship: [{ required: true, message: "请输入与紧急联系人关系", trigger: "blur" }],
mobilephone: [{ required: true, message: "请输入紧急联系人联系方式", trigger: "blur" }], mobilephone: [{ required: true, message: "请输入紧急联系人联系方式", trigger: "blur" }],
company: [{ required: false, message: "请输入紧急联系人工作单位", trigger: "blur" }],
political: [{ required: false, message: "请选择紧急联系人政治面貌", trigger: "blur" }],
}); });
/** /**
* 关闭弹窗 * 关闭弹窗
@ -74,19 +77,8 @@ function submitAddJjlxr(){
} }
</script> </script>
<template> <template>
<el-dialog <el-dialog v-model="addshow" width="500" title="添加紧急联系人" append-to-body :before-close="clostAddBoxJjlxr">
v-model="addshow" <el-form ref="addJjlxrFormRef" :model="jjlxrFormData" :rules="addJjlxrRules" label-width="140px">
width="500"
title="添加紧急联系人"
append-to-body
:before-close="clostAddBoxJjlxr"
>
<el-form
ref="addJjlxrFormRef"
:model="jjlxrFormData"
:rules="addJjlxrRules"
label-width="140px"
>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input v-model="jjlxrFormData.name" placeholder="请输入紧急联系人姓名" /> <el-input v-model="jjlxrFormData.name" placeholder="请输入紧急联系人姓名" />
</el-form-item> </el-form-item>
@ -96,6 +88,19 @@ function submitAddJjlxr(){
<el-form-item label="与紧急联系人关系" prop="relationship"> <el-form-item label="与紧急联系人关系" prop="relationship">
<el-input v-model="jjlxrFormData.relationship" placeholder="请输入与紧急联系人关系" /> <el-input v-model="jjlxrFormData.relationship" placeholder="请输入与紧急联系人关系" />
</el-form-item> </el-form-item>
<el-form-item label="工作单位" prop="company">
<el-input v-model="jjlxrFormData.company" placeholder="请输入紧急联系人工作单位" />
</el-form-item>
<el-form-item label="政治面貌" prop="political">
<el-select v-model="jjlxrFormData.political" placeholder="请选择紧急联系人政治面貌" >
<el-option
v-for="item in userPoliticaloutlook"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
@ -105,6 +110,4 @@ function submitAddJjlxr(){
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

37
src/views/hr/archives/basicinformation/emergencycontactedit.vue

@ -6,6 +6,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import { emergencyContactInfo, emergencyContactAdd } from '@/api/hr/people/type' import { emergencyContactInfo, emergencyContactAdd } from '@/api/hr/people/type'
import { editEmergencyContactInfo } from '@/api/hr/people/index' import { editEmergencyContactInfo } from '@/api/hr/people/index'
import { userPoliticaloutloo } from '@/api/hr/people/datacont'
const props = defineProps({ const props = defineProps({
editisshow: { editisshow: {
type: Boolean, type: Boolean,
@ -42,6 +43,8 @@ const editshow = computed({
name: [{ required: true, message: "请输入紧急联系人姓名", trigger: "blur" }], name: [{ required: true, message: "请输入紧急联系人姓名", trigger: "blur" }],
relationship: [{ required: true, message: "请输入与紧急联系人关系", trigger: "blur" }], relationship: [{ required: true, message: "请输入与紧急联系人关系", trigger: "blur" }],
mobilephone: [{ required: true, message: "请输入紧急联系人联系方式", trigger: "blur" }], mobilephone: [{ required: true, message: "请输入紧急联系人联系方式", trigger: "blur" }],
company: [{ required: true, message: "请输入紧急联系人工作单位", trigger: "blur" }],
political: [{ required: true, message: "请输入紧急联系人政治面貌", trigger: "blur" }],
}); });
/** /**
* 关闭弹窗 * 关闭弹窗
@ -67,6 +70,9 @@ function initJjlxrData(){
jjlxrFormData.name = props.datacont.name; jjlxrFormData.name = props.datacont.name;
jjlxrFormData.mobilephone = props.datacont.tel; jjlxrFormData.mobilephone = props.datacont.tel;
jjlxrFormData.relationship = props.datacont.relationship; jjlxrFormData.relationship = props.datacont.relationship;
jjlxrFormData.political = props.datacont.political;
jjlxrFormData.company = props.datacont.company;
} }
}) })
@ -91,18 +97,8 @@ function submitEditJjlxr(){
} }
</script> </script>
<template> <template>
<el-dialog <el-dialog v-model="editshow" width="30%" title="编辑紧急联系人" append-to-body>
v-model="editshow" <el-form ref="addJjlxrFormRef" :model="jjlxrFormData" :rules="addJjlxrRules" label-width="140px">
width="30%"
title="编辑紧急联系人"
append-to-body
>
<el-form
ref="addJjlxrFormRef"
:model="jjlxrFormData"
:rules="addJjlxrRules"
label-width="140px"
>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input v-model="jjlxrFormData.name" placeholder="请输入紧急联系人姓名" /> <el-input v-model="jjlxrFormData.name" placeholder="请输入紧急联系人姓名" />
</el-form-item> </el-form-item>
@ -112,6 +108,19 @@ function submitEditJjlxr(){
<el-form-item label="与紧急联系人关系" prop="relationship"> <el-form-item label="与紧急联系人关系" prop="relationship">
<el-input v-model="jjlxrFormData.relationship" placeholder="请输入与紧急联系人关系" /> <el-input v-model="jjlxrFormData.relationship" placeholder="请输入与紧急联系人关系" />
</el-form-item> </el-form-item>
<el-form-item label="工作单位" prop="company">
<el-input v-model="jjlxrFormData.company" placeholder="请输入紧急联系人工作单位" />
</el-form-item>
<el-form-item label="政治面貌" prop="political">
<el-select v-model="jjlxrFormData.political" placeholder="请选择紧急联系人政治面貌" >
<el-option
v-for="item in userPoliticaloutloo"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
@ -121,6 +130,4 @@ function submitEditJjlxr(){
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

7
src/views/hr/archives/basicinformation/familymembersadd.vue

@ -6,7 +6,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import { familyMembersCont } from '@/api/hr/people/type' import { familyMembersCont } from '@/api/hr/people/type'
import { addFamilyMembersCont } from '@/api/hr/people/index' import { addFamilyMembersCont } from '@/api/hr/people/index'
import { userPoliticaloutloo } from '@/api/hr/people/datacont' import { userPoliticaloutlook } from '@/api/hr/people/datacont'
const props = defineProps({ const props = defineProps({
addisshow:{ addisshow:{
type:Boolean, type:Boolean,
@ -96,16 +96,13 @@ function clostAddBoxJtcy(){
<el-form-item label="公司" prop="company"> <el-form-item label="公司" prop="company">
<el-input v-model="jtcyFormData.company" placeholder="请输入公司" /> <el-input v-model="jtcyFormData.company" placeholder="请输入公司" />
</el-form-item> </el-form-item>
<el-form-item label="所在部门" prop="department">
<el-input v-model="jtcyFormData.department" placeholder="请输入所在部门" />
</el-form-item>
<el-form-item label="亲属关系"> <el-form-item label="亲属关系">
<el-input v-model="jtcyFormData.relationship" placeholder="请输入亲属关系" /> <el-input v-model="jtcyFormData.relationship" placeholder="请输入亲属关系" />
</el-form-item> </el-form-item>
<el-form-item label="政治面貌"> <el-form-item label="政治面貌">
<el-select v-model="jtcyFormData.politicaloutlook" placeholder="请选择政治面貌" > <el-select v-model="jtcyFormData.politicaloutlook" placeholder="请选择政治面貌" >
<el-option <el-option
v-for="item in userPoliticaloutloo" v-for="item in userPoliticaloutlook"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"

125
src/views/hr/archives/basicinformation/rewardsandpunishments.vue

@ -0,0 +1,125 @@
<!--
@ 作者: 袁纪菲
@ 时间: 2024-03-03
@ 备注: 奖惩记录
-->
<script lang='ts' setup>
import {jiangchengjilu} from '@/api/hr/people/type'
import { getRewardsAndPunishmentsCont,editRewardsAndPunishmentsContState } from '@/api/hr/people/index'
/**
* 引入页面
*/
import AddRewardsAndPunishments from '@/views/hr/archives/basicinformation/rewardsandpunishmentsadd.vue'
import EditRewardsAndPunishments from '@/views/hr/archives/basicinformation/rewardsandpunishmentsedit.vue'
const props = defineProps({
tabsid:{
type:String,
default:"1"
},
usercont:{
type:Object,
default(){
return {}
}
}
});
const addJcjlBoxPage = ref(false) //
const editJcjlBoxPage = ref(false) //
const tableLoading = ref(false)
const jcjlList = ref<jiangchengjilu[]>([])
const jcjlInfo = ref<jiangchengjilu>()
function getjcjlList(){
tableLoading.value = true;
getRewardsAndPunishmentsCont({id:props.usercont.keystr})
.then(( data )=>{
// console.log("-----222---->",data)
jcjlList.value = data.data
})
.finally(()=>{tableLoading.value = false;})
}
/**
* 监听数据
*/
watch(() => props.tabsid,() => {
if(props.tabsid == "6"){
getjcjlList()
}
})
/**
* 添加数据
*/
function addJcjlBox(key:string){
addJcjlBoxPage.value = true;
}
/**
* 编辑奖惩记录
*/
function editJcjlBox(cont:jiangchengjilu){
jcjlInfo.value = cont
editJcjlBoxPage.value = true;
}
/**
* 删除奖惩记录
*/
function delJcjlBox(cont:jiangchengjilu){
ElMessageBox.confirm("确认删除<"+cont.level+">此数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
editRewardsAndPunishmentsContState({id:toString(),state:3,isdel:1}).then(() => {
ElMessage.success("删除成功");
getjcjlList()
});
});
}
</script>
<template>
<AddRewardsAndPunishments v-model:addisshow="addJcjlBoxPage" :keyval="props.usercont.keystr" @restdata="getjcjlList" />
<EditRewardsAndPunishments v-model:editisshow="editJcjlBoxPage" :keyval="props.usercont.keystr" :datacont="jcjlInfo" @restdata="getjcjlList" />
<el-table
v-loading="tableLoading"
highlight-current-row
:data="jcjlList"
border
:header-cell-style="{background:'#F5F7FA'}"
>
<el-table-column label="奖惩级别" prop="level" width="100" />
<el-table-column label="奖惩类型" prop="type" width="100" />
<el-table-column label="奖惩内容" prop="content" width="120" />
<el-table-column label="奖惩时间" prop="time" />
<el-table-column label="奖惩单位" prop="company" />
<el-table-column fixed="right" align="right" width="130">
<template #header>
<el-button
type="primary"
link
size="small"
@click.stop="addJcjlBox(props.usercont.keystr)"
>
<i-ep-plus /> 新增
</el-button>
</template>
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="editJcjlBox(scope.row)"
>
<i-ep-edit />编辑
</el-button>
<el-button
type="primary"
link
size="small"
@click.stop="delJcjlBox(scope.row)"
>
<i-ep-delete />删除
</el-button>
</template>
</el-table-column>
</el-table>
</template>
<style></style>

112
src/views/hr/archives/basicinformation/rewardsandpunishmentsadd.vue

@ -0,0 +1,112 @@
<!--
@ 作者:袁纪菲
@ 时间: 2024-3-4
@ 备注: 添加奖惩记录
-->
<script lang='ts' setup>
import { RewardsAndPunishmentsCont } from '@/api/hr/people/type'
import { addRewardsAndPunishmentsCont } from '@/api/hr/people/index'
const props = defineProps({
addisshow:{
type:Boolean,
default:false
},
keyval:{
type:String,
default:""
}
});
const addLoading = ref(false)
const emits = defineEmits(["update:addisshow","restdata"]); //
const addJcjlFormRef = ref(ElForm); //
const jcjlFormData = reactive<RewardsAndPunishmentsCont>({});
/**
* 弹窗显示控制
*/
const addshow = computed({
get: () => props.addisshow,
set: (val) => {
emits("update:addisshow", val);
},
});
/**
* 表单验证规则
*/
const addJcjlRules = reactive({
// name: [{ required: true, message: "", trigger: "blur" }],
// mobilephone: [{ required: true, message: "", trigger: "blur" }],
});
/**
* 关闭弹窗
*/
function clostAddBoxJcjl(){
emits("update:addisshow", false);
initJcjlData()
}
/**
* 初始化数据
*/
function initJcjlData(){
addJcjlFormRef.value.resetFields();
addLoading.value = false;
}
/**
* 提交数据
*/
function submitAddJcjl(){
// console.log("",jcjlFormData)
// addLoading.value = true;
addJcjlFormRef.value.validate((isValid: boolean) => {
if (isValid) {
let listAry = new Array
listAry.push(jcjlFormData)
addRewardsAndPunishmentsCont({id:props.keyval,list:listAry})
.then(() =>{
ElMessage.success("新增成功");
clostAddBoxJcjl();
emits('restdata');
})
.finally(() =>{addLoading.value = false;})
}
});
}
</script>
<template>
<el-dialog
v-model="addshow"
width="500"
title="添加奖惩记录"
append-to-body
:before-close="clostAddBoxJcjl"
>
<el-form
ref="addJcjlFormRef"
:model="jcjlFormData"
:rules="addJcjlRules"
label-width="140px"
>
<el-form-item label="奖惩级别" prop="level">
<el-input v-model="jcjlFormData.level" placeholder="请输入奖惩级别" />
</el-form-item>
<el-form-item label="奖惩类型" prop="type">
<el-input v-model="jcjlFormData.type" placeholder="请输入奖惩类型" />
</el-form-item>
<el-form-item label="奖惩内容" prop="content">
<el-input v-model="jcjlFormData.content" placeholder="请输入奖惩内容" />
</el-form-item>
<el-form-item label="奖惩时间">
<el-input v-model="jcjlFormData.time" placeholder="请输入奖惩时间" />
</el-form-item>
<el-form-item label="奖惩单位">
<el-input v-model="jcjlFormData.company" placeholder="请输入奖惩单位" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addLoading" @click="submitAddJcjl" > </el-button>
<el-button @click="clostAddBoxJcjl"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang='scss' scoped></style>

130
src/views/hr/archives/basicinformation/rewardsandpunishmentsedit.vue

@ -0,0 +1,130 @@
<!--
@ 作者: 袁纪菲
@ 时间: 2024-3-4
@ 备注: 编辑奖惩记录
-->
<script lang='ts' setup>
import { RewardsAndPunishmentsCont } from '@/api/hr/people/type'
import { editRewardsAndPunishmentsCont } from '@/api/hr/people/index'
const props = defineProps({
editisshow:{
type:Boolean,
default:false
},
keyval:{
type:String,
default:""
},
datacont:{
type:Object,
default(){
return {}
}
}
});
const editLoading = ref(false)
const emits = defineEmits(["update:addisshow","restdata"]); //
const editJcjlFormRef = ref(ElForm); //
const jcjlFormData = reactive<RewardsAndPunishmentsCont>({});
/**
* 弹窗显示控制
*/
const editshow = computed({
get: () => props.editisshow,
set: (val) => {
emits("update:addisshow", val);
},
});
/**
* 表单验证规则
*/
const editJcjlRules = reactive({
});
/**
* 关闭弹窗
*/
const clostEditBoxJcjl = () => {
emits("update:addisshow", false);
initJcjlData()
}
/**
* 初始化数据
*/
const initJcjlData = () => {
editJcjlFormRef.value.resetFields();
editLoading.value = false;
}
/**
* 提交数据
*/
const submitEditJcjl = () => {
// console.log("",jcjlFormData)
// addLoading.value = true;
editJcjlFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editRewardsAndPunishmentsCont(jcjlFormData)
.then(() =>{
ElMessage.success("编辑成功");
clostEditBoxJcjl();
emits('restdata');
})
.finally(() =>{editLoading.value = false;})
}
});
}
/**
* 监听数据
*/
watch(() => props.editisshow,() => {
// console.log("watch--------->",props.editisshow,props.datacont)
if(props.editisshow){
jcjlFormData.id= props.datacont.id.toString();
jcjlFormData.level = props.datacont.level;
jcjlFormData.type = props.datacont.type;
jcjlFormData.content = props.datacont.content;
jcjlFormData.time = props.datacont.time;
jcjlFormData.company = props.datacont.company;
}
})
</script>
<template>
<el-dialog
v-model="editshow"
width="500"
title="编辑奖惩记录"
append-to-body
:before-close="clostEditBoxJcjl"
>
<el-form
ref="editJcjlFormRef"
:model="jcjlFormData"
:rules="editJcjlRules"
label-width="140px"
>
<el-form-item label="奖惩级别" prop="level">
<el-input v-model="jcjlFormData.level" placeholder="请输入奖惩级别" />
</el-form-item>
<el-form-item label="奖惩类型" prop="type">
<el-input v-model="jcjlFormData.type" placeholder="请输入奖惩类型" />
</el-form-item>
<el-form-item label="奖惩内容" prop="content">
<el-input v-model="jcjlFormData.content" placeholder="请输入奖惩内容" />
</el-form-item>
<el-form-item label="奖惩时间">
<el-input v-model="jcjlFormData.time" placeholder="请输入奖惩时间" />
</el-form-item>
<el-form-item label="奖惩单位">
<el-input v-model="jcjlFormData.company" placeholder="请输入奖惩单位" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="editLoading" @click="submitEditJcjl" > </el-button>
<el-button @click="clostEditBoxJcjl"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style></style>

60
src/views/hr/archives/basicinformation/workingcouple.vue

@ -43,7 +43,7 @@ const doubleWorkCont = ref<shuangzhigong>() //双职工内容
* 监听数据 * 监听数据
*/ */
watch(() => props.tabsid, () => { watch(() => props.tabsid, () => {
if(props.tabsid == "5"){ if (props.tabsid == "10") {
getshuangzhigongList() getshuangzhigongList()
} }
}) })
@ -77,57 +77,45 @@ function editSzgBox(cont:shuangzhigong){
} }
</script> </script>
<template> <template>
<el-table <el-table v-loading="tableLoading" highlight-current-row :data="shuangzhigongList" border
v-loading="tableLoading" :header-cell-style="{ background: '#F5F7FA' }">
highlight-current-row
:data="shuangzhigongList"
border
:header-cell-style="{background:'#F5F7FA'}"
>
<el-table-column label="姓名" prop="name" width="100" /> <el-table-column label="是否双职工" prop="workingcouple" width="100" align="center" />
<el-table-column label="联系电话" prop="tel" width="150" align="center" /> <el-table-column label="配偶姓名" prop="name" width="100" align="center" />
<el-table-column label="行政组织关系关系" > <el-table-column label="所在公司" prop="corporation" />
<el-table-column label="所在部门" prop="department" width="100" align="center" />
<el-table-column label="工段" prop="section" width="60" align="center" />
<el-table-column label="职位" prop="job" width="60" align="center" />
<el-table-column label="职等" prop="level" width="60" align="center" />
<el-table-column label="入职时间" prop="time" align="center" />
<el-table-column label="联系方式" prop="tel" align="center">
<template #default="scope"> <template #default="scope">
<el-text class="mx-1">{{ scope.row.company }}</el-text> <el-text class="mx-1">{{ scope.row.company }}</el-text>
<el-text v-if="scope.row.department" class="mx-1"> <span v-if="scope.row.company"> / </span>{{ scope.row.department }}</el-text> <el-text v-if="scope.row.department" class="mx-1"> <span v-if="scope.row.company"> / </span>{{
<el-text v-if="scope.row.position" class="mx-1"> <span v-if="scope.row.department"> / </span>{{ scope.row.position }}</el-text> scope.row.department }}</el-text>
<el-text v-if="scope.row.position" class="mx-1"> <span v-if="scope.row.department"> / </span>{{
scope.row.position }}</el-text>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" align="right" width="150"> <el-table-column fixed="right" align="right" width="150">
<template #header> <template #header>
<el-button <el-button type="primary" link size="small" @click.stop="addSzgBox(props.usercont.keystr)">
type="primary"
link
size="small"
@click.stop="addSzgBox(props.usercont.keystr)"
>
<i-ep-plus /> 新增 <i-ep-plus /> 新增
</el-button> </el-button>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-button <el-button type="primary" link size="small" @click.stop="editSzgBox(scope.row)">
type="primary"
link
size="small"
@click.stop="editSzgBox(scope.row)"
>
<i-ep-edit />编辑 <i-ep-edit />编辑
</el-button> </el-button>
<el-button <el-button type="primary" link size="small" @click.stop="delSzgBox(scope.row)">
type="primary"
link
size="small"
@click.stop="delSzgBox(scope.row)"
>
<i-ep-delete />删除 <i-ep-delete />删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<WorkingCoupleAddPage v-model:addisshow="addSzgBoxPage" :keyval="props.usercont.keystr" @restdata="getshuangzhigongList" /> <WorkingCoupleAddPage v-model:addisshow="addSzgBoxPage" :keyval="props.usercont.keystr"
<WorkingCoupleEditPage v-model:editisshow="editSzgBoxPage" :keyval="props.usercont.keystr" :datacont="doubleWorkCont" @restdata="getshuangzhigongList" /> @restdata="getshuangzhigongList" />
<WorkingCoupleEditPage v-model:editisshow="editSzgBoxPage" :keyval="props.usercont.keystr" :datacont="doubleWorkCont"
@restdata="getshuangzhigongList" />
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

88
src/views/hr/archives/basicinformation/workingcoupleadd.vue

@ -6,6 +6,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import { doubleWorkCont } from '@/api/hr/people/type' import { doubleWorkCont } from '@/api/hr/people/type'
import { addDoubleWorkCont } from '@/api/hr/people/index' import { addDoubleWorkCont } from '@/api/hr/people/index'
import { yesOrno } from '@/api/hr/people/datacont';
const props = defineProps({ const props = defineProps({
addisshow: { addisshow: {
type: Boolean, type: Boolean,
@ -33,29 +34,46 @@ const szgFormData = reactive<doubleWorkCont>({id:""});
* 表单验证规则 * 表单验证规则
*/ */
const addszgRules = reactive({ const addszgRules = reactive({
name: [{ required: true, message: "请输入姓名", trigger: "blur" }], workcouple: [{ required: true, message: "请输入是或否", trigger: "blur" }],
mobilephone: [{ required: true, message: "请输入联系电话", trigger: "blur" }], // name: [{ required: false, message: "", trigger: "blur" }],
company: [{ required: true, message: "请输入公司", trigger: "blur" }], // company: [{ required: false, message: "", trigger: "blur" }],
department: [{ required: true, message: "请输入所在部门", trigger: "blur" }], // department: [{ required: false, message: "", trigger: "blur" }],
}); // section: [{ required: false, message: "", trigger: "blur" }],
// job: [{ required: false, message: "", trigger: "blur" }],
// level: [{ required: false, message: "", trigger: "blur" }],
// time: [{ required: false, message: "", trigger: "blur" }],
// mobilephone: [{ required: false, message: "", trigger: "blur" }],
})
/** /**
* 关闭弹窗 * 关闭弹窗
*/ */
function clostAddBoxSzg(){ const clostAddBoxSzg = () => {
emits("update:addisshow", false); emits("update:addisshow", false);
initJjlxrData() initJjlxrData()
} }
// function clostAddBoxSzg(){
// emits("update:addisshow", false);
// initJjlxrData()
// }
/** /**
* 初始化数据 * 初始化数据
*/ */
function initJjlxrData(){ const initJjlxrData = () => {
addSzgFormRef.value.resetFields(); addSzgFormRef.value.resetFields();
addLoading.value = false; addLoading.value = false;
} }
// function initJjlxrData() {
// addSzgFormRef.value.resetFields();
// addLoading.value = false;
// }
/** /**
* 提交数据 * 提交数据
*/ */
function submitAddSzg(){ const submitAddSzg = () => {
// console.log("",szgFormData) // console.log("",szgFormData)
// addLoading.value = true; // addLoading.value = true;
addSzgFormRef.value.validate((isValid: boolean) => { addSzgFormRef.value.validate((isValid: boolean) => {
@ -73,24 +91,23 @@ function clostAddBoxSzg(){
} }
</script> </script>
<template> <template>
<el-dialog <el-dialog v-model="addshow" width="500" title="添加双职工" append-to-body :before-close="clostAddBoxSzg">
v-model="addshow" <el-form ref="addSzgFormRef" :model="szgFormData" :rules="addszgRules" label-width="140px">
width="500" <!-- <el-form-item label="是否双职工" prop="workcouple">
title="添加双职工" <el-input v-model="szgFormData.workcouple" placeholder="请输入是或否" />
append-to-body </el-form-item> -->
:before-close="clostAddBoxSzg" <el-form-item label="是否双职工">
> <el-select v-model="szgFormData.workcouple" placeholder="请选择是否双职工" >
<el-form <el-option
ref="addSzgFormRef" v-for="item in yesOrno"
:model="szgFormData" :key="item.id"
:rules="addszgRules" :label="item.name"
label-width="140px" :value="item.id"
> />
<el-form-item label="姓名" prop="name"> </el-select>
<el-input v-model="szgFormData.name" placeholder="请输入姓名" />
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="mobilephone"> <el-form-item label="配偶姓名" prop="name">
<el-input v-model="szgFormData.mobilephone" placeholder="请输入联系电话" /> <el-input v-model="szgFormData.name" placeholder="请输入配偶姓名" />
</el-form-item> </el-form-item>
<el-form-item label="公司" prop="company"> <el-form-item label="公司" prop="company">
<el-input v-model="szgFormData.company" placeholder="请输入公司" /> <el-input v-model="szgFormData.company" placeholder="请输入公司" />
@ -98,8 +115,21 @@ function clostAddBoxSzg(){
<el-form-item label="所在部门" prop="department"> <el-form-item label="所在部门" prop="department">
<el-input v-model="szgFormData.department" placeholder="请输入所在部门" /> <el-input v-model="szgFormData.department" placeholder="请输入所在部门" />
</el-form-item> </el-form-item>
<el-form-item label="职务"> <el-form-item label="工段" prop="section">
<el-input v-model="szgFormData.position" placeholder="请输入职务" /> <el-input v-model="szgFormData.section" placeholder="请输入工段" />
</el-form-item>
<el-form-item label="职位" prop="job">
<el-input v-model="szgFormData.job" placeholder="请输入职位" />
</el-form-item>
<el-form-item label="职等" prop="level">
<el-input v-model="szgFormData.level" placeholder="请输入职等" />
</el-form-item>
<el-form-item label="入职时间" prop="time">
<el-date-picker v-model="szgFormData.time" type="date" placeholder="请选择入职时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
</el-form-item>
<el-form-item label="联系方式" prop="mobilephone">
<el-input v-model="szgFormData.mobilephone" placeholder="请输入联系方式" />
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -111,6 +141,4 @@ function clostAddBoxSzg(){
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

63
src/views/hr/archives/basicinformation/workingcoupleedit.vue

@ -6,6 +6,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import { doubleWorkCont } from '@/api/hr/people/type' import { doubleWorkCont } from '@/api/hr/people/type'
import { editDoubleWorkCont } from '@/api/hr/people/index' import { editDoubleWorkCont } from '@/api/hr/people/index'
import { yesOrno } from '@/api/hr/people/datacont';
const props = defineProps({ const props = defineProps({
editisshow: { editisshow: {
type: Boolean, type: Boolean,
@ -39,10 +40,15 @@ const szgFormData = reactive<doubleWorkCont>({id:""});
* 表单验证规则 * 表单验证规则
*/ */
const editszgRules = reactive({ const editszgRules = reactive({
name: [{ required: true, message: "请输入姓名", trigger: "blur" }], workcouple: [{ required: true, message: "请输入是或否", trigger: "blur" }],
mobilephone: [{ required: true, message: "请输入联系电话", trigger: "blur" }], name: [{ required: true, message: "请输入配偶姓名", trigger: "blur" }],
company: [{ required: true, message: "请输入公司", trigger: "blur" }], company: [{ required: true, message: "请输入所在公司", trigger: "blur" }],
department: [{ required: true, message: "请输入所在部门", trigger: "blur" }], department: [{ required: true, message: "请输入所在部门", trigger: "blur" }],
section: [{ required: true, message: "请输入工段", trigger: "blur" }],
job: [{ required: true, message: "请输入职位", trigger: "blur" }],
level: [{ required: true, message: "请输入职等", trigger: "blur" }],
time: [{ required: true, message: "请输入入职时间", trigger: "blur" }],
mobilephone: [{ required: true, message: "请输入联系方式", trigger: "blur" }],
}); });
/** /**
* 关闭弹窗 * 关闭弹窗
@ -93,24 +99,20 @@ function clostEditBoxSzg(){
}) })
</script> </script>
<template> <template>
<el-dialog <el-dialog v-model="editshow" width="500" title="编辑双职工" append-to-body :before-close="clostEditBoxSzg">
v-model="editshow" <el-form ref="editSzgFormRef" :model="szgFormData" :rules="editszgRules" label-width="140px">
width="500" <el-form-item label="是否双职工">
title="编辑双职工" <el-select v-model="szgFormData.workcouple" placeholder="请选择是否双职工" >
append-to-body <el-option
:before-close="clostEditBoxSzg" v-for="item in yesOrno"
> :key="item.id"
<el-form :label="item.name"
ref="editSzgFormRef" :value="item.id"
:model="szgFormData" />
:rules="editszgRules" </el-select>
label-width="140px"
>
<el-form-item label="姓名" prop="name">
<el-input v-model="szgFormData.name" placeholder="请输入姓名" />
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="mobilephone"> <el-form-item label="配偶姓名" prop="name">
<el-input v-model="szgFormData.mobilephone" placeholder="请输入联系电话" /> <el-input v-model="szgFormData.name" placeholder="请输入配偶姓名" />
</el-form-item> </el-form-item>
<el-form-item label="公司" prop="company"> <el-form-item label="公司" prop="company">
<el-input v-model="szgFormData.company" placeholder="请输入公司" /> <el-input v-model="szgFormData.company" placeholder="请输入公司" />
@ -118,8 +120,21 @@ function clostEditBoxSzg(){
<el-form-item label="所在部门" prop="department"> <el-form-item label="所在部门" prop="department">
<el-input v-model="szgFormData.department" placeholder="请输入所在部门" /> <el-input v-model="szgFormData.department" placeholder="请输入所在部门" />
</el-form-item> </el-form-item>
<el-form-item label="职务"> <el-form-item label="工段" prop="section">
<el-input v-model="szgFormData.position" placeholder="请输入职务" /> <el-input v-model="szgFormData.section" placeholder="请输入工段" />
</el-form-item>
<el-form-item label="职位" prop="job">
<el-input v-model="szgFormData.job" placeholder="请输入职位" />
</el-form-item>
<el-form-item label="职等" prop="level">
<el-input v-model="szgFormData.level" placeholder="请输入职等" />
</el-form-item>
<el-form-item label="入职时间" prop="time">
<el-date-picker v-model="szgFormData.time" type="date" placeholder="请选择入职时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" style="width: 100%;" size="default" />
</el-form-item>
<el-form-item label="联系方式" prop="mobilephone">
<el-input v-model="szgFormData.mobilephone" placeholder="请输入联系方式" />
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -131,6 +146,4 @@ function clostEditBoxSzg(){
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

Loading…
Cancel
Save