@qxs-bns/components 0.0.80 → 0.0.82
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.
- package/es/package.json.mjs +1 -1
- package/es/src/subject-action/src/subject-action.vue.mjs +1 -1
- package/es/src/subject-action/src/subject-action.vue.mjs.map +1 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +1 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +1 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +1 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +1 -1
- package/es/src/subject-list/src/components/subject-scale.vue.mjs +1 -1
- package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +1 -1
- package/es/src/subject-list/src/components/subject-single.vue.mjs +1 -1
- package/es/src/subject-list/src/components/subject-single.vue.mjs.map +1 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +1 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +1 -1
- package/es/src/subject-list/src/subject-list.vue.mjs +1 -1
- package/es/src/subject-list/src/subject-list.vue.mjs.map +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/src/subject-action/src/subject-action.vue.cjs +1 -1
- package/lib/src/subject-action/src/subject-action.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +1 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +1 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs +1 -1
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/components/subject-single.vue.cjs +1 -1
- package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +1 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +1 -1
- package/lib/src/subject-list/src/subject-list.vue.cjs +1 -1
- package/lib/src/subject-list/src/subject-list.vue.cjs.map +1 -1
- package/package.json +4 -3
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/image-upload.css +1 -1
- package/theme-chalk/src/image-upload.scss +2 -1
- package/theme-chalk/src/normalize.css +1 -1
- package/theme-chalk/src/normalize.scss +4 -132
- package/types/src/data-chart/src/components/area.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/bar.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/card.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/empty.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/funnel.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/line.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/pie.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/radar.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/scatter.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/table.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/data-chart.vue.d.ts.map +1 -1
- package/types/src/file-upload/src/file-upload.vue.d.ts.map +1 -1
- package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +1 -1
- package/types/src/icon/src/icon.vue.d.ts.map +1 -1
- package/types/src/image-upload/src/image-upload.vue.d.ts +3 -3
- package/types/src/image-upload/src/image-upload.vue.d.ts.map +1 -1
- package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts.map +1 -1
- package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
- package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-single.vue.d.ts +1 -1
- package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
- package/types/src/subject-type/src/subject-type.vue.d.ts.map +1 -1
- package/types/src/tiny-mce-editor/index.d.ts.map +1 -1
- package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts.map +1 -1
- package/types/tsconfig.tsbuildinfo +1 -1
package/es/package.json.mjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
var r="0.0.
|
1
|
+
var r="0.0.82";export{r as version};
|
2
2
|
//# sourceMappingURL=package.json.mjs.map
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,ref as l,computed as a,
|
1
|
+
import{defineComponent as e,ref as l,computed as a,createElementBlock as t,openBlock as o,normalizeClass as u,unref as n,createElementVNode as i,createCommentVNode as s,createVNode as d,createBlock as c,withCtx as m,createTextVNode as f,Fragment as r,renderList as p,toDisplayString as v}from"vue";import{Edit as y,Delete as _,Top as b,Bottom as k}from"@element-plus/icons-vue";import{useNamespace as h}from"@qxs-bns/hooks";import{ElPopover as w,ElLink as x,ElCheckbox as V,ElButton as g,ElIcon as C,ElDialog as j,ElRadioGroup as O,ElRadio as S}from"element-plus";import T from"../../subject-type/src/subject-type.vue.mjs";const U={key:0,class:"flex-justify-between"},B={class:"flex-justify-between"},E={key:0,class:"has-set"},R={key:1,class:"flex flex-justify-end action-buttons"};var A=e({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},showRichText:{type:Boolean,default:!0},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(e,{emit:A}){const K=e,z=A,D=l(K.isKey),N=l(!1),q=l(K.answerCheckType),Q=h("subject-action"),F=l(!0),G=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],H=a(()=>G.find(e=>e.value===q.value)?.label);function I(){N.value=!1,z("setAnswerSetting",q.value)}function J(){z("setKey",D.value)}function L(e,l){z("add",e,l?K.examAnswerRelationType:null)}return(l,a)=>(o(),t("div",{class:u(n(Q).e("action-exam"))},[i("div",{class:u(["action flex flex-justify-between",{active:e.isEdit}])},[s(" 编辑模式 "),e.isEdit?(o(),t("div",U,[d(n(w),{trigger:"click"},{reference:m(()=>[d(n(x),{type:"primary",class:"btn-margin"},{default:m(()=>a[15]||(a[15]=[f(" +在此题后加入新题 ",-1)])),_:1,__:[15]})]),default:m(()=>[d(T,{onSelect:L})]),_:1}),e.showRichText?(o(),c(n(x),{key:0,type:"primary",class:"btn-margin",onClick:a[0]||(a[0]=e=>z("onShowRichText"))},{default:m(()=>a[16]||(a[16]=[f(" +添加题目描述(图文) ",-1)])),_:1,__:[16]})):s("v-if",!0),e.showOtherOption?(o(),c(n(x),{key:1,type:"primary",class:"btn-margin",onClick:a[1]||(a[1]=e=>N.value=!0)},{default:m(()=>a[17]||(a[17]=[f(" 答题设置 ",-1)])),_:1,__:[17]})):s("v-if",!0),e.showOtherOption?(o(),c(n(V),{key:2,modelValue:D.value,"onUpdate:modelValue":a[2]||(a[2]=e=>D.value=e),label:"核心题",onChange:J},null,8,["modelValue"])):s("v-if",!0)])):(o(),t(r,{key:1},[s(" 非编辑模式 "),i("div",B,[e.showOtherOption?(o(),c(n(V),{key:0,modelValue:D.value,"onUpdate:modelValue":a[3]||(a[3]=e=>D.value=e),label:"核心题",disabled:""},null,8,["modelValue"])):s("v-if",!0),e.showOtherOption?(o(),c(n(V),{key:1,modelValue:F.value,"onUpdate:modelValue":a[4]||(a[4]=e=>F.value=e),label:H.value,disabled:"",class:"btn-margin"},null,8,["modelValue","label"])):s("v-if",!0)])],2112)),s(" 操作按钮 "),i("div",null,[e.isSet?(o(),t("div",E," *此题设置了跳题逻辑 ")):(o(),t("div",R,[e.isEdit?(o(),t(r,{key:1},[d(n(g),{class:"btn-margin",onClick:a[9]||(a[9]=e=>z("delete"))},{default:m(()=>a[22]||(a[22]=[f(" 删除 ",-1)])),_:1,__:[22]}),d(n(g),{type:"primary",onClick:a[10]||(a[10]=e=>z("save"))},{default:m(()=>a[23]||(a[23]=[f(" 完成编辑 ",-1)])),_:1,__:[23]})],64)):(o(),t(r,{key:0},[e.pageEnd?s("v-if",!0):(o(),c(n(g),{key:0,onClick:a[5]||(a[5]=e=>z("edit"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(y))]),_:1})]),default:m(()=>[a[18]||(a[18]=f(" 编辑 ",-1))]),_:1,__:[18]})),d(n(g),{onClick:a[6]||(a[6]=e=>z("delete"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(_))]),_:1})]),default:m(()=>[a[19]||(a[19]=f(" 删除 ",-1))]),_:1,__:[19]}),d(n(g),{onClick:a[7]||(a[7]=e=>z("moveUp"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(b))]),_:1})]),default:m(()=>[a[20]||(a[20]=f(" 上移 ",-1))]),_:1,__:[20]}),d(n(g),{onClick:a[8]||(a[8]=e=>z("moveDown"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(k))]),_:1})]),default:m(()=>[a[21]||(a[21]=f(" 下移 ",-1))]),_:1,__:[21]})],64))]))]),s(" 答题设置弹窗 "),d(n(j),{modelValue:N.value,"onUpdate:modelValue":a[13]||(a[13]=e=>N.value=e),title:"答题设置",class:"customize-dialog",onClose:a[14]||(a[14]=e=>N.value=!1)},{footer:m(()=>[d(n(g),{class:"customize-button",type:"primary",plain:"",onClick:a[12]||(a[12]=e=>N.value=!1)},{default:m(()=>a[24]||(a[24]=[f(" 取消 ",-1)])),_:1,__:[24]}),d(n(g),{class:"customize-button",type:"primary",plain:"",onClick:I},{default:m(()=>a[25]||(a[25]=[f(" 保存 ",-1)])),_:1,__:[25]})]),default:m(()=>[d(n(O),{modelValue:q.value,"onUpdate:modelValue":a[11]||(a[11]=e=>q.value=e),class:"vertical-radio-group"},{default:m(()=>[(o(),t(r,null,p(G,e=>d(n(S),{key:e.value,value:e.value},{default:m(()=>[f(v(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 { computed, ref } from 'vue'\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 showRichText: {\n type: Boolean,\n default: true,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst emits = defineEmits([\n 'moveUp',\n 'moveDown',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'onShowRichText',\n 'setKey',\n 'setAnswerSetting',\n])\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\nconst checked = ref(true)\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('setAnswerSetting', answerType.value)\n}\n\nfunction setKey() {\n emits('setKey', 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\n class=\"action flex flex-justify-between\"\n :class=\"{ active: isEdit }\"\n >\n <!-- 编辑模式 -->\n <div\n v-if=\"isEdit\"\n class=\"flex-justify-between\"\n >\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link\n type=\"primary\"\n class=\"btn-margin\"\n >\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link\n v-if=\"showRichText\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"emits('onShowRichText')\"\n >\n +添加题目描述(图文)\n </el-link>\n <el-link\n v-if=\"showOtherOption\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"showAnswerSetting = true\"\n >\n 答题设置\n </el-link>\n <el-checkbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n />\n </div>\n\n <!-- 非编辑模式 -->\n <div\n v-else\n class=\"flex-justify-between\"\n >\n <el-checkbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n />\n <el-checkbox\n v-if=\"showOtherOption\"\n v-model=\"checked\"\n :label=\"answerText\"\n disabled\n class=\"btn-margin\"\n />\n </div>\n\n <!-- 操作按钮 -->\n <div>\n <div\n v-if=\"isSet\"\n class=\"has-set\"\n >\n *此题设置了跳题逻辑\n </div>\n <div\n v-else\n class=\"flex flex-justify-end action-buttons\"\n >\n <template v-if=\"!isEdit\">\n <el-button\n v-if=\"!pageEnd\"\n @click=\"emits('edit')\"\n >\n <template #icon>\n <el-icon><Edit /></el-icon>\n </template>\n 编辑\n </el-button>\n <el-button @click=\"emits('delete')\">\n <template #icon>\n <el-icon><Delete /></el-icon>\n </template>\n 删除\n </el-button>\n <el-button @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon><Top /></el-icon>\n </template>\n 上移\n </el-button>\n <el-button @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon><Bottom /></el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button\n class=\"btn-margin\"\n @click=\"emits('delete')\"\n >\n 删除\n </el-button>\n <el-button\n type=\"primary\"\n @click=\"emits('save')\"\n >\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n\n <!-- 答题设置弹窗 -->\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>\n"],"names":["props","__props","emits","__emit","isKey","ref","showAnswerSetting","answerType","answerCheckType","ns","useNamespace","checked","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","selectExam","type","canSet","examAnswerRelationType","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","active","isEdit","_createCommentVNode","_openBlock","_hoisted_1","_createVNode","_component_el_popover","trigger","reference","_component_el_link","_cache","SubjectType","onSelect","showRichText","_createBlock","onClick","showOtherOption","_component_el_checkbox","$event","onChange","_Fragment","key","_hoisted_2","disabled","isSet","_hoisted_3","_hoisted_4","_component_el_button","pageEnd","icon","_component_el_icon","Edit","Delete","Top","Bottom","_component_el_dialog","title","onClose","footer","plain","_component_el_radio_group","_renderList","_component_el_radio","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
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 { ElButton, ElCheckbox, ElDialog, ElIcon, ElLink, ElPopover, ElRadio, ElRadioGroup } from 'element-plus'\nimport { computed, ref } from 'vue'\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 showRichText: {\n type: Boolean,\n default: true,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst emits = defineEmits([\n 'moveUp',\n 'moveDown',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'onShowRichText',\n 'setKey',\n 'setAnswerSetting',\n])\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\nconst checked = ref(true)\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('setAnswerSetting', answerType.value)\n}\n\nfunction setKey() {\n emits('setKey', 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\n class=\"action flex flex-justify-between\"\n :class=\"{ active: isEdit }\"\n >\n <!-- 编辑模式 -->\n <div\n v-if=\"isEdit\"\n class=\"flex-justify-between\"\n >\n <ElPopover trigger=\"click\">\n <template #reference>\n <ElLink\n type=\"primary\"\n class=\"btn-margin\"\n >\n +在此题后加入新题\n </ElLink>\n </template>\n <SubjectType @select=\"selectExam\" />\n </ElPopover>\n <ElLink\n v-if=\"showRichText\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"emits('onShowRichText')\"\n >\n +添加题目描述(图文)\n </ElLink>\n <ElLink\n v-if=\"showOtherOption\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"showAnswerSetting = true\"\n >\n 答题设置\n </ElLink>\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n />\n </div>\n\n <!-- 非编辑模式 -->\n <div\n v-else\n class=\"flex-justify-between\"\n >\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n />\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"checked\"\n :label=\"answerText\"\n disabled\n class=\"btn-margin\"\n />\n </div>\n\n <!-- 操作按钮 -->\n <div>\n <div\n v-if=\"isSet\"\n class=\"has-set\"\n >\n *此题设置了跳题逻辑\n </div>\n <div\n v-else\n class=\"flex flex-justify-end action-buttons\"\n >\n <template v-if=\"!isEdit\">\n <ElButton\n v-if=\"!pageEnd\"\n @click=\"emits('edit')\"\n >\n <template #icon>\n <ElIcon><Edit /></ElIcon>\n </template>\n 编辑\n </ElButton>\n <ElButton @click=\"emits('delete')\">\n <template #icon>\n <ElIcon><Delete /></ElIcon>\n </template>\n 删除\n </ElButton>\n <ElButton @click=\"emits('moveUp')\">\n <template #icon>\n <ElIcon><Top /></ElIcon>\n </template>\n 上移\n </ElButton>\n <ElButton @click=\"emits('moveDown')\">\n <template #icon>\n <ElIcon><Bottom /></ElIcon>\n </template>\n 下移\n </ElButton>\n </template>\n <template v-else>\n <ElButton\n class=\"btn-margin\"\n @click=\"emits('delete')\"\n >\n 删除\n </ElButton>\n <ElButton\n type=\"primary\"\n @click=\"emits('save')\"\n >\n 完成编辑\n </ElButton>\n </template>\n </div>\n </div>\n\n <!-- 答题设置弹窗 -->\n <ElDialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n @close=\"showAnswerSetting = false\"\n >\n <ElRadioGroup\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <ElRadio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </ElRadio>\n </ElRadioGroup>\n <template #footer>\n <ElButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </ElButton>\n <ElButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </ElButton>\n </template>\n </ElDialog>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","isKey","ref","showAnswerSetting","answerType","answerCheckType","ns","useNamespace","checked","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","selectExam","type","canSet","examAnswerRelationType","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","active","isEdit","_createCommentVNode","_openBlock","_hoisted_1","_createVNode","ElPopover","trigger","reference","ElLink","_cache","SubjectType","onSelect","showRichText","_createBlock","onClick","showOtherOption","ElCheckbox","$event","onChange","_Fragment","key","_hoisted_2","disabled","isSet","_hoisted_3","_hoisted_4","ElButton","pageEnd","icon","ElIcon","Edit","Delete","Top","Bottom","ElDialog","title","onClose","footer","plain","ElRadioGroup","_renderList","ElRadio","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,onMounted as t,
|
1
|
+
import{defineComponent as e,onMounted as t,createElementBlock as o,openBlock as n,normalizeClass as a,unref as r,createVNode as s,withCtx as i,createElementVNode as l,toDisplayString as d}from"vue";import{useNamespace as u}from"@qxs-bns/hooks";import{ElRow as p}from"element-plus";import m from"../../../subject-action/src/subject-action.vue.mjs";var c=e({name:"QxsSubjectScale",__name:"SubjectPageEnd",props:{currentPageIndex:{type:Number,required:!0},totalPage:{type:Number,required:!0},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:c}){const x=e,y=c;t(function(){});const v=u("subject-end");return(e,t)=>(n(),o("div",{class:a(r(v).e("end-exam"))},[s(r(p),{type:"flex",align:"middle"},{default:i(()=>[t[5]||(t[5]=l("span",{class:"auto-line"},null,-1)),l("span",null,"第"+d(x.currentPageIndex)+" / "+d(e.totalPage)+"页",1),t[6]||(t[6]=l("span",{class:"auto-line"},null,-1))]),_:1,__:[5,6]}),s(m,{"is-edit":!1,"is-set":e.isSet,"page-end":!0,"exam-answer-relation-type":x.examAnswerRelationType,"show-other-option":!1,"show-rich-text":!1,onMoveUp:t[0]||(t[0]=e=>y("move","up")),onMoveDown:t[1]||(t[1]=e=>y("move","down")),onDelete:t[2]||(t[2]=e=>y("delete")),onEdit:t[3]||(t[3]=e=>y("edit")),onAdd:t[4]||(t[4]=e=>y("add",e))},null,8,["is-set","exam-answer-relation-type"])],2))}});export{c as default};
|
2
2
|
//# sourceMappingURL=SubjectPageEnd.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SubjectPageEnd.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { onMounted } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n currentPageIndex: number\n totalPage: number\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nfunction init() {\n\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-end')\n</script>\n\n<template>\n <div :class=\"ns.e('end-exam')\">\n <
|
1
|
+
{"version":3,"file":"SubjectPageEnd.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElRow } from 'element-plus'\nimport { onMounted } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n currentPageIndex: number\n totalPage: number\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nfunction init() {\n\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-end')\n</script>\n\n<template>\n <div :class=\"ns.e('end-exam')\">\n <ElRow\n type=\"flex\"\n align=\"middle\"\n >\n <span class=\"auto-line\" />\n <span>第{{ props.currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </ElRow>\n <SubjectAction\n :is-edit=\"false\"\n :is-set=\"isSet\"\n :page-end=\"true\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n :show-other-option=\"false\"\n :show-rich-text=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","onMounted","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","ElRow","type","align","_createElementVNode","_toDisplayString","currentPageIndex","totalPage","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onEdit","onAdd","_cache"],"mappings":"ouBASA,MAAMA,EAAQC,EASRC,EAAQC,EAMdC,EAJA,WAEA,GAGA,MAAMC,EAAKC,EAAa,iCAItBC,EAsBM,MAAA,CAtBAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,eACfC,EAOQF,EAAAG,GAAA,CANNC,KAAK,OACLC,MAAM,qBAEN,IAA0B,aAA1BC,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,IACvBQ,EAA6D,OAAA,KAAvD,IAACC,EAAGjB,EAAMkB,kBAAmB,MAAGD,EAAGE,EAAAA,WAAY,IAAC,eACtDH,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,qBAEzBI,EAYEQ,EAAA,CAXC,WAAS,EACT,SAAQC,EAAAA,MACR,YAAU,EACV,4BAA2BrB,EAAMsB,uBACjC,qBAAmB,EACnB,kBAAgB,EAChBC,wBAASrB,EAAK,OAAA,OACdsB,0BAAWtB,EAAK,OAAA,SAChBuB,wBAAQvB,EAAK,WACbwB,sBAAMxB,EAAK,SACXyB,MAAGC,EAAA,KAAAA,EAAA,GAAEd,GAAQZ,QAAaY"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,useAttrs as l,ref as t,watch as a,onMounted as i,
|
1
|
+
import{defineComponent as e,useAttrs as l,ref as t,watch as a,onMounted as i,createElementBlock as s,openBlock as n,normalizeClass as o,unref as u,createVNode as r,withCtx as d,createBlock as v,createCommentVNode as c,createElementVNode as m,createTextVNode as f,Fragment as p,renderList as x,toDisplayString as y,mergeProps as w}from"vue";import{Plus as g}from"@element-plus/icons-vue";import{useNamespace as h}from"@qxs-bns/hooks";import{ElInput as _,ElLink as b,ElCheckboxGroup as k,ElCheckbox as j,ElTag as C,ElButton as I,ElIcon as V,ElMessage as S}from"element-plus";import A from"../../../subject-action/src/subject-action.vue.mjs";import q from"../../../subject-layout/src/subject-layout.vue.mjs";import O from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const T={class:"preview"},R={class:"content"},B={class:"title"},U={key:0},L=["innerHTML"],E={key:1,class:"flex flex-wrap",style:{"margin-top":"10px",color:"#a8abb2"}},M={class:"flex"},D={style:{flex:"1"}},H={class:"flex flex-justify-end"},N={class:"margin-bottom flex flex-items-center"},z={class:"margin-bottom answer-list"},F={class:"label flex flex-justify-end"},G={class:"answer-tags"},J={key:0,class:"margin-bottom flex"},K={style:{flex:"1"}},P={key:1,class:"margin-bottom flex"},Q={style:{flex:"1"}},W={class:"flex flex-justify-end"};var X=e({__name:"subject-blank-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:X}){const Y=e,Z=X,$=l(),ee=t([]),le=t(""),te=t(""),ae=t(!1),ie=t(""),se=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],ne=t(["isIgnoreCase"]);function oe(){le.value+=" ______",ee.value.push({title:"",tag:"",showInput:!1})}function ue(){ae.value=!1,ie.value=""}function re(){le.value?ee.value.length<1?S.error("至少添加一个填空符!"):Z("save",{title:le.value.replaceAll(/ ______/g,"<filter></filter>"),answers:ee.value.map(e=>({title:e.title,isCorrect:!0})),analysis:te.value,isSetCorrectAnswer:!0,examAnswerSettingBO:{isIgnoreCase:ne.value?.includes("isIgnoreCase"),isInOrder:ne.value?.includes("isInOrder")},examRichTextContent:ae.value?ie.value:""}):S.error("题目标题不能为空!")}a(()=>le.value,()=>{const[...e]=le.value.matchAll(/ ______/g);if(e.length!==ee.value.length){const l=ee.value.length-e.length;ee.value.splice(ee.value.length-l,l)}}),i(function(){Y.title&&(le.value=Y.title.replaceAll(/<filter><\/filter>/g," ______")),Y.answerList&&Y.answerList.length&&(ee.value=Y.answerList),Y.examAnswerSettingVO&&(ne.value=ne.value.filter(e=>"isIgnoreCase"===e&&Y.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&Y.examAnswerSettingVO?.isInOrder)),Y.analysis&&(te.value=Y.analysis),Y.examRichTextContent&&(ie.value=Y.examRichTextContent,ae.value=!0)});const de=h("subject-blank-fill");return(e,l)=>(n(),s("div",{class:o(u(de).e("blank-fill-exam"))},[r(q,{"show-edit":e.isEdit},{preview:d(()=>[m("div",T,[m("div",R,[m("span",B,y(e.orderIndex+1)+"."+y(le.value)+"(填空题)",1),ae.value?(n(),s("div",U,[m("div",{class:"rich-text",innerHTML:ie.value},null,8,L)])):c("v-if",!0),ee.value.some(e=>e.title)?(n(),s("div",E,[l[10]||(l[10]=m("span",{class:"title"},"正确答案:",-1)),(n(!0),s(p,null,x(ee.value,(e,l)=>(n(),s("div",{key:l,class:"flex flex-wrap flex-items-center",style:{"margin-right":"10px"}},[m("span",null,"填空"+y(l+1)+":",1),m("span",null,y(e.title),1)]))),128))])):c("v-if",!0)])])]),edit:d(()=>[m("div",M,[l[11]||(l[11]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"题目:")],-1)),m("div",D,[r(u(_),{modelValue:le.value,"onUpdate:modelValue":l[0]||(l[0]=e=>le.value=e),type:"textarea",rows:7,"show-word-limit":"",maxlength:"400",placeholder:"【填空题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])]),m("div",H,[c(' <el-link\n v-if="!showRichText"\n type="primary"\n @click="showRichText = true"\n >\n 添加富文本\n </el-link> '),r(u(b),{class:"margin-left-10",type:"primary",disabled:e.isSave,onClick:oe},{default:d(()=>l[12]||(l[12]=[f(" 插入填空符 ",-1)])),_:1,__:[12]},8,["disabled"])]),m("div",N,[l[13]||(l[13]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"答题设置:")],-1)),(n(),s(p,null,x(se,e=>r(u(k),{key:e.value,modelValue:ne.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ne.value=e)},{default:d(()=>[r(u(j),{value:e.value,class:"margin-left-10"},{default:d(()=>[f(y(e.label),1)]),_:2},1032,["value"])]),_:2},1032,["modelValue"])),64))]),m("div",z,[(n(!0),s(p,null,x(ee.value,(l,t)=>(n(),s("div",{key:t,class:"answer-item flex flex-items-center"},[m("div",F,[m("span",null,"第"+y(t+1)+"空答案:",1)]),m("div",G,[(n(!0),s(p,null,x(l.title.split(","),e=>(n(),s(p,{key:e},[e?(n(),v(u(C),{key:0,closable:"",onClose:t=>function(e,l){if(e){const t=l.title.split(","),a=t.findIndex(l=>l===e);a>-1&&(t.splice(a,1),l.title=t.join(","))}}(e,l)},{default:d(()=>[f(y(e),1)]),_:2},1032,["onClose"])):c("v-if",!0)],64))),128)),e.isSave?c("v-if",!0):(n(),s(p,{key:0},[l.showInput?(n(),v(u(_),{key:0,modelValue:l.tag,"onUpdate:modelValue":e=>l.tag=e,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(l)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(n(),v(u(I),{key:1,size:"small",onClick:e=>l.showInput=!0},{default:d(()=>[r(u(V),null,{default:d(()=>[r(u(g))]),_:1}),m("span",null,y(l.title?"添加同义词":"添加答案"),1)]),_:2},1032,["onClick"]))],64))])]))),128))]),e.showAnalysis?(n(),s("div",J,[l[14]||(l[14]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"解析:")],-1)),m("div",K,[r(u(_),{modelValue:te.value,"onUpdate:modelValue":l[2]||(l[2]=e=>te.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):c("v-if",!0),ae.value?(n(),s("div",P,[l[16]||(l[16]=m("div",{class:"label flex flex-justify-center"},[m("span",null,"富文本:")],-1)),m("div",Q,[r(O,w({"model-value":ie.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ie.value=e)},u($),{style:{width:"100%"}}),null,16,["model-value"]),m("div",W,[r(u(b),{type:"danger",onClick:ue},{default:d(()=>l[15]||(l[15]=[f(" 删除富文本 ",-1)])),_:1,__:[15]})])])])):c("v-if",!0)]),default:d(()=>[e.showAction?(n(),v(A,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":Y.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>Z("move","up")),onMoveDown:l[5]||(l[5]=e=>Z("move","down")),onDelete:l[6]||(l[6]=e=>Z("delete")),onSave:re,onEdit:l[7]||(l[7]=e=>Z("edit")),onAdd:l[8]||(l[8]=e=>Z("add",e)),onOnShowRichText:l[9]||(l[9]=e=>ae.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):c("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{X as default};
|
2
2
|
//# sourceMappingURL=subject-blank-fill.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subject-blank-fill.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport { onMounted, ref, useAttrs, watch } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n isEdit: boolean\n isSet: boolean\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n }\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n tag: string\n showInput: boolean\n}[]>([])\n\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\n\nconst checkList = [\n {\n label: '答案不分顺序',\n value: 'isInOrder',\n },\n {\n label: '忽略大小写',\n value: 'isIgnoreCase',\n },\n]\n\nconst isCheckList = ref(['isIgnoreCase'])\n\nfunction handleAddTag(item: any) {\n item.showInput = false\n if (item.tag) {\n item.title = item.title ? [item.title, item.tag].join(',') : item.tag\n item.tag = ''\n }\n}\n\nfunction closeTag(tag: string, item: any) {\n if (tag) {\n const tags = item.title.split(',')\n const index = tags.findIndex((i: string) => i === tag)\n if (index > -1) {\n tags.splice(index, 1)\n item.title = tags.join(',')\n }\n }\n}\n\nfunction addBlank() {\n title.value += ' ______'\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n\n if (answers.value.length < 1) {\n ElMessage.error('至少添加一个填空符!')\n return\n }\n\n emits('save', {\n title: title.value.replaceAll(/ ______/g, '<filter></filter>'),\n answers: answers.value.map((item: any) => {\n return { title: item.title, isCorrect: true }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: true,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n },\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title.replaceAll(/<filter><\\/filter>/g, ' ______')\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter((item: any) =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nwatch(() => title.value, () => {\n const [...matchs] = title.value.matchAll(/ ______/g)\n if (matchs.length !== answers.value.length) {\n const differ = answers.value.length - matchs.length\n answers.value.splice(answers.value.length - differ, differ)\n }\n})\n\nonMounted(init)\nconst ns = useNamespace('subject-blank-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('blank-fill-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div class=\"content\">\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(填空题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <el-link\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </el-link>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox\n :value=\"item.value\"\n class=\"margin-left-10\"\n >\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <el-tag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </el-tag>\n </template>\n <template v-if=\"!isSave\">\n <el-input\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <el-button\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <el-icon><Plus /></el-icon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </el-button>\n </template>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAnalysis\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div\n v-if=\"showRichText\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor\n v-model:model-value=\"richText\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","showRichText","richText","checkList","label","value","isCheckList","addBlank","push","tag","showInput","deleteRichText","save","length","ElMessage","error","replaceAll","map","item","isCorrect","isSetCorrectAnswer","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","watch","matchs","matchAll","differ","splice","onMounted","answerList","examAnswerSettingVO","filter","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","orderIndex","_hoisted_4","innerHTML","some","_openBlock","_hoisted_6","_cache","_Fragment","_renderList","index","key","style","edit","_hoisted_7","_hoisted_8","_component_el_input","$event","type","rows","maxlength","placeholder","disabled","isSave","_hoisted_9","_createCommentVNode","_component_el_link","onClick","_hoisted_10","_component_el_checkbox_group","_component_el_checkbox","_createTextVNode","_hoisted_11","_hoisted_12","_hoisted_13","split","i","_createBlock","_component_el_tag","closable","onClose","tags","findIndex","join","closeTag","modelValue","width","onBlur","handleAddTag","_component_el_button","size","_component_el_icon","Plus","showAnalysis","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","TinyMceEditor","_mergeProps","_hoisted_18","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"0wDASA,MAAMA,EAAQC,EAiBRC,EAAQC,EAERC,EAAQC,IAERC,EAAUC,EAIX,IAECC,EAAQD,EAAI,IACZE,EAAWF,EAAI,IACfG,EAAeH,GAAI,GACnBI,EAAWJ,EAAI,IAEfK,EAAY,CAChB,CACEC,MAAO,SACPC,MAAO,aAET,CACED,MAAO,QACPC,MAAO,iBAILC,GAAcR,EAAI,CAAC,iBAqBzB,SAASS,KACPR,EAAMM,OAAS,UACfR,EAAQQ,MAAMG,KAAK,CACjBT,MAAO,GACPU,IAAK,GACLC,WAAW,GAEf,CAEA,SAASC,KACPV,EAAaI,OAAQ,EACrBH,EAASG,MAAQ,EACnB,CAEA,SAASO,KACFb,EAAMM,MAKPR,EAAQQ,MAAMQ,OAAS,EACzBC,EAAUC,MAAM,cAIlBtB,EAAM,OAAQ,CACZM,MAAOA,EAAMM,MAAMW,WAAW,WAAY,qBAC1CnB,QAASA,EAAQQ,MAAMY,IAAKC,IACnB,CAAEnB,MAAOmB,EAAKnB,MAAOoB,WAAW,KAEzCnB,SAAUA,EAASK,MACnBe,oBAAoB,EACpBC,oBAAqB,CACnBC,aAAchB,GAAYD,OAAOkB,SAAS,gBAC1CC,UAAWlB,GAAYD,OAAOkB,SAAS,cAEzCE,oBAAqBxB,EAAaI,MAAQH,EAASG,MAAQ,KApB3DS,EAAUC,MAAM,YAsBpB,CA6BAW,EAAM,IAAM3B,EAAMM,MAAO,KACvB,SAAUsB,GAAU5B,EAAMM,MAAMuB,SAAS,YACzC,GAAID,EAAOd,SAAWhB,EAAQQ,MAAMQ,OAAQ,CAC1C,MAAMgB,EAAShC,EAAQQ,MAAMQ,OAASc,EAAOd,OAC7ChB,EAAQQ,MAAMyB,OAAOjC,EAAQQ,MAAMQ,OAASgB,EAAQA,EACtD,IAGFE,EAnCA,WACMxC,EAAMQ,QACRA,EAAMM,MAAQd,EAAMQ,MAAMiB,WAAW,sBAAuB,YAG1DzB,EAAMyC,YAAczC,EAAMyC,WAAWnB,SACvChB,EAAQQ,MAAQd,EAAMyC,YAGpBzC,EAAM0C,sBAER3B,GAAYD,MAAQC,GAAYD,MAAM6B,OAAQhB,GAClC,iBAATA,GAA2B3B,EAAM0C,qBAAqBX,cAC1C,cAATJ,GAAwB3B,EAAM0C,qBAAqBT,YAIvDjC,EAAMS,WACRA,EAASK,MAAQd,EAAMS,UAGrBT,EAAMkC,sBACRvB,EAASG,MAAQd,EAAMkC,oBACvBxB,EAAaI,OAAQ,EAEzB,GAWA,MAAM8B,GAAKC,EAAa,+KAItBC,EAoLM,MAAA,CApLAC,MAAKC,EAAEC,EAAAL,IAAGM,EAAC,sBACfC,EAkLgBC,EAAA,CAlLA,YAAWC,EAAAA,QAAM,CACpBC,UACT,IA0BM,CA1BNC,EA0BM,MA1BNC,EA0BM,CAzBJD,EAwBM,MAxBNE,EAwBM,CAvBJF,EAAgE,OAAhEG,EAAgEC,EAAzCC,EAAAA,cAAiB,IAACD,EAAGnD,EAAAM,OAAQ,QAAK,GAC9CJ,EAAAI,WAAXgC,EAKM,MAAAe,EAAA,CAJJN,EAGE,MAAA,CAFAR,MAAM,YACNe,UAAQnD,EAAAG,iCAIJR,EAAAQ,MAAQiD,KAAMpC,GAASA,EAAKnB,QADpCwD,IAAAlB,EAeM,MAfNmB,EAeM,CAVJC,EAAA,MAAAA,EAAA,IAAAX,EAAgC,OAAA,CAA1BR,MAAM,SAAQ,SAAK,KACzBiB,GAAA,GAAAlB,EAQMqB,EAAA,KAAAC,EAPoB9D,EAAAQ,MAAO,CAAvBa,EAAM0C,SADhBvB,EAQM,MAAA,CANHwB,IAAKD,EACNtB,MAAM,mCACNwB,MAAA,CAAA,eAAA,UAEAhB,EAA+B,OAAA,KAAzB,KAAEI,EAAGU,KAAY,IAAC,GACxBd,EAA6B,OAAA,KAAAI,EAApBhC,EAAKnB,OAAK,mCAMlBgE,OACT,IAeM,CAfNjB,EAeM,MAfNkB,EAeM,eAdJlB,EAEM,MAAA,CAFDR,MAAM,+BAA6B,CACtCQ,EAAgB,YAAV,aAERA,EAUM,MAVNmB,EAUM,CATJvB,EAQEwB,EAAA,YAPSnE,EAAAM,2CAAAN,EAAKM,MAAA8D,GACdC,KAAK,WACJC,KAAM,EACP,kBAAA,GACAC,UAAU,MACVC,YAAY,aACXC,SAAUC,EAAAA,8CAIjB3B,EAgBM,MAhBN4B,EAgBM,CAfJC,EAAA,4KAOAjC,EAOUkC,EAAA,CANRtC,MAAM,iBACN8B,KAAK,UACJI,SAAUC,EAAAA,OACVI,QAAOtE,eACT,IAEDkD,EAAA,MAAAA,EAAA,IAAA,GAFC,WAED,qCAEFX,EAiBM,MAjBNgC,EAiBM,eAhBJhC,EAEM,MAAA,CAFDR,MAAM,+BAA6B,CACtCQ,EAAkB,YAAZ,oBAGRT,EAWoBqB,EAAA,KAAAC,EAVHxD,EAARe,GADTwB,EAWoBqC,EAAA,CATjBlB,IAAK3C,EAAKb,iBACFC,GAAAD,2CAAAC,GAAWD,MAAA8D,eAEpB,IAKc,CALdzB,EAKcsC,EAAA,CAJX3E,MAAOa,EAAKb,MACbiC,MAAM,6BAEN,IAAgB,CAAb2C,EAAA/B,EAAAhC,EAAKd,OAAK,8DAInB0C,EAyCM,MAzCNoC,EAyCM,EAxCJ3B,GAAA,GAAAlB,EAuCMqB,EAAA,KAAAC,EAtCoB9D,EAAAQ,MAAO,CAAvBa,EAAM0C,SADhBvB,EAuCM,MAAA,CArCHwB,IAAKD,EACNtB,MAAM,uCAENQ,EAEM,MAFNqC,EAEM,CADJrC,EAAiC,OAAA,KAA3B,IAACI,EAAGU,KAAY,OAAI,KAG5Bd,EA6BM,MA7BNsC,EA6BM,EA5BJ7B,GAAA,GAAAlB,EAWWqB,SAVGxC,EAAKnB,MAAMsF,WAAhBC,iBACDA,GAAC,CAGCA,OADRC,EAMSC,EAAA,OAJPC,SAAA,GACCC,QAAKvB,GAhMxB,SAAkB1D,EAAaS,GAC7B,GAAIT,EAAK,CACP,MAAMkF,EAAOzE,EAAKnB,MAAMsF,MAAM,KACxBzB,EAAQ+B,EAAKC,UAAWN,GAAcA,IAAM7E,GAC9CmD,GAAQ,IACV+B,EAAK7D,OAAO8B,EAAO,GACnB1C,EAAKnB,MAAQ4F,EAAKE,KAAK,KAE3B,CACF,CAuL0BC,CAASR,EAAGpE,eAEpB,IAAO,KAAJoE,GAAC,uDAGSb,EAAAA,yBAAjBpC,EAeWqB,EAAA,CAAAG,IAAA,GAAA,CAbD3C,EAAKR,eADb6E,EAKErB,EAAA,OAHS6B,WAAA7E,EAAKT,IAAL,sBAAA0D,GAAAjD,EAAKT,IAAG0D,EACjBL,MAAA,CAAAkC,MAAA,QACCC,OAAI,IAlNvB,SAAsB/E,GACpBA,EAAKR,WAAY,EACbQ,EAAKT,MACPS,EAAKnB,MAAQmB,EAAKnB,MAAQ,CAACmB,EAAKnB,MAAOmB,EAAKT,KAAKoF,KAAK,KAAO3E,EAAKT,IAClES,EAAKT,IAAM,GAEf,CA4M+ByF,CAAahF,gEAE5BqE,EAOYY,GAAA,OALVC,KAAK,QACJvB,QAAKV,GAAEjD,EAAKR,WAAS,cAEtB,IAA2B,CAA3BgC,EAA2B2D,EAAA,KAAA,WAAlB,IAAQ,CAAR3D,EAAQF,EAAA8D,YACjBxD,EAAgD,OAAA,KAAAI,EAAvChC,EAAKnB,MAAK,QAAA,QAAA,iDAOrBwG,EAAAA,cADRhD,IAAAlB,EAeM,MAfNmE,EAeM,eAXJ1D,EAEM,MAAA,CAFDR,MAAM,+BAA6B,CACtCQ,EAAgB,YAAV,aAERA,EAOM,MAPN2D,EAOM,CANJ/D,EAKEwB,EAAA,YAJSlE,EAAAK,2CAAAL,EAAQK,MAAA8D,GACjBC,KAAK,WACJC,KAAM,EACPE,YAAY,oDAKVtE,EAAAI,OADRkD,IAAAlB,EAsBM,MAtBNqE,EAsBM,eAlBJ5D,EAEM,MAAA,CAFDR,MAAM,kCAAgC,CACzCQ,EAAiB,YAAX,cAERA,EAcM,MAdN6D,EAcM,CAbJjE,EAIEkE,EAJFC,EAIE,CAHQ,cAAa3G,EAAAG,2CAAAH,EAAQG,MAAA8D,IACrB3B,EAAA7C,GAAK,CACbmE,MAAA,CAAAkC,MAAA,UAAoB,KAAA,GAAA,CAAA,gBAEtBlD,EAOM,MAPNgE,EAOM,CANJpE,EAKUkC,EAAA,CAJRR,KAAK,SACJS,QAAOlE,eACT,IAED8C,EAAA,MAAAA,EAAA,IAAA,GAFC,WAED,oDAKR,IAaE,CAZMsD,EAAAA,gBADRxB,EAaEyB,EAAA,OAXC,UAASpE,EAAAA,OACT,SAAQqE,EAAAA,MACR,qBAAmB,EACnB,4BAA2B1H,EAAM2H,uBACjCC,wBAAS1H,EAAK,OAAA,OACd2H,0BAAW3H,EAAK,OAAA,SAChB4H,wBAAQ5H,EAAK,WACb6H,OAAM1G,GACN2G,sBAAM9H,EAAK,SACX+H,MAAG/D,EAAA,KAAAA,EAAA,GAAEW,GAAQ3E,QAAa2E,IAC1BqD,gCAAmBxH,EAAAI,OAAY"}
|
1
|
+
{"version":3,"file":"subject-blank-fill.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElButton, ElCheckbox, ElCheckboxGroup, ElIcon, ElInput, ElLink, ElMessage, ElTag } from 'element-plus'\nimport { onMounted, ref, useAttrs, watch } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n isEdit: boolean\n isSet: boolean\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n }\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n tag: string\n showInput: boolean\n}[]>([])\n\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\n\nconst checkList = [\n {\n label: '答案不分顺序',\n value: 'isInOrder',\n },\n {\n label: '忽略大小写',\n value: 'isIgnoreCase',\n },\n]\n\nconst isCheckList = ref(['isIgnoreCase'])\n\nfunction handleAddTag(item: any) {\n item.showInput = false\n if (item.tag) {\n item.title = item.title ? [item.title, item.tag].join(',') : item.tag\n item.tag = ''\n }\n}\n\nfunction closeTag(tag: string, item: any) {\n if (tag) {\n const tags = item.title.split(',')\n const index = tags.findIndex((i: string) => i === tag)\n if (index > -1) {\n tags.splice(index, 1)\n item.title = tags.join(',')\n }\n }\n}\n\nfunction addBlank() {\n title.value += ' ______'\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n\n if (answers.value.length < 1) {\n ElMessage.error('至少添加一个填空符!')\n return\n }\n\n emits('save', {\n title: title.value.replaceAll(/ ______/g, '<filter></filter>'),\n answers: answers.value.map((item: any) => {\n return { title: item.title, isCorrect: true }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: true,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n },\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title.replaceAll(/<filter><\\/filter>/g, ' ______')\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter((item: any) =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nwatch(() => title.value, () => {\n const [...matchs] = title.value.matchAll(/ ______/g)\n if (matchs.length !== answers.value.length) {\n const differ = answers.value.length - matchs.length\n answers.value.splice(answers.value.length - differ, differ)\n }\n})\n\nonMounted(init)\nconst ns = useNamespace('subject-blank-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('blank-fill-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div class=\"content\">\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(填空题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <ElLink\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </ElLink>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <ElCheckboxGroup\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <ElCheckbox\n :value=\"item.value\"\n class=\"margin-left-10\"\n >\n {{ item.label }}\n </ElCheckbox>\n </ElCheckboxGroup>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <ElTag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </ElTag>\n </template>\n <template v-if=\"!isSave\">\n <ElInput\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <ElButton\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <ElIcon><Plus /></ElIcon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </ElButton>\n </template>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAnalysis\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div\n v-if=\"showRichText\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor\n v-model:model-value=\"richText\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n <div class=\"flex flex-justify-end\">\n <ElLink\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </ElLink>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","showRichText","richText","checkList","label","value","isCheckList","addBlank","push","tag","showInput","deleteRichText","save","length","ElMessage","error","replaceAll","map","item","isCorrect","isSetCorrectAnswer","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","watch","matchs","matchAll","differ","splice","onMounted","answerList","examAnswerSettingVO","filter","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","orderIndex","_hoisted_4","innerHTML","some","_openBlock","_hoisted_6","_cache","_Fragment","_renderList","index","key","style","edit","_hoisted_7","_hoisted_8","ElInput","$event","type","rows","maxlength","placeholder","disabled","isSave","_hoisted_9","_createCommentVNode","ElLink","onClick","_hoisted_10","ElCheckboxGroup","ElCheckbox","_createTextVNode","_hoisted_11","_hoisted_12","_hoisted_13","split","i","_createBlock","ElTag","closable","onClose","tags","findIndex","join","closeTag","modelValue","width","onBlur","handleAddTag","ElButton","size","ElIcon","Plus","showAnalysis","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","TinyMceEditor","_mergeProps","_hoisted_18","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,useAttrs as l,ref as a,computed as t,onMounted as s,
|
1
|
+
import{defineComponent as e,useAttrs as l,ref as a,computed as t,onMounted as s,createElementBlock as i,openBlock as n,normalizeClass as u,unref as o,createVNode as d,withCtx as r,createBlock as c,createCommentVNode as v,createElementVNode as p,Fragment as m,renderList as f,toDisplayString as x,mergeProps as y,createTextVNode as h}from"vue";import{CirclePlus as w,Remove as b}from"@element-plus/icons-vue";import{useNamespace as g}from"@qxs-bns/hooks";import{ElInput as j,ElIcon as C,ElLink as S,ElRow as k,ElCol as V,ElRadio as q,ElMessage as _}from"element-plus";import L from"../../../subject-action/src/subject-action.vue.mjs";import T from"../../../subject-layout/src/subject-layout.vue.mjs";import A from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const R={class:"preview"},U={class:"title"},M={key:0},E=["innerHTML"],Q={class:"answer-radio flex-col"},B={style:{flex:"1"}},O={class:"answer flex"},D={class:"flex"},H={class:"answer-list flex-col"},I={class:"order"},N={class:"flex",style:{"margin-bottom":"20px"}},$={style:{flex:"1"}},P={key:0,class:"margin-bottom flex"},z={style:{flex:"1"}},F={class:"flex flex-justify-end"};var G=e({name:"QxsSubjectScale",__name:"subject-scale",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},rowTitle:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},scaleQuestionList:{type:null,required:!1},examRichTextContent:{type:String,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:G}){const J=e,K=G,W=l(),X=a([{title:""},{title:""},{title:""},{title:""},{title:""}]),Y=a(""),Z=a(""),ee=a(""),le=a(!1),ae=a(""),te=a([]),se=t(()=>Math.ceil(24/(X.value.length+1)));function ie(){5!==X.value.length&&X.value.push({title:""})}function ne(){le.value=!1,ae.value=""}function ue(){if(!Y.value)return void _.error("题目标题不能为空!");let e="";X.value.forEach((l,a)=>{l.title||(e+=`选项${String.fromCharCode(65+a)}未填写。`)}),e?_.error(e):ee.value?(te.value=ee.value.split("\n").filter(e=>e),K("save",{title:Y.value,answers:X.value,analysis:Z.value,scaleQuestionList:te.value,examRichTextContent:le.value?ae.value:""})):_.error("行标题不能为空!")}s(function(){J.title&&(Y.value=J.title),J.answerList&&J.answerList.length&&(X.value=J.answerList),J.analysis&&(Z.value=J.analysis),J.scaleQuestionList&&(te.value=J.scaleQuestionList,ee.value=te.value.join("\n")),J.examRichTextContent&&(ae.value=J.examRichTextContent,le.value=!0)});const oe=g("subject-scale");return(e,l)=>(n(),i("div",{class:u(o(oe).e("scale-exam"))},[d(T,{"show-edit":e.isEdit},{preview:r(()=>[p("div",R,[p("div",null,[p("span",U,x(e.orderIndex+1)+"."+x(Y.value)+"(量表题)",1),le.value?(n(),i("div",M,[p("div",{class:"rich-text",innerHTML:ae.value},null,8,E)])):v("v-if",!0)]),p("div",Q,[d(o(k),{style:{padding:"10px 0"}},{default:r(()=>[d(o(V),{span:se.value},null,8,["span"]),(n(!0),i(m,null,f(X.value,e=>(n(),c(o(V),{key:e.title,class:"flex flex-center",span:se.value},{default:r(()=>[p("span",null,x(e.title),1)]),_:2},1032,["span"]))),128))]),_:1}),(n(!0),i(m,null,f(te.value,e=>(n(),c(o(k),{key:e,style:{padding:"10px 0"}},{default:r(()=>[d(o(V),{span:se.value,class:"flex flex-center"},{default:r(()=>[p("span",null,x(e),1)]),_:2},1032,["span"]),(n(!0),i(m,null,f(X.value.length,e=>(n(),c(o(V),{key:e,class:"radio-item flex flex-center",span:se.value},{default:r(()=>[d(o(q),{disabled:!0})]),_:2},1032,["span"]))),128))]),_:2},1024))),128))])])]),edit:r(()=>[p("div",{class:u(["flex",[{"margin-bottom":le.value}]])},[l[10]||(l[10]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"题目:")],-1)),p("div",B,[d(o(j),{modelValue:Y.value,"onUpdate:modelValue":l[0]||(l[0]=e=>Y.value=e),type:"textarea",rows:2,placeholder:"【量表题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])],2),p("div",O,[l[11]||(l[11]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"行标题:")],-1)),p("div",D,[d(o(j),{modelValue:ee.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ee.value=e),type:"textarea",placeholder:"请输入行标题",style:{width:"160px"},rows:10},null,8,["modelValue"]),p("div",H,[(n(!0),i(m,null,f(X.value,(l,a)=>(n(),i("div",{key:a,class:"answer-item flex flex-items-center"},[p("span",I,x(String.fromCharCode(65+a))+".",1),d(o(j),{modelValue:l.title,"onUpdate:modelValue":e=>l.title=e,class:"input","show-word-limit":"",maxlength:10,placeholder:`选项${String.fromCharCode(65+a)}`,disabled:e.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),v(' <PlusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length === 5 }]"\n @click="addAnswer"\n />\n <MinusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length < 3 }]"\n @click="deleteAnswer(index)"\n /> '),d(o(C),{class:"icon"},{default:r(()=>[d(o(w),{class:u([{disabled:5===X.value.length}]),onClick:ie},null,8,["class"])]),_:1}),d(o(C),{class:"icon"},{default:r(()=>[d(o(b),{class:u([{disabled:X.value.length<3}]),onClick:e=>function(e){X.value.length<3||X.value.splice(e,1)}(a)},null,8,["class","onClick"])]),_:2},1024)]))),128))])])]),p("div",N,[l[12]||(l[12]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"解析:")],-1)),p("div",$,[d(o(j),{modelValue:Z.value,"onUpdate:modelValue":l[2]||(l[2]=e=>Z.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])]),le.value?(n(),i("div",P,[l[14]||(l[14]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"富文本:")],-1)),p("div",z,[d(A,y({"model-value":ae.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ae.value=e)},o(W),{style:{width:"100%"}}),null,16,["model-value"]),p("div",F,[d(o(S),{type:"danger",onClick:ne},{default:r(()=>l[13]||(l[13]=[h(" 删除富文本 ",-1)])),_:1,__:[13]})])])])):v("v-if",!0)]),default:r(()=>[e.showAction?(n(),c(L,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":J.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>K("move","up")),onMoveDown:l[5]||(l[5]=e=>K("move","down")),onDelete:l[6]||(l[6]=e=>K("delete")),onSave:ue,onEdit:l[7]||(l[7]=e=>K("edit")),onAdd:l[8]||(l[8]=e=>K("add",e)),onOnShowRichText:l[9]||(l[9]=e=>le.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):v("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{G as default};
|
2
2
|
//# sourceMappingURL=subject-scale.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subject-scale.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-scale.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, ref, useAttrs } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n rowTitle?: string\n isEdit: boolean\n isSet: boolean\n scaleQuestionList?: any\n examRichTextContent?: string\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n}[]>([{\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst rowTitle = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst scaleQuestionList = ref<string[]>([])\nconst span = computed(() => Math.ceil(24 / (answers.value.length + 1)))\nfunction addAnswer() {\n if (answers.value.length === 5) {\n return\n }\n answers.value.push({\n title: '',\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n answers.value.forEach((v, i) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n })\n\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n if (!rowTitle.value) {\n ElMessage.error('行标题不能为空!')\n return\n }\n\n scaleQuestionList.value = rowTitle.value.split('\\n').filter(i => i)\n\n emits('save', {\n title: title.value,\n answers: answers.value,\n analysis: analysis.value,\n scaleQuestionList: scaleQuestionList.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.scaleQuestionList) {\n scaleQuestionList.value = props.scaleQuestionList\n rowTitle.value = scaleQuestionList.value.join('\\n')\n }\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(量表题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n </div>\n <div class=\"answer-radio flex-col\">\n <el-row style=\"padding: 10px 0;\">\n <el-col :span=\"span\" />\n <el-col\n v-for=\"item in answers\"\n :key=\"item.title\"\n class=\"flex flex-center\"\n :span=\"span\"\n >\n <span>{{ item.title }}</span>\n </el-col>\n </el-row>\n <el-row\n v-for=\"item in scaleQuestionList\"\n :key=\"item\"\n style=\"padding: 10px 0;\"\n >\n <el-col\n :span=\"span\"\n class=\"flex flex-center\"\n >\n <span>{{ item }}</span>\n </el-col>\n <el-col\n v-for=\"i in answers.length\"\n :key=\"i\"\n class=\"radio-item flex flex-center\"\n :span=\"span\"\n >\n <el-radio :disabled=\"true\" />\n </el-col>\n </el-row>\n </div>\n </div>\n </template>\n <template #edit>\n <div\n class=\"flex\"\n :class=\"[{ 'margin-bottom': showRichText }]\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【量表题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"answer flex\">\n <div class=\"label flex flex-justify-center\">\n <span>行标题:</span>\n </div>\n <div class=\"flex\">\n <el-input\n v-model=\"rowTitle\"\n type=\"textarea\"\n placeholder=\"请输入行标题\"\n style=\"width: 160px;\"\n :rows=\"10\"\n />\n <div class=\"answer-list flex-col\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <el-input\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n :maxlength=\"10\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <!-- <PlusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n <MinusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n /> -->\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"flex\"\n style=\"margin-bottom: 20px;\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div\n v-if=\"showRichText\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor\n v-model:model-value=\"richText\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"(type: any) => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","rowTitle","showRichText","richText","scaleQuestionList","span","computed","Math","ceil","value","length","addAnswer","push","deleteRichText","save","ElMessage","error","msg","forEach","v","i","String","fromCharCode","split","filter","examRichTextContent","onMounted","answerList","join","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_toDisplayString","orderIndex","_hoisted_3","innerHTML","_hoisted_5","_component_el_row","style","padding","_component_el_col","_Fragment","_renderList","item","_createBlock","key","_openBlock","_component_el_radio","disabled","edit","_hoisted_6","_component_el_input","$event","type","rows","placeholder","isSave","_hoisted_7","_hoisted_8","width","_hoisted_9","index","_hoisted_10","modelValue","maxlength","_createCommentVNode","_component_el_icon","CirclePlus","onClick","Remove","splice","deleteAnswer","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","TinyMceEditor","_mergeProps","_hoisted_15","_component_el_link","_cache","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"subject-scale.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-scale.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElCol, ElIcon, ElInput, ElLink, ElMessage, ElRadio, ElRow } from 'element-plus'\nimport { computed, onMounted, ref, useAttrs } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n rowTitle?: string\n isEdit: boolean\n isSet: boolean\n scaleQuestionList?: any\n examRichTextContent?: string\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n}[]>([{\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst rowTitle = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst scaleQuestionList = ref<string[]>([])\nconst span = computed(() => Math.ceil(24 / (answers.value.length + 1)))\nfunction addAnswer() {\n if (answers.value.length === 5) {\n return\n }\n answers.value.push({\n title: '',\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n answers.value.forEach((v, i) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n })\n\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n if (!rowTitle.value) {\n ElMessage.error('行标题不能为空!')\n return\n }\n\n scaleQuestionList.value = rowTitle.value.split('\\n').filter(i => i)\n\n emits('save', {\n title: title.value,\n answers: answers.value,\n analysis: analysis.value,\n scaleQuestionList: scaleQuestionList.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.scaleQuestionList) {\n scaleQuestionList.value = props.scaleQuestionList\n rowTitle.value = scaleQuestionList.value.join('\\n')\n }\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(量表题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n </div>\n <div class=\"answer-radio flex-col\">\n <ElRow style=\"padding: 10px 0;\">\n <ElCol :span=\"span\" />\n <ElCol\n v-for=\"item in answers\"\n :key=\"item.title\"\n class=\"flex flex-center\"\n :span=\"span\"\n >\n <span>{{ item.title }}</span>\n </ElCol>\n </ElRow>\n <ElRow\n v-for=\"item in scaleQuestionList\"\n :key=\"item\"\n style=\"padding: 10px 0;\"\n >\n <ElCol\n :span=\"span\"\n class=\"flex flex-center\"\n >\n <span>{{ item }}</span>\n </ElCol>\n <ElCol\n v-for=\"i in answers.length\"\n :key=\"i\"\n class=\"radio-item flex flex-center\"\n :span=\"span\"\n >\n <ElRadio :disabled=\"true\" />\n </ElCol>\n </ElRow>\n </div>\n </div>\n </template>\n <template #edit>\n <div\n class=\"flex\"\n :class=\"[{ 'margin-bottom': showRichText }]\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【量表题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"answer flex\">\n <div class=\"label flex flex-justify-center\">\n <span>行标题:</span>\n </div>\n <div class=\"flex\">\n <ElInput\n v-model=\"rowTitle\"\n type=\"textarea\"\n placeholder=\"请输入行标题\"\n style=\"width: 160px;\"\n :rows=\"10\"\n />\n <div class=\"answer-list flex-col\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <ElInput\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n :maxlength=\"10\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <!-- <PlusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n <MinusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n /> -->\n <ElIcon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n </ElIcon>\n <ElIcon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n />\n </ElIcon>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"flex\"\n style=\"margin-bottom: 20px;\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div\n v-if=\"showRichText\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor\n v-model:model-value=\"richText\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n <div class=\"flex flex-justify-end\">\n <ElLink\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </ElLink>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"(type: any) => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","rowTitle","showRichText","richText","scaleQuestionList","span","computed","Math","ceil","value","length","addAnswer","push","deleteRichText","save","ElMessage","error","msg","forEach","v","i","String","fromCharCode","split","filter","examRichTextContent","onMounted","answerList","join","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_toDisplayString","orderIndex","_hoisted_3","innerHTML","_hoisted_5","ElRow","style","padding","ElCol","_Fragment","_renderList","item","_createBlock","key","_openBlock","ElRadio","disabled","edit","_hoisted_6","ElInput","$event","type","rows","placeholder","isSave","_hoisted_7","_hoisted_8","width","_hoisted_9","index","_hoisted_10","modelValue","maxlength","_createCommentVNode","ElIcon","CirclePlus","onClick","Remove","splice","deleteAnswer","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","TinyMceEditor","_mergeProps","_hoisted_15","ElLink","_cache","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,useAttrs as l,ref as t,computed as a,watch as i,onMounted as s,resolveComponent as n,createElementBlock as r,openBlock as o,normalizeClass as u,unref as d,createVNode as v,createSlots as c,withCtx as m,createBlock as p,createCommentVNode as y,createElementVNode as f,createTextVNode as x,toDisplayString as w,Fragment as h,renderList as C,mergeProps as g}from"vue";import{CirclePlus as b,Remove as k}from"@element-plus/icons-vue";import{useNamespace as S}from"@qxs-bns/hooks";import{setGuid as V}from"@qxs-bns/utils";import{ElMessage as A}from"element-plus";import _ from"../../../subject-action/src/subject-action.vue.mjs";import q from"../../../subject-layout/src/subject-layout.vue.mjs";import T from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const j={class:"preview"},R={class:"title"},I={key:0},E={key:1},U={key:0},B=["innerHTML"],L={class:"preview-answer"},$={class:"order"},K={class:"order"},N={style:{flex:"1"}},z={class:"margin-bottom flex flex-items-center"},M={class:"margin-bottom answer-list"},D={class:"label flex flex-justify-center"},H={key:0,class:"margin-bottom flex flex-items-center"},O={style:{flex:"1"}},Q={key:1,class:"flex"},F={style:{flex:"1"}},G={key:2,class:"margin-bottom flex"},J={style:{flex:"1"}},P={class:"flex flex-justify-end"};var W=e({name:"QxsSubjectSingle",__name:"subject-single",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},type:{type:String,required:!0},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},answerList:{type:null,required:!1},leastAnswerCount:{type:Number,required:!1},analysis:{type:String,required:!1},examExpand:{type:String,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1},customId:{type:Number,required:!1},examId:{type:Number,required:!1},isKey:{type:Boolean,required:!0},answerCheckType:{type:Number,required:!0}},emits:["move","save","delete","edit","add","setRelation"],setup(e,{emit:W}){const X=e,Y=W,Z=l(),ee=t(0),le=t(X.isKey),te=t(1),ae=t(X.examAnswerRelationType),ie=t([{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1}]),se=t(2),ne=t(""),re=t(""),oe=t(!1),ue=t(""),de=t(0),ve=t(!1),ce=t(""),me=a(()=>"single"===X.type?"单选题":"multiple"===X.type?"多选题":"排序题"),pe=t([]),ye=a(()=>{const e=[];for(let l=ie.value.length;l>1;l--)e.push({label:`至少选择${l}项`,value:l});return e.reverse()});function fe(){X.isSave||ie.value.push({title:"",isCorrect:!1,customAnswerId:V()})}function xe(){oe.value=!1,ue.value=""}function we(){if(!ne.value)return void A.error("题目标题不能为空!");if(!te.value)return void A.error("请选择答题设置");let e="",l=!1,t=0;if("multiple"===X.type||"single"===X.type?ie.value.forEach((a,i)=>{a.title?.trim()||(e+=`选项${String.fromCharCode(65+i)}未填写。`),a.isCorrect&&(l=!0,t++),a.relationType=a.resultItem?1:a.answerRelations?.length?2:null}):"sort"===X.type&&pe.value.length&&(l=!0),e)return void A.error(e);if(new Set(ie.value.map(e=>e.title)).size===ie.value.length){if("multiple"===X.type){if(1===t)return void A.error("请至少设置两个支持选项");if(l&&t<se.value)return void A.error("至少选几项与支持选项数不符")}2!==te.value&&3!==te.value||l?Y("save",{title:ne.value,answers:ie.value.map((e,l)=>({...e,orderIndex:l+1})),examExpand:pe.value.map(e=>e.charCodeAt(0)-65+1).join(","),analysis:re.value,isSetCorrectAnswer:l,leastAnswerCount:se.value,examRichTextContent:oe.value?ue.value:"",examAnswerRelationType:ae.value,isKey:le.value,answerCheckType:te.value}):A.error("请设置支持选项")}else A.error("选项不能重复")}function he(){ie.value[ee.value].resultItem=ce.value||"",ve.value=!1}function Ce(){ve.value=!1,ce.value=""}function ge(e){le.value=e}function be(e){te.value=e}function ke(e,l){Y("add",e,l?X.examAnswerRelationType:null)}i(()=>X.isEdit,()=>{X.isEdit&&(de.value=(new Date).getTime())});const Se=a(()=>e=>{let l=0;return e.forEach(e=>{e.relationAnswers&&(l+=e.relationAnswers.length)}),l}),Ve=S("subject-single");return s(function(){if(X.title&&(ne.value=X.title),X.answerCheckType&&(te.value=X.answerCheckType),X.isKey&&(le.value=X.isKey),X.examAnswerRelationType&&(ae.value=X.examAnswerRelationType),X.answerList&&X.answerList.length&&(ie.value=X.answerList),X.leastAnswerCount&&(se.value=X.leastAnswerCount),X.examExpand&&X.examExpand){const e=X.examExpand.split(",");pe.value=e.map(e=>{const l=X.answerList.find(l=>l.answerId?.toString()===e);return l?String.fromCharCode(65+l.orderIndex-1):e}).filter(Boolean)}X.analysis&&(re.value=X.analysis),X.examRichTextContent&&(ue.value=X.examRichTextContent,oe.value=!0)}),(e,l)=>{const t=n("el-checkbox"),a=n("el-radio"),i=n("el-input"),s=n("el-option"),S=n("el-select"),A=n("el-icon"),W=n("el-link"),de=n("el-button"),Ae=n("el-dialog");return o(),r("div",{class:u(d(Ve).e("single-exam"))},[v(q,{"show-edit":e.isEdit},c({preview:m(()=>[f("div",j,[f("div",null,[f("span",R,[x(w(e.orderIndex+1)+"."+w(ne.value)+" ",1),"single"===e.type?(o(),r("span",I,"(单选题)")):["multiple","sort"].includes(e.type)?(o(),r("span",E," ("+w(me.value)+w(se.value?`至少选${se.value}项${"sort"===e.type?"并排序":""}`:"")+") ",1)):y("v-if",!0)])]),oe.value?(o(),r("div",U,[f("div",{class:"rich-text",innerHTML:ue.value},null,8,B)])):y("v-if",!0),f("div",L,["sort"===e.type?(o(!0),r(h,{key:0},C(ie.value,(e,l)=>(o(),p(t,{key:l,class:"radio",disabled:!0},{default:m(()=>[f("span",$,w(String.fromCharCode(65+l))+". ",1),x(" "+w(e.title),1)]),_:2},1024))),128)):(o(!0),r(h,{key:1},C(ie.value,(e,l)=>(o(),p(a,{key:l,class:"radio",value:"disabled",disabled:""},{default:m(()=>[f("span",K,w(String.fromCharCode(65+l))+". ",1),x(" "+w(e.title)+" "+w(e.isCorrect?"(支持选项)":"")+" "+w(1===ae.value?e.resultItem?"(已设置结果项)":"(未设置结果项)":"")+" "+w(2===ae.value?e.answerRelations?.length?"(已设置关联)":"(未设置关联)":""),1)]),_:2},1024))),128))])])]),default:m(()=>[e.showAction?(o(),p(_,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"is-key":le.value,"show-other-option":"multiple"===X.type||"single"===X.type,"exam-answer-relation-type":X.examAnswerRelationType,"answer-check-type":te.value,onMoveUp:l[5]||(l[5]=e=>Y("move","up")),onMoveDown:l[6]||(l[6]=e=>Y("move","down")),onDelete:l[7]||(l[7]=e=>Y("delete")),onSave:we,onEdit:l[8]||(l[8]=e=>Y("edit")),onAdd:ke,onOnShowRichText:l[9]||(l[9]=e=>oe.value=!0),onSetKey:ge,onSetAnswerSetting:be},null,8,["is-edit","is-set","is-key","show-other-option","exam-answer-relation-type","answer-check-type"])):y("v-if",!0)]),_:2},[e.isEdit?{name:"edit",fn:m(()=>[f("div",{class:u(["flex",[{"margin-bottom":oe.value}]])},[l[12]||(l[12]=f("div",{class:"label flex flex-justify-center"},[f("span",null,"题目:")],-1)),f("div",N,[v(i,{modelValue:ne.value,"onUpdate:modelValue":l[0]||(l[0]=e=>ne.value=e),type:"textarea",rows:2,placeholder:`【${me.value}】请输入问题`,disabled:e.isSave,"show-word-limit":"",maxlength:"200",class:"margin-bottom"},null,8,["modelValue","placeholder","disabled"])])],2),f("div",z,[l[13]||(l[13]=f("div",{class:"label flex flex-justify-center"},[f("span",null,"设置:")],-1)),["multiple","sort"].includes(e.type)?(o(),p(S,{key:0,modelValue:se.value,"onUpdate:modelValue":l[1]||(l[1]=e=>se.value=e),style:{width:"150px"},placeholder:"至少选择几项",disabled:e.isSave},{default:m(()=>[(o(!0),r(h,null,C(ye.value,e=>(o(),p(s,{key:e.value,value:e.value,label:e.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"])):y("v-if",!0)]),f("div",M,[(o(!0),r(h,null,C(ie.value,(a,s)=>(o(),r("div",{key:s,class:"answer-item flex flex-items-center"},[f("span",D,w(String.fromCharCode(65+s))+".",1),v(i,{modelValue:a.title,"onUpdate:modelValue":e=>a.title=e,class:"input","show-word-limit":"",maxlength:"100",placeholder:`选项${String.fromCharCode(65+s)}`,disabled:e.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),["single","multiple"].includes(e.type)?(o(),p(t,{key:0,modelValue:a.isCorrect,"onUpdate:modelValue":e=>a.isCorrect=e,class:u([{"is-correct":a.isCorrect}]),disabled:e.isSave,style:{"margin-left":"10px"},onChange:e=>function(e,l){"single"===X.type?(l&&ie.value.forEach(l=>{l!==e&&(l.isCorrect=!1)}),e.isCorrect=l):"multiple"===X.type&&(e.isCorrect=l)}(a,e)},{default:m(()=>[...l[14]||(l[14]=[x(" 支持选项 ",-1)])]),_:2,__:[14]},1032,["modelValue","onUpdate:modelValue","class","disabled","onChange"])):y("v-if",!0),v(A,{class:"icon"},{default:m(()=>[v(d(b),{class:u([{disabled:e.isSave}]),onClick:fe},null,8,["class"])]),_:1}),v(A,{class:"icon"},{default:m(()=>[v(d(k),{class:u([{disabled:ie.value.length<3||e.isSave}]),onClick:e=>function(e){ie.value.length<3||X.isSave||ie.value.splice(e,1)}(s)},null,8,["class","onClick"])]),_:2},1024),1===ae.value&&"sort"!==e.type?(o(),p(W,{key:1,type:"primary",class:"margin-left-10",onClick:e=>{return l=s,ee.value=l,ce.value=ie.value[l].resultItem||"",void(ve.value=!0);var l}},{default:m(()=>[f("span",null,w(a.resultItem?"编辑结果":"添加结果"),1)]),_:2},1032,["onClick"])):y("v-if",!0),2===ae.value&&"sort"!==e.type?(o(),p(W,{key:2,type:"primary",class:"margin-left-10",onClick:e=>function(e){e.customAnswerId=e.examAnswerId||V(),Y("setRelation",X.customId,e)}(a)},{default:m(()=>[f("span",null,w(a.answerRelations?.length?`关联了${Se.value(a.answerRelations)}项`:"关联检查"),1)]),_:2},1032,["onClick"])):y("v-if",!0)]))),128))]),"sort"===e.type?(o(),r("div",H,[l[15]||(l[15]=f("div",{class:"label flex flex-justify-end"},[f("span",null,"排序答案:")],-1)),f("div",O,[v(S,{modelValue:pe.value,"onUpdate:modelValue":l[2]||(l[2]=e=>pe.value=e),multiple:"",style:{width:"360px"},placeholder:"请按顺序选择排序答案","show-arrow":!0},{default:m(()=>[(o(!0),r(h,null,C(ie.value,(e,l)=>(o(),p(s,{key:l,label:e.title,value:String.fromCharCode(65+l)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])])):y("v-if",!0),e.showAnalysis?(o(),r("div",Q,[l[16]||(l[16]=f("div",{class:"label flex flex-justify-center"},[f("span",null,"解析:")],-1)),f("div",F,[v(i,{modelValue:re.value,"onUpdate:modelValue":l[3]||(l[3]=e=>re.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):y("v-if",!0),oe.value?(o(),r("div",G,[l[18]||(l[18]=f("div",{class:"label flex flex-justify-center"},[f("span",null,"富文本:")],-1)),f("div",J,[v(T,g({"model-value":ue.value,"onUpdate:modelValue":l[4]||(l[4]=e=>ue.value=e)},d(Z),{style:{width:"100%"}}),null,16,["model-value"]),f("div",P,[v(W,{type:"danger",onClick:xe},{default:m(()=>l[17]||(l[17]=[x(" 删除富文本 ",-1)])),_:1,__:[17]})])])])):y("v-if",!0)]),key:"0"}:void 0]),1032,["show-edit"]),v(Ae,{modelValue:ve.value,"onUpdate:modelValue":l[11]||(l[11]=e=>ve.value=e),title:"添加结果",class:"customize-dialog"},{footer:m(()=>[v(de,{class:"customize-button",type:"primary",plain:"",onClick:Ce},{default:m(()=>l[19]||(l[19]=[x(" 取消 ",-1)])),_:1,__:[19]}),v(de,{class:"customize-button",type:"primary",plain:"",onClick:he},{default:m(()=>l[20]||(l[20]=[x(" 保存 ",-1)])),_:1,__:[20]})]),default:m(()=>[(o(),p(T,g({key:ee.value,"model-value":ce.value,"onUpdate:modelValue":l[10]||(l[10]=e=>ce.value=e)},d(Z),{style:{width:"100%"}}),null,16,["model-value"]))]),_:1},8,["modelValue"])],2)}}});export{W as default};
|
1
|
+
import{defineComponent as e,useAttrs as l,ref as t,computed as a,watch as i,onMounted as s,createElementBlock as n,openBlock as r,normalizeClass as o,unref as u,createVNode as d,createSlots as v,withCtx as m,createBlock as c,createCommentVNode as p,createElementVNode as y,createTextVNode as f,toDisplayString as x,Fragment as w,renderList as h,mergeProps as C}from"vue";import{CirclePlus as g,Remove as b}from"@element-plus/icons-vue";import{useNamespace as k}from"@qxs-bns/hooks";import{ElCheckbox as S,ElRadio as V,ElInput as A,ElSelect as _,ElOption as T,ElIcon as q,ElLink as j,ElDialog as R,ElButton as I,ElMessage as E}from"element-plus";import{nanoid as U}from"nanoid";import B from"../../../subject-action/src/subject-action.vue.mjs";import L from"../../../subject-layout/src/subject-layout.vue.mjs";import $ from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const K={class:"preview"},N={class:"title"},z={key:0},M={key:1},D={key:0},H=["innerHTML"],O={class:"preview-answer"},Q={class:"order"},F={class:"order"},G={style:{flex:"1"}},J={class:"margin-bottom flex flex-items-center"},P={class:"margin-bottom answer-list"},W={class:"label flex flex-justify-center"},X={key:0,class:"margin-bottom flex flex-items-center"},Y={style:{flex:"1"}},Z={key:1,class:"flex"},ee={style:{flex:"1"}},le={key:2,class:"margin-bottom flex"},te={style:{flex:"1"}},ae={class:"flex flex-justify-end"};var ie=e({name:"QxsSubjectSingle",__name:"subject-single",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},type:{type:String,required:!0},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},answerList:{type:null,required:!1},leastAnswerCount:{type:Number,required:!1},analysis:{type:String,required:!1},examExpand:{type:String,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1},customId:{type:String,required:!1},examId:{type:Number,required:!1},isKey:{type:Boolean,required:!0},answerCheckType:{type:Number,required:!0}},emits:["move","save","delete","edit","add","setRelation"],setup(e,{emit:ie}){const se=e,ne=ie,re=l(),oe=t(0),ue=t(se.isKey),de=t(1),ve=t(se.examAnswerRelationType),me=t([{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1}]),ce=t(2),pe=t(""),ye=t(""),fe=t(!1),xe=t(""),we=t(0),he=t(!1),Ce=t(""),ge=a(()=>"single"===se.type?"单选题":"multiple"===se.type?"多选题":"排序题"),be=t([]),ke=a(()=>{const e=[];for(let l=me.value.length;l>1;l--)e.push({label:`至少选择${l}项`,value:l});return e.reverse()});function Se(){se.isSave||me.value.push({title:"",isCorrect:!1,customAnswerId:U()})}function Ve(){fe.value=!1,xe.value=""}function Ae(){if(!pe.value)return void E.error("题目标题不能为空!");if(!de.value)return void E.error("请选择答题设置");let e="",l=!1,t=0;if("multiple"===se.type||"single"===se.type?me.value.forEach((a,i)=>{a.title?.trim()||(e+=`选项${String.fromCharCode(65+i)}未填写。`),a.isCorrect&&(l=!0,t++),a.relationType=a.resultItem?1:a.answerRelations?.length?2:null}):"sort"===se.type&&be.value.length&&(l=!0),e)return void E.error(e);if(new Set(me.value.map(e=>e.title)).size===me.value.length){if("multiple"===se.type){if(1===t)return void E.error("请至少设置两个支持选项");if(l&&t<ce.value)return void E.error("至少选几项与支持选项数不符")}2!==de.value&&3!==de.value||l?ne("save",{title:pe.value,answers:me.value.map((e,l)=>({...e,orderIndex:l+1})),examExpand:be.value.map(e=>e.charCodeAt(0)-65+1).join(","),analysis:ye.value,isSetCorrectAnswer:l,leastAnswerCount:ce.value,examRichTextContent:fe.value?xe.value:"",examAnswerRelationType:ve.value,isKey:ue.value,answerCheckType:de.value}):E.error("请设置支持选项")}else E.error("选项不能重复")}function _e(){me.value[oe.value].resultItem=Ce.value||"",he.value=!1}function Te(){he.value=!1,Ce.value=""}function qe(e){ue.value=e}function je(e){de.value=e}function Re(e,l){ne("add",e,l?se.examAnswerRelationType:null)}i(()=>se.isEdit,()=>{se.isEdit&&(we.value=(new Date).getTime())});const Ie=a(()=>e=>{let l=0;return e.forEach(e=>{e.relationAnswers&&(l+=e.relationAnswers.length)}),l}),Ee=k("subject-single");return s(function(){if(se.title&&(pe.value=se.title),se.answerCheckType&&(de.value=se.answerCheckType),se.isKey&&(ue.value=se.isKey),se.examAnswerRelationType&&(ve.value=se.examAnswerRelationType),se.answerList&&se.answerList.length&&(me.value=se.answerList),se.leastAnswerCount&&(ce.value=se.leastAnswerCount),se.examExpand&&se.examExpand){const e=se.examExpand.split(",");be.value=e.map(e=>{const l=se.answerList.find(l=>l.answerId?.toString()===e);return l?String.fromCharCode(65+l.orderIndex-1):e}).filter(Boolean)}se.analysis&&(ye.value=se.analysis),se.examRichTextContent&&(xe.value=se.examRichTextContent,fe.value=!0)}),(e,l)=>(r(),n("div",{class:o(u(Ee).e("single-exam"))},[d(L,{"show-edit":e.isEdit},v({preview:m(()=>[y("div",K,[y("div",null,[y("span",N,[f(x(e.orderIndex+1)+"."+x(pe.value)+" ",1),"single"===e.type?(r(),n("span",z,"(单选题)")):["multiple","sort"].includes(e.type)?(r(),n("span",M," ("+x(ge.value)+x(ce.value?`至少选${ce.value}项${"sort"===e.type?"并排序":""}`:"")+") ",1)):p("v-if",!0)])]),fe.value?(r(),n("div",D,[y("div",{class:"rich-text",innerHTML:xe.value},null,8,H)])):p("v-if",!0),y("div",O,["sort"===e.type?(r(!0),n(w,{key:0},h(me.value,(e,l)=>(r(),c(u(S),{key:l,class:"radio",disabled:!0},{default:m(()=>[y("span",Q,x(String.fromCharCode(65+l))+". ",1),f(" "+x(e.title),1)]),_:2},1024))),128)):(r(!0),n(w,{key:1},h(me.value,(e,l)=>(r(),c(u(V),{key:l,class:"radio",value:"disabled",disabled:""},{default:m(()=>[y("span",F,x(String.fromCharCode(65+l))+". ",1),f(" "+x(e.title)+" "+x(e.isCorrect?"(支持选项)":"")+" "+x(1===ve.value?e.resultItem?"(已设置结果项)":"(未设置结果项)":"")+" "+x(2===ve.value?e.answerRelations?.length?"(已设置关联)":"(未设置关联)":""),1)]),_:2},1024))),128))])])]),default:m(()=>[e.showAction?(r(),c(B,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"is-key":ue.value,"show-other-option":"multiple"===se.type||"single"===se.type,"exam-answer-relation-type":se.examAnswerRelationType,"answer-check-type":de.value,onMoveUp:l[5]||(l[5]=e=>ne("move","up")),onMoveDown:l[6]||(l[6]=e=>ne("move","down")),onDelete:l[7]||(l[7]=e=>ne("delete")),onSave:Ae,onEdit:l[8]||(l[8]=e=>ne("edit")),onAdd:Re,onOnShowRichText:l[9]||(l[9]=e=>fe.value=!0),onSetKey:qe,onSetAnswerSetting:je},null,8,["is-edit","is-set","is-key","show-other-option","exam-answer-relation-type","answer-check-type"])):p("v-if",!0)]),_:2},[e.isEdit?{name:"edit",fn:m(()=>[y("div",{class:o(["flex",[{"margin-bottom":fe.value}]])},[l[12]||(l[12]=y("div",{class:"label flex flex-justify-center"},[y("span",null,"题目:")],-1)),y("div",G,[d(u(A),{modelValue:pe.value,"onUpdate:modelValue":l[0]||(l[0]=e=>pe.value=e),type:"textarea",rows:2,placeholder:`【${ge.value}】请输入问题`,disabled:e.isSave,"show-word-limit":"",maxlength:"200",class:"margin-bottom"},null,8,["modelValue","placeholder","disabled"])])],2),y("div",J,[l[13]||(l[13]=y("div",{class:"label flex flex-justify-center"},[y("span",null,"设置:")],-1)),["multiple","sort"].includes(e.type)?(r(),c(u(_),{key:0,modelValue:ce.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ce.value=e),style:{width:"150px"},placeholder:"至少选择几项",disabled:e.isSave},{default:m(()=>[(r(!0),n(w,null,h(ke.value,e=>(r(),c(u(T),{key:e.value,value:e.value,label:e.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"])):p("v-if",!0)]),y("div",P,[(r(!0),n(w,null,h(me.value,(t,a)=>(r(),n("div",{key:a,class:"answer-item flex flex-items-center"},[y("span",W,x(String.fromCharCode(65+a))+".",1),d(u(A),{modelValue:t.title,"onUpdate:modelValue":e=>t.title=e,class:"input","show-word-limit":"",maxlength:"100",placeholder:`选项${String.fromCharCode(65+a)}`,disabled:e.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),["single","multiple"].includes(e.type)?(r(),c(u(S),{key:0,modelValue:t.isCorrect,"onUpdate:modelValue":e=>t.isCorrect=e,class:o([{"is-correct":t.isCorrect}]),disabled:e.isSave,style:{"margin-left":"10px"},onChange:e=>function(e,l){"single"===se.type?(l&&me.value.forEach(l=>{l!==e&&(l.isCorrect=!1)}),e.isCorrect=l):"multiple"===se.type&&(e.isCorrect=l)}(t,e)},{default:m(()=>[...l[14]||(l[14]=[f(" 支持选项 ",-1)])]),_:2,__:[14]},1032,["modelValue","onUpdate:modelValue","class","disabled","onChange"])):p("v-if",!0),d(u(q),{class:"icon"},{default:m(()=>[d(u(g),{class:o([{disabled:e.isSave}]),onClick:Se},null,8,["class"])]),_:1}),d(u(q),{class:"icon"},{default:m(()=>[d(u(b),{class:o([{disabled:me.value.length<3||e.isSave}]),onClick:e=>function(e){me.value.length<3||se.isSave||me.value.splice(e,1)}(a)},null,8,["class","onClick"])]),_:2},1024),1===ve.value&&"sort"!==e.type?(r(),c(u(j),{key:1,type:"primary",class:"margin-left-10",onClick:e=>{return l=a,oe.value=l,Ce.value=me.value[l].resultItem||"",void(he.value=!0);var l}},{default:m(()=>[y("span",null,x(t.resultItem?"编辑结果":"添加结果"),1)]),_:2},1032,["onClick"])):p("v-if",!0),2===ve.value&&"sort"!==e.type?(r(),c(u(j),{key:2,type:"primary",class:"margin-left-10",onClick:e=>function(e){e.customAnswerId=e.examAnswerId||U(),ne("setRelation",se.customId,e)}(t)},{default:m(()=>[y("span",null,x(t.answerRelations?.length?`关联了${Ie.value(t.answerRelations)}项`:"关联检查"),1)]),_:2},1032,["onClick"])):p("v-if",!0)]))),128))]),"sort"===e.type?(r(),n("div",X,[l[15]||(l[15]=y("div",{class:"label flex flex-justify-end"},[y("span",null,"排序答案:")],-1)),y("div",Y,[d(u(_),{modelValue:be.value,"onUpdate:modelValue":l[2]||(l[2]=e=>be.value=e),multiple:"",style:{width:"360px"},placeholder:"请按顺序选择排序答案","show-arrow":!0},{default:m(()=>[(r(!0),n(w,null,h(me.value,(e,l)=>(r(),c(u(T),{key:l,label:e.title,value:String.fromCharCode(65+l)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])])):p("v-if",!0),e.showAnalysis?(r(),n("div",Z,[l[16]||(l[16]=y("div",{class:"label flex flex-justify-center"},[y("span",null,"解析:")],-1)),y("div",ee,[d(u(A),{modelValue:ye.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ye.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):p("v-if",!0),fe.value?(r(),n("div",le,[l[18]||(l[18]=y("div",{class:"label flex flex-justify-center"},[y("span",null,"富文本:")],-1)),y("div",te,[d($,C({"model-value":xe.value,"onUpdate:modelValue":l[4]||(l[4]=e=>xe.value=e)},u(re),{style:{width:"100%"}}),null,16,["model-value"]),y("div",ae,[d(u(j),{type:"danger",onClick:Ve},{default:m(()=>l[17]||(l[17]=[f(" 删除富文本 ",-1)])),_:1,__:[17]})])])])):p("v-if",!0)]),key:"0"}:void 0]),1032,["show-edit"]),d(u(R),{modelValue:he.value,"onUpdate:modelValue":l[11]||(l[11]=e=>he.value=e),title:"添加结果",class:"customize-dialog"},{footer:m(()=>[d(u(I),{class:"customize-button",type:"primary",plain:"",onClick:Te},{default:m(()=>l[19]||(l[19]=[f(" 取消 ",-1)])),_:1,__:[19]}),d(u(I),{class:"customize-button",type:"primary",plain:"",onClick:_e},{default:m(()=>l[20]||(l[20]=[f(" 保存 ",-1)])),_:1,__:[20]})]),default:m(()=>[(r(),c($,C({key:oe.value,"model-value":Ce.value,"onUpdate:modelValue":l[10]||(l[10]=e=>Ce.value=e)},u(re),{style:{width:"100%"}}),null,16,["model-value"]))]),_:1},8,["modelValue"])],2))}});export{ie as default};
|
2
2
|
//# sourceMappingURL=subject-single.vue.mjs.map
|