@qxs-bns/components 0.0.34 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var r="0.0.34";export{r as version};
1
+ var r="0.0.36";export{r as version};
2
2
  //# sourceMappingURL=package.json.mjs.map
@@ -1,2 +1,2 @@
1
- import{ElPopover as e,ElLink as l,ElCheckbox as a,ElButton as t,ElIcon as n,ElDialog as o,ElRadioGroup as i,ElRadio as u}from"element-plus/es";import{defineComponent as s,ref as d,computed as c,createElementBlock as r,openBlock as m,normalizeClass as p,unref as f,createElementVNode as y,createCommentVNode as v,createVNode as b,createBlock as k,withCtx as _,createTextVNode as g,isRef as h,Fragment as w,renderList as x,toDisplayString as V}from"vue";import{Edit as C,Delete as j,Top as E,Bottom as O}from"@element-plus/icons-vue";import{useNamespace as S}from"@qxs-bns/hooks";import U from"../../subject-type/src/subject-type.vue.mjs";const T={key:0,class:"flex-justify-between"},A={key:0,class:"has-set"},B={key:1,class:"flex flex-justify-end action-buttons"},K=!0;var R=s({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:{type:Boolean},isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(s,{emit:R}){const z=s,D=d(z.isKey),N=d(!1),q=R,Q=d(z.answerCheckType),F=S("subject-action"),G=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],H=c((()=>G.find((e=>e.value===Q.value))?.label));function I(){N.value=!1,q("setAnswerSetting",Q.value)}function J(e,l){q("add",e,l?z.examAnswerRelationType:null)}return(d,c)=>{const S=l,R=e,z=a,L=n,M=t,P=u,W=i,X=o;return m(),r("div",{class:p(f(F).e("action-exam"))},[y("div",{class:p(["action flex flex-justify-between",[{active:s.isEdit}]])},[s.isEdit?(m(),r("div",T,[b(R,{trigger:"click"},{reference:_((()=>[b(S,{type:"primary",class:"btn-margin"},{default:_((()=>c[15]||(c[15]=[g(" +在此题后加入新题 ")]))),_:1})])),default:_((()=>[b(U,{onSelect:J})])),_:1}),s.showOtherOption?(m(),k(S,{key:0,type:"primary",onClick:c[0]||(c[0]=e=>q("onShowRichText")),class:"btn-margin"},{default:_((()=>c[16]||(c[16]=[g(" +添加题目描述(图文) ")]))),_:1})):v("v-if",!0),s.showOtherOption?(m(),k(S,{key:1,type:"primary",onClick:c[1]||(c[1]=e=>N.value=!0),class:"btn-margin"},{default:_((()=>c[17]||(c[17]=[g(" 答题设置 ")]))),_:1})):v("v-if",!0),s.showOtherOption?(m(),k(z,{key:2,modelValue:f(D),"onUpdate:modelValue":c[2]||(c[2]=e=>h(D)?D.value=e:null),label:"核心题",onChange:c[3]||(c[3]=e=>q("setKey",f(D)))},null,8,["modelValue"])):v("v-if",!0)])):v("v-if",!0),y("div",null,[s.isSet?(m(),r("div",A," *此题设置了跳题逻辑 ")):(m(),r("div",B,[s.isEdit?(m(),r(w,{key:1},[b(M,{class:"btn-margin",onClick:c[10]||(c[10]=e=>q("delete"))},{default:_((()=>c[22]||(c[22]=[g(" 删除 ")]))),_:1}),b(M,{type:"primary",onClick:c[11]||(c[11]=e=>q("save"))},{default:_((()=>c[23]||(c[23]=[g(" 完成编辑 ")]))),_:1})],64)):(m(),r(w,{key:0},[s.pageEnd?v("v-if",!0):(m(),k(z,{key:0,modelValue:f(D),"onUpdate:modelValue":c[4]||(c[4]=e=>h(D)?D.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"])),s.pageEnd?v("v-if",!0):(m(),k(z,{key:1,modelValue:K,"onUpdate:modelValue":c[5]||(c[5]=e=>K=e),label:f(H),disabled:"",class:"checkbox-margin"},null,8,["label"])),s.pageEnd?v("v-if",!0):(m(),k(M,{key:2,class:"btn-margin",onClick:c[6]||(c[6]=e=>q("edit"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(f(C))])),_:1})])),default:_((()=>[c[18]||(c[18]=g(" 编辑 "))])),_:1})),b(M,{class:"btn-margin",onClick:c[7]||(c[7]=e=>q("delete"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(f(j))])),_:1})])),default:_((()=>[c[19]||(c[19]=g(" 删除 "))])),_:1}),b(M,{class:"btn-margin",onClick:c[8]||(c[8]=e=>q("moveUp"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(f(E))])),_:1})])),default:_((()=>[c[20]||(c[20]=g(" 上移 "))])),_:1}),b(M,{class:"btn-margin",onClick:c[9]||(c[9]=e=>q("moveDown"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(f(O))])),_:1})])),default:_((()=>[c[21]||(c[21]=g(" 下移 "))])),_:1})],64))]))]),b(X,{modelValue:f(N),"onUpdate:modelValue":c[14]||(c[14]=e=>h(N)?N.value=e:null),title:"答题设置",class:"customize-dialog"},{footer:_((()=>[b(M,{class:"customize-button",type:"primary",plain:"",onClick:c[13]||(c[13]=e=>N.value=!1)},{default:_((()=>c[24]||(c[24]=[g(" 取消 ")]))),_:1}),b(M,{class:"customize-button",type:"primary",plain:"",onClick:I},{default:_((()=>c[25]||(c[25]=[g(" 保存 ")]))),_:1})])),default:_((()=>[b(W,{modelValue:f(Q),"onUpdate:modelValue":c[12]||(c[12]=e=>h(Q)?Q.value=e:null),class:"vertical-radio-group"},{default:_((()=>[(m(),r(w,null,x(G,(e=>b(P,{key:e.value,value:e.value},{default:_((()=>[g(V(e.label),1)])),_:2},1032,["value"]))),64))])),_:1},8,["modelValue"])])),_:1},8,["modelValue"])],2)],2)}}});export{R as default};
1
+ import{ElPopover as e,ElLink as l,ElCheckbox as a,ElButton as t,ElIcon as n,ElDialog as o,ElRadioGroup as u,ElRadio as i}from"element-plus/es";import{defineComponent as s,ref as d,computed as c,createElementBlock as r,openBlock as m,normalizeClass as f,unref as p,createElementVNode as v,createCommentVNode as y,createVNode as b,createBlock as k,withCtx as _,createTextVNode as g,isRef as h,Fragment as w,renderList as x,toDisplayString as C}from"vue";import{Edit as V,Delete as j,Top as E,Bottom as O}from"@element-plus/icons-vue";import{useNamespace as B}from"@qxs-bns/hooks";import S from"../../subject-type/src/subject-type.vue.mjs";const T={key:0,class:"flex-justify-between"},U={key:0,class:"has-set"},z={key:1,class:"flex flex-justify-end action-buttons"};var A=s({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:Boolean,isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["move-up","move-down","delete","save","edit","add","on-show-rich-text","set-key","set-answer-setting"],setup(s,{emit:A}){const K=s,N=d(K.isKey),R=d(!1),q=A,Q=d(K.answerCheckType),D=B("subject-action"),F=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],G=c((()=>F.find((e=>e.value===Q.value))?.label));function H(){R.value=!1,q("set-answer-setting",Q.value)}function I(){q("set-key",N.value)}function J(e,l){q("add",e,l?K.examAnswerRelationType:null)}return(d,c)=>{const B=l,A=e,K=a,L=n,M=t,P=i,W=u,X=o;return m(),r("div",{class:f(p(D).e("action-exam"))},[v("div",{class:f(["action flex flex-justify-between",[{active:s.isEdit}]])},[s.isEdit?(m(),r("div",T,[b(A,{trigger:"click"},{reference:_((()=>[b(B,{type:"primary",class:"btn-margin"},{default:_((()=>c[14]||(c[14]=[g(" +在此题后加入新题 ")]))),_:1})])),default:_((()=>[b(S,{onSelect:J})])),_:1}),s.showOtherOption?(m(),k(B,{key:0,type:"primary",onClick:c[0]||(c[0]=e=>q("on-show-rich-text")),class:"btn-margin"},{default:_((()=>c[15]||(c[15]=[g(" +添加题目描述(图文) ")]))),_:1})):y("v-if",!0),s.showOtherOption?(m(),k(B,{key:1,type:"primary",onClick:c[1]||(c[1]=e=>R.value=!0),class:"btn-margin"},{default:_((()=>c[16]||(c[16]=[g(" 答题设置 ")]))),_:1})):y("v-if",!0),s.showOtherOption?(m(),k(K,{key:2,modelValue:p(N),"onUpdate:modelValue":c[2]||(c[2]=e=>h(N)?N.value=e:null),label:"核心题",onChange:I},null,8,["modelValue"])):y("v-if",!0)])):y("v-if",!0),v("div",null,[s.isSet?(m(),r("div",U," *此题设置了跳题逻辑 ")):(m(),r("div",z,[s.isEdit?(m(),r(w,{key:1},[b(M,{class:"btn-margin",onClick:c[8]||(c[8]=e=>q("delete"))},{default:_((()=>c[21]||(c[21]=[g(" 删除 ")]))),_:1}),b(M,{type:"primary",onClick:c[9]||(c[9]=e=>q("save"))},{default:_((()=>c[22]||(c[22]=[g(" 完成编辑 ")]))),_:1})],64)):(m(),r(w,{key:0},[s.pageEnd?y("v-if",!0):(m(),k(K,{key:0,modelValue:p(N),"onUpdate:modelValue":c[3]||(c[3]=e=>h(N)?N.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"])),s.pageEnd?y("v-if",!0):(m(),k(K,{key:1,"v-model":!0,label:p(G),disabled:"",class:"checkbox-margin"},null,8,["label"])),s.pageEnd?y("v-if",!0):(m(),k(M,{key:2,class:"btn-margin",onClick:c[4]||(c[4]=e=>q("edit"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(p(V))])),_:1})])),default:_((()=>[c[17]||(c[17]=g(" 编辑 "))])),_:1})),b(M,{class:"btn-margin",onClick:c[5]||(c[5]=e=>q("delete"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(p(j))])),_:1})])),default:_((()=>[c[18]||(c[18]=g(" 删除 "))])),_:1}),b(M,{class:"btn-margin",onClick:c[6]||(c[6]=e=>q("move-up"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(p(E))])),_:1})])),default:_((()=>[c[19]||(c[19]=g(" 上移 "))])),_:1}),b(M,{class:"btn-margin",onClick:c[7]||(c[7]=e=>q("move-down"))},{icon:_((()=>[b(L,null,{default:_((()=>[b(p(O))])),_:1})])),default:_((()=>[c[20]||(c[20]=g(" 下移 "))])),_:1})],64))]))]),b(X,{modelValue:p(R),"onUpdate:modelValue":c[12]||(c[12]=e=>h(R)?R.value=e:null),title:"答题设置",class:"customize-dialog",onClose:c[13]||(c[13]=e=>R.value=!1)},{footer:_((()=>[b(M,{class:"customize-button",type:"primary",plain:"",onClick:c[11]||(c[11]=e=>R.value=!1)},{default:_((()=>c[23]||(c[23]=[g(" 取消 ")]))),_:1}),b(M,{class:"customize-button",type:"primary",plain:"",onClick:H},{default:_((()=>c[24]||(c[24]=[g(" 保存 ")]))),_:1})])),default:_((()=>[b(W,{modelValue:p(Q),"onUpdate:modelValue":c[10]||(c[10]=e=>h(Q)?Q.value=e:null),class:"vertical-radio-group"},{default:_((()=>[(m(),r(w,null,x(F,(e=>b(P,{key:e.value,value:e.value},{default:_((()=>[g(C(e.label),1)])),_:2},1032,["value"]))),64))])),_:1},8,["modelValue"])])),_:1},8,["modelValue"])],2)],2)}}});export{A as default};
2
2
  //# sourceMappingURL=subject-action.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-action.vue.mjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n },\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null\n },\n pageEnd: {\n type: Boolean,\n default: false\n }\n})\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits(['moveUp', 'moveDown', 'delete', 'save', 'edit', 'add', 'onShowRichText', 'setKey', 'setAnswerSetting'])\nconst answerType = ref(props.answerCheckType)\nconst answerCheck = true\nconst ns = useNamespace('subject-action')\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步'\n },\n {\n value: 1,\n label: '无需判断是否是支持选项'\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步'\n }\n]\nconst answerText = computed(() => {\n return answerTextList.find(item => item.value === answerType.value)?.label\n})\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType.value)\n}\n\nfunction selectExam(type:string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n</script>\n\n<template>\n<div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <div v-if=\"isEdit\" class=\"flex-justify-between\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\" class=\"btn-margin\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link\n type=\"primary\"\n @click=\"emits('onShowRichText')\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n +添加题目描述(图文)\n </el-link>\n <el-link\n type=\"primary\"\n @click=\"showAnswerSetting = true\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n 答题设置\n </el-link>\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"emits('setKey', isKey)\"\n v-if=\"showOtherOption\"\n />\n </div>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end action-buttons\">\n <template v-if=\"!isEdit\">\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n v-if=\"!pageEnd\"\n />\n <el-checkbox\n v-model=\"answerCheck\"\n :label=\"answerText\"\n disabled\n v-if=\"!pageEnd\"\n class=\"checkbox-margin\"\n />\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n >\n <el-radio-group\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <el-radio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n"],"names":["answerCheck","props","__props","isKey","ref","showAnswerSetting","emits","__emit","answerType","answerCheckType","ns","useNamespace","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","selectExam","type","canSet","examAnswerRelationType"],"mappings":"2vBAyCMA,GAAc,ubAjCpB,MAAMC,EAAQC,EA6BRC,EAAQC,EAAIH,EAAME,OAClBE,EAAoBD,GAAI,GACxBE,EAAQC,EACRC,EAAaJ,EAAIH,EAAMQ,iBAEvBC,EAAKC,EAAa,kBAClBC,EAAiB,CACrB,CACEC,MAAO,EACPC,MAAO,oBAET,CACED,MAAO,EACPC,MAAO,eAET,CACED,MAAO,EACPC,MAAO,mBAGLC,EAAaC,GAAS,IACnBJ,EAAeK,MAAKC,GAAQA,EAAKL,QAAUL,EAAWK,SAAQC,QAEvE,SAASK,IACPd,EAAkBQ,OAAQ,EACpBP,EAAA,mBAAoBE,EAAWK,MAAK,CAGnC,SAAAO,EAAWC,EAAaC,GAChChB,EAAM,MAAOe,EAAMC,EAAQrB,EAAMsB,uBAAwB,KAAI"}
1
+ {"version":3,"file":"subject-action.vue.mjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\n\nconst props = defineProps({\n isEdit: Boolean,\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1,\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits([\n 'move-up',\n 'move-down',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'on-show-rich-text',\n 'set-key',\n 'set-answer-setting',\n])\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\n\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步',\n },\n {\n value: 1,\n label: '无需判断是否是支持选项',\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步',\n },\n]\n\nconst answerText = computed(() => {\n return answerTextList.find((item) => item.value === answerType.value)?.label\n})\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('set-answer-setting', answerType.value)\n}\n\nfunction setKey() {\n emits('set-key', isKey.value)\n}\n\nfunction selectExam(type: string, canSet: boolean) {\n emits('add', type, canSet ? props.examAnswerRelationType : null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <div v-if=\"isEdit\" class=\"flex-justify-between\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\" class=\"btn-margin\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link\n type=\"primary\"\n @click=\"emits('on-show-rich-text')\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n +添加题目描述(图文)\n </el-link>\n <el-link\n type=\"primary\"\n @click=\"showAnswerSetting = true\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n 答题设置\n </el-link>\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n v-if=\"showOtherOption\"\n />\n </div>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end action-buttons\">\n <template v-if=\"!isEdit\">\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n v-if=\"!pageEnd\"\n />\n <el-checkbox\n :v-model=\"true\"\n :label=\"answerText\"\n disabled\n v-if=\"!pageEnd\"\n class=\"checkbox-margin\"\n />\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('move-up')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('move-down')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n @close=\"showAnswerSetting = false\"\n >\n <el-radio-group\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <el-radio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>"],"names":["props","__props","isKey","ref","showAnswerSetting","emits","__emit","answerType","answerCheckType","ns","useNamespace","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","selectExam","type","canSet","examAnswerRelationType"],"mappings":"irCASA,MAAMA,EAAQC,EA4BRC,EAAQC,EAAIH,EAAME,OAClBE,EAAoBD,GAAI,GACxBE,EAAQC,EAWRC,EAAaJ,EAAIH,EAAMQ,iBACvBC,EAAKC,EAAa,kBAElBC,EAAiB,CACrB,CACEC,MAAO,EACPC,MAAO,oBAET,CACED,MAAO,EACPC,MAAO,eAET,CACED,MAAO,EACPC,MAAO,mBAILC,EAAaC,GAAS,IACnBJ,EAAeK,MAAMC,GAASA,EAAKL,QAAUL,EAAWK,SAAQC,QAGzE,SAASK,IACPd,EAAkBQ,OAAQ,EACpBP,EAAA,qBAAsBE,EAAWK,MAAK,CAG9C,SAASO,IACDd,EAAA,UAAWH,EAAMU,MAAK,CAGrB,SAAAQ,EAAWC,EAAcC,GAChCjB,EAAM,MAAOgB,EAAMC,EAAStB,EAAMuB,uBAAyB,KAAI"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,ref as t,useAttrs as s,watch as n,createElementBlock as i,openBlock as a,normalizeClass as o,unref as l,createElementVNode as r,Fragment as d,renderList as c,createBlock as m,createCommentVNode as x,mergeProps as u}from"vue";import p from"./components/subject-blank-fill.vue.mjs";import w from"./components/subject-scale.vue.mjs";import v from"./components/subject-single.vue.mjs";import y from"./components/subject-text-fill.vue.mjs";import h from"./components/SubjectRichText.vue.mjs";import T from"./components/SubjectPageEnd.vue.mjs";import{useNamespace as A}from"@qxs-bns/hooks";import{setGuid as R}from"@qxs-bns/utils";import{ElMessage as f}from"element-plus/es";const E={class:"subject-list-wrapper"};var S=e({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(e,{expose:S,emit:C}){const g=e,D=t([]),j=C,b=s();function _(){let e=0,t=!1;return D.value.map(((s,n,i)=>{"page_end"===s.answerType&&(e++,t=n===i.length-1)})),t?e:e+1}function k(e,t,s){console.log(t,"index"),t||0===t?D.value.splice(t+1,0,{customId:R(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:s}):D.value.push({customId:R(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:s})}function I(e,t){if("up"===t&&e>0){const[t]=D.value.splice(e,1);D.value.splice(e-1,0,t)}else if("down"===t&&e<D.value.length-1){const[t]=D.value.splice(e,1);D.value.splice(e+1,0,t)}}function M(e,t){for(let s=0;s<D.value.length;s++)e===s&&(D.value[e]={...D.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType})}function L(e){D.value.splice(e,1),f.success("删除成功")}function P(e,t){j("setRelation",e,t)}S({addSubject:k,currentList:D,uploadExcel:function(e){D.value=D.value.concat(e)},addExam:function(e){const t=[];e.answers?.map((e=>{t.push({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})})),D.value.push({...e,customId:R(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:t,isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1})},setAnswerRelation:function(e,t,s){e.length&&D.value?.map((n=>{n.customId===t&&n.answers?.map((t=>{t.customAnswerId===s&&(t.answerRelations=e)}))}))}}),n((()=>g.subjectList),(e=>{e&&(D.value=[...e])}),{immediate:!0});const q=A("subject-list");return(e,t)=>(a(),i("div",{class:o(l(q).e("list-exam"))},[r("div",E,[(a(!0),i(d,null,c(l(D),((t,s)=>(a(),i("div",{key:s+t.examId||t.title},[["single","multiple","sort"].includes(t.answerType)?(a(),m(v,u({key:0,ref_for:!0},l(b),{"order-index":s,title:t.title,type:t.answerType,"exam-id":t.examId,isKey:t.isKey,"is-save":!t.isRealCanDel,customId:t.customId,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"least-answer-count":t.leastAnswerCount,"is-edit":t.isEdit||!1,"show-action":!e.isPreview,"exam-expand":t.examExpand,answerCheckType:t.answerCheckType,"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onSetRelation:P,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:(e,t)=>k(e,s,t)}),null,16,["order-index","title","type","exam-id","isKey","is-save","customId","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answerCheckType","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===t.answerType?(a(),m(w,u({key:1,ref_for:!0},l(b),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"is-edit":t.isEdit||!1,"scale-question-list":t.scaleQuestionList,"show-action":!e.isPreview,"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===t.answerType?(a(),m(p,u({key:2,ref_for:!0},l(b),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"show-action":!e.isPreview,"is-edit":t.isEdit||!1,"exam-answer-setting-v-o":t.examAnswerSettingVO||{},"exam-rich-text-content":t.examRichTextContent,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===t.answerType?(a(),m(y,u({key:3,ref_for:!0},l(b),{"order-index":s,title:t.title,"is-save":!t.isRealCanDel,"is-set":t.hasSet||!1,"answer-list":t.answers,analysis:t.analysis,"show-action":!e.isPreview,"is-edit":t.isEdit||!1,"exam-expand":t.examExpand,"exam-answer-setting-v-o":t.examAnswerSettingVO||{},examAnswerRelationType:t.examAnswerRelationType,"exam-rich-text-content":t.examRichTextContent,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","examAnswerRelationType","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===t.answerType?(a(),m(h,u({key:4,ref_for:!0},l(b),{"order-index":s,richTextContent:t.richTextContent,"is-set":t.hasSet||!1,"is-save":!t.isRealCanDel,"is-edit":t.isEdit||!1,"show-action":!e.isPreview,onMove:e=>I(s,e),onDelete:e=>L(s),examAnswerRelationType:t.examAnswerRelationType,onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)}),null,16,["order-index","richTextContent","is-set","is-save","is-edit","show-action","onMove","onDelete","examAnswerRelationType","onSave","onEdit","onAdd"])):"page_end"===t.answerType?(a(),m(T,{"total-page":_(),key:s,"current-page-index":(e=>{const t=D.value.filter((e=>"page_end"===e.answerType));let s=0;return t?.forEach(((t,n)=>{e===t.id&&(s=n+1)})),s})(t.id),item:t,"order-index":s,"is-edit":t.isEdit||!1,"is-set":t.hasSet||!1,"is-save":!t.isRealCanDel,examAnswerRelationType:t.examAnswerRelationType,onMove:e=>I(s,e),onDelete:e=>L(s),onSave:e=>M(s,e),onEdit:e=>t.isEdit=!0,onAdd:e=>k(e,s,null)},null,8,["total-page","current-page-index","item","order-index","is-edit","is-set","is-save","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):x("v-if",!0)])))),128))])],2))}});export{S as default};
1
+ import{defineComponent as e,ref as s,useAttrs as t,watch as n,createElementBlock as i,openBlock as a,normalizeClass as o,unref as l,createElementVNode as r,Fragment as d,renderList as c,createBlock as m,createCommentVNode as u,mergeProps as x}from"vue";import p from"./components/subject-blank-fill.vue.mjs";import w from"./components/subject-scale.vue.mjs";import v from"./components/subject-single.vue.mjs";import y from"./components/subject-text-fill.vue.mjs";import h from"./components/SubjectRichText.vue.mjs";import T from"./components/SubjectPageEnd.vue.mjs";import{useNamespace as f}from"@qxs-bns/hooks";import{setGuid as A}from"@qxs-bns/utils";import{ElMessage as R}from"element-plus/es";const E={class:"subject-list-wrapper"};var S=e({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(e,{expose:S,emit:C}){const g=e,D=s([]),j=C,b=t();function I(e){return D.value.filter((e=>"page_end"===e.answerType)).findIndex((s=>s.customId===e))+1}function _(){D.value.push({customId:A(),answerType:"page_end",analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:0})}function k(e,s=null,t=null){const n={customId:A(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:t};null!==s?D.value.splice(s+1,0,n):D.value.push(n)}function M(e,s){if("up"===s&&e>0){const[s]=D.value.splice(e,1);D.value.splice(e-1,0,s)}else if("down"===s&&e<D.value.length-1){const[s]=D.value.splice(e,1);D.value.splice(e+1,0,s)}}function L(e,s){D.value[e]={...D.value[e],...s,isEdit:!1,examAnswerRelationType:s.examAnswerRelationType}}function P(e){D.value.splice(e,1),R.success("删除成功")}function q(e,s){j("setRelation",e,s)}S({addSubject:k,currentList:D,uploadExcel:function(e){D.value=D.value.concat(e)},addExam:function(e){const s=e.answers?.map((e=>({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})))||[];D.value.push({...e,customId:A(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:s,isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1}),e.pageIndex-I(e.customId)==1&&_();I(e.customId)>1&&_()},setAnswerRelation:function(e,s,t){if(e.length){const n=D.value.find((e=>e.customId===s));if(n){const s=n.answers?.find((e=>e.customAnswerId===t));s&&(s.answerRelations=e)}}}}),n((()=>g.subjectList),(e=>{e&&(D.value=[...e])}),{immediate:!0});const Q=f("subject-list");return(e,s)=>(a(),i("div",{class:o(l(Q).e("list-exam"))},[r("div",E,[(a(!0),i(d,null,c(l(D),((s,t)=>(a(),i("div",{key:s.customId,class:"subject-item"},[["single","multiple","sort"].includes(s.answerType)?(a(),m(v,x({key:0,ref_for:!0},l(b),{"order-index":t,title:s.title,type:s.answerType,"exam-id":s.examId,isKey:s.isKey,"is-save":!s.isRealCanDel,customId:s.customId,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"least-answer-count":s.leastAnswerCount,"is-edit":s.isEdit||!1,"show-action":!e.isPreview,"exam-expand":s.examExpand,answerCheckType:s.answerCheckType,"exam-rich-text-content":s.examRichTextContent,examAnswerRelationType:s.examAnswerRelationType,onSetRelation:q,onMove:e=>M(t,e),onDelete:e=>P(t),onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:(e,s)=>k(e,t,s)}),null,16,["order-index","title","type","exam-id","isKey","is-save","customId","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answerCheckType","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===s.answerType?(a(),m(w,x({key:1,ref_for:!0},l(b),{"order-index":t,title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"is-edit":s.isEdit||!1,"scale-question-list":s.scaleQuestionList,"show-action":!e.isPreview,"exam-rich-text-content":s.examRichTextContent,examAnswerRelationType:s.examAnswerRelationType,onMove:e=>M(t,e),onDelete:e=>P(t),onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:e=>k(e,t,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===s.answerType?(a(),m(p,x({key:2,ref_for:!0},l(b),{"order-index":t,title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!e.isPreview,"is-edit":s.isEdit||!1,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},"exam-rich-text-content":s.examRichTextContent,examAnswerRelationType:s.examAnswerRelationType,onMove:e=>M(t,e),onDelete:e=>P(t),onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:e=>k(e,t,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===s.answerType?(a(),m(y,x({key:3,ref_for:!0},l(b),{"order-index":t,title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!e.isPreview,"is-edit":s.isEdit||!1,"exam-expand":s.examExpand,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},examAnswerRelationType:s.examAnswerRelationType,"exam-rich-text-content":s.examRichTextContent,onMove:e=>M(t,e),onDelete:e=>P(t),onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:e=>k(e,t,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","examAnswerRelationType","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===s.answerType?(a(),m(h,x({key:4,ref_for:!0},l(b),{"order-index":t,richTextContent:s.richTextContent,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,"is-edit":s.isEdit||!1,"show-action":!e.isPreview,onMove:e=>M(t,e),onDelete:e=>P(t),examAnswerRelationType:s.examAnswerRelationType,onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:e=>k(e,t,null)}),null,16,["order-index","richTextContent","is-set","is-save","is-edit","show-action","onMove","onDelete","examAnswerRelationType","onSave","onEdit","onAdd"])):"page_end"===s.answerType?(a(),m(T,{"total-page":D.value.filter((e=>"page_end"===e.answerType)).length,key:t,"current-page-index":I(s.customId),item:s,"order-index":t,"is-edit":s.isEdit||!1,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,examAnswerRelationType:s.examAnswerRelationType,onMove:e=>M(t,e),onDelete:e=>P(t),onSave:e=>L(t,e),onEdit:e=>s.isEdit=!0,onAdd:e=>k(e,t,null)},null,8,["total-page","current-page-index","item","order-index","is-edit","is-set","is-save","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):u("v-if",!0)])))),128))])],2))}});export{S as default};
2
2
  //# sourceMappingURL=subject-list.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-list.vue.mjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// import isEqual from 'lodash/isEqual'\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst currentList = ref([] as any)\nconst emits = defineEmits(['setRelation'])\n\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n let totalPageIndex = 0\n let isLastPageIndex = false\n currentList.value.map((v: any, i: number, arr: any) => {\n if (v.answerType === 'page_end') {\n totalPageIndex++\n isLastPageIndex = i === arr.length - 1\n }\n })\n // 假设最后是一个分页器认为是最后一页\n return isLastPageIndex ? totalPageIndex : totalPageIndex + 1\n}\n\nfunction currentPageIndex() {\n return (currentId: any) => {\n const currentPageList = currentList.value.filter(\n (v: any) => v.answerType === 'page_end'\n )\n let currentIndex = 0\n currentPageList?.forEach((c: any, i: number) => {\n if (currentId === c.id) {\n currentIndex = i + 1\n }\n })\n return currentIndex\n }\n}\n\nfunction addSubject(type: string, index: number, examAnswerRelationType: number | null) {\n console.log(index, 'index')\n if (index || index === 0) {\n currentList.value.splice(index + 1, 0, {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: examAnswerRelationType,\n })\n }\n else {\n currentList.value.push({\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: examAnswerRelationType,\n })\n }\n}\n\nfunction addExam(item: any) {\n const answerList: any[] = []\n item.answers?.map((v: any) => {\n answerList.push({\n ...v,\n title: v.answer,\n answerId: v.examAnswerId,\n isCorrect: v.isCorrect,\n })\n })\n currentList.value.push({\n ...item,\n customId: setGuid(),\n answerType: item.richTextContent ? 'rich_text' : item.examTypeEnum,\n answers: answerList,\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n })\n}\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n }\n else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n for (let idx = 0; idx < currentList.value.length; idx++) {\n if (index === idx) {\n currentList.value[index] =\n {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n }\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string,) {\n // 给examId设置答案关联\n if (answerRelations.length) {\n currentList.value?.map((v: any) => {\n if(v.customId === customId) {\n v.answers?.map((c: any) => {\n // 判断类型\n if(c.customAnswerId === customAnswerId) {\n c.answerRelations = answerRelations\n }\n })\n }\n })\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div v-for=\"(item, index) in currentList\" :key=\"index + item.examId || item.title\">\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle \n v-bind=\"attrs\" \n :order-index=\"index\" \n :title=\"item.title\" \n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :isKey=\"item.isKey\" \n :is-save=\"!item.isRealCanDel\" \n :customId=\"item.customId\" \n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\" \n :analysis=\"item.analysis\" \n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\" \n :show-action=\"!isPreview\" \n :exam-expand=\"item.examExpand\"\n :answerCheckType=\"item.answerCheckType\" \n :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\"\n @setRelation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\" />\n </template>\n <SubjectScale v-bind=\"attrs\" v-else-if=\"item.answerType === 'scale'\" :order-index=\"index\" :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :is-edit=\"item.isEdit || false\" :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectBlankFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'blank_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectTextFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'text_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\" :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\" @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectRichText v-bind=\"attrs\" v-else-if=\"item.answerType === 'rich_text'\" :order-index=\"index\"\n :richTextContent=\"item.richTextContent\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\" :show-action=\"!isPreview\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" :examAnswerRelationType=\"item.examAnswerRelationType\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectPageEnd v-else-if=\"item.answerType === 'page_end'\" :total-page=\"totalPageIndex()\" :key=\"index\"\n :current-page-index=\"currentPageIndex()(item.id)\" :item=\"item\" :order-index=\"index\"\n :is-edit=\"item.isEdit || false\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","currentList","ref","emits","__emit","attrs","useAttrs","totalPageIndex","isLastPageIndex","value","map","v","i","arr","answerType","length","addSubject","type","index","examAnswerRelationType","console","log","splice","customId","setGuid","analysis","scaleQuestionList","isSave","isEdit","isRealCanDel","hasSet","push","move","item","saveSubject","idx","deleteSubject","ElMessage","success","setRelation","examAnswers","__expose","uploadExcel","list","concat","addExam","answerList","answers","title","answer","answerId","examAnswerId","isCorrect","richTextContent","examTypeEnum","setAnswerRelation","answerRelations","customAnswerId","c","watch","subjectList","newList","immediate","ns","useNamespace","currentId","currentPageList","filter","currentIndex","forEach","id"],"mappings":"w5BAeA,MAAMA,EAAQC,EAIRC,EAAcC,EAAI,IAClBC,EAAQC,EAERC,EAAQC,IAUd,SAASC,IACP,IAAIA,EAAiB,EACjBC,GAAkB,EAQf,OAPPP,EAAYQ,MAAMC,KAAI,CAACC,EAAQC,EAAWC,KACnB,aAAjBF,EAAEG,aACJP,IACkBC,EAAAI,IAAMC,EAAIE,OAAS,EAAA,IAIlCP,EAAkBD,EAAiBA,EAAiB,CAAA,CAkBpD,SAAAS,EAAWC,EAAcC,EAAeC,GACvCC,QAAAC,IAAIH,EAAO,SACfA,GAAmB,IAAVA,EACXjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAG,CACrCK,SAAUC,IACVV,WAAYG,EACZQ,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRX,2BAIFlB,EAAYQ,MAAMsB,KAAK,CACrBR,SAAUC,IACVV,WAAYG,EACZQ,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRX,0BAEJ,CA4BO,SAAAa,EAAKd,EAAeD,GACvB,GAAS,OAATA,GAAiBC,EAAQ,EAAG,CAC9B,MAAOe,GAAQhC,EAAYQ,MAAMa,OAAOJ,EAAO,GAC/CjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAGe,EAAI,SAE3B,SAAThB,GAAmBC,EAAQjB,EAAYQ,MAAMM,OAAS,EAAG,CAChE,MAAOkB,GAAQhC,EAAYQ,MAAMa,OAAOJ,EAAO,GAC/CjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAGe,EAAI,CAC7C,CAGO,SAAAC,EAAYhB,EAAee,GAClC,IAAA,IAASE,EAAM,EAAGA,EAAMlC,EAAYQ,MAAMM,OAAQoB,IAC5CjB,IAAUiB,IACAlC,EAAAQ,MAAMS,GAClB,IACKjB,EAAYQ,MAAMS,MAClBe,EACHL,QAAQ,EACRT,uBAAwBc,EAAKd,wBAGnC,CAGF,SAASiB,EAAclB,GACTjB,EAAAQ,MAAMa,OAAOJ,EAAO,GAChCmB,EAAUC,QAAQ,OAAM,CAGjB,SAAAC,EAAYhB,EAAkBiB,GAC/BrC,EAAA,cAAeoB,EAAUiB,EAAW,CA1H/BC,EAAA,CACXzB,aACAf,cACAyC,YAoFF,SAAqBC,GACnB1C,EAAYQ,MAAQR,EAAYQ,MAAMmC,OAAOD,EAAI,EApFjDE,QA8DF,SAAiBZ,GACf,MAAMa,EAAoB,GACrBb,EAAAc,SAASrC,KAAKC,IACjBmC,EAAWf,KAAK,IACXpB,EACHqC,MAAOrC,EAAEsC,OACTC,SAAUvC,EAAEwC,aACZC,UAAWzC,EAAEyC,WACd,IAEHnD,EAAYQ,MAAMsB,KAAK,IAClBE,EACHV,SAAUC,IACVV,WAAYmB,EAAKoB,gBAAkB,YAAcpB,EAAKqB,aACtDP,QAASD,EACTnB,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,GACT,EAhFDyB,kBAwHO,SAAkBC,EAAsBjC,EAAkBkC,GAE7DD,EAAgBzC,QACNd,EAAAQ,OAAOC,KAAKC,IACnBA,EAAEY,WAAaA,GACdZ,EAAAoC,SAASrC,KAAKgD,IAEXA,EAAED,iBAAmBA,IACtBC,EAAEF,gBAAkBA,EAAA,GAEvB,GAGP,IAGFG,GAAM,IAAM5D,EAAM6D,cAAcC,IAC1BA,IACU5D,EAAAQ,MAAQ,IAAIoD,GAAO,GAEhC,CAAEC,WAAW,IAEV,MAAAC,EAAKC,EAAa,8tHA7Hf,CAACC,IACA,MAAAC,EAAkBjE,EAAYQ,MAAM0D,QACvCxD,GAA4B,aAAjBA,EAAEG,aAEhB,IAAIsD,EAAe,EAMZ,OALUF,GAAAG,SAAQ,CAACX,EAAQ9C,KAC5BqD,IAAcP,EAAEY,KAClBF,EAAexD,EAAI,EAAA,IAGhBwD,CAAA"}
1
+ {"version":3,"file":"subject-list.vue.mjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst currentList = ref([] as any)\nconst emits = defineEmits(['setRelation'])\n\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n return currentList.value.filter((v: any) => v.answerType === 'page_end').length\n}\n\nfunction currentPageIndex(currentId: any) {\n const currentPageList = currentList.value.filter((v: any) => v.answerType === 'page_end')\n const currentIndex = currentPageList.findIndex((c: any) => c.customId === currentId)\n return currentIndex + 1\n}\n\nfunction addPageEnd() {\n currentList.value.push({\n customId: setGuid(),\n answerType: 'page_end',\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: 0,\n })\n}\n\nfunction addSubject(type: string, index: number | null = null, examAnswerRelationType: number | null = null) {\n const newSubject = {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType,\n }\n\n if (index !== null) {\n currentList.value.splice(index + 1, 0, newSubject)\n } else {\n currentList.value.push(newSubject)\n }\n}\n\nfunction addExam(item: any) {\n const answerList = item.answers?.map((v: any) => ({\n ...v,\n title: v.answer,\n answerId: v.examAnswerId,\n isCorrect: v.isCorrect,\n })) || []\n\n currentList.value.push({\n ...item,\n customId: setGuid(),\n answerType: item.richTextContent ? 'rich_text' : item.examTypeEnum,\n answers: answerList,\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n })\n\n if (item.pageIndex - currentPageIndex(item.customId) === 1) {\n addPageEnd()\n }\n\n if (currentPageIndex(item.customId) > 1) {\n addPageEnd()\n }\n}\n\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n } else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n currentList.value[index] = {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string) {\n if (answerRelations.length) {\n const targetItem = currentList.value.find((v: any) => v.customId === customId)\n if (targetItem) {\n const targetAnswer = targetItem.answers?.find((c: any) => c.customAnswerId === customAnswerId)\n if (targetAnswer) {\n targetAnswer.answerRelations = answerRelations\n }\n }\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div v-for=\"(item, index) in currentList\" :key=\"item.customId\" class=\"subject-item\">\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle \n v-bind=\"attrs\" \n :order-index=\"index\" \n :title=\"item.title\" \n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :isKey=\"item.isKey\" \n :is-save=\"!item.isRealCanDel\" \n :customId=\"item.customId\" \n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\" \n :analysis=\"item.analysis\" \n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\" \n :show-action=\"!isPreview\" \n :exam-expand=\"item.examExpand\"\n :answerCheckType=\"item.answerCheckType\" \n :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\"\n @setRelation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\" />\n </template>\n <SubjectScale v-bind=\"attrs\" v-else-if=\"item.answerType === 'scale'\" :order-index=\"index\" :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :is-edit=\"item.isEdit || false\" :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectBlankFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'blank_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectTextFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'text_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\" :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\" @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectRichText v-bind=\"attrs\" v-else-if=\"item.answerType === 'rich_text'\" :order-index=\"index\"\n :richTextContent=\"item.richTextContent\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\" :show-action=\"!isPreview\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" :examAnswerRelationType=\"item.examAnswerRelationType\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectPageEnd v-else-if=\"item.answerType === 'page_end'\" :total-page=\"totalPageIndex()\" :key=\"index\"\n :current-page-index=\"currentPageIndex(item.customId)\" :item=\"item\" :order-index=\"index\"\n :is-edit=\"item.isEdit || false\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","currentList","ref","emits","__emit","attrs","useAttrs","currentPageIndex","currentId","value","filter","v","answerType","findIndex","c","customId","addPageEnd","push","setGuid","analysis","scaleQuestionList","isSave","isEdit","isRealCanDel","hasSet","examAnswerRelationType","addSubject","type","index","newSubject","splice","move","item","length","saveSubject","deleteSubject","ElMessage","success","setRelation","examAnswers","__expose","uploadExcel","list","concat","addExam","answerList","answers","map","title","answer","answerId","examAnswerId","isCorrect","richTextContent","examTypeEnum","pageIndex","setAnswerRelation","answerRelations","customAnswerId","targetItem","find","targetAnswer","watch","subjectList","newList","immediate","ns","useNamespace"],"mappings":"w5BAcA,MAAMA,EAAQC,EAIRC,EAAcC,EAAI,IAClBC,EAAQC,EAERC,EAAQC,IAcd,SAASC,EAAiBC,GAGxB,OAFwBP,EAAYQ,MAAMC,QAAQC,GAA4B,aAAjBA,EAAEC,aAC1BC,WAAWC,GAAWA,EAAEC,WAAaP,IACpD,CAAA,CAGxB,SAASQ,IACPf,EAAYQ,MAAMQ,KAAK,CACrBF,SAAUG,IACVN,WAAY,WACZO,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRC,uBAAwB,GACzB,CAGH,SAASC,EAAWC,EAAcC,EAAuB,KAAMH,EAAwC,MACrG,MAAMI,EAAa,CACjBd,SAAUG,IACVN,WAAYe,EACZR,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRC,0BAGY,OAAVG,EACF3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGC,GAE3B5B,EAAAQ,MAAMQ,KAAKY,EACzB,CAmCO,SAAAE,EAAKH,EAAeD,GACvB,GAAS,OAATA,GAAiBC,EAAQ,EAAG,CAC9B,MAAOI,GAAQ/B,EAAYQ,MAAMqB,OAAOF,EAAO,GAC/C3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGI,EAAI,SACzB,SAATL,GAAmBC,EAAQ3B,EAAYQ,MAAMwB,OAAS,EAAG,CAClE,MAAOD,GAAQ/B,EAAYQ,MAAMqB,OAAOF,EAAO,GAC/C3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGI,EAAI,CAC7C,CAGO,SAAAE,EAAYN,EAAeI,GACtB/B,EAAAQ,MAAMmB,GAAS,IACtB3B,EAAYQ,MAAMmB,MAClBI,EACHV,QAAQ,EACRG,uBAAwBO,EAAKP,uBAC/B,CAGF,SAASU,EAAcP,GACT3B,EAAAQ,MAAMqB,OAAOF,EAAO,GAChCQ,EAAUC,QAAQ,OAAM,CAGjB,SAAAC,EAAYvB,EAAkBwB,GAC/BpC,EAAA,cAAeY,EAAUwB,EAAW,CA7G/BC,EAAA,CACXd,aACAzB,cACAwC,YA6EF,SAAqBC,GACnBzC,EAAYQ,MAAQR,EAAYQ,MAAMkC,OAAOD,EAAI,EA7EjDE,QAgDF,SAAiBZ,GACf,MAAMa,EAAab,EAAKc,SAASC,KAAKpC,IAAY,IAC7CA,EACHqC,MAAOrC,EAAEsC,OACTC,SAAUvC,EAAEwC,aACZC,UAAWzC,EAAEyC,eACR,GAEPnD,EAAYQ,MAAMQ,KAAK,IAClBe,EACHjB,SAAUG,IACVN,WAAYoB,EAAKqB,gBAAkB,YAAcrB,EAAKsB,aACtDR,QAASD,EACTxB,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,IAGNQ,EAAKuB,UAAYhD,EAAiByB,EAAKjB,WAAc,GAC5CC,IAGTT,EAAiByB,EAAKjB,UAAY,GACzBC,GACb,EAxEAwC,kBA2GO,SAAkBC,EAAsB1C,EAAkB2C,GACjE,GAAID,EAAgBxB,OAAQ,CACpB,MAAA0B,EAAa1D,EAAYQ,MAAMmD,MAAMjD,GAAWA,EAAEI,WAAaA,IACrE,GAAI4C,EAAY,CACR,MAAAE,EAAeF,EAAWb,SAASc,MAAM9C,GAAWA,EAAE4C,iBAAmBA,IAC3EG,IACFA,EAAaJ,gBAAkBA,EACjC,CACF,CACF,IAGFK,GAAM,IAAM/D,EAAMgE,cAAcC,IAC1BA,IACU/D,EAAAQ,MAAQ,IAAIuD,GAAO,GAEhC,CAAEC,WAAW,IAEV,MAAAC,EAAKC,EAAa,2sHAzHflE,EAAYQ,MAAMC,QAAQC,GAA4B,aAAjBA,EAAEC,aAA2BqB"}
@@ -1,2 +1,2 @@
1
- "use strict";exports.version="0.0.34";
1
+ "use strict";exports.version="0.0.36";
2
2
  //# sourceMappingURL=package.json.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),l=require("@element-plus/icons-vue"),a=require("@qxs-bns/hooks"),o=require("../../subject-type/src/subject-type.vue.cjs");const n={key:0,class:"flex-justify-between"},c={key:0,class:"has-set"},r={key:1,class:"flex flex-justify-end action-buttons"},i=!0;var d=t.defineComponent({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:{type:Boolean},isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(d,{emit:u}){const s=d,m=t.ref(s.isKey),p=t.ref(!1),f=u,V=t.ref(s.answerCheckType),k=a.useNamespace("subject-action"),x=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],C=t.computed((()=>x.find((e=>e.value===V.value))?.label));function y(){p.value=!1,f("setAnswerSetting",V.value)}function v(e,t){f("add",e,t?s.examAnswerRelationType:null)}return(a,u)=>{const s=e.ElLink,N=e.ElPopover,h=e.ElCheckbox,w=e.ElIcon,b=e.ElButton,B=e.ElRadio,E=e.ElRadioGroup,g=e.ElDialog;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(k).e("action-exam"))},[t.createElementVNode("div",{class:t.normalizeClass(["action flex flex-justify-between",[{active:d.isEdit}]])},[d.isEdit?(t.openBlock(),t.createElementBlock("div",n,[t.createVNode(N,{trigger:"click"},{reference:t.withCtx((()=>[t.createVNode(s,{type:"primary",class:"btn-margin"},{default:t.withCtx((()=>u[15]||(u[15]=[t.createTextVNode(" +在此题后加入新题 ")]))),_:1})])),default:t.withCtx((()=>[t.createVNode(o.default,{onSelect:v})])),_:1}),d.showOtherOption?(t.openBlock(),t.createBlock(s,{key:0,type:"primary",onClick:u[0]||(u[0]=e=>f("onShowRichText")),class:"btn-margin"},{default:t.withCtx((()=>u[16]||(u[16]=[t.createTextVNode(" +添加题目描述(图文) ")]))),_:1})):t.createCommentVNode("v-if",!0),d.showOtherOption?(t.openBlock(),t.createBlock(s,{key:1,type:"primary",onClick:u[1]||(u[1]=e=>p.value=!0),class:"btn-margin"},{default:t.withCtx((()=>u[17]||(u[17]=[t.createTextVNode(" 答题设置 ")]))),_:1})):t.createCommentVNode("v-if",!0),d.showOtherOption?(t.openBlock(),t.createBlock(h,{key:2,modelValue:t.unref(m),"onUpdate:modelValue":u[2]||(u[2]=e=>t.isRef(m)?m.value=e:null),label:"核心题",onChange:u[3]||(u[3]=e=>f("setKey",t.unref(m)))},null,8,["modelValue"])):t.createCommentVNode("v-if",!0)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",null,[d.isSet?(t.openBlock(),t.createElementBlock("div",c," *此题设置了跳题逻辑 ")):(t.openBlock(),t.createElementBlock("div",r,[d.isEdit?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(b,{class:"btn-margin",onClick:u[10]||(u[10]=e=>f("delete"))},{default:t.withCtx((()=>u[22]||(u[22]=[t.createTextVNode(" 删除 ")]))),_:1}),t.createVNode(b,{type:"primary",onClick:u[11]||(u[11]=e=>f("save"))},{default:t.withCtx((()=>u[23]||(u[23]=[t.createTextVNode(" 完成编辑 ")]))),_:1})],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[d.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(h,{key:0,modelValue:t.unref(m),"onUpdate:modelValue":u[4]||(u[4]=e=>t.isRef(m)?m.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"])),d.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(h,{key:1,modelValue:i,"onUpdate:modelValue":u[5]||(u[5]=e=>i=e),label:t.unref(C),disabled:"",class:"checkbox-margin"},null,8,["label"])),d.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(b,{key:2,class:"btn-margin",onClick:u[6]||(u[6]=e=>f("edit"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Edit))])),_:1})])),default:t.withCtx((()=>[u[18]||(u[18]=t.createTextVNode(" 编辑 "))])),_:1})),t.createVNode(b,{class:"btn-margin",onClick:u[7]||(u[7]=e=>f("delete"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Delete))])),_:1})])),default:t.withCtx((()=>[u[19]||(u[19]=t.createTextVNode(" 删除 "))])),_:1}),t.createVNode(b,{class:"btn-margin",onClick:u[8]||(u[8]=e=>f("moveUp"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Top))])),_:1})])),default:t.withCtx((()=>[u[20]||(u[20]=t.createTextVNode(" 上移 "))])),_:1}),t.createVNode(b,{class:"btn-margin",onClick:u[9]||(u[9]=e=>f("moveDown"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Bottom))])),_:1})])),default:t.withCtx((()=>[u[21]||(u[21]=t.createTextVNode(" 下移 "))])),_:1})],64))]))]),t.createVNode(g,{modelValue:t.unref(p),"onUpdate:modelValue":u[14]||(u[14]=e=>t.isRef(p)?p.value=e:null),title:"答题设置",class:"customize-dialog"},{footer:t.withCtx((()=>[t.createVNode(b,{class:"customize-button",type:"primary",plain:"",onClick:u[13]||(u[13]=e=>p.value=!1)},{default:t.withCtx((()=>u[24]||(u[24]=[t.createTextVNode(" 取消 ")]))),_:1}),t.createVNode(b,{class:"customize-button",type:"primary",plain:"",onClick:y},{default:t.withCtx((()=>u[25]||(u[25]=[t.createTextVNode(" 保存 ")]))),_:1})])),default:t.withCtx((()=>[t.createVNode(E,{modelValue:t.unref(V),"onUpdate:modelValue":u[12]||(u[12]=e=>t.isRef(V)?V.value=e:null),class:"vertical-radio-group"},{default:t.withCtx((()=>[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(x,(e=>t.createVNode(B,{key:e.value,value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"]))),64))])),_:1},8,["modelValue"])])),_:1},8,["modelValue"])],2)],2)}}});exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),l=require("@element-plus/icons-vue"),a=require("@qxs-bns/hooks"),o=require("../../subject-type/src/subject-type.vue.cjs");const n={key:0,class:"flex-justify-between"},c={key:0,class:"has-set"},r={key:1,class:"flex flex-justify-end action-buttons"};var i=t.defineComponent({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:Boolean,isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["move-up","move-down","delete","save","edit","add","on-show-rich-text","set-key","set-answer-setting"],setup(i,{emit:d}){const u=i,s=t.ref(u.isKey),m=t.ref(!1),p=d,f=t.ref(u.answerCheckType),k=a.useNamespace("subject-action"),V=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],x=t.computed((()=>V.find((e=>e.value===f.value))?.label));function C(){m.value=!1,p("set-answer-setting",f.value)}function v(){p("set-key",s.value)}function y(e,t){p("add",e,t?u.examAnswerRelationType:null)}return(a,d)=>{const u=e.ElLink,N=e.ElPopover,h=e.ElCheckbox,w=e.ElIcon,b=e.ElButton,B=e.ElRadio,E=e.ElRadioGroup,g=e.ElDialog;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(k).e("action-exam"))},[t.createElementVNode("div",{class:t.normalizeClass(["action flex flex-justify-between",[{active:i.isEdit}]])},[i.isEdit?(t.openBlock(),t.createElementBlock("div",n,[t.createVNode(N,{trigger:"click"},{reference:t.withCtx((()=>[t.createVNode(u,{type:"primary",class:"btn-margin"},{default:t.withCtx((()=>d[14]||(d[14]=[t.createTextVNode(" +在此题后加入新题 ")]))),_:1})])),default:t.withCtx((()=>[t.createVNode(o.default,{onSelect:y})])),_:1}),i.showOtherOption?(t.openBlock(),t.createBlock(u,{key:0,type:"primary",onClick:d[0]||(d[0]=e=>p("on-show-rich-text")),class:"btn-margin"},{default:t.withCtx((()=>d[15]||(d[15]=[t.createTextVNode(" +添加题目描述(图文) ")]))),_:1})):t.createCommentVNode("v-if",!0),i.showOtherOption?(t.openBlock(),t.createBlock(u,{key:1,type:"primary",onClick:d[1]||(d[1]=e=>m.value=!0),class:"btn-margin"},{default:t.withCtx((()=>d[16]||(d[16]=[t.createTextVNode(" 答题设置 ")]))),_:1})):t.createCommentVNode("v-if",!0),i.showOtherOption?(t.openBlock(),t.createBlock(h,{key:2,modelValue:t.unref(s),"onUpdate:modelValue":d[2]||(d[2]=e=>t.isRef(s)?s.value=e:null),label:"核心题",onChange:v},null,8,["modelValue"])):t.createCommentVNode("v-if",!0)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",null,[i.isSet?(t.openBlock(),t.createElementBlock("div",c," *此题设置了跳题逻辑 ")):(t.openBlock(),t.createElementBlock("div",r,[i.isEdit?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(b,{class:"btn-margin",onClick:d[8]||(d[8]=e=>p("delete"))},{default:t.withCtx((()=>d[21]||(d[21]=[t.createTextVNode(" 删除 ")]))),_:1}),t.createVNode(b,{type:"primary",onClick:d[9]||(d[9]=e=>p("save"))},{default:t.withCtx((()=>d[22]||(d[22]=[t.createTextVNode(" 完成编辑 ")]))),_:1})],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[i.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(h,{key:0,modelValue:t.unref(s),"onUpdate:modelValue":d[3]||(d[3]=e=>t.isRef(s)?s.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"])),i.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(h,{key:1,"v-model":!0,label:t.unref(x),disabled:"",class:"checkbox-margin"},null,8,["label"])),i.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(b,{key:2,class:"btn-margin",onClick:d[4]||(d[4]=e=>p("edit"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Edit))])),_:1})])),default:t.withCtx((()=>[d[17]||(d[17]=t.createTextVNode(" 编辑 "))])),_:1})),t.createVNode(b,{class:"btn-margin",onClick:d[5]||(d[5]=e=>p("delete"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Delete))])),_:1})])),default:t.withCtx((()=>[d[18]||(d[18]=t.createTextVNode(" 删除 "))])),_:1}),t.createVNode(b,{class:"btn-margin",onClick:d[6]||(d[6]=e=>p("move-up"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Top))])),_:1})])),default:t.withCtx((()=>[d[19]||(d[19]=t.createTextVNode(" 上移 "))])),_:1}),t.createVNode(b,{class:"btn-margin",onClick:d[7]||(d[7]=e=>p("move-down"))},{icon:t.withCtx((()=>[t.createVNode(w,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Bottom))])),_:1})])),default:t.withCtx((()=>[d[20]||(d[20]=t.createTextVNode(" 下移 "))])),_:1})],64))]))]),t.createVNode(g,{modelValue:t.unref(m),"onUpdate:modelValue":d[12]||(d[12]=e=>t.isRef(m)?m.value=e:null),title:"答题设置",class:"customize-dialog",onClose:d[13]||(d[13]=e=>m.value=!1)},{footer:t.withCtx((()=>[t.createVNode(b,{class:"customize-button",type:"primary",plain:"",onClick:d[11]||(d[11]=e=>m.value=!1)},{default:t.withCtx((()=>d[23]||(d[23]=[t.createTextVNode(" 取消 ")]))),_:1}),t.createVNode(b,{class:"customize-button",type:"primary",plain:"",onClick:C},{default:t.withCtx((()=>d[24]||(d[24]=[t.createTextVNode(" 保存 ")]))),_:1})])),default:t.withCtx((()=>[t.createVNode(E,{modelValue:t.unref(f),"onUpdate:modelValue":d[10]||(d[10]=e=>t.isRef(f)?f.value=e:null),class:"vertical-radio-group"},{default:t.withCtx((()=>[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(V,(e=>t.createVNode(B,{key:e.value,value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"]))),64))])),_:1},8,["modelValue"])])),_:1},8,["modelValue"])],2)],2)}}});exports.default=i;
2
2
  //# sourceMappingURL=subject-action.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-action.vue.cjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n },\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null\n },\n pageEnd: {\n type: Boolean,\n default: false\n }\n})\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits(['moveUp', 'moveDown', 'delete', 'save', 'edit', 'add', 'onShowRichText', 'setKey', 'setAnswerSetting'])\nconst answerType = ref(props.answerCheckType)\nconst answerCheck = true\nconst ns = useNamespace('subject-action')\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步'\n },\n {\n value: 1,\n label: '无需判断是否是支持选项'\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步'\n }\n]\nconst answerText = computed(() => {\n return answerTextList.find(item => item.value === answerType.value)?.label\n})\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType.value)\n}\n\nfunction selectExam(type:string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n</script>\n\n<template>\n<div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <div v-if=\"isEdit\" class=\"flex-justify-between\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\" class=\"btn-margin\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link\n type=\"primary\"\n @click=\"emits('onShowRichText')\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n +添加题目描述(图文)\n </el-link>\n <el-link\n type=\"primary\"\n @click=\"showAnswerSetting = true\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n 答题设置\n </el-link>\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"emits('setKey', isKey)\"\n v-if=\"showOtherOption\"\n />\n </div>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end action-buttons\">\n <template v-if=\"!isEdit\">\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n v-if=\"!pageEnd\"\n />\n <el-checkbox\n v-model=\"answerCheck\"\n :label=\"answerText\"\n disabled\n v-if=\"!pageEnd\"\n class=\"checkbox-margin\"\n />\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n >\n <el-radio-group\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <el-radio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n"],"names":["answerCheck","props","__props","isKey","ref","showAnswerSetting","emits","__emit","answerType","answerCheckType","ns","useNamespace","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","selectExam","type","canSet","examAnswerRelationType"],"mappings":"8WAyCMA,GAAc,ucAjCpB,MAAMC,EAAQC,EA6BRC,EAAQC,EAAAA,IAAIH,EAAME,OAClBE,EAAoBD,OAAI,GACxBE,EAAQC,EACRC,EAAaJ,EAAAA,IAAIH,EAAMQ,iBAEvBC,EAAKC,eAAa,kBAClBC,EAAiB,CACrB,CACEC,MAAO,EACPC,MAAO,oBAET,CACED,MAAO,EACPC,MAAO,eAET,CACED,MAAO,EACPC,MAAO,mBAGLC,EAAaC,EAAAA,UAAS,IACnBJ,EAAeK,MAAKC,GAAQA,EAAKL,QAAUL,EAAWK,SAAQC,QAEvE,SAASK,IACPd,EAAkBQ,OAAQ,EACpBP,EAAA,mBAAoBE,EAAWK,MAAK,CAGnC,SAAAO,EAAWC,EAAaC,GAChChB,EAAM,MAAOe,EAAMC,EAAQrB,EAAMsB,uBAAwB,KAAI"}
1
+ {"version":3,"file":"subject-action.vue.cjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\n\nconst props = defineProps({\n isEdit: Boolean,\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1,\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits([\n 'move-up',\n 'move-down',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'on-show-rich-text',\n 'set-key',\n 'set-answer-setting',\n])\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\n\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步',\n },\n {\n value: 1,\n label: '无需判断是否是支持选项',\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步',\n },\n]\n\nconst answerText = computed(() => {\n return answerTextList.find((item) => item.value === answerType.value)?.label\n})\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('set-answer-setting', answerType.value)\n}\n\nfunction setKey() {\n emits('set-key', isKey.value)\n}\n\nfunction selectExam(type: string, canSet: boolean) {\n emits('add', type, canSet ? props.examAnswerRelationType : null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <div v-if=\"isEdit\" class=\"flex-justify-between\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\" class=\"btn-margin\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link\n type=\"primary\"\n @click=\"emits('on-show-rich-text')\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n +添加题目描述(图文)\n </el-link>\n <el-link\n type=\"primary\"\n @click=\"showAnswerSetting = true\"\n v-if=\"showOtherOption\"\n class=\"btn-margin\"\n >\n 答题设置\n </el-link>\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n v-if=\"showOtherOption\"\n />\n </div>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end action-buttons\">\n <template v-if=\"!isEdit\">\n <el-checkbox\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n v-if=\"!pageEnd\"\n />\n <el-checkbox\n :v-model=\"true\"\n :label=\"answerText\"\n disabled\n v-if=\"!pageEnd\"\n class=\"checkbox-margin\"\n />\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('move-up')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('move-down')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n @close=\"showAnswerSetting = false\"\n >\n <el-radio-group\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <el-radio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>"],"names":["props","__props","isKey","ref","showAnswerSetting","emits","__emit","answerType","answerCheckType","ns","useNamespace","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","selectExam","type","canSet","examAnswerRelationType"],"mappings":"ozBASA,MAAMA,EAAQC,EA4BRC,EAAQC,EAAAA,IAAIH,EAAME,OAClBE,EAAoBD,OAAI,GACxBE,EAAQC,EAWRC,EAAaJ,EAAAA,IAAIH,EAAMQ,iBACvBC,EAAKC,eAAa,kBAElBC,EAAiB,CACrB,CACEC,MAAO,EACPC,MAAO,oBAET,CACED,MAAO,EACPC,MAAO,eAET,CACED,MAAO,EACPC,MAAO,mBAILC,EAAaC,EAAAA,UAAS,IACnBJ,EAAeK,MAAMC,GAASA,EAAKL,QAAUL,EAAWK,SAAQC,QAGzE,SAASK,IACPd,EAAkBQ,OAAQ,EACpBP,EAAA,qBAAsBE,EAAWK,MAAK,CAG9C,SAASO,IACDd,EAAA,UAAWH,EAAMU,MAAK,CAGrB,SAAAQ,EAAWC,EAAcC,GAChCjB,EAAM,MAAOgB,EAAMC,EAAStB,EAAMuB,uBAAyB,KAAI"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("./components/subject-blank-fill.vue.cjs"),n=require("./components/subject-scale.vue.cjs"),s=require("./components/subject-single.vue.cjs"),i=require("./components/subject-text-fill.vue.cjs"),a=require("./components/SubjectRichText.vue.cjs"),o=require("./components/SubjectPageEnd.vue.cjs"),l=require("@qxs-bns/hooks"),r=require("@qxs-bns/utils"),c=require("element-plus/es");const d={class:"subject-list-wrapper"};var u=e.defineComponent({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(u,{expose:p,emit:x}){const m=u,w=e.ref([]),v=x,y=e.useAttrs();function h(){let e=0,t=!1;return w.value.map(((n,s,i)=>{"page_end"===n.answerType&&(e++,t=s===i.length-1)})),t?e:e+1}function T(e,t,n){console.log(t,"index"),t||0===t?w.value.splice(t+1,0,{customId:r.setGuid(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:n}):w.value.push({customId:r.setGuid(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:n})}function f(e,t){if("up"===t&&e>0){const[t]=w.value.splice(e,1);w.value.splice(e-1,0,t)}else if("down"===t&&e<w.value.length-1){const[t]=w.value.splice(e,1);w.value.splice(e+1,0,t)}}function A(e,t){for(let n=0;n<w.value.length;n++)e===n&&(w.value[e]={...w.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType})}function R(e){w.value.splice(e,1),c.ElMessage.success("删除成功")}function E(e,t){v("setRelation",e,t)}p({addSubject:T,currentList:w,uploadExcel:function(e){w.value=w.value.concat(e)},addExam:function(e){const t=[];e.answers?.map((e=>{t.push({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})})),w.value.push({...e,customId:r.setGuid(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:t,isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1})},setAnswerRelation:function(e,t,n){e.length&&w.value?.map((s=>{s.customId===t&&s.answers?.map((t=>{t.customAnswerId===n&&(t.answerRelations=e)}))}))}}),e.watch((()=>m.subjectList),(e=>{e&&(w.value=[...e])}),{immediate:!0});const k=l.useNamespace("subject-list");return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(k).e("list-exam"))},[e.createElementVNode("div",d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),((r,c)=>(e.openBlock(),e.createElementBlock("div",{key:c+r.examId||r.title},[["single","multiple","sort"].includes(r.answerType)?(e.openBlock(),e.createBlock(s.default,e.mergeProps({key:0,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,type:r.answerType,"exam-id":r.examId,isKey:r.isKey,"is-save":!r.isRealCanDel,customId:r.customId,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"least-answer-count":r.leastAnswerCount,"is-edit":r.isEdit||!1,"show-action":!l.isPreview,"exam-expand":r.examExpand,answerCheckType:r.answerCheckType,"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onSetRelation:E,onMove:e=>f(c,e),onDelete:e=>R(c),onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:(e,t)=>T(e,c,t)}),null,16,["order-index","title","type","exam-id","isKey","is-save","customId","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answerCheckType","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===r.answerType?(e.openBlock(),e.createBlock(n.default,e.mergeProps({key:1,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"is-edit":r.isEdit||!1,"scale-question-list":r.scaleQuestionList,"show-action":!l.isPreview,"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>f(c,e),onDelete:e=>R(c),onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===r.answerType?(e.openBlock(),e.createBlock(t.default,e.mergeProps({key:2,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"show-action":!l.isPreview,"is-edit":r.isEdit||!1,"exam-answer-setting-v-o":r.examAnswerSettingVO||{},"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>f(c,e),onDelete:e=>R(c),onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===r.answerType?(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:3,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"show-action":!l.isPreview,"is-edit":r.isEdit||!1,"exam-expand":r.examExpand,"exam-answer-setting-v-o":r.examAnswerSettingVO||{},examAnswerRelationType:r.examAnswerRelationType,"exam-rich-text-content":r.examRichTextContent,onMove:e=>f(c,e),onDelete:e=>R(c),onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","examAnswerRelationType","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===r.answerType?(e.openBlock(),e.createBlock(a.default,e.mergeProps({key:4,ref_for:!0},e.unref(y),{"order-index":c,richTextContent:r.richTextContent,"is-set":r.hasSet||!1,"is-save":!r.isRealCanDel,"is-edit":r.isEdit||!1,"show-action":!l.isPreview,onMove:e=>f(c,e),onDelete:e=>R(c),examAnswerRelationType:r.examAnswerRelationType,onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","richTextContent","is-set","is-save","is-edit","show-action","onMove","onDelete","examAnswerRelationType","onSave","onEdit","onAdd"])):"page_end"===r.answerType?(e.openBlock(),e.createBlock(o.default,{"total-page":h(),key:c,"current-page-index":(e=>{const t=w.value.filter((e=>"page_end"===e.answerType));let n=0;return t?.forEach(((t,s)=>{e===t.id&&(n=s+1)})),n})(r.id),item:r,"order-index":c,"is-edit":r.isEdit||!1,"is-set":r.hasSet||!1,"is-save":!r.isRealCanDel,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>f(c,e),onDelete:e=>R(c),onSave:e=>A(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)},null,8,["total-page","current-page-index","item","order-index","is-edit","is-set","is-save","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):e.createCommentVNode("v-if",!0)])))),128))])],2))}});exports.default=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("./components/subject-blank-fill.vue.cjs"),n=require("./components/subject-scale.vue.cjs"),s=require("./components/subject-single.vue.cjs"),i=require("./components/subject-text-fill.vue.cjs"),a=require("./components/SubjectRichText.vue.cjs"),o=require("./components/SubjectPageEnd.vue.cjs"),l=require("@qxs-bns/hooks"),r=require("@qxs-bns/utils"),c=require("element-plus/es");const d={class:"subject-list-wrapper"};var u=e.defineComponent({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(u,{expose:x,emit:p}){const m=u,w=e.ref([]),v=p,y=e.useAttrs();function f(e){return w.value.filter((e=>"page_end"===e.answerType)).findIndex((t=>t.customId===e))+1}function h(){w.value.push({customId:r.setGuid(),answerType:"page_end",analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:0})}function T(e,t=null,n=null){const s={customId:r.setGuid(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:n};null!==t?w.value.splice(t+1,0,s):w.value.push(s)}function A(e,t){if("up"===t&&e>0){const[t]=w.value.splice(e,1);w.value.splice(e-1,0,t)}else if("down"===t&&e<w.value.length-1){const[t]=w.value.splice(e,1);w.value.splice(e+1,0,t)}}function R(e,t){w.value[e]={...w.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType}}function E(e){w.value.splice(e,1),c.ElMessage.success("删除成功")}function k(e,t){v("setRelation",e,t)}x({addSubject:T,currentList:w,uploadExcel:function(e){w.value=w.value.concat(e)},addExam:function(e){const t=e.answers?.map((e=>({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})))||[];w.value.push({...e,customId:r.setGuid(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:t,isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1}),e.pageIndex-f(e.customId)==1&&h();f(e.customId)>1&&h()},setAnswerRelation:function(e,t,n){if(e.length){const s=w.value.find((e=>e.customId===t));if(s){const t=s.answers?.find((e=>e.customAnswerId===n));t&&(t.answerRelations=e)}}}}),e.watch((()=>m.subjectList),(e=>{e&&(w.value=[...e])}),{immediate:!0});const S=l.useNamespace("subject-list");return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(S).e("list-exam"))},[e.createElementVNode("div",d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),((r,c)=>(e.openBlock(),e.createElementBlock("div",{key:r.customId,class:"subject-item"},[["single","multiple","sort"].includes(r.answerType)?(e.openBlock(),e.createBlock(s.default,e.mergeProps({key:0,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,type:r.answerType,"exam-id":r.examId,isKey:r.isKey,"is-save":!r.isRealCanDel,customId:r.customId,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"least-answer-count":r.leastAnswerCount,"is-edit":r.isEdit||!1,"show-action":!l.isPreview,"exam-expand":r.examExpand,answerCheckType:r.answerCheckType,"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onSetRelation:k,onMove:e=>A(c,e),onDelete:e=>E(c),onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:(e,t)=>T(e,c,t)}),null,16,["order-index","title","type","exam-id","isKey","is-save","customId","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answerCheckType","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===r.answerType?(e.openBlock(),e.createBlock(n.default,e.mergeProps({key:1,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"is-edit":r.isEdit||!1,"scale-question-list":r.scaleQuestionList,"show-action":!l.isPreview,"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>A(c,e),onDelete:e=>E(c),onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===r.answerType?(e.openBlock(),e.createBlock(t.default,e.mergeProps({key:2,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"show-action":!l.isPreview,"is-edit":r.isEdit||!1,"exam-answer-setting-v-o":r.examAnswerSettingVO||{},"exam-rich-text-content":r.examRichTextContent,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>A(c,e),onDelete:e=>E(c),onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===r.answerType?(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:3,ref_for:!0},e.unref(y),{"order-index":c,title:r.title,"is-save":!r.isRealCanDel,"is-set":r.hasSet||!1,"answer-list":r.answers,analysis:r.analysis,"show-action":!l.isPreview,"is-edit":r.isEdit||!1,"exam-expand":r.examExpand,"exam-answer-setting-v-o":r.examAnswerSettingVO||{},examAnswerRelationType:r.examAnswerRelationType,"exam-rich-text-content":r.examRichTextContent,onMove:e=>A(c,e),onDelete:e=>E(c),onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","examAnswerRelationType","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===r.answerType?(e.openBlock(),e.createBlock(a.default,e.mergeProps({key:4,ref_for:!0},e.unref(y),{"order-index":c,richTextContent:r.richTextContent,"is-set":r.hasSet||!1,"is-save":!r.isRealCanDel,"is-edit":r.isEdit||!1,"show-action":!l.isPreview,onMove:e=>A(c,e),onDelete:e=>E(c),examAnswerRelationType:r.examAnswerRelationType,onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)}),null,16,["order-index","richTextContent","is-set","is-save","is-edit","show-action","onMove","onDelete","examAnswerRelationType","onSave","onEdit","onAdd"])):"page_end"===r.answerType?(e.openBlock(),e.createBlock(o.default,{"total-page":w.value.filter((e=>"page_end"===e.answerType)).length,key:c,"current-page-index":f(r.customId),item:r,"order-index":c,"is-edit":r.isEdit||!1,"is-set":r.hasSet||!1,"is-save":!r.isRealCanDel,examAnswerRelationType:r.examAnswerRelationType,onMove:e=>A(c,e),onDelete:e=>E(c),onSave:e=>R(c,e),onEdit:e=>r.isEdit=!0,onAdd:e=>T(e,c,null)},null,8,["total-page","current-page-index","item","order-index","is-edit","is-set","is-save","examAnswerRelationType","onMove","onDelete","onSave","onEdit","onAdd"])):e.createCommentVNode("v-if",!0)])))),128))])],2))}});exports.default=u;
2
2
  //# sourceMappingURL=subject-list.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-list.vue.cjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// import isEqual from 'lodash/isEqual'\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst currentList = ref([] as any)\nconst emits = defineEmits(['setRelation'])\n\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n let totalPageIndex = 0\n let isLastPageIndex = false\n currentList.value.map((v: any, i: number, arr: any) => {\n if (v.answerType === 'page_end') {\n totalPageIndex++\n isLastPageIndex = i === arr.length - 1\n }\n })\n // 假设最后是一个分页器认为是最后一页\n return isLastPageIndex ? totalPageIndex : totalPageIndex + 1\n}\n\nfunction currentPageIndex() {\n return (currentId: any) => {\n const currentPageList = currentList.value.filter(\n (v: any) => v.answerType === 'page_end'\n )\n let currentIndex = 0\n currentPageList?.forEach((c: any, i: number) => {\n if (currentId === c.id) {\n currentIndex = i + 1\n }\n })\n return currentIndex\n }\n}\n\nfunction addSubject(type: string, index: number, examAnswerRelationType: number | null) {\n console.log(index, 'index')\n if (index || index === 0) {\n currentList.value.splice(index + 1, 0, {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: examAnswerRelationType,\n })\n }\n else {\n currentList.value.push({\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: examAnswerRelationType,\n })\n }\n}\n\nfunction addExam(item: any) {\n const answerList: any[] = []\n item.answers?.map((v: any) => {\n answerList.push({\n ...v,\n title: v.answer,\n answerId: v.examAnswerId,\n isCorrect: v.isCorrect,\n })\n })\n currentList.value.push({\n ...item,\n customId: setGuid(),\n answerType: item.richTextContent ? 'rich_text' : item.examTypeEnum,\n answers: answerList,\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n })\n}\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n }\n else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n for (let idx = 0; idx < currentList.value.length; idx++) {\n if (index === idx) {\n currentList.value[index] =\n {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n }\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string,) {\n // 给examId设置答案关联\n if (answerRelations.length) {\n currentList.value?.map((v: any) => {\n if(v.customId === customId) {\n v.answers?.map((c: any) => {\n // 判断类型\n if(c.customAnswerId === customAnswerId) {\n c.answerRelations = answerRelations\n }\n })\n }\n })\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div v-for=\"(item, index) in currentList\" :key=\"index + item.examId || item.title\">\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle \n v-bind=\"attrs\" \n :order-index=\"index\" \n :title=\"item.title\" \n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :isKey=\"item.isKey\" \n :is-save=\"!item.isRealCanDel\" \n :customId=\"item.customId\" \n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\" \n :analysis=\"item.analysis\" \n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\" \n :show-action=\"!isPreview\" \n :exam-expand=\"item.examExpand\"\n :answerCheckType=\"item.answerCheckType\" \n :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\"\n @setRelation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\" />\n </template>\n <SubjectScale v-bind=\"attrs\" v-else-if=\"item.answerType === 'scale'\" :order-index=\"index\" :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :is-edit=\"item.isEdit || false\" :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectBlankFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'blank_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectTextFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'text_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\" :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\" @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectRichText v-bind=\"attrs\" v-else-if=\"item.answerType === 'rich_text'\" :order-index=\"index\"\n :richTextContent=\"item.richTextContent\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\" :show-action=\"!isPreview\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" :examAnswerRelationType=\"item.examAnswerRelationType\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectPageEnd v-else-if=\"item.answerType === 'page_end'\" :total-page=\"totalPageIndex()\" :key=\"index\"\n :current-page-index=\"currentPageIndex()(item.id)\" :item=\"item\" :order-index=\"index\"\n :is-edit=\"item.isEdit || false\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","currentList","ref","emits","__emit","attrs","useAttrs","totalPageIndex","isLastPageIndex","value","map","v","i","arr","answerType","length","addSubject","type","index","examAnswerRelationType","console","log","splice","customId","setGuid","analysis","scaleQuestionList","isSave","isEdit","isRealCanDel","hasSet","push","move","item","saveSubject","idx","deleteSubject","ElMessage","success","setRelation","examAnswers","__expose","uploadExcel","list","concat","addExam","answerList","answers","title","answer","answerId","examAnswerId","isCorrect","richTextContent","examTypeEnum","setAnswerRelation","answerRelations","customAnswerId","c","watch","subjectList","newList","immediate","ns","useNamespace","currentId","currentPageList","filter","currentIndex","forEach","id"],"mappings":"0sBAeA,MAAMA,EAAQC,EAIRC,EAAcC,EAAIA,IAAA,IAClBC,EAAQC,EAERC,EAAQC,EAAAA,WAUd,SAASC,IACP,IAAIA,EAAiB,EACjBC,GAAkB,EAQf,OAPPP,EAAYQ,MAAMC,KAAI,CAACC,EAAQC,EAAWC,KACnB,aAAjBF,EAAEG,aACJP,IACkBC,EAAAI,IAAMC,EAAIE,OAAS,EAAA,IAIlCP,EAAkBD,EAAiBA,EAAiB,CAAA,CAkBpD,SAAAS,EAAWC,EAAcC,EAAeC,GACvCC,QAAAC,IAAIH,EAAO,SACfA,GAAmB,IAAVA,EACXjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAG,CACrCK,SAAUC,EAAAA,UACVV,WAAYG,EACZQ,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRX,2BAIFlB,EAAYQ,MAAMsB,KAAK,CACrBR,SAAUC,EAAAA,UACVV,WAAYG,EACZQ,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRX,0BAEJ,CA4BO,SAAAa,EAAKd,EAAeD,GACvB,GAAS,OAATA,GAAiBC,EAAQ,EAAG,CAC9B,MAAOe,GAAQhC,EAAYQ,MAAMa,OAAOJ,EAAO,GAC/CjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAGe,EAAI,SAE3B,SAAThB,GAAmBC,EAAQjB,EAAYQ,MAAMM,OAAS,EAAG,CAChE,MAAOkB,GAAQhC,EAAYQ,MAAMa,OAAOJ,EAAO,GAC/CjB,EAAYQ,MAAMa,OAAOJ,EAAQ,EAAG,EAAGe,EAAI,CAC7C,CAGO,SAAAC,EAAYhB,EAAee,GAClC,IAAA,IAASE,EAAM,EAAGA,EAAMlC,EAAYQ,MAAMM,OAAQoB,IAC5CjB,IAAUiB,IACAlC,EAAAQ,MAAMS,GAClB,IACKjB,EAAYQ,MAAMS,MAClBe,EACHL,QAAQ,EACRT,uBAAwBc,EAAKd,wBAGnC,CAGF,SAASiB,EAAclB,GACTjB,EAAAQ,MAAMa,OAAOJ,EAAO,GAChCmB,EAAAA,UAAUC,QAAQ,OAAM,CAGjB,SAAAC,EAAYhB,EAAkBiB,GAC/BrC,EAAA,cAAeoB,EAAUiB,EAAW,CA1H/BC,EAAA,CACXzB,aACAf,cACAyC,YAoFF,SAAqBC,GACnB1C,EAAYQ,MAAQR,EAAYQ,MAAMmC,OAAOD,EAAI,EApFjDE,QA8DF,SAAiBZ,GACf,MAAMa,EAAoB,GACrBb,EAAAc,SAASrC,KAAKC,IACjBmC,EAAWf,KAAK,IACXpB,EACHqC,MAAOrC,EAAEsC,OACTC,SAAUvC,EAAEwC,aACZC,UAAWzC,EAAEyC,WACd,IAEHnD,EAAYQ,MAAMsB,KAAK,IAClBE,EACHV,SAAUC,EAAAA,UACVV,WAAYmB,EAAKoB,gBAAkB,YAAcpB,EAAKqB,aACtDP,QAASD,EACTnB,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,GACT,EAhFDyB,kBAwHO,SAAkBC,EAAsBjC,EAAkBkC,GAE7DD,EAAgBzC,QACNd,EAAAQ,OAAOC,KAAKC,IACnBA,EAAEY,WAAaA,GACdZ,EAAAoC,SAASrC,KAAKgD,IAEXA,EAAED,iBAAmBA,IACtBC,EAAEF,gBAAkBA,EAAA,GAEvB,GAGP,IAGFG,EAAAA,OAAM,IAAM5D,EAAM6D,cAAcC,IAC1BA,IACU5D,EAAAQ,MAAQ,IAAIoD,GAAO,GAEhC,CAAEC,WAAW,IAEV,MAAAC,EAAKC,eAAa,goIA7Hf,CAACC,IACA,MAAAC,EAAkBjE,EAAYQ,MAAM0D,QACvCxD,GAA4B,aAAjBA,EAAEG,aAEhB,IAAIsD,EAAe,EAMZ,OALUF,GAAAG,SAAQ,CAACX,EAAQ9C,KAC5BqD,IAAcP,EAAEY,KAClBF,EAAexD,EAAI,EAAA,IAGhBwD,CAAA"}
1
+ {"version":3,"file":"subject-list.vue.cjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst currentList = ref([] as any)\nconst emits = defineEmits(['setRelation'])\n\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n return currentList.value.filter((v: any) => v.answerType === 'page_end').length\n}\n\nfunction currentPageIndex(currentId: any) {\n const currentPageList = currentList.value.filter((v: any) => v.answerType === 'page_end')\n const currentIndex = currentPageList.findIndex((c: any) => c.customId === currentId)\n return currentIndex + 1\n}\n\nfunction addPageEnd() {\n currentList.value.push({\n customId: setGuid(),\n answerType: 'page_end',\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: 0,\n })\n}\n\nfunction addSubject(type: string, index: number | null = null, examAnswerRelationType: number | null = null) {\n const newSubject = {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType,\n }\n\n if (index !== null) {\n currentList.value.splice(index + 1, 0, newSubject)\n } else {\n currentList.value.push(newSubject)\n }\n}\n\nfunction addExam(item: any) {\n const answerList = item.answers?.map((v: any) => ({\n ...v,\n title: v.answer,\n answerId: v.examAnswerId,\n isCorrect: v.isCorrect,\n })) || []\n\n currentList.value.push({\n ...item,\n customId: setGuid(),\n answerType: item.richTextContent ? 'rich_text' : item.examTypeEnum,\n answers: answerList,\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n })\n\n if (item.pageIndex - currentPageIndex(item.customId) === 1) {\n addPageEnd()\n }\n\n if (currentPageIndex(item.customId) > 1) {\n addPageEnd()\n }\n}\n\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n } else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n currentList.value[index] = {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string) {\n if (answerRelations.length) {\n const targetItem = currentList.value.find((v: any) => v.customId === customId)\n if (targetItem) {\n const targetAnswer = targetItem.answers?.find((c: any) => c.customAnswerId === customAnswerId)\n if (targetAnswer) {\n targetAnswer.answerRelations = answerRelations\n }\n }\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div v-for=\"(item, index) in currentList\" :key=\"item.customId\" class=\"subject-item\">\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle \n v-bind=\"attrs\" \n :order-index=\"index\" \n :title=\"item.title\" \n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :isKey=\"item.isKey\" \n :is-save=\"!item.isRealCanDel\" \n :customId=\"item.customId\" \n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\" \n :analysis=\"item.analysis\" \n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\" \n :show-action=\"!isPreview\" \n :exam-expand=\"item.examExpand\"\n :answerCheckType=\"item.answerCheckType\" \n :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\"\n @setRelation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\" />\n </template>\n <SubjectScale v-bind=\"attrs\" v-else-if=\"item.answerType === 'scale'\" :order-index=\"index\" :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :is-edit=\"item.isEdit || false\" :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectBlankFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'blank_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\" :exam-rich-text-content=\"item.examRichTextContent\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectTextFill v-bind=\"attrs\" v-else-if=\"item.answerType === 'text_fill'\" :order-index=\"index\"\n :title=\"item.title\" :is-save=\"!item.isRealCanDel\" :is-set=\"item.hasSet || false\" :answer-list=\"item.answers\"\n :analysis=\"item.analysis\" :show-action=\"!isPreview\" :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\" :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\" @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectRichText v-bind=\"attrs\" v-else-if=\"item.answerType === 'rich_text'\" :order-index=\"index\"\n :richTextContent=\"item.richTextContent\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\" :show-action=\"!isPreview\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" :examAnswerRelationType=\"item.examAnswerRelationType\"\n @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n <SubjectPageEnd v-else-if=\"item.answerType === 'page_end'\" :total-page=\"totalPageIndex()\" :key=\"index\"\n :current-page-index=\"currentPageIndex(item.customId)\" :item=\"item\" :order-index=\"index\"\n :is-edit=\"item.isEdit || false\" :is-set=\"item.hasSet || false\" :is-save=\"!item.isRealCanDel\"\n :examAnswerRelationType=\"item.examAnswerRelationType\" @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\" @save=\"(item: any) => saveSubject(index, item)\" @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","currentList","ref","emits","__emit","attrs","useAttrs","currentPageIndex","currentId","value","filter","v","answerType","findIndex","c","customId","addPageEnd","push","setGuid","analysis","scaleQuestionList","isSave","isEdit","isRealCanDel","hasSet","examAnswerRelationType","addSubject","type","index","newSubject","splice","move","item","length","saveSubject","deleteSubject","ElMessage","success","setRelation","examAnswers","__expose","uploadExcel","list","concat","addExam","answerList","answers","map","title","answer","answerId","examAnswerId","isCorrect","richTextContent","examTypeEnum","pageIndex","setAnswerRelation","answerRelations","customAnswerId","targetItem","find","targetAnswer","watch","subjectList","newList","immediate","ns","useNamespace"],"mappings":"0sBAcA,MAAMA,EAAQC,EAIRC,EAAcC,EAAIA,IAAA,IAClBC,EAAQC,EAERC,EAAQC,EAAAA,WAcd,SAASC,EAAiBC,GAGxB,OAFwBP,EAAYQ,MAAMC,QAAQC,GAA4B,aAAjBA,EAAEC,aAC1BC,WAAWC,GAAWA,EAAEC,WAAaP,IACpD,CAAA,CAGxB,SAASQ,IACPf,EAAYQ,MAAMQ,KAAK,CACrBF,SAAUG,EAAAA,UACVN,WAAY,WACZO,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRC,uBAAwB,GACzB,CAGH,SAASC,EAAWC,EAAcC,EAAuB,KAAMH,EAAwC,MACrG,MAAMI,EAAa,CACjBd,SAAUG,EAAAA,UACVN,WAAYe,EACZR,SAAU,GACVC,kBAAmB,GACnBC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRC,0BAGY,OAAVG,EACF3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGC,GAE3B5B,EAAAQ,MAAMQ,KAAKY,EACzB,CAmCO,SAAAE,EAAKH,EAAeD,GACvB,GAAS,OAATA,GAAiBC,EAAQ,EAAG,CAC9B,MAAOI,GAAQ/B,EAAYQ,MAAMqB,OAAOF,EAAO,GAC/C3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGI,EAAI,SACzB,SAATL,GAAmBC,EAAQ3B,EAAYQ,MAAMwB,OAAS,EAAG,CAClE,MAAOD,GAAQ/B,EAAYQ,MAAMqB,OAAOF,EAAO,GAC/C3B,EAAYQ,MAAMqB,OAAOF,EAAQ,EAAG,EAAGI,EAAI,CAC7C,CAGO,SAAAE,EAAYN,EAAeI,GACtB/B,EAAAQ,MAAMmB,GAAS,IACtB3B,EAAYQ,MAAMmB,MAClBI,EACHV,QAAQ,EACRG,uBAAwBO,EAAKP,uBAC/B,CAGF,SAASU,EAAcP,GACT3B,EAAAQ,MAAMqB,OAAOF,EAAO,GAChCQ,EAAAA,UAAUC,QAAQ,OAAM,CAGjB,SAAAC,EAAYvB,EAAkBwB,GAC/BpC,EAAA,cAAeY,EAAUwB,EAAW,CA7G/BC,EAAA,CACXd,aACAzB,cACAwC,YA6EF,SAAqBC,GACnBzC,EAAYQ,MAAQR,EAAYQ,MAAMkC,OAAOD,EAAI,EA7EjDE,QAgDF,SAAiBZ,GACf,MAAMa,EAAab,EAAKc,SAASC,KAAKpC,IAAY,IAC7CA,EACHqC,MAAOrC,EAAEsC,OACTC,SAAUvC,EAAEwC,aACZC,UAAWzC,EAAEyC,eACR,GAEPnD,EAAYQ,MAAMQ,KAAK,IAClBe,EACHjB,SAAUG,EAAAA,UACVN,WAAYoB,EAAKqB,gBAAkB,YAAcrB,EAAKsB,aACtDR,QAASD,EACTxB,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,IAGNQ,EAAKuB,UAAYhD,EAAiByB,EAAKjB,WAAc,GAC5CC,IAGTT,EAAiByB,EAAKjB,UAAY,GACzBC,GACb,EAxEAwC,kBA2GO,SAAkBC,EAAsB1C,EAAkB2C,GACjE,GAAID,EAAgBxB,OAAQ,CACpB,MAAA0B,EAAa1D,EAAYQ,MAAMmD,MAAMjD,GAAWA,EAAEI,WAAaA,IACrE,GAAI4C,EAAY,CACR,MAAAE,EAAeF,EAAWb,SAASc,MAAM9C,GAAWA,EAAE4C,iBAAmBA,IAC3EG,IACFA,EAAaJ,gBAAkBA,EACjC,CACF,CACF,IAGFK,EAAAA,OAAM,IAAM/D,EAAMgE,cAAcC,IAC1BA,IACU/D,EAAAQ,MAAQ,IAAIuD,GAAO,GAEhC,CAAEC,WAAW,IAEV,MAAAC,EAAKC,eAAa,6mIAzHflE,EAAYQ,MAAMC,QAAQC,GAA4B,aAAjBA,EAAEC,aAA2BqB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qxs-bns/components",
3
3
  "type": "module",
4
- "version": "0.0.34",
4
+ "version": "0.0.36",
5
5
  "description": "Vue 3 Component Library",
6
6
  "license": "MIT",
7
7
  "homepage": "https://trry-hub.github.io/qxs-bns/",
@@ -1,7 +1,5 @@
1
1
  declare const QxsSubjectAction: import("../withInstall").SFCWithInstall<import("vue").DefineComponent<globalThis.ExtractPropTypes<{
2
- isEdit: {
3
- type: BooleanConstructor;
4
- };
2
+ isEdit: BooleanConstructor;
5
3
  isSet: {
6
4
  type: BooleanConstructor;
7
5
  default: boolean;
@@ -29,17 +27,15 @@ declare const QxsSubjectAction: import("../withInstall").SFCWithInstall<import("
29
27
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
28
  delete: (...args: any[]) => void;
31
29
  add: (...args: any[]) => void;
32
- moveUp: (...args: any[]) => void;
33
- moveDown: (...args: any[]) => void;
30
+ "move-up": (...args: any[]) => void;
31
+ "move-down": (...args: any[]) => void;
34
32
  save: (...args: any[]) => void;
35
33
  edit: (...args: any[]) => void;
36
- onShowRichText: (...args: any[]) => void;
37
- setKey: (...args: any[]) => void;
38
- setAnswerSetting: (...args: any[]) => void;
34
+ "on-show-rich-text": (...args: any[]) => void;
35
+ "set-key": (...args: any[]) => void;
36
+ "set-answer-setting": (...args: any[]) => void;
39
37
  }, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
40
- isEdit: {
41
- type: BooleanConstructor;
42
- };
38
+ isEdit: BooleanConstructor;
43
39
  isSet: {
44
40
  type: BooleanConstructor;
45
41
  default: boolean;
@@ -67,13 +63,13 @@ declare const QxsSubjectAction: import("../withInstall").SFCWithInstall<import("
67
63
  }>> & Readonly<{
68
64
  onDelete?: ((...args: any[]) => any) | undefined;
69
65
  onAdd?: ((...args: any[]) => any) | undefined;
70
- onMoveUp?: ((...args: any[]) => any) | undefined;
71
- onMoveDown?: ((...args: any[]) => any) | undefined;
66
+ "onMove-up"?: ((...args: any[]) => any) | undefined;
67
+ "onMove-down"?: ((...args: any[]) => any) | undefined;
72
68
  onSave?: ((...args: any[]) => any) | undefined;
73
69
  onEdit?: ((...args: any[]) => any) | undefined;
74
- onOnShowRichText?: ((...args: any[]) => any) | undefined;
75
- onSetKey?: ((...args: any[]) => any) | undefined;
76
- onSetAnswerSetting?: ((...args: any[]) => any) | undefined;
70
+ "onOn-show-rich-text"?: ((...args: any[]) => any) | undefined;
71
+ "onSet-key"?: ((...args: any[]) => any) | undefined;
72
+ "onSet-answer-setting"?: ((...args: any[]) => any) | undefined;
77
73
  }>, {
78
74
  isEdit: boolean;
79
75
  isSet: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/components/src/subject-action/index.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGAAyB,CAAA;AAE/C,OAAO,EACL,gBAAgB,EACjB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/components/src/subject-action/index.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGAAyB,CAAA;AAE/C,OAAO,EACL,gBAAgB,EACjB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,7 +1,5 @@
1
1
  declare const _default: import("vue").DefineComponent<globalThis.ExtractPropTypes<{
2
- isEdit: {
3
- type: BooleanConstructor;
4
- };
2
+ isEdit: BooleanConstructor;
5
3
  isSet: {
6
4
  type: BooleanConstructor;
7
5
  default: boolean;
@@ -29,17 +27,15 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
29
27
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
28
  delete: (...args: any[]) => void;
31
29
  add: (...args: any[]) => void;
32
- moveUp: (...args: any[]) => void;
33
- moveDown: (...args: any[]) => void;
30
+ "move-up": (...args: any[]) => void;
31
+ "move-down": (...args: any[]) => void;
34
32
  save: (...args: any[]) => void;
35
33
  edit: (...args: any[]) => void;
36
- onShowRichText: (...args: any[]) => void;
37
- setKey: (...args: any[]) => void;
38
- setAnswerSetting: (...args: any[]) => void;
34
+ "on-show-rich-text": (...args: any[]) => void;
35
+ "set-key": (...args: any[]) => void;
36
+ "set-answer-setting": (...args: any[]) => void;
39
37
  }, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
40
- isEdit: {
41
- type: BooleanConstructor;
42
- };
38
+ isEdit: BooleanConstructor;
43
39
  isSet: {
44
40
  type: BooleanConstructor;
45
41
  default: boolean;
@@ -67,13 +63,13 @@ declare const _default: import("vue").DefineComponent<globalThis.ExtractPropType
67
63
  }>> & Readonly<{
68
64
  onDelete?: ((...args: any[]) => any) | undefined;
69
65
  onAdd?: ((...args: any[]) => any) | undefined;
70
- onMoveUp?: ((...args: any[]) => any) | undefined;
71
- onMoveDown?: ((...args: any[]) => any) | undefined;
66
+ "onMove-up"?: ((...args: any[]) => any) | undefined;
67
+ "onMove-down"?: ((...args: any[]) => any) | undefined;
72
68
  onSave?: ((...args: any[]) => any) | undefined;
73
69
  onEdit?: ((...args: any[]) => any) | undefined;
74
- onOnShowRichText?: ((...args: any[]) => any) | undefined;
75
- onSetKey?: ((...args: any[]) => any) | undefined;
76
- onSetAnswerSetting?: ((...args: any[]) => any) | undefined;
70
+ "onOn-show-rich-text"?: ((...args: any[]) => any) | undefined;
71
+ "onSet-key"?: ((...args: any[]) => any) | undefined;
72
+ "onSet-answer-setting"?: ((...args: any[]) => any) | undefined;
77
73
  }>, {
78
74
  isEdit: boolean;
79
75
  isSet: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"subject-action.vue.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAm1BA,wBAmCG"}
1
+ {"version":3,"file":"subject-action.vue.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAs3BA,wBAiCG"}
@@ -2,7 +2,7 @@ declare const QxsSubjectList: import("../withInstall").SFCWithInstall<import("vu
2
2
  subjectList: any[];
3
3
  isPreview: boolean;
4
4
  }, {
5
- addSubject: (type: string, index: number, examAnswerRelationType: number | null) => void;
5
+ addSubject: (type: string, index?: number | null, examAnswerRelationType?: number | null) => void;
6
6
  currentList: globalThis.Ref<any, any>;
7
7
  uploadExcel: (list: any[]) => void;
8
8
  addExam: (item: any) => void;
@@ -2,7 +2,7 @@ type __VLS_Props = {
2
2
  subjectList: any[];
3
3
  isPreview: boolean;
4
4
  };
5
- declare function addSubject(type: string, index: number, examAnswerRelationType: number | null): void;
5
+ declare function addSubject(type: string, index?: number | null, examAnswerRelationType?: number | null): void;
6
6
  declare function addExam(item: any): void;
7
7
  declare function uploadExcel(list: any[]): void;
8
8
  declare function setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"subject-list.vue.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"names":[],"mappings":"AAmQA,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,EAAE,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC;AA4CF,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,GAAG,IAAI,QA4BrF;AAED,iBAAS,OAAO,CAAC,IAAI,EAAE,GAAG,QAoBzB;AACD,iBAAS,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAE/B;AAoCD,iBAAS,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,QAcxF;;;;;;;;;;;;AAwdD,wBAQG"}
1
+ {"version":3,"file":"subject-list.vue.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"names":[],"mappings":"AAgPA,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,EAAE,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC;AAwCF,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,EAAE,sBAAsB,GAAE,MAAM,GAAG,IAAW,QAkB1G;AAED,iBAAS,OAAO,CAAC,IAAI,EAAE,GAAG,QA0BzB;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAE/B;AA8BD,iBAAS,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,QAUxF;;;;;;;;;;;;AA0dD,wBAQG"}