import{E as V,S as C,ad as Y}from"./index.CbeQv9Ze.js";import{i as Z,a as $,b as ee,c as te,d as oe,U as le}from"./api.PQSIUq6k.js";import{a as se,r as y,w as G,_ as ne,q as ae,aj as m,J as f,o as d,K as u,b as l,c,M as T,S as a,P as g,a9 as x,R as _,G as ie,Q as N,u as re}from"./vue.D1BjjNmv.js";import{_ as de}from"./_plugin-vue_export-helper.DlAUqK2U.js";const ue={class:"question-form"},me={class:"form-item"},pe={class:"form-item"},ce={class:"form-item"},fe={class:"competency-config"},ge={class:"tag-name"},ve={class:"form-tip"},ye={class:"form-item"},xe={class:"form-item"},_e={key:0,class:"form-item"},be=["onClick"],Ve={style:{display:"flex","justify-content":"space-between","margin-top":"10px"}},we={class:"form-item"},qe={class:"form-item"},ke={class:"form-item"},Ce={class:"form-item"},Ue={class:"dialog-footer"},De=se({__name:"editor",props:{questionId:{type:[String,Number],default:""}},setup(R,{expose:S}){const b=R,v=y(!1);G(()=>v.value,s=>{s&&b.questionId&&U(b.questionId)});const U=async s=>{var e;if(s)try{const i=await Z({question_id:s});if((i==null?void 0:i.code)===2e3&&i.data){const n=i.data;t.content=n.question||"",t.type=n.question_form===1?"single":n.question_form===2?"multiple":"open",t.position=n.positions||[],t.category=n.category_id||"",t.tags=n.tags||[],t.competency_tags=n.competency_tags||[],t.options=n.options||[],t.question_form=n.question_form,t.suggestedDuration=n.duration||0,t.scoring_reference=n.scoring_reference||"",w.value=((e=n.competency_tags)==null?void 0:e.map(r=>r.id))||[]}else V.warning("未找到问题详情数据")}catch(i){console.error("获取问题详情失败:",i),V.error(i.message||"获取问题详情失败")}};G(()=>b.questionId,s=>{console.log(s),U(s)},{immediate:!0}),ae(async()=>{try{const s=await $({page:1,limit:300});console.log(s),s&&s.code===2e3&&s.data&&(D.value=s.data.items.map(r=>({id:r.id,name:r.name,weight:0})));const e=await ee({page:1,limit:50,tenant_id:C.get("tenant_id")});e&&e.code===2e3&&e.data&&(h.value=e.data.map(r=>({value:r.id,label:r.title})));const i=await te({page:1,limit:50,tenant_id:C.get("tenant_id")});i&&i.code===2e3&&i.data.items&&(E.value=i.data.items.map(r=>({value:r.id,label:r.name})));const n=await oe({page:1,limit:50,tenant_id:C.get("tenant_id")});n&&n.code===2e3&&n.data.items&&(O.value=n.data.items.map(r=>({value:r.id,label:r.name})))}catch(s){console.error("加载选项数据失败:",s),V.error("加载选项数据失败")}});const t=ne({content:"",type:"open",position:[],category:"",tags:[],competency_tags:[],options:[],question_form:0,suggestedDuration:0,scoring_reference:""}),w=y([]),D=y([]),h=y([]),E=y([]),O=y([]),I=()=>t.competency_tags.reduce((s,e)=>s+(e.weight||0),0),j=(s,e)=>{},B=s=>{t.question_form=s==="single"?1:s==="multiple"?2:0,s==="single"||s==="multiple"?(!t.options||t.options.length===0)&&(t.options=[{text:"",is_correct:!1,sort:1},{text:"",is_correct:!1,sort:2}]):t.options=[]},M=s=>{t.question_form===1&&t.options.forEach((e,i)=>{e.is_correct=i===s})},F=()=>{const s=t.options.length>0?Math.max(...t.options.map(e=>e.sort||0))+1:1;t.options.push({text:"",is_correct:!1,sort:s})},z=()=>{t.options&&t.options.length>2&&t.options.pop()},L=()=>{t.content="",t.type="open",t.position=[],t.category="",t.tags=[],t.competency_tags=[],t.options=[],t.suggestedDuration=0,t.scoring_reference="",w.value=[]},A=()=>{L(),v.value=!1},P=async()=>{try{const s={id:b.questionId,question:t.content,question_form:t.question_form,positions:t.position,category_id:t.category,tags:t.tags,competency_tags:t.competency_tags,options:t.options,duration:t.suggestedDuration,scoring_reference:t.scoring_reference};try{const e=await le(s);if(e&&e.code===2e3)V.success(b.questionId?"编辑成功":"添加成功"),v.value=!1,window.dispatchEvent(new CustomEvent("refreshQuestionList"));else throw new Error(e.msg||"保存失败")}catch(e){throw new Error(e.message||"保存失败")}}catch(s){console.error("保存问题失败:",s),V.error(s.message||"保存失败")}};return S({showQuestionDialog:v}),(s,e)=>{const i=m("el-input"),n=m("el-option"),r=m("el-select"),Q=m("el-input-number"),W=m("el-icon"),J=m("el-radio"),K=m("el-checkbox"),H=m("el-tooltip"),q=m("el-button"),X=m("el-dialog");return d(),f(X,{title:"编辑问题",modelValue:v.value,"onUpdate:modelValue":e[8]||(e[8]=o=>v.value=o),width:"500px","close-on-click-modal":!1,class:"question-dialog",onClose:L},{footer:u(()=>[l("span",Ue,[a(q,{onClick:A},{default:u(()=>e[35]||(e[35]=[g("取消")])),_:1}),a(q,{type:"primary",onClick:P},{default:u(()=>e[36]||(e[36]=[g("确认")])),_:1})])]),default:u(()=>[l("div",ue,[l("div",me,[e[9]||(e[9]=l("div",{class:"form-label"},[g(" 题目内容"),l("span",{class:"required"},"*")],-1)),a(i,{modelValue:t.content,"onUpdate:modelValue":e[0]||(e[0]=o=>t.content=o),type:"textarea",rows:"4",placeholder:"请描述一次你如何在紧迫的时间内完成一个复杂的后端开发任务的经历",maxlength:"300","show-word-limit":""},null,8,["modelValue"])]),l("div",pe,[e[10]||(e[10]=l("div",{class:"form-label"},"胜任力标签",-1)),a(r,{modelValue:w.value,"onUpdate:modelValue":e[1]||(e[1]=o=>w.value=o),placeholder:"请选择胜任力标签",class:"full-width",multiple:""},{default:u(()=>[(d(!0),c(_,null,x(D.value,o=>(d(),f(n,{key:o.id,label:o.name,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[11]||(e[11]=l("div",{class:"form-tip"},"选择胜任力标签和胜任力标签,可多选",-1))]),l("div",ce,[e[17]||(e[17]=l("div",{class:"form-label"}," 胜任力配置 ",-1)),l("div",fe,[e[13]||(e[13]=l("div",{class:"config-row"},[l("span",{class:"config-label"},"标签"),l("span",{class:"config-label"},"权重")],-1)),(d(!0),c(_,null,x(t.competency_tags,(o,k)=>(d(),c("div",{class:"config-row",key:o.id},[l("span",ge,N(o.name),1),a(Q,{modelValue:o.weight,"onUpdate:modelValue":p=>o.weight=p,min:0,max:100,step:1,"controls-position":"right",onChange:p=>j(k,p)},null,8,["modelValue","onUpdate:modelValue","onChange"]),e[12]||(e[12]=g(" % "))]))),128))]),l("div",ve,[e[14]||(e[14]=g(" 配置各个胜任力标签的权重,总和需要100% ")),l("span",{class:ie(["weight-sum",{"weight-error":I()!==100}])}," (当前总计: "+N(I())+"%) ",3),e[15]||(e[15]=l("br",null,null,-1)),a(W,{style:{color:"#409eff","margin-right":"4px","margin-top":"4px"}},{default:u(()=>[a(re(Y))]),_:1}),e[16]||(e[16]=l("span",{style:{color:"#909399","font-size":"11px"}},' 修改任意权重时,其他权重会自动按比例调整以保持总和为100%。点击"平均分配"可快速平均分配所有权重。 ',-1))])]),l("div",ye,[e[18]||(e[18]=l("div",{class:"form-label"},"题目形式",-1)),a(r,{modelValue:t.type,"onUpdate:modelValue":e[2]||(e[2]=o=>t.type=o),placeholder:"开放问题",class:"full-width",onChange:B},{default:u(()=>[a(n,{label:"开放问题",value:"open"}),a(n,{label:"单选题",value:"single"}),a(n,{label:"多选题",value:"multiple"}),a(n,{label:"填空题",value:"fill"}),a(n,{label:"自言语",value:"self"})]),_:1},8,["modelValue"]),e[19]||(e[19]=l("div",{class:"form-tip"},"选择题目的形式:开放问题、单选题、多选题、填空题、自言语",-1))]),l("div",xe,[e[20]||(e[20]=l("div",{class:"form-label"},"适用职位",-1)),a(r,{modelValue:t.position,"onUpdate:modelValue":e[3]||(e[3]=o=>t.position=o),placeholder:"请选择适用职位类型",class:"full-width",multiple:""},{default:u(()=>[(d(!0),c(_,null,x(h.value,o=>(d(),f(n,{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[21]||(e[21]=l("div",{class:"form-tip"},"选择题目适用的职位类型,可多选",-1))]),t.question_form===1||t.question_form===2?(d(),c("div",_e,[e[25]||(e[25]=l("div",{class:"form-label"},"选项",-1)),l("div",null,[e[24]||(e[24]=l("div",{class:"option-header",style:{display:"flex","margin-bottom":"10px","font-weight":"bold"}},[l("span",{style:{flex:"1"}},"选项内容"),l("span",{style:{width:"80px","text-align":"center"}},"是否正确")],-1)),(d(!0),c(_,null,x(t.options,(o,k)=>(d(),c("div",{key:k,class:"option-item",style:{display:"flex","align-items":"center","margin-bottom":"10px"}},[a(i,{modelValue:o.option_text,"onUpdate:modelValue":p=>o.option_text=p,placeholder:"请输入选项内容",style:{flex:"1","margin-right":"10px"}},null,8,["modelValue","onUpdate:modelValue"]),a(H,{content:"设置为正确答案",placement:"top",effect:"light"},{default:u(()=>[l("div",{onClick:()=>M(k),style:{cursor:"pointer",width:"80px","text-align":"center"}},[t.question_form===1?(d(),f(J,{key:0,modelValue:o.is_correct,"onUpdate:modelValue":p=>o.is_correct=p,label:!0},null,8,["modelValue","onUpdate:modelValue"])):(d(),f(K,{key:1,modelValue:o.is_correct,"onUpdate:modelValue":p=>o.is_correct=p},null,8,["modelValue","onUpdate:modelValue"]))],8,be)]),_:2},1024)]))),128)),l("div",Ve,[a(q,{type:"primary",onClick:F},{default:u(()=>e[22]||(e[22]=[g(" 添加选项 ")])),_:1}),t.options&&t.options.length>2?(d(),f(q,{key:0,type:"danger",onClick:z},{default:u(()=>e[23]||(e[23]=[g(" 删除最后一项 ")])),_:1})):T("",!0)])]),e[26]||(e[26]=l("div",{class:"form-tip"},"添加选项并设置正确答案,单选题只能有一个正确答案,多选题可以有多个正确答案",-1))])):T("",!0),l("div",we,[e[27]||(e[27]=l("div",{class:"form-label"},"分类",-1)),a(r,{modelValue:t.category,"onUpdate:modelValue":e[4]||(e[4]=o=>t.category=o),placeholder:"请选择题目分类",class:"full-width"},{default:u(()=>[(d(!0),c(_,null,x(E.value,o=>(d(),f(n,{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[28]||(e[28]=l("div",{class:"form-tip"},"选择题目所属分类",-1))]),l("div",qe,[e[29]||(e[29]=l("div",{class:"form-label"},"标签",-1)),a(r,{modelValue:t.tags,"onUpdate:modelValue":e[5]||(e[5]=o=>t.tags=o),placeholder:"请选择标签",class:"full-width",multiple:""},{default:u(()=>[(d(!0),c(_,null,x(O.value,o=>(d(),f(n,{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[30]||(e[30]=l("div",{class:"form-tip"},"选择题目相关标签,可多选",-1))]),l("div",ke,[e[31]||(e[31]=l("div",{class:"form-label"},"建议时长(秒)",-1)),a(Q,{modelValue:t.suggestedDuration,"onUpdate:modelValue":e[6]||(e[6]=o=>t.suggestedDuration=o),min:0,step:1,"controls-position":"right",placeholder:"请输入建议回答时长",class:"full-width"},null,8,["modelValue"]),e[32]||(e[32]=l("div",{class:"form-tip"},"建议回答题目的时长,单位为秒",-1))]),l("div",Ce,[e[33]||(e[33]=l("div",{class:"form-label"},"评价标准",-1)),a(i,{modelValue:t.scoring_reference,"onUpdate:modelValue":e[7]||(e[7]=o=>t.scoring_reference=o),type:"textarea",rows:"4",placeholder:"评分标准说明,例如:【团队协作能力】1.优秀:xxxxxx。2.xxxx。3.一般:xxxxx。",class:"full-width"},null,8,["modelValue"]),e[34]||(e[34]=l("div",{class:"form-tip"},"评分标准说明,例如:【团队协作能力】1.优秀:xxxxxx。2.xxxx。3.一般:xxxxx。",-1))])])]),_:1},8,["modelValue"])}}}),Le=de(De,[["__scopeId","data-v-a292ea03"]]);export{Le as default};