QuestionOptionsEditor.CfqO4x61.js 3.1 KB

1
  1. import{a as P,r as Q,w as g,t as y,aj as i,c as u,o as a,S as c,K as f,b as r,R as k,a9 as C,J as h,M as S,P as U}from"./vue.D1BjjNmv.js";import{_ as T}from"./_plugin-vue_export-helper.DlAUqK2U.js";const j={class:"question-options-editor"},A={key:0},I={key:1},J={style:{width:"80px","text-align":"center"}},K={class:"option-actions"},R=P({__name:"QuestionOptionsEditor",props:{modelValue:{},questionForm:{}},emits:["update:modelValue"],setup(b,{emit:w}){const m=b,F=w,e=Q([...m.modelValue]),q=(t,o)=>t.length!==o.length?!1:t.every((l,p)=>{const d=o[p];return l.option_text===d.option_text&&l.is_correct===d.is_correct&&l.score===d.score&&l.sort===d.sort});let x=!1,_=!1;g(()=>e.value,t=>{!x&&!_&&(_=!0,y(()=>{F("update:modelValue",[...t]),_=!1}))},{deep:!0}),g(()=>m.modelValue,t=>{!_&&!q(t,e.value)&&(x=!0,y(()=>{e.value=[...t],x=!1}))},{deep:!0});const O=t=>{if(m.questionForm===1){const o=e.value.map((l,p)=>({...l,is_correct:p===t}));e.value=o}},B=()=>{const t=e.value.length>0?Math.max(...e.value.map(l=>l.sort||0))+1:1,o=m.questionForm===4?{option_text:"",score:0,sort:t}:{option_text:"",is_correct:!1,sort:t};e.value=[...e.value,o]},E=()=>{e.value.length>2&&(e.value=e.value.slice(0,-1))};return(t,o)=>{const l=i("el-input"),p=i("el-input-number"),d=i("el-radio"),N=i("el-checkbox"),L=i("el-tooltip"),V=i("el-button"),M=i("el-card");return a(),u("div",j,[c(M,null,{default:f(()=>[t.questionForm===4?(a(),u("div",A,[o[0]||(o[0]=r("div",{class:"option-header"},[r("span",{style:{flex:"1"}},"选项内容"),r("span",{style:{width:"120px","text-align":"center"}},"分值")],-1)),(a(!0),u(k,null,C(e.value,(n,v)=>(a(),u("div",{key:v,class:"option-item"},[c(l,{modelValue:n.option_text,"onUpdate:modelValue":s=>n.option_text=s,placeholder:"请输入选项内容",style:{flex:"1","margin-right":"10px"}},null,8,["modelValue","onUpdate:modelValue"]),c(p,{modelValue:n.score,"onUpdate:modelValue":s=>n.score=s,min:0,max:10,style:{width:"120px"},placeholder:"分值"},null,8,["modelValue","onUpdate:modelValue"])]))),128))])):(a(),u("div",I,[o[1]||(o[1]=r("div",{class:"option-header"},[r("span",{style:{flex:"1"}},"选项内容"),r("span",{style:{width:"80px","text-align":"center"}},"是否正确")],-1)),(a(!0),u(k,null,C(e.value,(n,v)=>(a(),u("div",{key:v,class:"option-item"},[c(l,{modelValue:n.option_text,"onUpdate:modelValue":s=>n.option_text=s,placeholder:"请输入选项内容",style:{flex:"1","margin-right":"10px"}},null,8,["modelValue","onUpdate:modelValue"]),c(L,{content:"设置为正确答案",placement:"top",effect:"light"},{default:f(()=>[r("div",J,[t.questionForm===1?(a(),h(d,{key:0,"model-value":n.is_correct,label:!0,onChange:s=>O(v)},null,8,["model-value","onChange"])):(a(),h(N,{key:1,modelValue:n.is_correct,"onUpdate:modelValue":s=>n.is_correct=s},null,8,["modelValue","onUpdate:modelValue"]))])]),_:2},1024)]))),128))])),r("div",K,[c(V,{type:"primary",onClick:B},{default:f(()=>o[2]||(o[2]=[U(" 添加选项 ")])),_:1}),e.value.length>2?(a(),h(V,{key:0,type:"danger",onClick:E},{default:f(()=>o[3]||(o[3]=[U(" 删除最后一项 ")])),_:1})):S("",!0)])]),_:1})])}}}),D=T(R,[["__scopeId","data-v-7a038f07"]]);export{D as default};