20 changed files with 1278 additions and 523 deletions
@ -0,0 +1,577 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-06-15 13:01:11 |
|||
@ 备注: 员工档案 |
|||
--> |
|||
<script lang="ts" setup> |
|||
/** |
|||
* 引入页面 |
|||
*/ |
|||
import UserContent from "@/views/hr/archives/basicinformation/content.vue"; |
|||
import EditUserContent from "@/views/hr/archives/basicinformation/editcontent.vue"; |
|||
import OrgNexus from "@/views/hr/archives/basicinformation/orgnexus.vue"; //行政组织 |
|||
import EmergencyContactPage from "@/views/hr/archives/basicinformation/emergencycontact.vue"; //紧急联系人 |
|||
import WorkingCouplePage from "@/views/hr/archives/basicinformation/workingcouple.vue"; //双职工 |
|||
import FamilyMembers from "@/views/hr/archives/basicinformation/familymembers.vue"; //家庭成员 |
|||
import EducationalExperience from "@/views/hr/archives/basicinformation/educationalexperience.vue"; //教育经历 |
|||
import InnerWork from "@/views/hr/archives/basicinformation/innerwork.vue"; //集团内部工作履历 |
|||
import OutsideWork from "@/views/hr/archives/basicinformation/outsideWork.vue"; //集团外部工作履历 |
|||
import Editpwd from "@/views/hr/archives/basicinformation/editpwd.vue"; //修改登陆密码 |
|||
import EditOrg from "@/views/hr/archives/basicinformation/editorg.vue"; //修改行政组织 |
|||
import CharacterColor from "@/views/hr/archives/basicinformation/charactercolor.vue"; //性格色彩 |
|||
import DiscTest from "@/views/hr/archives/basicinformation/discTest.vue"; //DISC测试结果 |
|||
import Rewardsandpunishments from "@/views/hr/archives/basicinformation/rewardsandpunishments.vue"; //奖惩记录 |
|||
import Appraisalrecord from "@/views/hr/archives/basicinformation/appraisalrecord.vue"; //考评记录 |
|||
import Talentinventory from "@/views/hr/archives/basicinformation/talentinventory.vue"; //人才盘点 |
|||
import Employmentrelations from "@/views/hr/archives/basicinformation/employmentrelations.vue"; //员工用工关系 |
|||
import Jobtitle from "@/views/hr/archives/basicinformation/jobtitle.vue"; //职称信息 |
|||
import Certificates from "@/views/hr/archives/basicinformation/certificates.vue"; //证书信息 |
|||
|
|||
import { archivesCont } from "@/api/hr/people/type"; |
|||
|
|||
import SvgIcon from "@/components/SvgIcon/index.vue"; |
|||
import UserRole from "@/assets/icons/user.svg"; |
|||
|
|||
import { myinfostruct } from "@/api/hr/people/type"; |
|||
import { getMyInfoing, editMyInfoIcon } from "@/api/hr/people/index"; |
|||
import type { UploadProps } from "element-plus"; |
|||
|
|||
const props = defineProps({ |
|||
isShow: { |
|||
type: Boolean, |
|||
default: false, |
|||
}, |
|||
archivesdata: { |
|||
type: Object, |
|||
default() { |
|||
return {}; |
|||
}, |
|||
}, |
|||
}); |
|||
const emits = defineEmits([ |
|||
"update:isShow", |
|||
"updatemyconting", |
|||
"getarchivespageclick", |
|||
]); //操作父级数据 |
|||
const boxTitle = ref<string>(); //弹出框标题 |
|||
const userIcon = ref<string>(); //人员内容 |
|||
const activeName = ref("1"); |
|||
const editMyCont = ref(false); |
|||
// const userConting = ref<myinfostruct>(); |
|||
const userConting = reactive<myinfostruct>({ |
|||
entrydatetime: "", |
|||
probationperiod: 1, |
|||
}); |
|||
const rowLoading = ref(false); |
|||
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API + "/api/upordown"; |
|||
const editMyOrgCont = ref(false); |
|||
/** |
|||
* 弹窗显示控制 |
|||
*/ |
|||
const boxShow = computed({ |
|||
get: () => props.isShow, |
|||
set: (val) => { |
|||
emits("update:isShow", val); |
|||
}, |
|||
}); |
|||
/** |
|||
* 获取人员数据 |
|||
*/ |
|||
function getjtcyList() { |
|||
rowLoading.value = true; |
|||
getMyInfoing({ id: props.archivesdata.id, idstr: props.archivesdata.idstr }) |
|||
.then((data) => { |
|||
// userConting.value = data.data |
|||
userConting.id = data.data.id; |
|||
userConting.number = data.data.number; //"300450", |
|||
userConting.name = data.data.name; //"秦东", |
|||
userConting.icon = data.data.icon; // |
|||
userConting.hireclass = data.data.hireclass; //1, |
|||
userConting.emptype = data.data.emptype; //8, |
|||
userConting.company = data.data.company; //309, |
|||
userConting.maindeparment = data.data.maindeparment; //102, |
|||
userConting.sunmaindeparment = data.data.sunmaindeparment; //272, |
|||
userConting.deparment = data.data.deparment; //"", |
|||
userConting.adminorg = data.data.adminorg; //272, |
|||
userConting.teamid = data.data.teamid; //1, |
|||
userConting.position = data.data.position; //2184, |
|||
userConting.jobclass = data.data.jobclass; //5, |
|||
userConting.jobid = data.data.jobid; //36, |
|||
userConting.jobleve = data.data.jobleve; //3, |
|||
userConting.time = data.data.time; //1656984567, |
|||
userConting.eitetime = data.data.eitetime; //1671160648, |
|||
userConting.wechat = data.data.wechat; //"", |
|||
userConting.workwechat = data.data.workwechat; //"KaiXinGuo", |
|||
userConting.state = data.data.state; //1, |
|||
userConting.key = data.data.key; //15993815826844528, |
|||
userConting.isadmin = data.data.isadmin; //4, |
|||
userConting.password = data.data.password; //"ecffe8715d2d3c2743bab6abc90e1331", |
|||
userConting.role = data.data.role; //"1", |
|||
userConting.idcardno = data.data.idcardno; //"370921198810151515", |
|||
userConting.passportno = data.data.passportno; //"", |
|||
userConting.globalroaming = data.data.globalroaming; //"", |
|||
userConting.mobilephone = data.data.mobilephone; //"15069130853", |
|||
userConting.email = data.data.email; //"", |
|||
userConting.gender = data.data.gender; //1, |
|||
userConting.birthday = data.data.birthday; //592848000, |
|||
userConting.myfolk = data.data.myfolk; //"汉族", |
|||
userConting.nativeplace = data.data.nativeplace; //"山东省宁阳县华丰镇白土厂村15号", |
|||
userConting.idcardstartdate = data.data.idcardstartdate; //0, |
|||
userConting.idcardenddate = data.data.idcardenddate; //0, |
|||
userConting.idcardaddress = data.data.idcardaddress; //"", |
|||
userConting.idcardIssued = data.data.idcardIssued; //"", |
|||
userConting.health = data.data.health; //2, |
|||
userConting.maritalstatus = data.data.maritalstatus; //2, |
|||
userConting.internaltelephone = data.data.internaltelephone; //"", |
|||
userConting.currentresidence = data.data.currentresidence; //"山东省宁阳县华丰镇矿区花园小区1号楼1单元302室", |
|||
userConting.constellationing = data.data.constellationing; //1, |
|||
userConting.isdoubleworker = data.data.isdoubleworker; //2, |
|||
userConting.isveterans = data.data.isveterans; //2, |
|||
userConting.veteransnumber = data.data.veteransnumber; //"", |
|||
userConting.jobstartdate = data.data.jobstartdate; //0, |
|||
userConting.entrydate = data.data.entrydate; //0, |
|||
userConting.probationperiod = data.data.probationperiod; //0, |
|||
userConting.planformaldate = data.data.planformaldate; //0, |
|||
userConting.politicaloutlook = data.data.politicaloutlook; //1, |
|||
userConting.nameusedbefore = data.data.nameusedbefore; //"", |
|||
userConting.iconphoto = data.data.iconphoto; //" |
|||
userConting.responsibledepartment = data.data.responsibledepartment; //"", |
|||
userConting.responsibledepartmentjson = data.data.responsibledepartmentjson; //"", |
|||
userConting.birthdaytime = data.data.birthdaytime; //"1988-10-15", |
|||
userConting.idcardstarttimedata = data.data.idcardstarttimedata; //"", |
|||
userConting.idcardendtimedata = data.data.idcardendtimedata; //"", |
|||
userConting.entrydatetime = data.data.entrydatetime; //"", |
|||
userConting.planformaldatetime = data.data.planformaldatetime; //"", |
|||
userConting.doubleworkerlist = data.data.doubleworkerlist; //null, |
|||
userConting.educationalexperience = data.data.educationalexperience; //null, |
|||
userConting.emergencycontact = data.data.emergencycontact; //null, |
|||
userConting.memberoffamily = data.data.memberoffamily; //null, |
|||
userConting.workhistorylist = data.data.workhistorylist; //null, |
|||
userConting.groupworkhistorylist = data.data.groupworkhistorylist; //null, |
|||
userConting.idstr = data.data.idstr; //"78", |
|||
userConting.companyname = data.data.companyname; //"山东恒信高科能源有限公司", |
|||
userConting.maindeparmentname = data.data.maindeparmentname; //"企管部", |
|||
userConting.adminorgname = data.data.adminorgname; //"", |
|||
userConting.positionname = data.data.positionname; //"开发主管", |
|||
userConting.jobclassname = data.data.jobclassname; //"基层管理", |
|||
userConting.jobidname = data.data.jobidname; //"主管", |
|||
userConting.politicaloutlookname = data.data.politicaloutlookname; //"群众", |
|||
userConting.jobstartdatestr = data.data.jobstartdatestr; //"", |
|||
userConting.entrydatestr = data.data.entrydatestr; //"", |
|||
userConting.personincharge = data.data.personincharge; //2, |
|||
userConting.sunmaindeparmentname = data.data.sunmaindeparmentname; //"企管", |
|||
userConting.workpostname = data.data.workpostname; //"", |
|||
userConting.teamname = data.data.teamname; //"长白班", |
|||
userConting.allorglist = data.data.allorglist; //[309,102,272], |
|||
userConting.ruleid = data.data.ruleid; //"0", |
|||
userConting.rulename = data.data.rulename; //"", |
|||
userConting.orgreslist = data.data.orgreslist; //null |
|||
userConting.keystr = data.data.keystr; // |
|||
userConting.interests = data.data.interests; |
|||
userConting.bloodtype = data.data.bloodtype; |
|||
userConting.natureofAccount = data.data.natureofAccount; |
|||
userConting.careerPlanning = data.data.career_planning; |
|||
userConting.helpObtained = data.data.help_obtained; |
|||
}) |
|||
.finally(() => { |
|||
rowLoading.value = false; |
|||
}); |
|||
} |
|||
/** |
|||
* 关闭弹窗 |
|||
*/ |
|||
function closeArchivesBox() { |
|||
emits("update:isShow", false); |
|||
activeName.value = "1"; |
|||
editMyCont.value = false; |
|||
} |
|||
/** |
|||
* 选项卡翻页 |
|||
*/ |
|||
const handleClickUser = (tab: any, event: Event) => { |
|||
// console.log(tab, event) |
|||
}; |
|||
/** |
|||
* 监听数据 |
|||
*/ |
|||
watch( |
|||
() => props.isShow, |
|||
() => { |
|||
// console.log("监听数据",props.archivesdata ) |
|||
if (props.isShow) { |
|||
getjtcyList(); |
|||
boxTitle.value = |
|||
"查看 " + |
|||
props.archivesdata.name + |
|||
"(工号:" + |
|||
props.archivesdata.number + |
|||
")" + |
|||
" 详情"; |
|||
if (props.archivesdata.icon != "") { |
|||
userIcon.value = props.archivesdata.icon; |
|||
} else if (props.archivesdata.iconphoto != "") { |
|||
userIcon.value = props.archivesdata.iconphoto; |
|||
} else { |
|||
userIcon.value = UserRole; |
|||
} |
|||
} |
|||
} |
|||
); |
|||
|
|||
/** |
|||
* 刷新编辑页面 |
|||
*/ |
|||
function refreshContPage(cont: archivesCont) { |
|||
emits("updatemyconting", cont); |
|||
getjtcyList(); |
|||
// console.log("刷新编辑页面",cont) |
|||
// userConting.value = cont |
|||
// userConting.value.id = cont.id //78, |
|||
// userConting.id = cont.id |
|||
// userConting.number = cont.number //"300450", |
|||
// userConting.name = cont.name //"秦东", |
|||
// userConting.icon = cont.icon // |
|||
// userConting.hireclass = cont.hireclass //1, |
|||
// userConting.emptype = cont.emptype //8, |
|||
// userConting.company = cont.company //309, |
|||
// userConting.maindeparment = cont.maindeparment //102, |
|||
// userConting.sunmaindeparment = cont.sunmaindeparment //272, |
|||
// userConting.deparment = cont.deparment //"", |
|||
// userConting.adminorg = cont.adminorg //272, |
|||
// userConting.teamid = cont.teamid //1, |
|||
// userConting.position = cont.position //2184, |
|||
// userConting.jobclass = cont.jobclass //5, |
|||
// userConting.jobid = cont.jobid //36, |
|||
// userConting.jobleve = cont.jobleve //3, |
|||
// userConting.time = cont.time //1656984567, |
|||
// userConting.eitetime = cont.eitetime //1671160648, |
|||
// userConting.wechat = cont.wechat //"", |
|||
// userConting.workwechat = cont.workwechat //"KaiXinGuo", |
|||
// userConting.state = cont.state //1, |
|||
// userConting.key = cont.key //15993815826844528, |
|||
// userConting.isadmin = cont.isadmin //4, |
|||
// userConting.password = cont.password //"ecffe8715d2d3c2743bab6abc90e1331", |
|||
// userConting.role = cont.role //"1", |
|||
// userConting.idcardno = cont.idcardno //"370921198810151515", |
|||
// userConting.passportno = cont.passportno //"", |
|||
// userConting.globalroaming = cont.globalroaming //"", |
|||
// userConting.mobilephone = cont.mobilephone //"15069130853", |
|||
// userConting.email = cont.email //"", |
|||
// userConting.gender = cont.gender //1, |
|||
// userConting.birthday = cont.birthday //592848000, |
|||
// userConting.myfolk = cont.myfolk //"汉族", |
|||
// userConting.nativeplace = cont.nativeplace //"山东省宁阳县华丰镇白土厂村15号", |
|||
// userConting.idcardstartdate = cont.idcardstartdate //0, |
|||
// userConting.idcardenddate = cont.idcardenddate //0, |
|||
// userConting.idcardaddress = cont.idcardaddress //"", |
|||
// userConting.idcardIssued = cont.idcardIssued //"", |
|||
// userConting.health = cont.health //2, |
|||
// userConting.maritalstatus = cont.maritalstatus //2, |
|||
// userConting.internaltelephone = cont.internaltelephone //"", |
|||
// userConting.currentresidence = cont.currentresidence //"山东省宁阳县华丰镇矿区花园小区1号楼1单元302室", |
|||
// userConting.constellationing = cont.constellationing //1, |
|||
// userConting.isdoubleworker = cont.isdoubleworker //2, |
|||
// userConting.isveterans = cont.isveterans //2, |
|||
// userConting.veteransnumber = cont.veteransnumber //"", |
|||
// userConting.jobstartdate = cont.jobstartdate //0, |
|||
// userConting.entrydate = cont.entrydate //0, |
|||
// userConting.probationperiod = cont.probationperiod //0, |
|||
// userConting.planformaldate = cont.planformaldate //0, |
|||
// userConting.politicaloutlook = cont.politicaloutlook //1, |
|||
// userConting.nameusedbefore = cont.nameusedbefore //"", |
|||
// userConting.iconphoto = cont.iconphoto //" |
|||
// userConting.responsibledepartment = cont.responsibledepartment //"", |
|||
// userConting.responsibledepartmentjson = cont.responsibledepartmentjson //"", |
|||
// // userConting.birthdaytime = cont.birthdaytime //"1988-10-15", |
|||
// // userConting.idcardstarttimedata = cont.idcardstarttimedata //"", |
|||
// // userConting.idcardendtimedata = cont.idcardendtimedata //"", |
|||
// // userConting.entrydatetime = cont.entrydatetime //"", |
|||
// // userConting.planformaldatetime = cont.planformaldatetime //"", |
|||
// // userConting.doubleworkerlist = cont.doubleworkerlist //null, |
|||
// // userConting.educationalexperience = cont.educationalexperience //null, |
|||
// // userConting.emergencycontact = cont.emergencycontact //null, |
|||
// // userConting.memberoffamily = cont.memberoffamily //null, |
|||
// // userConting.workhistorylist = cont.workhistorylist //null, |
|||
// // userConting.groupworkhistorylist = cont.groupworkhistorylist //null, |
|||
// userConting.idstr = cont.id?.toString() //"78", |
|||
// userConting.companyname = cont.companyname //"山东恒信高科能源有限公司", |
|||
// userConting.maindeparmentname = cont.maindeparmentname //"企管部", |
|||
// // userConting.adminorgname = cont.adminorgname //"", |
|||
// userConting.positionname = cont.positionname //"开发主管", |
|||
// // userConting.jobclassname = cont.jobclassname //"基层管理", |
|||
// // userConting.jobidname = cont.jobidname //"主管", |
|||
// //userConting.politicaloutlookname = cont.politicaloutlookname //"群众", |
|||
// //userConting.jobstartdatestr = cont.jobstartdatestr //"", |
|||
// //userConting.entrydatestr = cont.entrydatestr //"", |
|||
// userConting.personincharge = cont.personincharge //2, |
|||
// userConting.sunmaindeparmentname = cont.sunmaindeparmentname //"企管", |
|||
// userConting.workpostname = cont.workpostname //"", |
|||
// userConting.teamname = cont.teamname //"长白班", |
|||
// //userConting.allorglist = cont.allorglist //[309,102,272], |
|||
// //userConting.ruleid = cont.ruleid //"0", |
|||
// //userConting.rulename = cont.rulename //"", |
|||
// //userConting.orgreslist = cont.orgreslist //null |
|||
// userConting.keystr = cont.keystr // |
|||
getjtcyList(); |
|||
} |
|||
const handleAvatarSuccess: UploadProps["onSuccess"] = ( |
|||
response, |
|||
uploadFile, |
|||
uploadFiles |
|||
) => { |
|||
userIcon.value = URL.createObjectURL(uploadFile.raw!); |
|||
// console.log("上传后数据---1--->",response) |
|||
// console.log("上传后数据---2--->",uploadFile) |
|||
// console.log("上传后数据----3-->",uploadFiles) |
|||
editMyInfoIcon({ |
|||
id: props.archivesdata.id, |
|||
iconpath: response.data.url, |
|||
}).then((data) => { |
|||
// userConting.value = data.data |
|||
ElMessage.success("编辑成功"); |
|||
emits("getarchivespageclick"); |
|||
}); |
|||
}; |
|||
const beforeAvatarUpload: UploadProps["beforeUpload"] = (rawFile) => { |
|||
// console.log("上传前判断------>",rawFile) |
|||
}; |
|||
function editmvorg() { |
|||
editMyOrgCont.value = true; |
|||
} |
|||
</script> |
|||
<template> |
|||
<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-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> |
|||
<el-card shadow="always" class="box-card-left"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-upload |
|||
class="avatar-uploader" |
|||
:action="imgUploadApiUrl" |
|||
:show-file-list="false" |
|||
:on-success="handleAvatarSuccess" |
|||
:before-upload="beforeAvatarUpload" |
|||
> |
|||
<el-avatar :size="180" :src="userIcon" /> |
|||
</el-upload> |
|||
</el-col> |
|||
<el-col :span="24" |
|||
><el-text class="mx-1 username">{{ |
|||
userConting.name |
|||
}}</el-text></el-col |
|||
> |
|||
<el-col :span="24" |
|||
><el-text class="mx-1 usernumber" |
|||
>NO.{{ userConting.number }}</el-text |
|||
></el-col |
|||
> |
|||
<el-col :span="24"> |
|||
<el-row class="user_cont"> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon icon-class="gender" class="svg_box"></svg-icon> |
|||
<span v-if="userConting.gender == 1">男</span> |
|||
<span v-else>女</span> |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon |
|||
icon-class="marriageregistration" |
|||
class="svg_box" |
|||
></svg-icon> |
|||
<span v-if="userConting.maritalstatus == 2">已婚</span> |
|||
<span v-else-if="userConting.maritalstatus == 3">丧偶</span> |
|||
<span v-else-if="userConting.maritalstatus == 4">离异</span> |
|||
<span v-else>未婚</span> |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon icon-class="qxsp" class="svg_box"></svg-icon> |
|||
{{ userConting.myfolk }} |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon |
|||
icon-class="healthcondition" |
|||
class="svg_box" |
|||
></svg-icon> |
|||
<span v-if="userConting.health == 2">良好</span> |
|||
<span v-else-if="userConting.health == 3">较弱</span> |
|||
<span v-else-if="userConting.health == 4">有生理缺陷</span> |
|||
<span v-else-if="userConting.health == 5">残废</span> |
|||
<span v-else>一般</span> |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon icon-class="phone" class="svg_box"></svg-icon> |
|||
{{ userConting.mobilephone }} |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon icon-class="address" class="svg_box"></svg-icon> |
|||
{{ userConting.currentresidence }} |
|||
</el-text> |
|||
</el-col> |
|||
|
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon icon-class="zhiye" class="svg_box"></svg-icon> |
|||
{{ userConting.companyname }} / |
|||
{{ userConting.maindeparmentname }} |
|||
</el-text> |
|||
</el-col> |
|||
<el-col :span="24" class="col_box"> |
|||
<el-text class="cont_size"> |
|||
<svg-icon |
|||
icon-class="iconfont-mingpian" |
|||
class="svg_box" |
|||
></svg-icon> |
|||
{{ userConting.positionname }} |
|||
</el-text> |
|||
</el-col> |
|||
</el-row> |
|||
</el-col> |
|||
<el-col> |
|||
<el-button |
|||
type="primary" |
|||
style="margin-top: 15px" |
|||
@click="editmvorg" |
|||
>编辑主行政组织</el-button |
|||
> |
|||
</el-col> |
|||
</el-row> |
|||
</el-card> |
|||
</el-col> |
|||
<el-col :xs="24" :sm="24" :md="12" :lg="16" :xl="16"> |
|||
<el-card shadow="always" class="box-card"> |
|||
<el-tabs |
|||
v-model="activeName" |
|||
class="demo-tabs" |
|||
@tab-click="handleClickUser" |
|||
> |
|||
<el-tab-pane label="基本信息" name="1"> |
|||
<UserContent |
|||
v-if="!editMyCont && activeName == '1'" |
|||
v-model:editShow="editMyCont" |
|||
: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" /> |
|||
<DiscTest :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="行政组织关系" name="3"> |
|||
<OrgNexus :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="紧急联系人" name="4"> |
|||
<EmergencyContactPage |
|||
:usercont="userConting" |
|||
:tabsid="activeName" |
|||
/> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="双职工" name="5"> |
|||
<WorkingCouplePage :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="家庭成员" name="6"> |
|||
<FamilyMembers :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="教育经历" name="7"> |
|||
<EducationalExperience |
|||
:usercont="userConting" |
|||
:tabsid="activeName" |
|||
/> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="集团内部工作履历" name="8"> |
|||
<InnerWork :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="集团外部工作履历" name="9"> |
|||
<OutsideWork :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="奖惩记录" name="10"> |
|||
<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"> |
|||
<Talentinventory :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="员工用工关系" name="13"> |
|||
<Employmentrelations :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="职称信息" name="14"> |
|||
<Jobtitle :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="证书信息" name="15"> |
|||
<Certificates :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="修改登陆密码" name="16"> |
|||
<Editpwd :usercont="userConting" :tabsid="activeName" /> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
</el-card> |
|||
</el-col> |
|||
</el-row> |
|||
<EditOrg |
|||
v-model:editShow="editMyOrgCont" |
|||
:usercont="userConting" |
|||
:tabsid="activeName" |
|||
@refreshcontdata="refreshContPage" |
|||
/> |
|||
</el-dialog> |
|||
</template> |
|||
<style lang="scss" scoped> |
|||
.bjg { |
|||
background-color: aqua; |
|||
height: 50px; |
|||
} |
|||
.box-card-left { |
|||
text-align: center; |
|||
.username { |
|||
margin-top: 20px; |
|||
font-size: 35px; |
|||
} |
|||
.usernumber { |
|||
margin-top: 10px; |
|||
font-size: 25px; |
|||
} |
|||
.user_cont { |
|||
width: 90%; |
|||
margin: auto; |
|||
text-align: left; |
|||
.col_box { |
|||
margin-top: 10px; |
|||
.cont_size { |
|||
font-size: 16px; |
|||
.svg_box { |
|||
margin-right: 10px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,162 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-08-31 13:37:09 |
|||
@ 备注: DISC测试结果显示 |
|||
--> |
|||
<script lang='ts' setup> |
|||
import * as echarts from 'echarts'; |
|||
import { getUserDISCTest } from '@/api/hr/people'; |
|||
|
|||
const props = defineProps({ |
|||
tabsid: { |
|||
type: String, |
|||
default: "1", |
|||
}, |
|||
usercont:{ |
|||
type:Object, |
|||
default(){ |
|||
return {} |
|||
} |
|||
} |
|||
}); |
|||
|
|||
const disTestPageLoading = ref(false) |
|||
const disTestPage = ref<any>(null) |
|||
const disTitlePick = ref<string[]>([]) |
|||
const discdrawRadar = ref(null) |
|||
|
|||
//页面加载前先获取测试数据 |
|||
onBeforeMount(()=>{ |
|||
console.log("页面加载前先获取测试数据",props.usercont) |
|||
let sendData = { |
|||
id:props.usercont.number.toString() |
|||
} |
|||
getUserDISCTest(sendData) |
|||
.then(({data}) => { |
|||
// console.log("获取我的111111请求", data); |
|||
disTitlePick.value = data.ColourNameList |
|||
drawRadarChart(data.colourTitle,data.RadarColour,data.indicator) |
|||
}) |
|||
}); |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-08-30 13:37:05 |
|||
@ 功能: 绘图 |
|||
*/ |
|||
const drawRadarChart = (radarTitle:string[],radarVal:number[],indicator:any[]) => { |
|||
console.log("drawRadarChart",indicator) |
|||
let option = { |
|||
radar: { |
|||
indicator: indicator |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: '', |
|||
type: 'radar', |
|||
data: [ |
|||
{ |
|||
// value: [20, 8, 15, 5, 6], |
|||
value: radarVal, |
|||
name: '性格测试诶结果', |
|||
label: { |
|||
show: true, |
|||
formatter: function (params) { |
|||
return params.value; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
], |
|||
itemStyle: { |
|||
normal: { |
|||
color: "#1DBB37" |
|||
}, |
|||
} |
|||
} |
|||
] |
|||
}; |
|||
if(discdrawRadar.value){ |
|||
discdrawRadar.value.clear(); |
|||
discdrawRadar.value.setOption(option) |
|||
} |
|||
} |
|||
//所有组件加载完后执行 |
|||
onMounted(()=>{ |
|||
nextTick(()=>{ |
|||
discdrawRadar.value = markRaw(echarts.init(disTestPage.value)) |
|||
}) |
|||
}) |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-06-12 14:27:32 |
|||
@ 功能: 判断该颜色是否存在了 |
|||
*/ |
|||
const judgaDisc = (val:string) => { |
|||
let isTyue = false; |
|||
if(disTitlePick.value && disTitlePick.value.length > 0){ |
|||
disTitlePick.value.forEach((item:string)=>{ |
|||
if(val == item) { |
|||
isTyue = true; |
|||
} |
|||
}) |
|||
} |
|||
return isTyue |
|||
} |
|||
</script> |
|||
<template> |
|||
<div> |
|||
<div ref="disTestPage" v-loading="disTestPageLoading" element-loading-text="Loading..." class="allOrgAxisCares"> |
|||
|
|||
</div> |
|||
<el-text class="mx-1 title_size">DISC性格解析</el-text> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div v-if="judgaDisc('D')"> |
|||
<el-text class="mx-1 hongSe" type="info">支配型一般描述:<br></el-text> |
|||
<el-text class="mx-1" type="info">爱冒险的、有竞争力的、大胆的、直接的、果断的、创新的坚持不懈的、问题解决者、自我激励者,<br></el-text> |
|||
<el-text class="mx-1" type="info">高D的情绪特征:愤怒</el-text> |
|||
</div> |
|||
<div v-if="judgaDisc('I')"> |
|||
<el-text class="mx-1 hongSe" type="info">影响型一般描述:<br></el-text> |
|||
<el-text class="mx-1" type="info">有魅力的、自信的、有说服力的、热情的、鼓舞人心的、乐观的、令人信服的、受欢迎的、好交际的、可信赖的,<br></el-text> |
|||
<el-text class="mx-1" type="info">高I的情绪特征:乐观</el-text> |
|||
</div> |
|||
<div v-if="judgaDisc('S')"> |
|||
<el-text class="mx-1 hongSe" type="info">稳定型描述:<br></el-text> |
|||
<el-text class="mx-1" type="info">友善的、亲切的、好的倾听者、有耐心的、放松的、热诚的、稳定的、团队合作者、善解人意的、稳健的,<br></el-text> |
|||
<el-text class="mx-1" type="info">高S的情绪特征:非情绪化的</el-text> |
|||
</div> |
|||
<div v-if="judgaDisc('C')"> |
|||
<el-text class="mx-1 hongSe" type="info">服从型描述:<br></el-text> |
|||
<el-text class="mx-1" type="info">准确的、有分析力的、谨慎的、谦恭的、圆滑的、善于发现事实、高标准、成熟的、有耐心的、严谨的,<br></el-text> |
|||
<el-text class="mx-1" type="info">高C的情绪特征:害怕</el-text> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</template> |
|||
<style lang='scss' scoped> |
|||
.allOrgAxisCares{ |
|||
display: block; |
|||
width: 100%; |
|||
height:380px; |
|||
// overflow:auto; |
|||
} |
|||
.hongSe{ |
|||
color: #FF0000; |
|||
} |
|||
.lanSe{ |
|||
color: #0000FF; |
|||
} |
|||
.huangSe{ |
|||
color: #FFD700; |
|||
} |
|||
.lvSe{ |
|||
color: #008000; |
|||
} |
|||
.title_size{ |
|||
font-size:24px; |
|||
font-weight: bold; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,72 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-08-31 16:56:19 |
|||
@ 备注: 性格测试结果 |
|||
--> |
|||
<script lang='ts' setup> |
|||
import CharacterColor from "@/views/hr/archives/basicinformation/charactercolor.vue"; //性格色彩 |
|||
import DiscTest from "@/views/hr/archives/basicinformation/discTest.vue"; //DISC测试结果 |
|||
|
|||
const props = defineProps({ |
|||
tabsid: { |
|||
type: String, |
|||
default: "1", |
|||
}, |
|||
usercont:{ |
|||
type:Object, |
|||
default(){ |
|||
return {} |
|||
} |
|||
} |
|||
}); |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-08-30 14:52:29 |
|||
@ 功能: 判断现实哪种测验结果 |
|||
*/ |
|||
const isTestShouw = (val:number) => { |
|||
// console.log("判断现实哪种测验结果",props.usercont.isColorTrue) |
|||
switch (props.usercont.isColorTrue) { |
|||
case 1: |
|||
if(val == 1){ |
|||
return true |
|||
}else{ |
|||
return false |
|||
} |
|||
break; |
|||
case 3: |
|||
if(val == 2){ |
|||
return true |
|||
}else{ |
|||
return false |
|||
} |
|||
break; |
|||
case 4: |
|||
if(val == 3){ |
|||
return false |
|||
}else{ |
|||
return true |
|||
} |
|||
break; |
|||
case 5: |
|||
if(val == 3){ |
|||
return true |
|||
}else{ |
|||
return false |
|||
} |
|||
break; |
|||
default: |
|||
return false |
|||
break; |
|||
} |
|||
} |
|||
</script> |
|||
<template> |
|||
<div> |
|||
<CharacterColor v-if="isTestShouw(1)" :usercont="props.usercont" :tabsid="props.tabsid" /> |
|||
<DiscTest v-if="isTestShouw(2)" :usercont="props.usercont" :tabsid="props.tabsid" /> |
|||
</div> |
|||
</template> |
|||
<style lang='scss' scoped> |
|||
|
|||
</style> |
|||
Loading…
Reference in new issue