report.b2AYBDPI.js 20 KB

1
  1. import{_ as P}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{aj as L,c as o,o as r,b as s,Q as l,M as D,R as h,a9 as w,G as y,P as k,F as Q,S as A,aI as R,J as N,K as S}from"./vue.D1BjjNmv.js";const V="/assets/notPass.DHv04sgr.png",j="/assets/pass.CYM6o_Op.jpg",z={name:"JobApplicationReport",data(){return{userInfo:{avatar:"/@/assets/default-avatar.png",name:"张某三",interviewTime:"2021-06-30 18:00",duration:"18分 12秒",idNumber:"24893119999999999",phone:"14893725981",pass:60},totalScore:52,abilityItems:[],isPassed:!1,hireRecommendation:"",failReason:"候选人答题过程中存在非正常表现和应答,同时,可行性较为不足,候选人表现出来的综合能力也不符合岗位要求的行为和动机表现,在特定学习方面,候选人未能呈现出明显的优势和发展潜质。",qualityDetails:{strengths:[],weaknesses:[]},activeTab:"comprehensive",tabs:[{id:"comprehensive",name:"综合评价"},{id:"ability",name:"能力素质"},{id:"cheat",name:"作弊检测"},{id:"psychology",name:"心理检测"},{id:"body",name:"肢体检测"},{id:"answers",name:"答题记录",isLink:!0}],isNavFixed:!1,navHeight:0,navOffsetTop:0,loading:!1,error:null,analysisMap:{clear_expression:"表达清晰",logical_thinking:"逻辑思维能力强",professional_knowledge:"专业知识扎实",communication_skills:"沟通能力出色",problem_solving:"问题解决能力强",team_collaboration:"团队协作意识好",learning_ability:"学习能力强",lack_experience:"经验不足",weak_professional:"专业知识有待提升",poor_expression:"表达能力需要提高",weak_logic:"逻辑思维需要加强",weak_communication:"沟通技巧需要改进",weak_teamwork:"团队协作意识不足",weak_learning:"学习能力有待提升"},psychologyData:{score:35,description:"轻微焦虑或负面情绪,仍具备岗位适应力。候选人在某些方面可能存在轻微的心理压力,但总体上仍保持稳定,基本符合岗位要求。",recommendation:"可考虑录取"},redLineQuestions:{allCorrect:!1,failedQuestions:[]},handVerificationData:{left:[],right:[]},reportTime:"2025.5.19",reportId:"2489372598"}},async created(){await this.fetchApplicationDetail()},mounted(){this.$nextTick(()=>{const a=this.$refs.navTabs;a&&(this.navHeight=a.offsetHeight,this.navOffsetTop=a.offsetTop,window.addEventListener("scroll",this.handleScroll))})},beforeDestroy(){window.removeEventListener("scroll",this.handleScroll)},methods:{async fetchApplicationDetail(){var a,e,p,v,i,d,q,I,t,_,b,u;try{const f=this.$route.query.id||this.$route.params.id;console.log(f),this.loading=!0;const x=await fetch(`https://backend.qicai321.com/api/job/application_detail?tenant_id=1&application_id=${f}`);if(!x.ok)throw new Error("获取数据失败");const H=await x.json();if(H.code===2e3){const c=H.data||{};if(this.userInfo={avatar:c.avatar||"/@/assets/default-avatar.png",name:((a=c.applicant)==null?void 0:a.name)||"未知",interviewTime:((e=c.application)==null?void 0:e.interview_completion_time)||"-",duration:((p=c.application)==null?void 0:p.interview_duration_formatted)||"-",idNumber:((v=c.applicant)==null?void 0:v.id_card)||"-",phone:((i=c.applicant)==null?void 0:i.phone)||"-",pass:((d=c.application)==null?void 0:d.comprehensive_score)||0},c.posture_photos&&Array.isArray(c.posture_photos)){const C=c.posture_photos.filter(n=>{var m,g;return((m=n==null?void 0:n.description)==null?void 0:m.includes("left_"))||((g=n==null?void 0:n.description)==null?void 0:g.includes("左手"))})||[],T=c.posture_photos.filter(n=>{var m,g;return((m=n==null?void 0:n.description)==null?void 0:m.includes("right_"))||((g=n==null?void 0:n.description)==null?void 0:g.includes("右手"))})||[];this.handVerificationData.left=C.map(n=>{var m,g;return{url:(n==null?void 0:n.photo_url)||"/@/assets/default-image.png",description:this.getPhotoDescription((n==null?void 0:n.description)||""),part_verification:{is_correct_part:((m=n==null?void 0:n.part_verification)==null?void 0:m.is_correct_part)??!0,explanation:((g=n==null?void 0:n.part_verification)==null?void 0:g.explanation)||"手势验证通过"}}}),this.handVerificationData.right=T.map(n=>{var m,g;return{url:(n==null?void 0:n.photo_url)||"/@/assets/default-image.png",description:this.getPhotoDescription((n==null?void 0:n.description)||""),part_verification:{is_correct_part:((m=n==null?void 0:n.part_verification)==null?void 0:m.is_correct_part)??!0,explanation:((g=n==null?void 0:n.part_verification)==null?void 0:g.explanation)||"手势验证通过"}}})}if(c.application&&(this.totalScore=c.application.comprehensive_score||0,this.hireRecommendation=c.application.hire_recommendation||"",this.failReason=c.application.hire_reason||""),(t=(I=(q=c.application)==null?void 0:q.comprehensive_analysis)==null?void 0:I.video_analysis_data)!=null&&t.competency_scores){const C=c.application.comprehensive_analysis.video_analysis_data.competency_scores;this.abilityItems=Object.values(C).map(T=>({tag_name:T.tag_name||"",weighted_score:Math.round(T.weighted_score||0)}))}(b=(_=c.application)==null?void 0:_.comprehensive_analysis)!=null&&b.video_analysis_data&&(this.qualityDetails={strengths:c.application.comprehensive_analysis.video_analysis_data.strengths||[],weaknesses:c.application.comprehensive_analysis.video_analysis_data.weaknesses||[]}),c.required_questions_summary&&(this.redLineQuestions={allCorrect:c.required_questions_summary.all_correct||!1,failedQuestions:c.required_questions_summary.failed_questions_details||[]});const E=(u=c.scoring_summary)==null?void 0:u.total_score_obtained;this.psychologyData={score:E,description:this.getPsychologyDescription(E),recommendation:this.getHireRecommendation(E)}}}catch(f){console.error("获取应用详情失败:",f),this.error=f.message}finally{this.loading=!1}},format(a){return`${a}分`},scrollToSection(a){if(a==="answers"){const p=this.$route.query.id||this.$route.params.id,v=window.location.origin;window.open(`${v}/#/topic?applicationId=${p}`,"_blank");return}this.activeTab=a;const e=this.$refs[a];e&&e.scrollIntoView({behavior:"smooth"})},handleScroll(){const a=window.pageYOffset||document.documentElement.scrollTop;this.isNavFixed=a>this.navOffsetTop,this.updateActiveTab(a)},updateActiveTab(a){const e=this.navHeight,p=this.tabs.map(v=>{const i=this.$refs[v.id];return{id:v.id,top:i.getBoundingClientRect().top+window.pageYOffset-e-20}});for(let v=p.length-1;v>=0;v--)if(a>=p[v].top){this.activeTab=p[v].id;break}},getChineseAnalysis(a){return this.analysisMap[a]||a},getPsychologyDescription(a){return a===void 0?"未进行心理测评或数据缺失":a<=20?"心理状态健康,情绪稳定、认知正常。候选人在心理测评中表现出稳定的情绪状态和健康的心理特质,适合岗位要求。":a<=35?"轻微焦虑或负面情绪,仍具备岗位适应力。候选人在某些方面可能存在轻微的心理压力,但总体上仍保持稳定,基本符合岗位要求。":a<=55?"存在一定情绪波动或压力反应。候选人在测评中表现出一定程度的心理压力或情绪波动,建议进一步面谈评估。":a<=70?"心理压力较大,可能影响工作稳定性。候选人在测评中表现出较明显的心理压力或情绪不稳定性,建议慎重录用或考虑调岗。":"可能存在较严重心理或精神问题。候选人在测评中表现出明显的心理或情绪问题,不建议录用。"},getHireRecommendation(a){return a===void 0?"无法给出建议":a<=20?"建议优先录取":a<=35?"可考虑录取":a<=55?"建议进一步面谈评估":a<=70?"慎重录用或建议调岗":"不建议录用"},getPhotoDescription(a){return{left_palm:"左手手心",left_back:"左手手背",left_fist:"左手腕拳",right_palm:"右手手心",right_back:"右手手背",right_fist:"右手腕拳",左手手心:"左手手心",左手手背:"左手手背",左手腕拳:"左手腕拳",右手手心:"右手手心",右手手背:"右手手背",右手腕拳:"右手腕拳"}[a]||a},getHandPhotos(a){return(this.handVerificationData[a]||[]).map(p=>({url:p.url,status:"normal",photo_id:1,detections:[],description:p.description,photo_index:1,analysis_model:"",part_verification:p.part_verification,analysis_timestamp:"",overall_assessment:"正常"}))},handleImageError(a){const e=a.target;e&&(e.src="/@/assets/default-image.png")}}},M={class:"outer-container"},O={class:"report-header"},F={class:"header-right"},B={class:"report-id"},Y={key:0,class:"loading-state"},J={key:1,class:"error-state"},U={key:2,class:"report-container"},G={class:"header"},K={class:"header-left"},W=["src"],X={class:"header-right"},Z={class:"left-section"},$={class:"info-row"},ss={class:"value"},es={class:"info-row"},ts={class:"value"},is={class:"info-row"},as={class:"value"},ns={class:"right-section"},rs={class:"info-row"},os={class:"value"},ls={class:"info-row"},cs={class:"value"},ds={class:"stamp"},_s={key:0,src:V,alt:"不通过印章"},ps={key:1,src:j,alt:"通过印章"},vs=["onClick"],us={key:0,class:"el-icon-link"},fs={ref:"comprehensive",class:"evaluation-result"},ms={class:"score-section"},gs={class:"score-section-left"},ys={class:"score-value"},hs={class:"number"},bs={key:0,class:"status-tag"},ws={key:1,class:"status-tag"},ks={class:"detection-results"},xs={class:"detection-item"},Is={class:"detection-item"},Ds={class:"fail-reason"},qs={class:"reason-header"},Ts={class:"reason-content"},Es={class:"reason-content redline-section"},Cs={class:"redline-header"},Hs={key:0,class:"failed-questions"},Ls={class:"failed-list"},Ns={class:"question-text"},Ss={ref:"ability",class:"ability-quality"},Ps={style:{"font-size":"14px","font-weight":"normal"}},Qs={class:"score-text"},As={class:"quality-details"},Rs={class:"quality-item"},Vs={class:"quality-left"},js={class:"content"},zs={class:"quality-right"},Ms={class:"content"},Os={class:"detailed-evaluation"},Fs={class:"ability-scores"},Bs={class:"ability-name"},Ys={class:"progress-bar"},Js={ref:"cheat",class:"detection-section"},Us={ref:"psychology",class:"psychology-section"},Gs={class:"duv-score"},Ks={class:"score"},Ws={class:"psychology-desc"},Xs={class:"psychology-recommendation"},Zs={class:"value"},$s={ref:"body",class:"body-detection-section"},se={class:"hand-verification mt-6"},ee={class:"grid grid-cols-2 gap-8"},te={class:"grid grid-cols-3 gap-2"},ie={class:"w-full h-full"},ae=["src","alt"],ne=["src","alt"],re={class:"grid grid-cols-3 gap-2"},oe={class:"w-full h-full"},le=["src","alt"],ce=["src","alt"];function de(a,e,p,v,i,d){const q=L("el-progress"),I=L("el-tooltip");return r(),o("div",M,[s("div",O,[e[4]||(e[4]=s("div",{class:"header-left"},"AI面试结果检验报告",-1)),s("div",F,[s("span",null,"报告生成时间:"+l(i.reportTime),1),s("span",B,"报告ID:"+l(i.reportId),1)])]),i.loading?(r(),o("div",Y," 加载中... ")):i.error?(r(),o("div",J,l(i.error),1)):(r(),o("div",U,[s("div",G,[s("div",K,[s("img",{class:"avatar",src:i.userInfo.avatar,alt:"用户头像"},null,8,W)]),s("div",X,[s("div",Z,[s("div",$,[e[5]||(e[5]=s("span",{class:"label"},"姓名:",-1)),s("span",ss,l(i.userInfo.name),1)]),s("div",es,[e[6]||(e[6]=s("span",{class:"label"},"面试时间:",-1)),s("span",ts,l(i.userInfo.interviewTime),1)]),s("div",is,[e[7]||(e[7]=s("span",{class:"label"},"面试时长:",-1)),s("span",as,l(i.userInfo.duration),1)])]),s("div",ns,[e[10]||(e[10]=s("div",{class:"info-row"},[s("span",{class:"label"},"实名认证:"),s("span",{class:"value verified"},"已核验")],-1)),s("div",rs,[e[8]||(e[8]=s("span",{class:"label"},"身份证号:",-1)),s("span",os,l(i.userInfo.idNumber),1)]),s("div",ls,[e[9]||(e[9]=s("span",{class:"label"},"手机号码:",-1)),s("span",cs,l(i.userInfo.phone),1)])]),s("div",ds,[i.userInfo.pass<60?(r(),o("img",_s)):(r(),o("img",ps))])])]),s("div",{class:y(["nav-tabs",{fixed:i.isNavFixed}]),ref:"navTabs"},[(r(!0),o(h,null,w(i.tabs,t=>(r(),o("div",{key:t.id,class:y(["tab-item",{active:i.activeTab===t.id,"link-tab":t.isLink}]),onClick:_=>d.scrollToSection(t.id)},[k(l(t.name)+" ",1),t.isLink?(r(),o("i",us)):D("",!0)],10,vs))),128))],2),i.isNavFixed?(r(),o("div",{key:0,class:"nav-placeholder",style:Q({height:i.navHeight+"px"})},null,4)):D("",!0),s("div",fs,[s("div",ms,[s("div",gs,[e[17]||(e[17]=s("div",{class:"score-title"},"综合评价",-1)),s("div",ys,[s("span",hs,l(i.userInfo.pass),1),e[11]||(e[11]=s("span",{class:"unit"},"分",-1)),i.userInfo.pass<60?(r(),o("span",bs,"不通过")):(r(),o("span",ws,"通过"))]),s("div",ks,[s("span",xs,[e[12]||(e[12]=k(" 身份认证 ")),s("span",{class:y(i.userInfo.idNumber?"status-normal":"status-warning")},l(i.userInfo.idNumber?"无异常":"有异常"),3)]),e[14]||(e[14]=s("span",{class:"separator"},"/",-1)),s("span",Is,[e[13]||(e[13]=k(" 手机号实名认证 ")),s("span",{class:y(i.userInfo.phone?"status-normal":"status-warning")},l(i.userInfo.phone?"无异常":"有异常"),3)]),e[15]||(e[15]=s("span",{class:"separator"},"/",-1)),e[16]||(e[16]=s("span",{class:"detection-item"},[k(" 手部综合检测 "),s("span",{class:"status-normal"},"无异常")],-1))])]),s("div",Ds,[s("div",qs,[s("span",null,"录用建议:"+l(i.hireRecommendation),1)]),s("div",Ts,l(i.failReason),1)]),s("div",Es,[s("div",Cs,[e[18]||(e[18]=s("span",{class:"redline-title"},"红线题检测结果",-1)),s("span",{class:y({"status-normal":i.redLineQuestions.allCorrect,"status-warning":!i.redLineQuestions.allCorrect})},l(i.redLineQuestions.allCorrect?"全部正确":"存在错误,建议不录用"),3)]),!i.redLineQuestions.allCorrect&&i.redLineQuestions.failedQuestions.length>0?(r(),o("div",Hs,[e[20]||(e[20]=s("div",{class:"failed-title"},"未通过的红线题:",-1)),s("div",Ls,[(r(!0),o(h,null,w(i.redLineQuestions.failedQuestions,(t,_)=>(r(),o("div",{key:"failed-"+_,class:"failed-item"},[e[19]||(e[19]=s("span",{class:"bullet"},"•",-1)),s("span",Ns,l(t.question_text||`问题 ${_+1}`),1)]))),128))])])):D("",!0)])])],512),s("div",Ss,[s("h3",null,[e[23]||(e[23]=k("能力素质 ")),s("span",Ps,[e[21]||(e[21]=k("综合得分")),s("span",Qs,l(i.totalScore),1),e[22]||(e[22]=k("/100 分"))])]),s("div",As,[s("div",Rs,[s("div",Vs,[e[24]||(e[24]=s("div",{class:"icon-box"},[s("div",{class:"icon advantage-icon"}),s("h5",null,"优势展现")],-1)),s("div",js,[(r(!0),o(h,null,w(i.qualityDetails.strengths,(t,_)=>(r(),o("p",{key:_},l(d.getChineseAnalysis(t)),1))),128))])]),s("div",zs,[e[25]||(e[25]=s("div",{class:"icon-box"},[s("div",{class:"icon suggestion-icon"}),s("h5",null,"发展建议")],-1)),s("div",Ms,[(r(!0),o(h,null,w(i.qualityDetails.weaknesses,(t,_)=>(r(),o("p",{key:_},l(d.getChineseAnalysis(t)),1))),128))])])])])],512),s("div",null,[s("div",Os,[s("div",Fs,[(r(!0),o(h,null,w(i.abilityItems,(t,_)=>(r(),o("div",{key:_,class:"ability-item"},[s("span",Bs,l(t.tag_name),1),s("div",Ys,[A(q,{percentage:t.weighted_score,format:d.format,"stroke-width":8},null,8,["percentage","format"])])]))),128))])])]),s("div",Js,e[26]||(e[26]=[R('<div class="detection-section-header" data-v-48d6720e><div class="section-title" data-v-48d6720e>作弊检测</div><div class="status-tag normal" data-v-48d6720e>无异常</div></div><div class="detection-section-content" data-v-48d6720e><div class="detection-items" data-v-48d6720e><div class="item" data-v-48d6720e><span class="status normal" data-v-48d6720e>无风险</span><span class="separator" data-v-48d6720e>/</span><span class="desc" data-v-48d6720e>转移、替考:检测无异常</span></div><div class="item" data-v-48d6720e><span class="status normal" data-v-48d6720e>无风险</span><span class="separator" data-v-48d6720e>/</span><span class="desc" data-v-48d6720e>读稿:检测无异常</span></div><div class="item" data-v-48d6720e><span class="status normal" data-v-48d6720e>无风险</span><span class="separator" data-v-48d6720e>/</span><span class="desc" data-v-48d6720e>录屏/切屏:检测无异常</span></div></div><div class="risk-standards" data-v-48d6720e><div class="standards-title" data-v-48d6720e>风险等级标准</div><div class="standards-content" data-v-48d6720e><div class="standard-item" data-v-48d6720e><span class="level" data-v-48d6720e>无异常:</span><span class="desc" data-v-48d6720e>候选人提供的信息真实/无切屏录屏行为/无互联网查询行为/无互联网传行为</span></div><div class="standard-item" data-v-48d6720e><span class="level" data-v-48d6720e>低风险:</span><span class="desc" data-v-48d6720e>候选人提供信息真实/可切屏录屏行为/可互联网查询行为/无互联网传行为</span></div><div class="standard-item" data-v-48d6720e><span class="level" data-v-48d6720e>高风险:</span><span class="desc" data-v-48d6720e>面试者与候选人为一不同人/可切屏录屏行为/可互联网查询行为/过程存在传输行为</span></div></div></div></div>',2)]),512),s("div",Us,[e[30]||(e[30]=s("div",{class:"section-title"},"心理检测",-1)),s("div",Gs,[e[27]||(e[27]=s("span",null,"DUV 心理测评得分",-1)),s("span",Ks,l(i.psychologyData.score),1),e[28]||(e[28]=s("span",null,"分",-1))]),s("div",Ws,l(i.psychologyData.description),1),s("div",Xs,[e[29]||(e[29]=s("span",{class:"label"},"录用建议:",-1)),s("span",Zs,l(i.psychologyData.recommendation),1)])],512),s("div",$s,[e[33]||(e[33]=s("div",{class:"detection-section-header"},[s("div",{class:"section-title"},"肢体检测")],-1)),s("div",se,[s("div",ee,[s("div",null,[e[31]||(e[31]=s("h4",{class:"text-gray-600 mb-2"},"左手手势验证",-1)),s("div",te,[(r(!0),o(h,null,w(d.getHandPhotos("left"),(t,_)=>{var b;return r(),o("div",{key:_,class:y(["relative aspect-square rounded-lg overflow-hidden bg-gray-100",{"border-2":t.part_verification,"border-green-500":(b=t.part_verification)==null?void 0:b.is_correct_part,"border-red-500":t.part_verification&&!t.part_verification.is_correct_part}])},[t.part_verification&&!t.part_verification.is_correct_part?(r(),N(I,{key:0,content:t.part_verification.explanation||"未提供失败原因",placement:"top",effect:"dark","show-after":200},{default:S(()=>{var u,f;return[s("div",ie,[s("img",{src:t.url,alt:t.description,class:"w-full h-full object-cover",onError:e[0]||(e[0]=(...x)=>d.handleImageError&&d.handleImageError(...x))},null,40,ae),s("div",{class:y(["absolute bottom-0 left-0 right-0 py-1 px-2 text-xs text-center text-white z-10",{"bg-green-500 bg-opacity-90":(u=t.part_verification)==null?void 0:u.is_correct_part,"bg-red-500 bg-opacity-90":t.part_verification&&!t.part_verification.is_correct_part}])},l((f=t.part_verification)!=null&&f.is_correct_part?"通过":"未通过"),3)])]}),_:2},1032,["content"])):(r(),o(h,{key:1},[s("img",{src:t.url,alt:t.description,class:"w-full h-full object-cover",onError:e[1]||(e[1]=(...u)=>d.handleImageError&&d.handleImageError(...u))},null,40,ne),t.part_verification?(r(),o("div",{key:0,class:y(["absolute bottom-0 left-0 right-0 py-1 px-2 text-xs text-center text-white z-10",{"bg-green-500 bg-opacity-90":t.part_verification.is_correct_part,"bg-red-500 bg-opacity-90":!t.part_verification.is_correct_part}])},l(t.part_verification.is_correct_part?"通过":"未通过"),3)):D("",!0)],64))],2)}),128))])]),s("div",null,[e[32]||(e[32]=s("h4",{class:"text-gray-600 mb-2"},"右手手势验证",-1)),s("div",re,[(r(!0),o(h,null,w(d.getHandPhotos("right"),(t,_)=>{var b;return r(),o("div",{key:_,class:y(["relative aspect-square rounded-lg overflow-hidden bg-gray-100",{"border-2":t.part_verification,"border-green-500":(b=t.part_verification)==null?void 0:b.is_correct_part,"border-red-500":t.part_verification&&!t.part_verification.is_correct_part}])},[t.part_verification&&!t.part_verification.is_correct_part?(r(),N(I,{key:0,content:t.part_verification.explanation||"未提供失败原因",placement:"top",effect:"dark","show-after":200},{default:S(()=>{var u,f;return[s("div",oe,[s("img",{src:t.url,alt:t.description,class:"w-full h-full object-cover",onError:e[2]||(e[2]=(...x)=>d.handleImageError&&d.handleImageError(...x))},null,40,le),s("div",{class:y(["absolute bottom-0 left-0 right-0 py-1 px-2 text-xs text-center text-white z-10",{"bg-green-500 bg-opacity-90":(u=t.part_verification)==null?void 0:u.is_correct_part,"bg-red-500 bg-opacity-90":t.part_verification&&!t.part_verification.is_correct_part}])},l((f=t.part_verification)!=null&&f.is_correct_part?"通过":"未通过"),3)])]}),_:2},1032,["content"])):(r(),o(h,{key:1},[s("img",{src:t.url,alt:t.description,class:"w-full h-full object-cover",onError:e[3]||(e[3]=(...u)=>d.handleImageError&&d.handleImageError(...u))},null,40,ce),t.part_verification?(r(),o("div",{key:0,class:y(["absolute bottom-0 left-0 right-0 py-1 px-2 text-xs text-center text-white z-10",{"bg-green-500 bg-opacity-90":t.part_verification.is_correct_part,"bg-red-500 bg-opacity-90":!t.part_verification.is_correct_part}])},l(t.part_verification.is_correct_part?"通过":"未通过"),3)):D("",!0)],64))],2)}),128))])])])])],512)]))])}const ve=P(z,[["render",de],["__scopeId","data-v-48d6720e"]]);export{ve as default};