Browse Source

导出九型人格测试结果

yjf_v2
超级管理员 1 year ago
parent
commit
7a860b934f
  1. 21
      src/api/hr/people/index.ts
  2. 2
      src/views/hr/archives/archivescont.vue
  3. 188
      src/views/hr/archives/basicinformation/ninePage.vue
  4. 3
      src/views/hr/archives/basicinformation/personalityTest.vue
  5. 32
      src/views/hr/archives/index.vue

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

@ -689,3 +689,24 @@ export function getUserDISCTest(data?: any) {
data: data
})
}
/**
*
*/
export function nineResultToken(data: any){
return request({
url: '/systemapi/rongxin/nineResultToken',
method: 'post',
data: data
});
}
/**
*
*/
export function downLoadNineTestPage(data: any){
return request({
url: '/systemapi/rongxin/downLoadNineTestPage',
// url:'/hrapi/staff/archiveslistcont',
method: 'post',
params: data
});
}

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

@ -289,7 +289,7 @@ const handleClickUser = (tab: any, event: Event) => {
@refreshcontdata="refreshContPage"
/>
</el-tab-pane>
<el-tab-pane label="性格色彩" name="2" >
<el-tab-pane label="性格特性" name="2" >
<PersonalityTest v-if="activeName == '2'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>

188
src/views/hr/archives/basicinformation/ninePage.vue

@ -0,0 +1,188 @@
<!--
@ 作者: 秦东
@ 时间: 2024-09-12 16:32:43
@ 备注: 九型人格测试结果
-->
<script lang='ts' setup>
import * as echarts from 'echarts';
import { nineResultToken } from '@/api/hr/people';
const props = defineProps({
tabsid: {
type: String,
default: "1",
},
usercont:{
type:Object,
default(){
return {}
}
}
});
const nineTestPageLoading = ref(false)
const nineTestPage = ref<any>(null)
const disTitlePick = ref<string[]>([])
const discdrawRadar = ref(null)
//
onBeforeMount(()=>{
let sendData = {
id:props.usercont.number.toString()
}
nineResultToken(sendData)
.then(({data}) => {
// console.log("111111", data);
disTitlePick.value = data.ColourNameList
drawNineRadarChart(data.colourTitle,data.RadarColour,data.indicator)
})
});
/**
@ 作者: 秦东
@ 时间: 2024-08-30 13:37:05
@ 功能: 绘图
*/
const drawNineRadarChart = (radarTitle:string[],radarVal:number[],indicator:any[]) => {
console.log("drawNineRadarChart",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(nineTestPage.value))
})
})
/**
@ 作者: 秦东
@ 时间: 2024-06-12 14:27:32
@ 功能: 判断该颜色是否存在了
*/
const judgaDiscNine = (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="nineTestPage" v-loading="nineTestPageLoading" element-loading-text="Loading..." class="allOrgAxisCares">
</div>
<el-text class="mx-1 title_size">九型性格解析</el-text>
<el-row>
<el-col :span="24">
<div v-if="judgaDiscNine('RI')">
<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">允许的弱项过于乐观;虎头蛇尾</el-text>
</div>
<div v-if="judgaDiscNine('IM')">
<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">允许的弱项缺乏灵活性对新的想法反应迟钝</el-text>
</div>
<div v-if="judgaDiscNine('CO')">
<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">允许的弱项喜欢操纵和摆布把自己的工作分配给其他人去干</el-text>
</div>
<div v-if="judgaDiscNine('PL')">
<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">允许的弱项对细节不够重视过于专注手头的工作无法有效沟通</el-text>
</div>
<div v-if="judgaDiscNine('SH')">
<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">允许的弱项容易激怒别人容忍性差常会伤害别人</el-text>
</div>
<div v-if="judgaDiscNine('ME')">
<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">允许的弱项缺乏推动和启发他人的能力过于挑剔</el-text>
</div>
<div v-if="judgaDiscNine('TW')">
<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">允许的弱项关键时刻犹豫不决容易受到别人的影响</el-text>
</div>
<div v-if="judgaDiscNine('CF')">
<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">允许的弱项过于不安和担忧不愿意授权吹毛求疵</el-text>
</div>
<div v-if="judgaDiscNine('CP')">
<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">允许的弱项只能在狭窄的领域做出贡献拘泥于技术细节而忽视了整体情况</el-text>
</div>
<div v-if="judgaDiscNine('DR')">
<el-text class="mx-1 hongSe" type="info">DR<br></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>

3
src/views/hr/archives/basicinformation/personalityTest.vue

@ -6,6 +6,8 @@
<script lang='ts' setup>
import CharacterColor from "@/views/hr/archives/basicinformation/charactercolor.vue"; //
import DiscTest from "@/views/hr/archives/basicinformation/discTest.vue"; //DISC
import NinePage from "@/views/hr/archives/basicinformation/ninePage.vue"; //
const props = defineProps({
tabsid: {
@ -65,6 +67,7 @@ const isTestShouw = (val:number) => {
<div>
<CharacterColor v-if="isTestShouw(1)" :usercont="props.usercont" :tabsid="props.tabsid" />
<DiscTest v-if="isTestShouw(2)" :usercont="props.usercont" :tabsid="props.tabsid" />
<NinePage :usercont="props.usercont" :tabsid="props.tabsid" />
<div v-if="isTestShouw(3)" v-html="props.usercont.userTypes"></div>
</div>
</template>

32
src/views/hr/archives/index.vue

@ -8,7 +8,7 @@ import { orgInfo,msgAry } from '@/api/hr/org/type'
import { getOrgTreeList,gainUserInfoDownTemplateList,uploadUserTemplate,editUserTempr,gainUserTemplateInfo,editUserTemplateInfo,gainTempleateOrgList } from '@/api/hr/org/index'
import { archivesCont,searchCriteriaForPeople } from '@/api/hr/people/type'
import { emptypeOptions } from '@/api/hr/people/datacont'
import { getArchivesListPage,analysisRedisExelect,analysisRedisOrgExelect } from '@/api/hr/people/index'
import { getArchivesListPage,analysisRedisExelect,analysisRedisOrgExelect,downLoadNineTestPage } from '@/api/hr/people/index'
import UserRole from '@/assets/icons/user.svg'
import { UploadFilled } from '@element-plus/icons-vue'
@ -21,9 +21,15 @@ import ArchivesCont from '@/views/hr/archives/archivescont.vue'
import { ElScrollbar as ElScrollbarType } from 'element-plus';
import {
json2string
} from '@/utils/DesignForm/form'
const innerRef = ref<HTMLDivElement>()
const scrollbarRef = ref<InstanceType<typeof ElScrollbarType>>()
const downloadUrl = import.meta.env.VITE_APP_BASE_API+"/systemapi/rongxin/downLoadNineTestPage"
const handleClick = () => {
nextTick(() => {
@ -480,6 +486,18 @@ const scrollToBottom = () => {
container.scrollTop = container.scrollHeight;
}
}
/**
@ 作者: 秦东
@ 时间: 2024-09-13 09:18:25
@ 功能: 下团队角色分析表
*/
const downLoadTeamTable = () => {
downLoadNineTestPage(searchArchiveQuery)
.then(({data}) => {
console.log("下团队角色分析表",data)
})
}
</script>
<template>
<div class="app-container">
@ -548,6 +566,7 @@ const scrollToBottom = () => {
</el-row>
<el-card shadow="never" style="padding: 0;">
<div style="margin-bottom: 15px">
<el-space wrap>
<el-button
v-hasPerm="['215437071358111744']"
@ -576,6 +595,17 @@ const scrollToBottom = () => {
<el-icon><Download /></el-icon>
导入模板下载
</el-button>
<el-link type="primary" :underline="false" :href="downloadUrl+'?keywords='+searchArchiveQuery.keywords+'&adminorg='+searchArchiveQuery.adminorg+'&emptype='+json2string(searchArchiveQuery.emptype)" target="_blank"><el-button
v-hasPerm="['287868103478489088']"
plain
type="primary"
>
<el-icon><Download /></el-icon>
下载团队角色分析表
</el-button></el-link>
</el-space>
</div>
<el-table
v-loading="tableLoading"

Loading…
Cancel
Save