1 |
- import{a as ee,aB as te,r as y,_ as ae,w as T,q as oe,aj as _,c as g,o as d,S as o,K as l,J as c,M as b,R as V,a9 as h,b as w,u as B,P as j,Y as ne}from"./vue.D1BjjNmv.js";import{G as le,a as se,b as ie,c as re}from"./api.DampbaaT.js";import ue from"./QuestionOptionsEditor.e0gHieJV.js";import de from"./BlankAnswerEditor.CI_z8z3V.js";import{r as u,S as i,E}from"./index.Bk_eBqy8.js";import{_ as me}from"./_plugin-vue_export-helper.DlAUqK2U.js";function xe(n){return u({url:"/api/system/competency/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Ue(n){return u({url:"/api/system/interview_question/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Ce(n){return u({url:"/api/system/interview_question/ai_generated",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function Ge(n){return u({url:"/api/system/interview_question/draft_list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Be(n){return u({url:"/api/system/interview_question/confirm_draft",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function je(n){return u({url:"/api/system/digital_human/",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Se(n){return u({url:"/api/system/job_config/list",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Oe(n){return u({url:`/api/system/job_config/detail/${n.id}`,method:"put",data:{...n,tenant_id:i.get("tenant_id")}})}function Qe(n){return u({url:`/api/system/job_config/position/detail/${n}`,method:"get"})}function Fe(n){return u({url:"api/system/job/add_question",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Re(n){return u({url:"/api/system/digital_human/generate_opening_video",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function Le(n){return u({url:"/api/system/digital_human/generate_question_videos",method:"post",data:{...n,tenant_id:i.get("tenant_id"),force_regenerate:!0},timeout:0})}function Te(n){return u({url:"/api/system/job/batch_delete_questions",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Ee(n){return u({url:"/competency/generate_from_position/",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function De(n){return u({url:"/competency/save_position_tags/",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function pe(n){return u({url:"/api/system/competency/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function $e(n){return u({url:"/api/system/job/questions",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Me(n){return u({url:"/api/system/competency/create",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Pe(n){return u({url:"/api/system/competency/batch_bind",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Ae(n){return u({url:`/api/system/interview_question/detail?question_id=${n}&tenant_id=${i.get("tenant_id")}`,method:"get"})}const _e={class:"question-bank-form"},ce={style:{display:"flex","align-items":"center"}},fe={key:0,style:{"margin-top":"10px"}},ge=["src"],ye=ee({__name:"QuestionBankForm",props:{modelValue:{default:()=>({})},isEdit:{type:Boolean,default:!1}},emits:["update:modelValue","submit","cancel"],setup(n,{expose:D,emit:$}){const M=te(),P="https://backend.qicai321.com",S=n,k=$,q=y(),e=ae({question:"",question_form:0,question_image_url:"",competency_tags:[],competency_tags_config:[],position_types:[],category_id:null,tags:[],recommended_duration:60,status:1,is_required_correct:!1,is_system:!1,sort:1,options:[],scoring_reference:"",blank_answer_template:[],...S.modelValue}),A={question:[{required:!0,message:"题目内容必填",trigger:"blur"}],question_form:[{required:!0,message:"题目形式必填",trigger:"change"}],status:[{required:!0,message:"状态必填",trigger:"change"}],question_image_url:[{required:!0,message:"看图选答案题型必须上传图片",trigger:"change"}]},O=y([]),x=y([]),Q=y([]),F=y([]),R=y([]);T(()=>e,s=>{k("update:modelValue",s)},{deep:!0}),T(()=>S.modelValue,s=>{Object.assign(e,s)},{deep:!0});const N=s=>{s===1||s===2||s===3?e.options=[{option_text:"",is_correct:!1,sort:1},{option_text:"",is_correct:!1,sort:2}]:s===4?(e.options=[{option_text:"无",score:0,sort:1},{option_text:"轻度",score:1,sort:2},{option_text:"中度",score:2,sort:3},{option_text:"偏重",score:3,sort:4},{option_text:"严重",score:4,sort:5}],e.scoring_reference||(e.scoring_reference="该评分反映了症状表现的频率与严重程度。")):s===6?(e.blank_answer_template=[{blank_index:1,correct_answer:"",score:5}],e.scoring_reference||(e.scoring_reference="根据答案的准确性评分")):e.options=[]},I=s=>{e.question_image_url=s.url,E.success("图片上传成功")},z=()=>{E.error("图片上传失败")},J=s=>{e.competency_tags_config||(e.competency_tags_config=[]);const a=e.competency_tags_config.map(p=>p.id);s.forEach(p=>{if(!a.includes(p)){const r=x.value.find(m=>m.id===p);r&&e.competency_tags_config.push({id:p,competency_name:r.name,weight:100,importance:1,remark:""})}}),e.competency_tags_config=e.competency_tags_config.filter(p=>s.includes(p.id))},K=async()=>{try{const s=await le();O.value=s.data.question_forms||[];const a=await pe({position_id:M.query.id,tenant_id:i.get("tenant_id"),page:1,limit:50});x.value=a.data.items||[];const p=await se({page:1,limit:50,tenant_id:i.get("tenant_id")});Q.value=p.data||[];const r=await ie({page:1,limit:50,tenant_id:i.get("tenant_id")});F.value=r.data.items||[];const m=await re({page:1,limit:50,tenant_id:i.get("tenant_id")});R.value=m.data.items||[]}catch(s){console.error("获取选项数据失败:",s)}},L=async()=>{var s;try{await((s=q.value)==null?void 0:s.validate()),e.competency_tags&&e.competency_tags.length>0&&e.competency_tags_config?e.competency_tags=e.competency_tags_config.map(a=>({id:a.id,weight:a.weight||100,importance:a.importance||1,remark:a.remark||""})):e.competency_tags_config=[],k("submit",e)}catch(a){console.error("表单验证失败:",a)}},W=()=>{k("cancel")};return oe(()=>{K()}),D({validate:()=>{var s;return(s=q.value)==null?void 0:s.validate()},resetFields:()=>{var s;return(s=q.value)==null?void 0:s.resetFields()},getFormData:()=>e}),(s,a)=>{const p=_("el-input"),r=_("el-form-item"),m=_("el-option"),f=_("el-select"),U=_("el-table-column"),v=_("el-input-number"),Y=_("el-table"),H=_("el-card"),C=_("el-button"),X=_("el-upload"),Z=_("el-form");return d(),g("div",_e,[o(Z,{ref_key:"formRef",ref:q,model:e,rules:A,"validate-on-rule-change":!1,"label-width":"120px",onSubmit:ne(L,["prevent"])},{default:l(()=>[o(r,{label:"题目内容",prop:"question"},{default:l(()=>[o(p,{modelValue:e.question,"onUpdate:modelValue":a[0]||(a[0]=t=>e.question=t),type:"textarea",rows:3,placeholder:"请输入题目内容"},null,8,["modelValue"])]),_:1}),o(r,{label:"题目形式",prop:"question_form"},{default:l(()=>[o(f,{modelValue:e.question_form,"onUpdate:modelValue":a[1]||(a[1]=t=>e.question_form=t),placeholder:"请选择题目形式",style:{width:"100%"},onChange:N},{default:l(()=>[(d(!0),g(V,null,h(O.value,t=>(d(),c(m,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e.question_form===6?(d(),c(r,{key:0,label:"填空答案模板"},{default:l(()=>[o(de,{modelValue:e.blank_answer_template,"onUpdate:modelValue":a[2]||(a[2]=t=>e.blank_answer_template=t),question:e.question},null,8,["modelValue","question"])]),_:1})):b("",!0),o(r,{label:"胜任力标签"},{default:l(()=>[o(f,{modelValue:e.competency_tags,"onUpdate:modelValue":a[3]||(a[3]=t=>e.competency_tags=t),style:{width:"100%"},multiple:"",filterable:"",placeholder:"请选择胜任力标签",onChange:J},{default:l(()=>[(d(!0),g(V,null,h(x.value,t=>(d(),c(m,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e.competency_tags&&e.competency_tags.length>0?(d(),c(r,{key:1,label:"胜任力配置"},{default:l(()=>[o(H,null,{default:l(()=>[o(Y,{data:e.competency_tags_config,border:""},{default:l(()=>[o(U,{label:"标签",prop:"competency_name",width:"200"}),o(U,{label:"权重",width:"150"},{default:l(({row:t})=>[w("div",ce,[o(v,{modelValue:t.weight,"onUpdate:modelValue":G=>t.weight=G,min:0,max:100,step:1,precision:0,controls:!1,style:{width:"calc(100% - 20px)"}},null,8,["modelValue","onUpdate:modelValue"]),a[15]||(a[15]=w("span",{style:{"margin-left":"4px"}},"%",-1))])]),_:1}),o(U,{label:"级别",width:"100"},{default:l(({row:t})=>[o(v,{modelValue:t.importance,"onUpdate:modelValue":G=>t.importance=G,min:1,controls:!1},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:1})]),_:1})):b("",!0),o(r,{label:"适用职位"},{default:l(()=>[o(f,{modelValue:e.position_types,"onUpdate:modelValue":a[4]||(a[4]=t=>e.position_types=t),style:{width:"100%"},multiple:"",filterable:"",placeholder:"请选择适用职位类型"},{default:l(()=>[(d(!0),g(V,null,h(Q.value,t=>(d(),c(m,{key:t.id,label:t.title,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(r,{label:"分类"},{default:l(()=>[o(f,{modelValue:e.category_id,"onUpdate:modelValue":a[5]||(a[5]=t=>e.category_id=t),style:{width:"100%"},placeholder:"请选择题目分类"},{default:l(()=>[(d(!0),g(V,null,h(F.value,t=>(d(),c(m,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(r,{label:"标签"},{default:l(()=>[o(f,{modelValue:e.tags,"onUpdate:modelValue":a[6]||(a[6]=t=>e.tags=t),style:{width:"100%"},multiple:"",filterable:"",placeholder:"请选择标签"},{default:l(()=>[(d(!0),g(V,null,h(R.value,t=>(d(),c(m,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(r,{label:"建议时长(秒)"},{default:l(()=>[o(v,{modelValue:e.recommended_duration,"onUpdate:modelValue":a[7]||(a[7]=t=>e.recommended_duration=t),min:10,max:600,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),o(r,{label:"状态",prop:"status"},{default:l(()=>[o(f,{modelValue:e.status,"onUpdate:modelValue":a[8]||(a[8]=t=>e.status=t),placeholder:"请选择状态",style:{width:"100%"}},{default:l(()=>[o(m,{label:"停用",value:0}),o(m,{label:"启用",value:1})]),_:1},8,["modelValue"])]),_:1}),e.question_form===1||e.question_form===2?(d(),c(r,{key:2,label:"红线问题"},{default:l(()=>[o(f,{modelValue:e.is_required_correct,"onUpdate:modelValue":a[9]||(a[9]=t=>e.is_required_correct=t),placeholder:"请选择是否为红线问题",style:{width:"100%"}},{default:l(()=>[o(m,{label:"否",value:!1}),o(m,{label:"是",value:!0})]),_:1},8,["modelValue"])]),_:1})):b("",!0),o(r,{label:"系统题目"},{default:l(()=>[o(f,{modelValue:e.is_system,"onUpdate:modelValue":a[10]||(a[10]=t=>e.is_system=t),placeholder:"请选择是否为系统题目",style:{width:"100%"}},{default:l(()=>[o(m,{label:"否",value:!1}),o(m,{label:"是",value:!0})]),_:1},8,["modelValue"])]),_:1}),o(r,{label:"排序"},{default:l(()=>[o(v,{modelValue:e.sort,"onUpdate:modelValue":a[11]||(a[11]=t=>e.sort=t),style:{width:"100%"},min:1,max:999},null,8,["modelValue"])]),_:1}),[1,2,3,4].includes(e.question_form)?(d(),c(r,{key:3,label:"选项列表"},{default:l(()=>[o(ue,{modelValue:e.options,"onUpdate:modelValue":a[12]||(a[12]=t=>e.options=t),"question-form":e.question_form},null,8,["modelValue","question-form"])]),_:1})):b("",!0),e.question_form===3?(d(),c(r,{key:4,label:"题目图片"},{default:l(()=>[o(X,{class:"question-image-upload",action:`${B(P)}/api/system/admin_upload/`,data:{tenant_id:B(i).get("tenant_id")},headers:{Authorization:`JWT ${B(i).get("token")}`},"show-file-list":!0,limit:1,accept:"image/*",modelValue:e.question_image_url,"onUpdate:modelValue":a[13]||(a[13]=t=>e.question_image_url=t),"on-success":I,"on-error":z},{tip:l(()=>a[17]||(a[17]=[w("div",{class:"el-upload__tip"},"只能上传jpg/png文件,且不超过500kb",-1)])),default:l(()=>[o(C,{type:"primary"},{default:l(()=>a[16]||(a[16]=[j("点击上传图片")])),_:1})]),_:1},8,["action","data","headers","modelValue"]),e.question_image_url?(d(),g("div",fe,[w("img",{src:e.question_image_url,style:{"max-width":"200px","max-height":"200px"}},null,8,ge)])):b("",!0)]),_:1})):b("",!0),o(r,{label:"评分标准"},{default:l(()=>[o(p,{modelValue:e.scoring_reference,"onUpdate:modelValue":a[14]||(a[14]=t=>e.scoring_reference=t),style:{width:"100%"},type:"textarea",rows:4,placeholder:"请输入评分标准说明"},null,8,["modelValue"])]),_:1}),o(r,null,{default:l(()=>[o(C,{type:"primary",onClick:L},{default:l(()=>a[18]||(a[18]=[j("确定")])),_:1}),o(C,{onClick:W},{default:l(()=>a[19]||(a[19]=[j("取消")])),_:1})]),_:1})]),_:1},8,["model"])])}}}),be=me(ye,[["__scopeId","data-v-bdeb807a"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{Fe as A,Pe as B,Se as C,Qe as G,be as Q,Be as S,Oe as U,xe as a,je as b,Ue as c,Ee as d,Re as e,Le as f,Ae as g,Me as h,Ce as i,Ge as j,pe as k,De as l,$e as m,Te as n,Ne as o};
|