QuestionBankForm.CcsBGq29.js 12 KB

1
  1. import{a as K,aB as Y,r as g,_ as H,w as F,q as W,aj as _,c as y,o as m,S as o,K as l,J as c,M as q,R as b,a9 as V,b as R,P as L,Y as X}from"./vue.D1BjjNmv.js";import{G as Z,a as ee,b as te,c as ae}from"./api.efWW_vXF.js";import ne from"./QuestionOptionsEditor.CfqO4x61.js";import oe from"./BlankAnswerEditor.DfAHFZ1O.js";import{r as u,S as i}from"./index.CegqZnpA.js";import{_ as le}from"./_plugin-vue_export-helper.DlAUqK2U.js";function ye(n){return u({url:"/api/system/competency/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function be(n){return u({url:"/api/system/interview_question/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Ve(n){return u({url:"/api/system/interview_question/ai_generated",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function he(n){return u({url:"/api/system/interview_question/draft_list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function ve(n){return u({url:"/api/system/interview_question/confirm_draft",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function qe(n){return u({url:"/api/system/digital_human/",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function we(n){return u({url:"/api/system/job_config/list",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function ke(n){return u({url:`/api/system/job_config/detail/${n.id}`,method:"put",data:{...n,tenant_id:i.get("tenant_id")}})}function xe(n){return u({url:`/api/system/job_config/position/detail/${n}`,method:"get"})}function Ce(n){return u({url:"api/system/job/add_question",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Ue(n){return u({url:"/api/system/digital_human/generate_opening_video",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function Ge(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 Be(n){return u({url:"/api/system/job/batch_delete_questions",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function je(n){return u({url:"/competency/generate_from_position/",method:"post",data:{...n,tenant_id:i.get("tenant_id")},timeout:0})}function Oe(n){return u({url:"/competency/save_position_tags/",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function se(n){return u({url:"/api/system/competency/list",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Qe(n){return u({url:"/api/system/job/questions",method:"get",params:{...n,tenant_id:i.get("tenant_id")}})}function Se(n){return u({url:"/api/system/competency/create",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Fe(n){return u({url:"/api/system/competency/batch_bind",method:"post",data:{...n,tenant_id:i.get("tenant_id")}})}function Re(n){return u({url:`/api/system/interview_question/detail?question_id=${n}&tenant_id=${i.get("tenant_id")}`,method:"get"})}const ie={class:"question-bank-form"},re={style:{display:"flex","align-items":"center"}},ue=K({__name:"QuestionBankForm",props:{modelValue:{default:()=>({})},isEdit:{type:Boolean,default:!1}},emits:["update:modelValue","submit","cancel"],setup(n,{expose:T,emit:D}){const E=Y(),U=n,w=D,h=g(),e=H({question:"",question_form:null,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:[],...U.modelValue}),P={question:[{required:!0,message:"题目内容必填",trigger:"blur"}],question_form:[{required:!0,message:"题目形式必填",trigger:"change"}],status:[{required:!0,message:"状态必填",trigger:"change"}]},G=g([]),k=g([]),B=g([]),j=g([]),O=g([]);F(()=>e,s=>{w("update:modelValue",s)},{deep:!0}),F(()=>U.modelValue,s=>{Object.assign(e,s)},{deep:!0});const $=s=>{s===1||s===2?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=[]},M=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=k.value.find(d=>d.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))},N=async()=>{try{const s=await Z();G.value=s.data.question_forms||[];const a=await se({position_id:E.query.id,tenant_id:i.get("tenant_id"),page:1,limit:50});k.value=a.data.items||[];const p=await ee({page:1,limit:50,tenant_id:i.get("tenant_id")});B.value=p.data||[];const r=await te({page:1,limit:50,tenant_id:i.get("tenant_id")});j.value=r.data.items||[];const d=await ae({page:1,limit:50,tenant_id:i.get("tenant_id")});O.value=d.data.items||[]}catch(s){console.error("获取选项数据失败:",s)}},Q=async()=>{var s;try{await((s=h.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=[],w("submit",e)}catch(a){console.error("表单验证失败:",a)}},A=()=>{w("cancel")};return W(()=>{N()}),T({validate:()=>{var s;return(s=h.value)==null?void 0:s.validate()},resetFields:()=>{var s;return(s=h.value)==null?void 0:s.resetFields()},getFormData:()=>e}),(s,a)=>{const p=_("el-input"),r=_("el-form-item"),d=_("el-option"),f=_("el-select"),x=_("el-table-column"),v=_("el-input-number"),z=_("el-table"),I=_("el-card"),S=_("el-button"),J=_("el-form");return m(),y("div",ie,[o(J,{ref_key:"formRef",ref:h,model:e,rules:P,"validate-on-rule-change":!1,"label-width":"120px",onSubmit:X(Q,["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:$},{default:l(()=>[(m(!0),y(b,null,V(G.value,t=>(m(),c(d,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e.question_form===6?(m(),c(r,{key:0,label:"填空答案模板"},{default:l(()=>[o(oe,{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})):q("",!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:M},{default:l(()=>[(m(!0),y(b,null,V(k.value,t=>(m(),c(d,{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?(m(),c(r,{key:1,label:"胜任力配置"},{default:l(()=>[o(I,null,{default:l(()=>[o(z,{data:e.competency_tags_config,border:""},{default:l(()=>[o(x,{label:"标签",prop:"competency_name",width:"200"}),o(x,{label:"权重",width:"150"},{default:l(({row:t})=>[R("div",re,[o(v,{modelValue:t.weight,"onUpdate:modelValue":C=>t.weight=C,min:0,max:100,step:1,precision:0,controls:!1,style:{width:"calc(100% - 20px)"}},null,8,["modelValue","onUpdate:modelValue"]),a[14]||(a[14]=R("span",{style:{"margin-left":"4px"}},"%",-1))])]),_:1}),o(x,{label:"级别",width:"100"},{default:l(({row:t})=>[o(v,{modelValue:t.importance,"onUpdate:modelValue":C=>t.importance=C,min:1,controls:!1},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:1})]),_:1})):q("",!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(()=>[(m(!0),y(b,null,V(B.value,t=>(m(),c(d,{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(()=>[(m(!0),y(b,null,V(j.value,t=>(m(),c(d,{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(()=>[(m(!0),y(b,null,V(O.value,t=>(m(),c(d,{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(d,{label:"停用",value:0}),o(d,{label:"启用",value:1})]),_:1},8,["modelValue"])]),_:1}),e.question_form===1||e.question_form===2?(m(),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(d,{label:"否",value:!1}),o(d,{label:"是",value:!0})]),_:1},8,["modelValue"])]),_:1})):q("",!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(d,{label:"否",value:!1}),o(d,{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,4].includes(e.question_form)?(m(),c(r,{key:3,label:"选项列表"},{default:l(()=>[o(ne,{modelValue:e.options,"onUpdate:modelValue":a[12]||(a[12]=t=>e.options=t),"question-form":e.question_form},null,8,["modelValue","question-form"])]),_:1})):q("",!0),o(r,{label:"评分标准"},{default:l(()=>[o(p,{modelValue:e.scoring_reference,"onUpdate:modelValue":a[13]||(a[13]=t=>e.scoring_reference=t),style:{width:"100%"},type:"textarea",rows:4,placeholder:"请输入评分标准说明"},null,8,["modelValue"])]),_:1}),o(r,null,{default:l(()=>[o(S,{type:"primary",onClick:Q},{default:l(()=>a[15]||(a[15]=[L("确定")])),_:1}),o(S,{onClick:A},{default:l(()=>a[16]||(a[16]=[L("取消")])),_:1})]),_:1})]),_:1},8,["model"])])}}}),de=le(ue,[["__scopeId","data-v-00b19add"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:de},Symbol.toStringTag,{value:"Module"}));export{Ce as A,Fe as B,we as C,xe as G,de as Q,ve as S,ke as U,ye as a,qe as b,be as c,je as d,Ue as e,Ge as f,Re as g,Se as h,Ve as i,he as j,se as k,Oe as l,Qe as m,Be as n,Le as o};