QuestionBankForm.BqAesEUq.js 13 KB

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