@qxs-bns/components 0.0.55 → 0.0.57

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.
Files changed (193) hide show
  1. package/es/index.mjs +1 -1
  2. package/es/index.mjs.map +1 -1
  3. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.8.3_/node_modules/@iconify/vue/dist/iconify.mjs +2 -0
  4. package/es/node_modules/.pnpm/{@iconify_vue@5.0.0_vue@3.5.13_typescript@5.8.2_ → @iconify_vue@5.0.0_vue@3.5.18_typescript@5.8.3_}/node_modules/@iconify/vue/dist/iconify.mjs.map +1 -1
  5. package/es/package.json.mjs +1 -1
  6. package/es/src/components.mjs +1 -1
  7. package/es/src/data-chart/src/analyze.mjs +1 -1
  8. package/es/src/data-chart/src/analyze.mjs.map +1 -1
  9. package/es/src/data-chart/src/components/area.vue2.mjs +1 -1
  10. package/es/src/data-chart/src/components/area.vue2.mjs.map +1 -1
  11. package/es/src/data-chart/src/components/bar.vue.mjs +1 -1
  12. package/es/src/data-chart/src/components/bar.vue.mjs.map +1 -1
  13. package/es/src/data-chart/src/components/card.vue2.mjs +1 -1
  14. package/es/src/data-chart/src/components/card.vue2.mjs.map +1 -1
  15. package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs.map +1 -1
  16. package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs.map +1 -1
  17. package/es/src/data-chart/src/components/empty.svg.mjs.map +1 -1
  18. package/es/src/data-chart/src/components/empty.vue.mjs.map +1 -1
  19. package/es/src/data-chart/src/components/funnel.vue.mjs +1 -1
  20. package/es/src/data-chart/src/components/funnel.vue.mjs.map +1 -1
  21. package/es/src/data-chart/src/components/line.vue2.mjs +1 -1
  22. package/es/src/data-chart/src/components/line.vue2.mjs.map +1 -1
  23. package/es/src/data-chart/src/components/pie.vue.mjs +1 -1
  24. package/es/src/data-chart/src/components/pie.vue.mjs.map +1 -1
  25. package/es/src/data-chart/src/components/radar.vue.mjs +1 -1
  26. package/es/src/data-chart/src/components/radar.vue.mjs.map +1 -1
  27. package/es/src/data-chart/src/components/scatter-simple.vue.mjs +1 -1
  28. package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +1 -1
  29. package/es/src/data-chart/src/components/scatter.vue.mjs +1 -1
  30. package/es/src/data-chart/src/components/scatter.vue.mjs.map +1 -1
  31. package/es/src/data-chart/src/components/table.vue.mjs +1 -1
  32. package/es/src/data-chart/src/components/table.vue.mjs.map +1 -1
  33. package/es/src/data-chart/src/data-chart.vue.mjs +1 -1
  34. package/es/src/data-chart/src/data-chart.vue.mjs.map +1 -1
  35. package/es/src/data-chart/src/utils/config.mjs +1 -1
  36. package/es/src/data-chart/src/utils/config.mjs.map +1 -1
  37. package/es/src/data-chart/src/utils/mapData.mjs +2 -0
  38. package/es/src/data-chart/src/utils/mapData.mjs.map +1 -0
  39. package/es/src/data-chart/src/utils/safe-eval.mjs.map +1 -1
  40. package/es/src/data-chart/src/utils/useCharts.mjs +1 -1
  41. package/es/src/data-chart/src/utils/useCharts.mjs.map +1 -1
  42. package/es/src/defaults.mjs.map +1 -1
  43. package/es/src/file-upload/src/file-upload.vue.mjs +1 -1
  44. package/es/src/file-upload/src/file-upload.vue.mjs.map +1 -1
  45. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +1 -1
  46. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +1 -1
  47. package/es/src/icon/index.mjs +1 -1
  48. package/es/src/icon/index.mjs.map +1 -1
  49. package/es/src/icon/src/icon.vue.mjs +1 -1
  50. package/es/src/icon/src/icon.vue.mjs.map +1 -1
  51. package/es/src/image-upload/src/image-upload.vue.mjs +1 -1
  52. package/es/src/image-upload/src/image-upload.vue.mjs.map +1 -1
  53. package/es/src/make-installer.mjs.map +1 -1
  54. package/es/src/photo-crop-tool/src/composables.mjs +1 -1
  55. package/es/src/photo-crop-tool/src/composables.mjs.map +1 -1
  56. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +1 -1
  57. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +1 -1
  58. package/es/src/subject-action/src/subject-action.vue.mjs +1 -1
  59. package/es/src/subject-action/src/subject-action.vue.mjs.map +1 -1
  60. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +1 -1
  61. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +1 -1
  62. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +1 -1
  63. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +1 -1
  64. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +1 -1
  65. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +1 -1
  66. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +1 -1
  67. package/es/src/subject-list/src/components/subject-scale.vue.mjs +1 -1
  68. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +1 -1
  69. package/es/src/subject-list/src/components/subject-single.vue.mjs +1 -1
  70. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +1 -1
  71. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +1 -1
  72. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +1 -1
  73. package/es/src/subject-list/src/subject-list.vue.mjs +1 -1
  74. package/es/src/subject-list/src/subject-list.vue.mjs.map +1 -1
  75. package/es/src/subject-type/src/subject-type.vue.mjs +1 -1
  76. package/es/src/subject-type/src/subject-type.vue.mjs.map +1 -1
  77. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +1 -1
  78. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -1
  79. package/es/src/withInstall.mjs.map +1 -1
  80. package/lib/index.cjs +1 -1
  81. package/lib/index.cjs.map +1 -1
  82. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.8.3_/node_modules/@iconify/vue/dist/iconify.cjs +2 -0
  83. package/lib/node_modules/.pnpm/{@iconify_vue@5.0.0_vue@3.5.13_typescript@5.8.2_ → @iconify_vue@5.0.0_vue@3.5.18_typescript@5.8.3_}/node_modules/@iconify/vue/dist/iconify.cjs.map +1 -1
  84. package/lib/package.json.cjs +1 -1
  85. package/lib/src/components.cjs +1 -1
  86. package/lib/src/data-chart/index.cjs.map +1 -1
  87. package/lib/src/data-chart/src/analyze.cjs +1 -1
  88. package/lib/src/data-chart/src/analyze.cjs.map +1 -1
  89. package/lib/src/data-chart/src/components/area.vue2.cjs +1 -1
  90. package/lib/src/data-chart/src/components/area.vue2.cjs.map +1 -1
  91. package/lib/src/data-chart/src/components/bar.vue.cjs +1 -1
  92. package/lib/src/data-chart/src/components/bar.vue.cjs.map +1 -1
  93. package/lib/src/data-chart/src/components/card.vue2.cjs +1 -1
  94. package/lib/src/data-chart/src/components/card.vue2.cjs.map +1 -1
  95. package/lib/src/data-chart/src/components/empty.vue.cjs.map +1 -1
  96. package/lib/src/data-chart/src/components/funnel.vue.cjs +1 -1
  97. package/lib/src/data-chart/src/components/funnel.vue.cjs.map +1 -1
  98. package/lib/src/data-chart/src/components/line.vue2.cjs +1 -1
  99. package/lib/src/data-chart/src/components/line.vue2.cjs.map +1 -1
  100. package/lib/src/data-chart/src/components/pie.vue.cjs +1 -1
  101. package/lib/src/data-chart/src/components/pie.vue.cjs.map +1 -1
  102. package/lib/src/data-chart/src/components/radar.vue.cjs +1 -1
  103. package/lib/src/data-chart/src/components/radar.vue.cjs.map +1 -1
  104. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +1 -1
  105. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +1 -1
  106. package/lib/src/data-chart/src/components/scatter.vue.cjs +1 -1
  107. package/lib/src/data-chart/src/components/scatter.vue.cjs.map +1 -1
  108. package/lib/src/data-chart/src/components/table.vue.cjs +1 -1
  109. package/lib/src/data-chart/src/components/table.vue.cjs.map +1 -1
  110. package/lib/src/data-chart/src/data-chart.vue.cjs +1 -1
  111. package/lib/src/data-chart/src/data-chart.vue.cjs.map +1 -1
  112. package/lib/src/data-chart/src/utils/config.cjs +1 -1
  113. package/lib/src/data-chart/src/utils/config.cjs.map +1 -1
  114. package/lib/src/data-chart/src/utils/mapData.cjs +2 -0
  115. package/lib/src/data-chart/src/utils/mapData.cjs.map +1 -0
  116. package/lib/src/data-chart/src/utils/safe-eval.cjs.map +1 -1
  117. package/lib/src/data-chart/src/utils/useCharts.cjs +1 -1
  118. package/lib/src/data-chart/src/utils/useCharts.cjs.map +1 -1
  119. package/lib/src/defaults.cjs.map +1 -1
  120. package/lib/src/file-upload/index.cjs.map +1 -1
  121. package/lib/src/file-upload/src/file-upload.vue.cjs +1 -1
  122. package/lib/src/file-upload/src/file-upload.vue.cjs.map +1 -1
  123. package/lib/src/fixed-action-bar/index.cjs.map +1 -1
  124. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +1 -1
  125. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +1 -1
  126. package/lib/src/icon/index.cjs +1 -1
  127. package/lib/src/icon/index.cjs.map +1 -1
  128. package/lib/src/icon/src/icon.vue.cjs +1 -1
  129. package/lib/src/icon/src/icon.vue.cjs.map +1 -1
  130. package/lib/src/image-upload/index.cjs.map +1 -1
  131. package/lib/src/image-upload/src/image-upload.vue.cjs +1 -1
  132. package/lib/src/image-upload/src/image-upload.vue.cjs.map +1 -1
  133. package/lib/src/make-installer.cjs.map +1 -1
  134. package/lib/src/photo-crop-tool/index.cjs.map +1 -1
  135. package/lib/src/photo-crop-tool/src/composables.cjs +1 -1
  136. package/lib/src/photo-crop-tool/src/composables.cjs.map +1 -1
  137. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +1 -1
  138. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +1 -1
  139. package/lib/src/subject-action/index.cjs.map +1 -1
  140. package/lib/src/subject-action/src/subject-action.vue.cjs +1 -1
  141. package/lib/src/subject-action/src/subject-action.vue.cjs.map +1 -1
  142. package/lib/src/subject-layout/index.cjs.map +1 -1
  143. package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +1 -1
  144. package/lib/src/subject-list/index.cjs.map +1 -1
  145. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +1 -1
  146. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +1 -1
  147. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +1 -1
  148. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +1 -1
  149. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +1 -1
  150. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +1 -1
  151. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +1 -1
  152. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +1 -1
  153. package/lib/src/subject-list/src/components/subject-single.vue.cjs +1 -1
  154. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +1 -1
  155. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +1 -1
  156. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +1 -1
  157. package/lib/src/subject-list/src/subject-list.vue.cjs +1 -1
  158. package/lib/src/subject-list/src/subject-list.vue.cjs.map +1 -1
  159. package/lib/src/subject-type/index.cjs.map +1 -1
  160. package/lib/src/subject-type/src/subject-type.vue.cjs +1 -1
  161. package/lib/src/subject-type/src/subject-type.vue.cjs.map +1 -1
  162. package/lib/src/tiny-mce-editor/index.cjs.map +1 -1
  163. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +1 -1
  164. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -1
  165. package/lib/src/withInstall.cjs.map +1 -1
  166. package/package.json +3 -2
  167. package/types/src/components.d.ts +1 -1
  168. package/types/src/components.d.ts.map +1 -1
  169. package/types/src/data-chart/src/components/area.vue.d.ts.map +1 -1
  170. package/types/src/data-chart/src/utils/config.d.ts.map +1 -1
  171. package/types/src/data-chart/src/utils/mapData.d.ts +64 -0
  172. package/types/src/data-chart/src/utils/mapData.d.ts.map +1 -0
  173. package/types/src/data-chart/src/utils/types.d.ts +4 -0
  174. package/types/src/data-chart/src/utils/types.d.ts.map +1 -1
  175. package/types/src/data-chart/src/utils/useCharts.d.ts +3 -4
  176. package/types/src/data-chart/src/utils/useCharts.d.ts.map +1 -1
  177. package/types/src/fixed-action-bar/index.d.ts +1 -1
  178. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +1 -1
  179. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +1 -1
  180. package/types/src/icon/index.d.ts +3 -3
  181. package/types/src/icon/index.d.ts.map +1 -1
  182. package/types/src/image-upload/index.d.ts +3 -2
  183. package/types/src/image-upload/index.d.ts.map +1 -1
  184. package/types/src/image-upload/src/image-upload.vue.d.ts +2 -80
  185. package/types/src/image-upload/src/image-upload.vue.d.ts.map +1 -1
  186. package/types/src/subject-layout/index.d.ts +5 -3
  187. package/types/src/subject-layout/index.d.ts.map +1 -1
  188. package/types/src/subject-layout/src/subject-layout.vue.d.ts +2 -24
  189. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
  190. package/types/src/tiny-mce-editor/index.d.ts.map +1 -1
  191. package/types/tsconfig.tsbuildinfo +1 -1
  192. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.13_typescript@5.8.2_/node_modules/@iconify/vue/dist/iconify.mjs +0 -2
  193. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.13_typescript@5.8.2_/node_modules/@iconify/vue/dist/iconify.cjs +0 -2
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es");require("element-plus/es/components/base/style/index"),require("element-plus/es/components/link/style/index"),require("element-plus/es/components/button/style/index"),require("element-plus/es/components/icon/style/index"),require("element-plus/es/components/tag/style/index"),require("element-plus/es/components/checkbox-group/style/index"),require("element-plus/es/components/input-number/style/index"),require("element-plus/es/components/input/style/index"),require("element-plus/es/components/checkbox/style/index");var t=require("vue"),l=require("@element-plus/icons-vue"),n=require("@qxs-bns/hooks"),a=require("element-plus"),o=require("../../../subject-action/src/subject-action.vue.cjs"),r=require("../../../subject-layout/src/subject-layout.vue.cjs"),s=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs");const i={class:"preview"},d={class:"content"},u={class:"title"},c={key:0},m=["innerHTML"],p={class:"content flex flex-col"},f={key:1,class:"flex",style:{"margin-top":"10px",color:"#a8abb2"}},v={class:"title"},x={class:"flex"},V={style:{flex:"1"},class:"margin-bottom"},y={class:"margin-bottom flex flex-items-center"},g={class:"flex"},E={style:{flex:"1"}},k={class:"margin-bottom answer-list"},N={class:"label flex flex-justify-end"},w={class:"answer-tags"},h={class:"operation"},C={key:0,class:"margin-bottom flex"},b={style:{flex:"1"}},B={key:1,class:"margin-bottom flex"},q={style:{flex:"1"}},S={class:"flex flex-justify-end"};var I=t.defineComponent({__name:"subject-text-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},examExpand:{type:String,required:!1},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(I,{emit:j}){const O=I,A=j,R=t.useAttrs(),T=t.ref([{title:"",tag:"",showInput:!1}]),_=t.ref(""),L=t.ref(""),M=t.ref(),D=t.ref(""),U=t.ref(!1),F=t.ref(""),z=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],P=t.ref(["isInOrder","isIgnoreCase"]);function H(){T.value.push({title:"",tag:"",showInput:!1})}function G(){U.value=!1,F.value=""}function $(){if(_.value){if(M.value||D.value){if(!M.value)return void a.ElMessage.error("请完善答题设置!");if(!D.value)return void a.ElMessage.error("请输入问题正确答案!");if(T.value.length!==M.value)return void a.ElMessage.error("关键词个数设置有误!");const e=[];if(T.value.forEach(((t,l)=>{t.title||e.push(`关键词${l+1}未设置`)})),e.length>0)return void a.ElMessage.error(e.join(","))}A("save",{title:_.value,answers:T.value.filter((e=>e.title)).map((e=>({title:e.title}))),analysis:L.value,isSetCorrectAnswer:!!D.value,examExpand:D.value,examAnswerSettingBO:{isIgnoreCase:P.value?.includes("isIgnoreCase"),isInOrder:P.value?.includes("isInOrder"),keywordCount:M.value},examRichTextContent:U.value?F.value:""})}else a.ElMessage.error("题目标题不能为空!")}t.onMounted((function(){O.title&&(_.value=O.title),O.answerList&&O.answerList.length&&(T.value=O.answerList),O.examAnswerSettingVO&&(P.value=P.value.filter((e=>"isIgnoreCase"===e&&O.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&O.examAnswerSettingVO?.isInOrder))),O.examAnswerSettingVO?.keywordCount&&(M.value=O.examAnswerSettingVO?.keywordCount),O.examExpand&&(D.value=O.examExpand),O.analysis&&(L.value=O.analysis),O.examRichTextContent&&(F.value=O.examRichTextContent,U.value=!0)}));const J=n.useNamespace("subject-text-fill");return(n,a)=>{const I=e.ElCheckbox,j=e.ElInput,K=e.ElInputNumber,Q=e.ElCheckboxGroup,W=e.ElTag,X=e.ElIcon,Y=e.ElButton,Z=e.ElLink;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(J).e("text-fill-exam"))},[t.createVNode(r.default,{"show-edit":n.isEdit},{preview:t.withCtx((()=>[t.createElementVNode("div",i,[t.createElementVNode("div",d,[t.createElementVNode("span",u,t.toDisplayString(n.orderIndex+1)+"."+t.toDisplayString(t.unref(_))+"(问答题)",1),t.unref(U)?(t.openBlock(),t.createElementBlock("div",c,[t.createElementVNode("div",{class:"rich-text",innerHTML:t.unref(F)},null,8,m)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",p,[t.unref(T).some((e=>e.title))?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(t.unref(T),((e,l)=>(t.openBlock(),t.createBlock(I,{key:l,class:"radio",disabled:!0},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.title),1)])),_:2},1024)))),128)):t.createCommentVNode("v-if",!0)]),t.unref(D)?(t.openBlock(),t.createElementBlock("div",f,[t.createElementVNode("span",v,"正确答案:"+t.toDisplayString(t.unref(D)),1)])):t.createCommentVNode("v-if",!0)])])])),edit:t.withCtx((()=>[t.createElementVNode("div",x,[a[12]||(a[12]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"题目:")],-1)),t.createElementVNode("div",V,[t.createVNode(j,{modelValue:t.unref(_),"onUpdate:modelValue":a[0]||(a[0]=e=>t.isRef(_)?_.value=e:null),type:"textarea",rows:2,placeholder:"【问答题】请输入问题",maxlength:200,"show-word-limit":"",disabled:n.isSave},null,8,["modelValue","disabled"])])]),t.createElementVNode("div",y,[a[13]||(a[13]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"答题设置:")],-1)),a[14]||(a[14]=t.createElementVNode("span",null,"共答对",-1)),t.createVNode(K,{modelValue:t.unref(M),"onUpdate:modelValue":a[1]||(a[1]=e=>t.isRef(M)?M.value=e:null),style:{width:"100px",margin:"0 10px"},min:1},null,8,["modelValue"]),a[15]||(a[15]=t.createElementVNode("span",{style:{"margin-right":"10px"}},"个关键词,算是正确的",-1)),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(z,(e=>t.createVNode(Q,{key:e.value,modelValue:t.unref(P),"onUpdate:modelValue":a[2]||(a[2]=e=>t.isRef(P)?P.value=e:null)},{default:t.withCtx((()=>[t.createVNode(I,{label:e.value,class:"margin-left-10"},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["label"])])),_:2},1032,["modelValue"]))),64))]),t.createElementVNode("div",g,[a[16]||(a[16]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"答案:")],-1)),t.createElementVNode("div",E,[t.createVNode(j,{modelValue:t.unref(D),"onUpdate:modelValue":a[3]||(a[3]=e=>t.isRef(D)?D.value=e:null),type:"textarea",rows:2,placeholder:"请输入正确答案",maxlength:200,"show-word-limit":"",disabled:n.isSave},null,8,["modelValue","disabled"])])]),t.createElementVNode("div",k,[a[17]||(a[17]=t.createElementVNode("span",{style:{"padding-left":"60px"}},"*如遇包含特殊字符的关键词,需添加多个同义词,例:'CO₂'需添加同义词'CO2'",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(T),((e,a)=>(t.openBlock(),t.createElementBlock("div",{key:a,class:"answer-item flex flex-items-center"},[t.createElementVNode("div",N,[t.createElementVNode("span",null,"关键词"+t.toDisplayString(a+1)+":",1)]),t.createElementVNode("div",w,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.title.split(","),(l=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:l},[l?(t.openBlock(),t.createBlock(W,{key:0,closable:"",onClose:t=>function(e,t){if(e){const l=t.title.split(","),n=l.findIndex((t=>t===e));n>-1&&(l.splice(n,1),t.title=l.join(","))}}(l,e)},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(l),1)])),_:2},1032,["onClose"])):t.createCommentVNode("v-if",!0)],64)))),128)),n.isSave?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[e.showInput?(t.openBlock(),t.createBlock(j,{key:0,modelValue:e.tag,"onUpdate:modelValue":t=>e.tag=t,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(e)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(t.openBlock(),t.createBlock(Y,{key:1,size:"small",onClick:t=>e.showInput=!0},{default:t.withCtx((()=>[t.createVNode(X,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Plus))])),_:1}),t.createElementVNode("span",null,t.toDisplayString(e.title?"添加同义词":"添加关键词"),1)])),_:2},1032,["onClick"]))],64))]),t.createElementVNode("div",h,[t.createVNode(X,{class:"icon"},{default:t.withCtx((()=>[t.createVNode(t.unref(l.CirclePlus),{class:t.normalizeClass([{disabled:n.isSave}]),onClick:H},null,8,["class"])])),_:1}),t.createVNode(X,{class:"icon"},{default:t.withCtx((()=>[t.createVNode(t.unref(l.Remove),{class:t.normalizeClass([{disabled:t.unref(T).length<2||n.isSave}]),onClick:e=>function(e){T.value.length<2||O.isSave||T.value.splice(e,1)}(a)},null,8,["class","onClick"])])),_:2},1024)])])))),128))]),n.showAnalysis?(t.openBlock(),t.createElementBlock("div",C,[a[18]||(a[18]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"解析:")],-1)),t.createElementVNode("div",b,[t.createVNode(j,{modelValue:t.unref(L),"onUpdate:modelValue":a[4]||(a[4]=e=>t.isRef(L)?L.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):t.createCommentVNode("v-if",!0),t.unref(U)?(t.openBlock(),t.createElementBlock("div",B,[a[20]||(a[20]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"富文本:")],-1)),t.createElementVNode("div",q,[t.createVNode(s.default,t.mergeProps({"model-value":t.unref(F),"onUpdate:modelValue":a[5]||(a[5]=e=>t.isRef(F)?F.value=e:null)},t.unref(R),{style:{width:"100%"}}),null,16,["model-value"]),t.createElementVNode("div",S,[t.createVNode(Z,{type:"danger",onClick:G},{default:t.withCtx((()=>a[19]||(a[19]=[t.createTextVNode(" 删除富文本 ")]))),_:1})])])])):t.createCommentVNode("v-if",!0)])),default:t.withCtx((()=>[n.showAction?(t.openBlock(),t.createBlock(o.default,{key:0,"is-edit":n.isEdit,"is-set":n.isSet,"show-other-option":!1,"exam-answer-relation-type":O.examAnswerRelationType,onMoveUp:a[6]||(a[6]=e=>A("move","up")),onMoveDown:a[7]||(a[7]=e=>A("move","down")),onDelete:a[8]||(a[8]=e=>A("delete")),onSave:$,onEdit:a[9]||(a[9]=e=>A("edit")),onAdd:a[10]||(a[10]=e=>A("add",e)),onOnShowRichText:a[11]||(a[11]=e=>U.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):t.createCommentVNode("v-if",!0)])),_:1},8,["show-edit"])],2)}}});exports.default=I;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es");require("element-plus/es/components/base/style/index"),require("element-plus/es/components/link/style/index"),require("element-plus/es/components/button/style/index"),require("element-plus/es/components/icon/style/index"),require("element-plus/es/components/tag/style/index"),require("element-plus/es/components/checkbox-group/style/index"),require("element-plus/es/components/input-number/style/index"),require("element-plus/es/components/input/style/index"),require("element-plus/es/components/checkbox/style/index");var t=require("vue"),l=require("@element-plus/icons-vue"),n=require("@qxs-bns/hooks"),a=require("element-plus"),o=require("../../../subject-action/src/subject-action.vue.cjs"),r=require("../../../subject-layout/src/subject-layout.vue.cjs"),s=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs");const i={class:"preview"},d={class:"content"},u={class:"title"},c={key:0},m=["innerHTML"],p={class:"content flex flex-col"},f={key:1,class:"flex",style:{"margin-top":"10px",color:"#a8abb2"}},v={class:"title"},x={class:"flex"},V={style:{flex:"1"},class:"margin-bottom"},y={class:"margin-bottom flex flex-items-center"},g={class:"flex"},E={style:{flex:"1"}},k={class:"margin-bottom answer-list"},N={class:"label flex flex-justify-end"},w={class:"answer-tags"},h={class:"operation"},C={key:0,class:"margin-bottom flex"},b={style:{flex:"1"}},B={key:1,class:"margin-bottom flex"},q={style:{flex:"1"}},S={class:"flex flex-justify-end"};var I=t.defineComponent({__name:"subject-text-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},examExpand:{type:String,required:!1},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(I,{emit:j}){const O=I,A=j,_=t.useAttrs(),R=t.ref([{title:"",tag:"",showInput:!1}]),T=t.ref(""),L=t.ref(""),M=t.ref(),D=t.ref(""),U=t.ref(!1),F=t.ref(""),z=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],P=t.ref(["isInOrder","isIgnoreCase"]);function H(){R.value.push({title:"",tag:"",showInput:!1})}function G(){U.value=!1,F.value=""}function $(){if(T.value){if(M.value||D.value){if(!M.value)return void a.ElMessage.error("请完善答题设置!");if(!D.value)return void a.ElMessage.error("请输入问题正确答案!");if(R.value.length!==M.value)return void a.ElMessage.error("关键词个数设置有误!");const e=[];if(R.value.forEach((t,l)=>{t.title||e.push(`关键词${l+1}未设置`)}),e.length>0)return void a.ElMessage.error(e.join(","))}A("save",{title:T.value,answers:R.value.filter(e=>e.title).map(e=>({title:e.title})),analysis:L.value,isSetCorrectAnswer:!!D.value,examExpand:D.value,examAnswerSettingBO:{isIgnoreCase:P.value?.includes("isIgnoreCase"),isInOrder:P.value?.includes("isInOrder"),keywordCount:M.value},examRichTextContent:U.value?F.value:""})}else a.ElMessage.error("题目标题不能为空!")}t.onMounted(function(){O.title&&(T.value=O.title),O.answerList&&O.answerList.length&&(R.value=O.answerList),O.examAnswerSettingVO&&(P.value=P.value.filter(e=>"isIgnoreCase"===e&&O.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&O.examAnswerSettingVO?.isInOrder)),O.examAnswerSettingVO?.keywordCount&&(M.value=O.examAnswerSettingVO?.keywordCount),O.examExpand&&(D.value=O.examExpand),O.analysis&&(L.value=O.analysis),O.examRichTextContent&&(F.value=O.examRichTextContent,U.value=!0)});const J=n.useNamespace("subject-text-fill");return(n,a)=>{const I=e.ElCheckbox,j=e.ElInput,K=e.ElInputNumber,Q=e.ElCheckboxGroup,W=e.ElTag,X=e.ElIcon,Y=e.ElButton,Z=e.ElLink;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(J).e("text-fill-exam"))},[t.createVNode(r.default,{"show-edit":n.isEdit},{preview:t.withCtx(()=>[t.createElementVNode("div",i,[t.createElementVNode("div",d,[t.createElementVNode("span",u,t.toDisplayString(n.orderIndex+1)+"."+t.toDisplayString(t.unref(T))+"(问答题)",1),t.unref(U)?(t.openBlock(),t.createElementBlock("div",c,[t.createElementVNode("div",{class:"rich-text",innerHTML:t.unref(F)},null,8,m)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",p,[t.unref(R).some(e=>e.title)?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(t.unref(R),(e,l)=>(t.openBlock(),t.createBlock(I,{key:l,class:"radio",disabled:!0},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.title),1)]),_:2},1024))),128)):t.createCommentVNode("v-if",!0)]),t.unref(D)?(t.openBlock(),t.createElementBlock("div",f,[t.createElementVNode("span",v,"正确答案:"+t.toDisplayString(t.unref(D)),1)])):t.createCommentVNode("v-if",!0)])])]),edit:t.withCtx(()=>[t.createElementVNode("div",x,[a[12]||(a[12]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"题目:")],-1)),t.createElementVNode("div",V,[t.createVNode(j,{modelValue:t.unref(T),"onUpdate:modelValue":a[0]||(a[0]=e=>t.isRef(T)?T.value=e:null),type:"textarea",rows:2,placeholder:"【问答题】请输入问题",maxlength:200,"show-word-limit":"",disabled:n.isSave},null,8,["modelValue","disabled"])])]),t.createElementVNode("div",y,[a[13]||(a[13]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"答题设置:")],-1)),a[14]||(a[14]=t.createElementVNode("span",null,"共答对",-1)),t.createVNode(K,{modelValue:t.unref(M),"onUpdate:modelValue":a[1]||(a[1]=e=>t.isRef(M)?M.value=e:null),style:{width:"100px",margin:"0 10px"},min:1},null,8,["modelValue"]),a[15]||(a[15]=t.createElementVNode("span",{style:{"margin-right":"10px"}},"个关键词,算是正确的",-1)),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(z,e=>t.createVNode(Q,{key:e.value,modelValue:t.unref(P),"onUpdate:modelValue":a[2]||(a[2]=e=>t.isRef(P)?P.value=e:null)},{default:t.withCtx(()=>[t.createVNode(I,{label:e.value,class:"margin-left-10"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),_:2},1032,["label"])]),_:2},1032,["modelValue"])),64))]),t.createElementVNode("div",g,[a[16]||(a[16]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"答案:")],-1)),t.createElementVNode("div",E,[t.createVNode(j,{modelValue:t.unref(D),"onUpdate:modelValue":a[3]||(a[3]=e=>t.isRef(D)?D.value=e:null),type:"textarea",rows:2,placeholder:"请输入正确答案",maxlength:200,"show-word-limit":"",disabled:n.isSave},null,8,["modelValue","disabled"])])]),t.createElementVNode("div",k,[a[17]||(a[17]=t.createElementVNode("span",{style:{"padding-left":"60px"}},"*如遇包含特殊字符的关键词,需添加多个同义词,例:'CO₂'需添加同义词'CO2'",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(R),(e,a)=>(t.openBlock(),t.createElementBlock("div",{key:a,class:"answer-item flex flex-items-center"},[t.createElementVNode("div",N,[t.createElementVNode("span",null,"关键词"+t.toDisplayString(a+1)+":",1)]),t.createElementVNode("div",w,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.title.split(","),l=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:l},[l?(t.openBlock(),t.createBlock(W,{key:0,closable:"",onClose:t=>function(e,t){if(e){const l=t.title.split(","),n=l.findIndex(t=>t===e);n>-1&&(l.splice(n,1),t.title=l.join(","))}}(l,e)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(l),1)]),_:2},1032,["onClose"])):t.createCommentVNode("v-if",!0)],64))),128)),n.isSave?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[e.showInput?(t.openBlock(),t.createBlock(j,{key:0,modelValue:e.tag,"onUpdate:modelValue":t=>e.tag=t,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(e)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(t.openBlock(),t.createBlock(Y,{key:1,size:"small",onClick:t=>e.showInput=!0},{default:t.withCtx(()=>[t.createVNode(X,null,{default:t.withCtx(()=>[t.createVNode(t.unref(l.Plus))]),_:1}),t.createElementVNode("span",null,t.toDisplayString(e.title?"添加同义词":"添加关键词"),1)]),_:2},1032,["onClick"]))],64))]),t.createElementVNode("div",h,[t.createVNode(X,{class:"icon"},{default:t.withCtx(()=>[t.createVNode(t.unref(l.CirclePlus),{class:t.normalizeClass([{disabled:n.isSave}]),onClick:H},null,8,["class"])]),_:1}),t.createVNode(X,{class:"icon"},{default:t.withCtx(()=>[t.createVNode(t.unref(l.Remove),{class:t.normalizeClass([{disabled:t.unref(R).length<2||n.isSave}]),onClick:e=>function(e){R.value.length<2||O.isSave||R.value.splice(e,1)}(a)},null,8,["class","onClick"])]),_:2},1024)])]))),128))]),n.showAnalysis?(t.openBlock(),t.createElementBlock("div",C,[a[18]||(a[18]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"解析:")],-1)),t.createElementVNode("div",b,[t.createVNode(j,{modelValue:t.unref(L),"onUpdate:modelValue":a[4]||(a[4]=e=>t.isRef(L)?L.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):t.createCommentVNode("v-if",!0),t.unref(U)?(t.openBlock(),t.createElementBlock("div",B,[a[20]||(a[20]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"富文本:")],-1)),t.createElementVNode("div",q,[t.createVNode(s.default,t.mergeProps({"model-value":t.unref(F),"onUpdate:modelValue":a[5]||(a[5]=e=>t.isRef(F)?F.value=e:null)},t.unref(_),{style:{width:"100%"}}),null,16,["model-value"]),t.createElementVNode("div",S,[t.createVNode(Z,{type:"danger",onClick:G},{default:t.withCtx(()=>a[19]||(a[19]=[t.createTextVNode(" 删除富文本 ",-1)])),_:1,__:[19]})])])])):t.createCommentVNode("v-if",!0)]),default:t.withCtx(()=>[n.showAction?(t.openBlock(),t.createBlock(o.default,{key:0,"is-edit":n.isEdit,"is-set":n.isSet,"show-other-option":!1,"exam-answer-relation-type":O.examAnswerRelationType,onMoveUp:a[6]||(a[6]=e=>A("move","up")),onMoveDown:a[7]||(a[7]=e=>A("move","down")),onDelete:a[8]||(a[8]=e=>A("delete")),onSave:$,onEdit:a[9]||(a[9]=e=>A("edit")),onAdd:a[10]||(a[10]=e=>A("add",e)),onOnShowRichText:a[11]||(a[11]=e=>U.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):t.createCommentVNode("v-if",!0)]),_:1},8,["show-edit"])],2)}}});exports.default=I;
2
2
  //# sourceMappingURL=subject-text-fill.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-text-fill.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-text-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Plus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\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 examExpand?: string\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n keywordCount: number\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 title: '',\n tag: '',\n showInput: false,\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst keywordCount = ref()\nconst correct = 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(['isInOrder', '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 addAnswer() {\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 2 || props.isSave) {\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\n if (keywordCount.value || correct.value) {\n if (!keywordCount.value) {\n ElMessage.error('请完善答题设置!')\n return\n }\n\n if (!correct.value) {\n ElMessage.error('请输入问题正确答案!')\n return\n }\n\n if (answers.value.length !== keywordCount.value) {\n ElMessage.error('关键词个数设置有误!')\n return\n }\n const msg: string[] = []\n answers.value.forEach((item, index) => {\n if (!item.title) {\n msg.push(`关键词${index + 1}未设置`)\n }\n })\n if (msg.length > 0) {\n ElMessage.error(msg.join(','))\n return\n }\n }\n\n emits('save', {\n title: title.value,\n answers: answers.value.filter((i: any) => i.title).map((item: any) => {\n return { title: item.title }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: !!correct.value,\n examExpand: correct.value,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n ...{ keywordCount: keywordCount.value },\n },\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.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter(item =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.examAnswerSettingVO?.keywordCount) {\n keywordCount.value = props.examAnswerSettingVO?.keywordCount\n }\n\n if (props.examExpand) {\n correct.value = props.examExpand\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\nonMounted(init)\nconst ns = useNamespace('subject-text-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('text-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 class=\"content flex flex-col\">\n <template v-if=\"answers.some(item => item.title)\">\n <el-checkbox\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"radio\"\n :disabled=\"true\"\n >\n {{ item.title }}\n </el-checkbox>\n </template>\n </div>\n <div\n v-if=\"correct\"\n class=\"flex\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:{{ correct }}</span>\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\n style=\"flex: 1;\"\n class=\"margin-bottom\"\n >\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【问答题】请输入问题\"\n :maxlength=\"200\"\n show-word-limit\n :disabled=\"isSave\"\n />\n </div>\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 <span>共答对</span>\n <el-input-number\n v-model=\"keywordCount\"\n style=\"width: 100px;margin: 0 10px;\"\n :min=\"1\"\n />\n <span style=\"margin-right: 10px;\">个关键词,算是正确的</span>\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox\n :label=\"item.value\"\n class=\"margin-left-10\"\n >\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\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=\"correct\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入正确答案\"\n :maxlength=\"200\"\n show-word-limit\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"margin-bottom answer-list\">\n <span style=\"padding-left: 60px;\">*如遇包含特殊字符的关键词,需添加多个同义词,例:'CO₂'需添加同义词'CO2'</span>\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 class=\"operation\">\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: isSave }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 2 || isSave }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\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","tag","showInput","analysis","keywordCount","correct","showRichText","richText","checkList","label","value","isCheckList","addAnswer","push","deleteRichText","save","ElMessage","error","length","msg","forEach","item","index","join","filter","i","map","isSetCorrectAnswer","examExpand","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","onMounted","answerList","examAnswerSettingVO","ns","useNamespace","tags","split","findIndex","splice","isSave"],"mappings":"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"}
1
+ {"version":3,"file":"subject-text-fill.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-text-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Plus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\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 examExpand?: string\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n keywordCount: number\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 title: '',\n tag: '',\n showInput: false,\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst keywordCount = ref()\nconst correct = 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(['isInOrder', '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 addAnswer() {\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 2 || props.isSave) {\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\n if (keywordCount.value || correct.value) {\n if (!keywordCount.value) {\n ElMessage.error('请完善答题设置!')\n return\n }\n\n if (!correct.value) {\n ElMessage.error('请输入问题正确答案!')\n return\n }\n\n if (answers.value.length !== keywordCount.value) {\n ElMessage.error('关键词个数设置有误!')\n return\n }\n const msg: string[] = []\n answers.value.forEach((item, index) => {\n if (!item.title) {\n msg.push(`关键词${index + 1}未设置`)\n }\n })\n if (msg.length > 0) {\n ElMessage.error(msg.join(','))\n return\n }\n }\n\n emits('save', {\n title: title.value,\n answers: answers.value.filter((i: any) => i.title).map((item: any) => {\n return { title: item.title }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: !!correct.value,\n examExpand: correct.value,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n ...{ keywordCount: keywordCount.value },\n },\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.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter(item =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.examAnswerSettingVO?.keywordCount) {\n keywordCount.value = props.examAnswerSettingVO?.keywordCount\n }\n\n if (props.examExpand) {\n correct.value = props.examExpand\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\nonMounted(init)\nconst ns = useNamespace('subject-text-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('text-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 class=\"content flex flex-col\">\n <template v-if=\"answers.some(item => item.title)\">\n <el-checkbox\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"radio\"\n :disabled=\"true\"\n >\n {{ item.title }}\n </el-checkbox>\n </template>\n </div>\n <div\n v-if=\"correct\"\n class=\"flex\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:{{ correct }}</span>\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\n style=\"flex: 1;\"\n class=\"margin-bottom\"\n >\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【问答题】请输入问题\"\n :maxlength=\"200\"\n show-word-limit\n :disabled=\"isSave\"\n />\n </div>\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 <span>共答对</span>\n <el-input-number\n v-model=\"keywordCount\"\n style=\"width: 100px;margin: 0 10px;\"\n :min=\"1\"\n />\n <span style=\"margin-right: 10px;\">个关键词,算是正确的</span>\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox\n :label=\"item.value\"\n class=\"margin-left-10\"\n >\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\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=\"correct\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入正确答案\"\n :maxlength=\"200\"\n show-word-limit\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"margin-bottom answer-list\">\n <span style=\"padding-left: 60px;\">*如遇包含特殊字符的关键词,需添加多个同义词,例:'CO₂'需添加同义词'CO2'</span>\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 class=\"operation\">\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: isSave }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 2 || isSave }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\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","tag","showInput","analysis","keywordCount","correct","showRichText","richText","checkList","label","value","isCheckList","addAnswer","push","deleteRichText","save","ElMessage","error","length","msg","forEach","item","index","join","filter","i","map","isSetCorrectAnswer","examExpand","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","onMounted","answerList","examAnswerSettingVO","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","orderIndex","_hoisted_4","innerHTML","_hoisted_6","some","_openBlock","_Fragment","key","_renderList","_createBlock","_component_el_checkbox","disabled","_createTextVNode","_hoisted_7","_hoisted_8","edit","_hoisted_9","_hoisted_10","_component_el_input","$event","type","rows","placeholder","maxlength","isSave","_hoisted_11","_cache","_component_el_input_number","style","width","margin","min","_component_el_checkbox_group","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","split","_component_el_tag","closable","onClose","tags","findIndex","splice","closeTag","modelValue","onBlur","handleAddTag","_component_el_button","size","onClick","_component_el_icon","Plus","_hoisted_17","CirclePlus","Remove","deleteAnswer","showAnalysis","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","TinyMceEditor","_mergeProps","_hoisted_22","_component_el_link","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),s=require("@qxs-bns/utils"),n=require("./components/subject-blank-fill.vue.cjs"),a=require("./components/subject-scale.vue.cjs"),i=require("./components/subject-single.vue.cjs"),o=require("./components/subject-text-fill.vue.cjs"),l=require("./components/SubjectPageEnd.vue.cjs"),r=require("./components/SubjectRichText.vue.cjs"),c=require("element-plus/es");require("element-plus/es/components/base/style/index"),require("element-plus/es/components/message/style/index");const d={class:"subject-list-wrapper"};var u=e.defineComponent({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(u,{expose:m,emit:p}){const x=u,w=p,v=e.ref([]),y=e.useAttrs();m({addSubject:E,currentList:v,uploadExcel:function(e){v.value=v.value.concat(e)},addExam:function(e){console.log(e,"items");let t=1;const n=[];e.forEach((e=>{const a={...e,customId:s.setGuid(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:e.answers?.map((e=>({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect})))||[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1};a.pageIndex>t&&(n.push({customId:s.setGuid(),answerType:"page_end",analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:0}),t=a.pageIndex),n.push(a)})),v.value=v.value.concat(n)},setAnswerRelation:function(e,t,s){const n=v.value.find((e=>e.customId===t));if(n){const t=n.answers?.find((e=>e.customAnswerId===s));t&&(t.answerRelations=e)}}});const f=e.computed((()=>{const e=v.value.filter((e=>"page_end"===e.answerType));return t=>{const s=e.findIndex((e=>e.customId===t));return-1!==s?s+1:0}}));function h(){return e=>{let t=0,s=0;return v.value.forEach((n=>{"page_end"!==n.answerType&&(t++,e===n.customId&&(s=t))})),s-1}}function E(e,t=null,n=null){const a={customId:s.setGuid(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:n};null!==t?v.value.splice(t+1,0,a):v.value.push(a)}function k(e,t){if("up"===t&&e>0){const[t]=v.value.splice(e,1);v.value.splice(e-1,0,t)}else if("down"===t&&e<v.value.length-1){const[t]=v.value.splice(e,1);v.value.splice(e+1,0,t)}}function T(e,t){v.value[e]={...v.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType}}function g(e){v.value.splice(e,1),c.ElMessage.success("删除成功")}function S(e,t){w("setRelation",e,t)}e.watch((()=>x.subjectList),(e=>{e&&(v.value=[...e])}),{immediate:!0});const A=t.useNamespace("subject-list");return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(A).e("list-exam"))},[e.createElementVNode("div",d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),((s,c)=>(e.openBlock(),e.createElementBlock("div",{key:s.customId,class:"subject-item"},[["single","multiple","sort"].includes(s.answerType)?(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:0,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,type:s.answerType,"exam-id":s.examId,"is-key":s.isKey,"is-save":!s.isRealCanDel,"custom-id":s.customId,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"least-answer-count":s.leastAnswerCount,"is-edit":s.isEdit||!1,"show-action":!t.isPreview,"exam-expand":s.examExpand,"answer-check-type":s.answerCheckType,"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onSetRelation:S,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:(e,t)=>E(e,c,t)}),null,16,["order-index","title","type","exam-id","is-key","is-save","custom-id","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answer-check-type","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===s.answerType?(e.openBlock(),e.createBlock(a.default,e.mergeProps({key:1,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"is-edit":s.isEdit||!1,"scale-question-list":s.scaleQuestionList,"show-action":!t.isPreview,"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===s.answerType?(e.openBlock(),e.createBlock(n.default,e.mergeProps({key:2,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!t.isPreview,"is-edit":s.isEdit||!1,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===s.answerType?(e.openBlock(),e.createBlock(o.default,e.mergeProps({key:3,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!t.isPreview,"is-edit":s.isEdit||!1,"exam-expand":s.examExpand,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},"exam-answer-relation-type":s.examAnswerRelationType,"exam-rich-text-content":s.examRichTextContent,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","exam-answer-relation-type","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===s.answerType?(e.openBlock(),e.createBlock(r.default,e.mergeProps({key:4,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),"rich-text-content":s.richTextContent,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,"is-edit":s.isEdit||!1,"show-action":!t.isPreview,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","rich-text-content","is-set","is-save","is-edit","show-action","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"page_end"===s.answerType?(e.openBlock(),e.createBlock(l.default,{key:c,"total-page":v.value.filter((e=>"page_end"===e.answerType)).length,"current-page-index":e.unref(f)(s.customId),item:s,"is-edit":s.isEdit||!1,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)},null,8,["total-page","current-page-index","item","is-edit","is-set","is-save","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):e.createCommentVNode("v-if",!0)])))),128))])],2))}});exports.default=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),s=require("@qxs-bns/utils"),n=require("./components/subject-blank-fill.vue.cjs"),a=require("./components/subject-scale.vue.cjs"),i=require("./components/subject-single.vue.cjs"),o=require("./components/subject-text-fill.vue.cjs"),l=require("./components/SubjectPageEnd.vue.cjs"),r=require("./components/SubjectRichText.vue.cjs"),c=require("element-plus/es");require("element-plus/es/components/base/style/index"),require("element-plus/es/components/message/style/index");const d={class:"subject-list-wrapper"};var u=e.defineComponent({name:"QxsSubjectList",__name:"subject-list",props:{subjectList:{type:Array,required:!0},isPreview:{type:Boolean,required:!0}},emits:["setRelation"],setup(u,{expose:m,emit:p}){const x=u,w=p,v=e.ref([]),y=e.useAttrs();m({addSubject:E,currentList:v,uploadExcel:function(e){v.value=v.value.concat(e)},addExam:function(e){console.log(e,"items");let t=1;const n=[];e.forEach(e=>{const a={...e,customId:s.setGuid(),answerType:e.richTextContent?"rich_text":e.examTypeEnum,answers:e.answers?.map(e=>({...e,title:e.answer,answerId:e.examAnswerId,isCorrect:e.isCorrect}))||[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1};a.pageIndex>t&&(n.push({customId:s.setGuid(),answerType:"page_end",analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:0}),t=a.pageIndex),n.push(a)}),v.value=v.value.concat(n)},setAnswerRelation:function(e,t,s){const n=v.value.find(e=>e.customId===t);if(n){const t=n.answers?.find(e=>e.customAnswerId===s);t&&(t.answerRelations=e)}}});const f=e.computed(()=>{const e=v.value.filter(e=>"page_end"===e.answerType);return t=>{const s=e.findIndex(e=>e.customId===t);return-1!==s?s+1:0}});function h(){return e=>{let t=0,s=0;return v.value.forEach(n=>{"page_end"!==n.answerType&&(t++,e===n.customId&&(s=t))}),s-1}}function E(e,t=null,n=null){const a={customId:s.setGuid(),answerType:e,analysis:"",scaleQuestionList:[],isSave:!1,isEdit:!0,isRealCanDel:!0,hasSet:!1,examAnswerRelationType:n};null!==t?v.value.splice(t+1,0,a):v.value.push(a)}function k(e,t){if("up"===t&&e>0){const[t]=v.value.splice(e,1);v.value.splice(e-1,0,t)}else if("down"===t&&e<v.value.length-1){const[t]=v.value.splice(e,1);v.value.splice(e+1,0,t)}}function T(e,t){v.value[e]={...v.value[e],...t,isEdit:!1,examAnswerRelationType:t.examAnswerRelationType}}function g(e){v.value.splice(e,1),c.ElMessage.success("删除成功")}function S(e,t){w("setRelation",e,t)}e.watch(()=>x.subjectList,e=>{e&&(v.value=[...e])},{immediate:!0});const A=t.useNamespace("subject-list");return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(A).e("list-exam"))},[e.createElementVNode("div",d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),(s,c)=>(e.openBlock(),e.createElementBlock("div",{key:s.customId,class:"subject-item"},[["single","multiple","sort"].includes(s.answerType)?(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:0,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,type:s.answerType,"exam-id":s.examId,"is-key":s.isKey,"is-save":!s.isRealCanDel,"custom-id":s.customId,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"least-answer-count":s.leastAnswerCount,"is-edit":s.isEdit||!1,"show-action":!t.isPreview,"exam-expand":s.examExpand,"answer-check-type":s.answerCheckType,"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onSetRelation:S,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:(e,t)=>E(e,c,t)}),null,16,["order-index","title","type","exam-id","is-key","is-save","custom-id","is-set","answer-list","analysis","least-answer-count","is-edit","show-action","exam-expand","answer-check-type","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"scale"===s.answerType?(e.openBlock(),e.createBlock(a.default,e.mergeProps({key:1,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"is-edit":s.isEdit||!1,"scale-question-list":s.scaleQuestionList,"show-action":!t.isPreview,"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","is-edit","scale-question-list","show-action","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"blank_fill"===s.answerType?(e.openBlock(),e.createBlock(n.default,e.mergeProps({key:2,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!t.isPreview,"is-edit":s.isEdit||!1,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},"exam-rich-text-content":s.examRichTextContent,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-answer-setting-v-o","exam-rich-text-content","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"text_fill"===s.answerType?(e.openBlock(),e.createBlock(o.default,e.mergeProps({key:3,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),title:s.title,"is-save":!s.isRealCanDel,"is-set":s.hasSet||!1,"answer-list":s.answers,analysis:s.analysis,"show-action":!t.isPreview,"is-edit":s.isEdit||!1,"exam-expand":s.examExpand,"exam-answer-setting-v-o":s.examAnswerSettingVO||{},"exam-answer-relation-type":s.examAnswerRelationType,"exam-rich-text-content":s.examRichTextContent,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","title","is-save","is-set","answer-list","analysis","show-action","is-edit","exam-expand","exam-answer-setting-v-o","exam-answer-relation-type","exam-rich-text-content","onMove","onDelete","onSave","onEdit","onAdd"])):"rich_text"===s.answerType?(e.openBlock(),e.createBlock(r.default,e.mergeProps({key:4,ref_for:!0},e.unref(y),{"order-index":h()(s.customId),"rich-text-content":s.richTextContent,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,"is-edit":s.isEdit||!1,"show-action":!t.isPreview,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)}),null,16,["order-index","rich-text-content","is-set","is-save","is-edit","show-action","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):"page_end"===s.answerType?(e.openBlock(),e.createBlock(l.default,{key:c,"total-page":v.value.filter(e=>"page_end"===e.answerType).length,"current-page-index":e.unref(f)(s.customId),item:s,"is-edit":s.isEdit||!1,"is-set":s.hasSet||!1,"is-save":!s.isRealCanDel,"exam-answer-relation-type":s.examAnswerRelationType,onMove:e=>k(c,e),onDelete:e=>g(c),onSave:e=>T(c,e),onEdit:e=>s.isEdit=!0,onAdd:e=>E(e,c,null)},null,8,["total-page","current-page-index","item","is-edit","is-set","is-save","exam-answer-relation-type","onMove","onDelete","onSave","onEdit","onAdd"])):e.createCommentVNode("v-if",!0)]))),128))])],2))}});exports.default=u;
2
2
  //# sourceMappingURL=subject-list.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-list.vue.cjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst emits = defineEmits(['setRelation'])\nconst currentList = ref([] as any)\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n return currentList.value.filter((v: any) => v.answerType === 'page_end').length\n}\n\nconst currentPageIndex = computed(() => {\n const currentPageList = currentList.value.filter((v: any) => v.answerType === 'page_end')\n return (currentId: string) => {\n const currentIndex = currentPageList.findIndex((c: any) => c.customId === currentId)\n return currentIndex !== -1 ? currentIndex + 1 : 0\n }\n})\n\nfunction currentIndex() {\n return (currentExamId: string) => {\n let current = 0\n let output = 0\n\n // 遍历 currentList,过滤掉分页器,并计算题目序号\n currentList.value.forEach((v: any) => {\n if (v.answerType !== 'page_end') { // 排除分页器\n current++\n if (currentExamId === v.customId) { // 匹配当前题目 ID\n output = current\n }\n }\n })\n\n return output - 1\n }\n}\n\nfunction addSubject(type: string, index: number | null = null, examAnswerRelationType: number | null = null) {\n const newSubject = {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType,\n }\n\n if (index !== null) {\n currentList.value.splice(index + 1, 0, newSubject)\n }\n else {\n currentList.value.push(newSubject)\n }\n}\nfunction addExam(items: any[]) {\n console.log(items, 'items')\n\n let currentIndex = 1\n const newList: any[] = []\n\n items.forEach((v: any) => {\n // 创建新的题目对象\n const newItem = {\n ...v,\n customId: setGuid(),\n answerType: v.richTextContent ? 'rich_text' : v.examTypeEnum,\n answers: v.answers?.map((c: any) => ({\n ...c,\n title: c.answer,\n answerId: c.examAnswerId,\n isCorrect: c.isCorrect,\n })) || [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n }\n\n // 如果当前题目的 pageIndex 和 currentIndex 不一致,则插入分页器\n if (newItem.pageIndex > currentIndex) {\n newList.push({\n customId: setGuid(),\n answerType: 'page_end',\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: 0,\n })\n currentIndex = newItem.pageIndex\n }\n\n // 将题目添加到 newList\n newList.push(newItem)\n })\n\n // 更新 currentList\n currentList.value = currentList.value.concat(newList)\n}\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n }\n else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n currentList.value[index] = {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string) {\n const targetItem = currentList.value.find((v: any) => v.customId === customId)\n if (targetItem) {\n const targetAnswer = targetItem.answers?.find((c: any) => c.customAnswerId === customAnswerId)\n if (targetAnswer) {\n targetAnswer.answerRelations = answerRelations\n }\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div\n v-for=\"(item, index) in currentList\"\n :key=\"item.customId\"\n class=\"subject-item\"\n >\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :is-key=\"item.isKey\"\n :is-save=\"!item.isRealCanDel\"\n :custom-id=\"item.customId\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\"\n :show-action=\"!isPreview\"\n :exam-expand=\"item.examExpand\"\n :answer-check-type=\"item.answerCheckType\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @set-relation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\"\n />\n </template>\n <SubjectScale\n v-else-if=\"item.answerType === 'scale'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :is-edit=\"item.isEdit || false\"\n :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectBlankFill\n v-else-if=\"item.answerType === 'blank_fill'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :show-action=\"!isPreview\"\n :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectTextFill\n v-else-if=\"item.answerType === 'text_fill'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :show-action=\"!isPreview\"\n :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectRichText\n v-else-if=\"item.answerType === 'rich_text'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :rich-text-content=\"item.richTextContent\"\n :is-set=\"item.hasSet || false\"\n :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\"\n :show-action=\"!isPreview\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectPageEnd\n v-else-if=\"item.answerType === 'page_end'\"\n :key=\"index\"\n :total-page=\"totalPageIndex()\"\n :current-page-index=\"currentPageIndex(item.customId)\"\n :item=\"item\"\n :is-edit=\"item.isEdit || false\"\n :is-set=\"item.hasSet || false\"\n :is-save=\"!item.isRealCanDel\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","currentList","ref","attrs","useAttrs","__expose","addSubject","uploadExcel","list","value","concat","addExam","items","console","log","currentIndex","newList","forEach","v","newItem","customId","setGuid","answerType","richTextContent","examTypeEnum","answers","map","c","title","answer","answerId","examAnswerId","isCorrect","isSave","isEdit","isRealCanDel","hasSet","pageIndex","push","analysis","scaleQuestionList","examAnswerRelationType","setAnswerRelation","answerRelations","customAnswerId","targetItem","find","targetAnswer","currentPageIndex","computed","currentPageList","filter","currentId","findIndex","currentExamId","current","output","type","index","newSubject","splice","move","item","length","saveSubject","deleteSubject","ElMessage","success","setRelation","examAnswers","watch","subjectList","immediate","ns","useNamespace"],"mappings":"2zBAcA,MAAMA,EAAQC,EAIRC,EAAQC,EACRC,EAAcC,EAAIA,IAAA,IAClBC,EAAQC,EAAAA,WAEDC,EAAA,CACXC,aACAL,cACAM,YAuGF,SAAqBC,GACnBP,EAAYQ,MAAQR,EAAYQ,MAAMC,OAAOF,EAAI,EAvGjDG,QAuDF,SAAiBC,GACPC,QAAAC,IAAIF,EAAO,SAEnB,IAAIG,EAAe,EACnB,MAAMC,EAAiB,GAEjBJ,EAAAK,SAASC,IAEb,MAAMC,EAAU,IACXD,EACHE,SAAUC,EAAAA,UACVC,WAAYJ,EAAEK,gBAAkB,YAAcL,EAAEM,aAChDC,QAASP,EAAEO,SAASC,KAAKC,IAAY,IAChCA,EACHC,MAAOD,EAAEE,OACTC,SAAUH,EAAEI,aACZC,UAAWL,EAAEK,eACR,GACPC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,GAINjB,EAAQkB,UAAYtB,IACtBC,EAAQsB,KAAK,CACXlB,SAAUC,EAAAA,UACVC,WAAY,WACZiB,SAAU,GACVC,kBAAmB,GACnBP,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRK,uBAAwB,IAE1B1B,EAAeI,EAAQkB,WAIzBrB,EAAQsB,KAAKnB,EAAO,IAItBlB,EAAYQ,MAAQR,EAAYQ,MAAMC,OAAOM,EAAO,EAnGpD0B,kBAsIO,SAAkBC,EAAsBvB,EAAkBwB,GAC3D,MAAAC,EAAa5C,EAAYQ,MAAMqC,MAAM5B,GAAWA,EAAEE,WAAaA,IACrE,GAAIyB,EAAY,CACR,MAAAE,EAAeF,EAAWpB,SAASqB,MAAMnB,GAAWA,EAAEiB,iBAAmBA,IAC3EG,IACFA,EAAaJ,gBAAkBA,EACjC,CACF,IAtII,MAAAK,EAAmBC,EAAAA,UAAS,KAC1B,MAAAC,EAAkBjD,EAAYQ,MAAM0C,QAAQjC,GAA4B,aAAjBA,EAAEI,aAC/D,OAAQ8B,IACN,MAAMrC,EAAemC,EAAgBG,WAAW1B,GAAWA,EAAEP,WAAagC,IACnErC,OAAiB,IAAjBA,EAAsBA,EAAe,EAAI,CAAA,CAClD,IAGF,SAASA,IACP,OAAQuC,IACN,IAAIC,EAAU,EACVC,EAAS,EAYb,OATYvD,EAAAQ,MAAMQ,SAASC,IACJ,aAAjBA,EAAEI,aACJiC,IACID,IAAkBpC,EAAEE,WACboC,EAAAD,GACX,IAIGC,EAAS,CAAA,CAClB,CAGF,SAASlD,EAAWmD,EAAcC,EAAuB,KAAMjB,EAAwC,MACrG,MAAMkB,EAAa,CACjBvC,SAAUC,EAAAA,UACVC,WAAYmC,EACZlB,SAAU,GACVC,kBAAmB,GACnBP,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,QAAQ,EACRK,0BAGY,OAAViB,EACFzD,EAAYQ,MAAMmD,OAAOF,EAAQ,EAAG,EAAGC,GAG3B1D,EAAAQ,MAAM6B,KAAKqB,EACzB,CAqDO,SAAAE,EAAKH,EAAeD,GACvB,GAAS,OAATA,GAAiBC,EAAQ,EAAG,CAC9B,MAAOI,GAAQ7D,EAAYQ,MAAMmD,OAAOF,EAAO,GAC/CzD,EAAYQ,MAAMmD,OAAOF,EAAQ,EAAG,EAAGI,EAAI,SAE3B,SAATL,GAAmBC,EAAQzD,EAAYQ,MAAMsD,OAAS,EAAG,CAChE,MAAOD,GAAQ7D,EAAYQ,MAAMmD,OAAOF,EAAO,GAC/CzD,EAAYQ,MAAMmD,OAAOF,EAAQ,EAAG,EAAGI,EAAI,CAC7C,CAGO,SAAAE,EAAYN,EAAeI,GACtB7D,EAAAQ,MAAMiD,GAAS,IACtBzD,EAAYQ,MAAMiD,MAClBI,EACH5B,QAAQ,EACRO,uBAAwBqB,EAAKrB,uBAC/B,CAGF,SAASwB,EAAcP,GACTzD,EAAAQ,MAAMmD,OAAOF,EAAO,GAChCQ,EAAAA,UAAUC,QAAQ,OAAM,CAGjB,SAAAC,EAAYhD,EAAkBiD,GAC/BtE,EAAA,cAAeqB,EAAUiD,EAAW,CAa5CC,EAAAA,OAAM,IAAMzE,EAAM0E,cAAcvD,IAC1BA,IACUf,EAAAQ,MAAQ,IAAIO,GAAO,GAEhC,CAAEwD,WAAW,IAEV,MAAAC,EAAKC,eAAa,qvIAlJfzE,EAAYQ,MAAM0C,QAAQjC,GAA4B,aAAjBA,EAAEI,aAA2ByC"}
1
+ {"version":3,"file":"subject-list.vue.cjs","sources":["../../../../../../packages/components/src/subject-list/src/subject-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { setGuid } from '@qxs-bns/utils'\nimport SubjectBlankFill from './components/subject-blank-fill.vue'\nimport SubjectScale from './components/subject-scale.vue'\nimport SubjectSingle from './components/subject-single.vue'\nimport SubjectTextFill from './components/subject-text-fill.vue'\nimport SubjectPageEnd from './components/SubjectPageEnd.vue'\nimport SubjectRichText from './components/SubjectRichText.vue'\n\ndefineOptions({\n name: 'QxsSubjectList',\n})\n\nconst props = defineProps<{\n subjectList: any[]\n isPreview: boolean\n}>()\nconst emits = defineEmits(['setRelation'])\nconst currentList = ref([] as any)\nconst attrs = useAttrs()\n\ndefineExpose({\n addSubject,\n currentList,\n uploadExcel,\n addExam,\n setAnswerRelation,\n})\n\nfunction totalPageIndex() {\n return currentList.value.filter((v: any) => v.answerType === 'page_end').length\n}\n\nconst currentPageIndex = computed(() => {\n const currentPageList = currentList.value.filter((v: any) => v.answerType === 'page_end')\n return (currentId: string) => {\n const currentIndex = currentPageList.findIndex((c: any) => c.customId === currentId)\n return currentIndex !== -1 ? currentIndex + 1 : 0\n }\n})\n\nfunction currentIndex() {\n return (currentExamId: string) => {\n let current = 0\n let output = 0\n\n // 遍历 currentList,过滤掉分页器,并计算题目序号\n currentList.value.forEach((v: any) => {\n if (v.answerType !== 'page_end') { // 排除分页器\n current++\n if (currentExamId === v.customId) { // 匹配当前题目 ID\n output = current\n }\n }\n })\n\n return output - 1\n }\n}\n\nfunction addSubject(type: string, index: number | null = null, examAnswerRelationType: number | null = null) {\n const newSubject = {\n customId: setGuid(),\n answerType: type,\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType,\n }\n\n if (index !== null) {\n currentList.value.splice(index + 1, 0, newSubject)\n }\n else {\n currentList.value.push(newSubject)\n }\n}\nfunction addExam(items: any[]) {\n console.log(items, 'items')\n\n let currentIndex = 1\n const newList: any[] = []\n\n items.forEach((v: any) => {\n // 创建新的题目对象\n const newItem = {\n ...v,\n customId: setGuid(),\n answerType: v.richTextContent ? 'rich_text' : v.examTypeEnum,\n answers: v.answers?.map((c: any) => ({\n ...c,\n title: c.answer,\n answerId: c.examAnswerId,\n isCorrect: c.isCorrect,\n })) || [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n }\n\n // 如果当前题目的 pageIndex 和 currentIndex 不一致,则插入分页器\n if (newItem.pageIndex > currentIndex) {\n newList.push({\n customId: setGuid(),\n answerType: 'page_end',\n analysis: '',\n scaleQuestionList: [],\n isSave: false,\n isEdit: true,\n isRealCanDel: true,\n hasSet: false,\n examAnswerRelationType: 0,\n })\n currentIndex = newItem.pageIndex\n }\n\n // 将题目添加到 newList\n newList.push(newItem)\n })\n\n // 更新 currentList\n currentList.value = currentList.value.concat(newList)\n}\nfunction uploadExcel(list: any[]) {\n currentList.value = currentList.value.concat(list)\n}\n\nfunction move(index: number, type: 'up' | 'down') {\n if (type === 'up' && index > 0) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index - 1, 0, item)\n }\n else if (type === 'down' && index < currentList.value.length - 1) {\n const [item] = currentList.value.splice(index, 1)\n currentList.value.splice(index + 1, 0, item)\n }\n}\n\nfunction saveSubject(index: number, item: any) {\n currentList.value[index] = {\n ...currentList.value[index],\n ...item,\n isEdit: false,\n examAnswerRelationType: item.examAnswerRelationType,\n }\n}\n\nfunction deleteSubject(index: number) {\n currentList.value.splice(index, 1)\n ElMessage.success('删除成功')\n}\n\nfunction setRelation(customId: number, examAnswers: any) {\n emits('setRelation', customId, examAnswers)\n}\n\nfunction setAnswerRelation(answerRelations: any, customId: string, customAnswerId: string) {\n const targetItem = currentList.value.find((v: any) => v.customId === customId)\n if (targetItem) {\n const targetAnswer = targetItem.answers?.find((c: any) => c.customAnswerId === customAnswerId)\n if (targetAnswer) {\n targetAnswer.answerRelations = answerRelations\n }\n }\n}\n\nwatch(() => props.subjectList, (newList: any) => {\n if (newList) {\n currentList.value = [...newList]\n }\n}, { immediate: true })\n\nconst ns = useNamespace('subject-list')\n</script>\n\n<template>\n <div :class=\"ns.e('list-exam')\">\n <div class=\"subject-list-wrapper\">\n <div\n v-for=\"(item, index) in currentList\"\n :key=\"item.customId\"\n class=\"subject-item\"\n >\n <template v-if=\"['single', 'multiple', 'sort'].includes(item.answerType)\">\n <SubjectSingle\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :type=\"item.answerType\"\n :exam-id=\"item.examId\"\n :is-key=\"item.isKey\"\n :is-save=\"!item.isRealCanDel\"\n :custom-id=\"item.customId\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :least-answer-count=\"item.leastAnswerCount\"\n :is-edit=\"item.isEdit || false\"\n :show-action=\"!isPreview\"\n :exam-expand=\"item.examExpand\"\n :answer-check-type=\"item.answerCheckType\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @set-relation=\"setRelation\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string, examAnswerRelationType: number) => addSubject(type, index, examAnswerRelationType)\"\n />\n </template>\n <SubjectScale\n v-else-if=\"item.answerType === 'scale'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :is-edit=\"item.isEdit || false\"\n :scale-question-list=\"item.scaleQuestionList\"\n :show-action=\"!isPreview\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectBlankFill\n v-else-if=\"item.answerType === 'blank_fill'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :show-action=\"!isPreview\"\n :is-edit=\"item.isEdit || false\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectTextFill\n v-else-if=\"item.answerType === 'text_fill'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :title=\"item.title\"\n :is-save=\"!item.isRealCanDel\"\n :is-set=\"item.hasSet || false\"\n :answer-list=\"item.answers\"\n :analysis=\"item.analysis\"\n :show-action=\"!isPreview\"\n :is-edit=\"item.isEdit || false\"\n :exam-expand=\"item.examExpand\"\n :exam-answer-setting-v-o=\"item.examAnswerSettingVO || {}\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n :exam-rich-text-content=\"item.examRichTextContent\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectRichText\n v-else-if=\"item.answerType === 'rich_text'\"\n v-bind=\"attrs\"\n :order-index=\"currentIndex()(item.customId)\"\n :rich-text-content=\"item.richTextContent\"\n :is-set=\"item.hasSet || false\"\n :is-save=\"!item.isRealCanDel\"\n :is-edit=\"item.isEdit || false\"\n :show-action=\"!isPreview\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n <SubjectPageEnd\n v-else-if=\"item.answerType === 'page_end'\"\n :key=\"index\"\n :total-page=\"totalPageIndex()\"\n :current-page-index=\"currentPageIndex(item.customId)\"\n :item=\"item\"\n :is-edit=\"item.isEdit || false\"\n :is-set=\"item.hasSet || false\"\n :is-save=\"!item.isRealCanDel\"\n :exam-answer-relation-type=\"item.examAnswerRelationType\"\n @move=\"(type: 'up' | 'down') => move(index, type)\"\n @delete=\"deleteSubject(index)\"\n @save=\"(item: any) => saveSubject(index, item)\"\n @edit=\"item.isEdit = true\"\n @add=\"(type: string) => addSubject(type, index, null)\"\n />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","currentList","ref","attrs","useAttrs","__expose","addSubject","uploadExcel","list","value","concat","addExam","items","console","log","currentIndex","newList","forEach","v","newItem","customId","setGuid","answerType","richTextContent","examTypeEnum","answers","map","c","title","answer","answerId","examAnswerId","isCorrect","isSave","isEdit","isRealCanDel","hasSet","pageIndex","push","analysis","scaleQuestionList","examAnswerRelationType","setAnswerRelation","answerRelations","customAnswerId","targetItem","find","targetAnswer","currentPageIndex","computed","currentPageList","filter","currentId","findIndex","currentExamId","current","output","type","index","newSubject","splice","move","item","length","saveSubject","deleteSubject","ElMessage","success","setRelation","examAnswers","watch","subjectList","immediate","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","_hoisted_1","_openBlock","_Fragment","_renderList","key","includes","_createBlock","SubjectSingle","_mergeProps","examId","isKey","leastAnswerCount","isPreview","examExpand","answerCheckType","examRichTextContent","onSetRelation","onMove","onDelete","$event","onSave","onEdit","onAdd","SubjectScale","SubjectBlankFill","examAnswerSettingVO","SubjectTextFill","SubjectRichText","SubjectPageEnd"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/subject-type/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/subject-type.vue'\n\nconst QxsSubjectType = withInstall(component)\n\nexport {\n QxsSubjectType,\n}\n\nexport default QxsSubjectType\n"],"names":["QxsSubjectType","withInstall","component","default"],"mappings":"gJAGA,MAAMA,EAAiBC,cAAYC,EAASC"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/subject-type/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/subject-type.vue'\n\nconst QxsSubjectType = withInstall(component)\n\nexport {\n QxsSubjectType,\n}\n\nexport default QxsSubjectType\n"],"names":["QxsSubjectType","withInstall","component"],"mappings":"gJAGA,MAAMA,EAAiBC,EAAAA,YAAYC,EAAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),l=require("@qxs-bns/hooks");const t={class:"type-item"},n={class:"base-subject"},c=["onClick"],a={class:"type-item"},s={class:"base-subject flex"},r=["onClick"],o={class:"type-item"},i={class:"base-subject flex"},p=["onClick"];var m=e.defineComponent({name:"QxsSubjectType",__name:"subject-type",emits:["select"],setup(m,{emit:d}){const u=d,y=e.ref([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"},{type:"blank_fill",label:"填空题"},{type:"text_fill",label:"问答题"},{type:"scale",label:"量表题"},{type:"sort",label:"排序题"}]),b=e.ref([{type:"rich_text",label:"富文本"},{type:"page_end",label:"分页器"}]),k=e.ref([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"}]),E=l.useNamespace("subject-type");return(l,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(E).e("type-list"))},[e.createElementVNode("div",t,[m[0]||(m[0]=e.createElementVNode("div",null,"普通题目类型",-1)),e.createElementVNode("div",n,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,c)))),128))])]),e.createElementVNode("div",a,[m[1]||(m[1]=e.createElementVNode("div",null,"其他",-1)),e.createElementVNode("div",s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,r)))),128))])]),e.createElementVNode("div",o,[m[2]||(m[2]=e.createElementVNode("div",null,"互动问答类型(支持设置结果项)",-1)),e.createElementVNode("div",i,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),(l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type,!0)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,p)))),128))])])],2))}});exports.default=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),l=require("@qxs-bns/hooks");const t={class:"type-item"},n={class:"base-subject"},c=["onClick"],a={class:"type-item"},s={class:"base-subject flex"},r=["onClick"],o={class:"type-item"},i={class:"base-subject flex"},p=["onClick"];var m=e.defineComponent({name:"QxsSubjectType",__name:"subject-type",emits:["select"],setup(m,{emit:d}){const u=d,y=e.ref([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"},{type:"blank_fill",label:"填空题"},{type:"text_fill",label:"问答题"},{type:"scale",label:"量表题"},{type:"sort",label:"排序题"}]),b=e.ref([{type:"rich_text",label:"富文本"},{type:"page_end",label:"分页器"}]),k=e.ref([{type:"single",label:"单选题"},{type:"multiple",label:"多选题"}]),E=l.useNamespace("subject-type");return(l,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(E).e("type-list"))},[e.createElementVNode("div",t,[m[0]||(m[0]=e.createElementVNode("div",null,"普通题目类型",-1)),e.createElementVNode("div",n,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,c))),128))])]),e.createElementVNode("div",a,[m[1]||(m[1]=e.createElementVNode("div",null,"其他",-1)),e.createElementVNode("div",s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,r))),128))])]),e.createElementVNode("div",o,[m[2]||(m[2]=e.createElementVNode("div",null,"互动问答类型(支持设置结果项)",-1)),e.createElementVNode("div",i,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),l=>(e.openBlock(),e.createElementBlock("div",{key:l.type,class:"item flex-center",onClick:e=>u("select",l.type,!0)},[e.createElementVNode("span",null,e.toDisplayString(l.label),1)],8,p))),128))])])],2))}});exports.default=m;
2
2
  //# sourceMappingURL=subject-type.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-type.vue.cjs","sources":["../../../../../../packages/components/src/subject-type/src/subject-type.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsSubjectType',\n})\nconst emits = defineEmits(['select'])\nconst subjectOptions = ref([\n {\n type: 'single',\n label: '单选题',\n }, {\n type: 'multiple',\n label: '多选题',\n },\n {\n type: 'blank_fill',\n label: '填空题',\n },\n {\n type: 'text_fill',\n label: '问答题',\n },\n {\n type: 'scale',\n label: '量表题',\n },\n {\n type: 'sort',\n label: '排序题',\n },\n])\nconst otherOptions = ref([\n {\n type: 'rich_text',\n label: '富文本',\n },\n {\n type: 'page_end',\n label: '分页器',\n },\n])\nconst interactionOptions = ref([\n {\n type: 'single',\n label: '单选题',\n }, {\n type: 'multiple',\n label: '多选题',\n },\n])\nconst ns = useNamespace('subject-type')\n</script>\n\n<template>\n <div :class=\"ns.e('type-list')\">\n <div class=\"type-item\">\n <div>普通题目类型</div>\n <div class=\"base-subject\">\n <div\n v-for=\"item in subjectOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n <div class=\"type-item\">\n <div>其他</div>\n <div class=\"base-subject flex\">\n <div\n v-for=\"item in otherOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n <div class=\"type-item\">\n <div>互动问答类型(支持设置结果项)</div>\n <div class=\"base-subject flex\">\n <div\n v-for=\"item in interactionOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type, true)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["emits","__emit","subjectOptions","ref","type","label","otherOptions","interactionOptions","ns","useNamespace"],"mappings":"oaAMA,MAAMA,EAAQC,EACRC,EAAiBC,EAAAA,IAAI,CACzB,CACEC,KAAM,SACNC,MAAO,OACN,CACDD,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,SAGLC,EAAeH,EAAAA,IAAI,CACvB,CACEC,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAGLE,EAAqBJ,EAAAA,IAAI,CAC7B,CACEC,KAAM,SACNC,MAAO,OACN,CACDD,KAAM,WACNC,MAAO,SAGLG,EAAKC,eAAa"}
1
+ {"version":3,"file":"subject-type.vue.cjs","sources":["../../../../../../packages/components/src/subject-type/src/subject-type.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsSubjectType',\n})\nconst emits = defineEmits(['select'])\nconst subjectOptions = ref([\n {\n type: 'single',\n label: '单选题',\n }, {\n type: 'multiple',\n label: '多选题',\n },\n {\n type: 'blank_fill',\n label: '填空题',\n },\n {\n type: 'text_fill',\n label: '问答题',\n },\n {\n type: 'scale',\n label: '量表题',\n },\n {\n type: 'sort',\n label: '排序题',\n },\n])\nconst otherOptions = ref([\n {\n type: 'rich_text',\n label: '富文本',\n },\n {\n type: 'page_end',\n label: '分页器',\n },\n])\nconst interactionOptions = ref([\n {\n type: 'single',\n label: '单选题',\n }, {\n type: 'multiple',\n label: '多选题',\n },\n])\nconst ns = useNamespace('subject-type')\n</script>\n\n<template>\n <div :class=\"ns.e('type-list')\">\n <div class=\"type-item\">\n <div>普通题目类型</div>\n <div class=\"base-subject\">\n <div\n v-for=\"item in subjectOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n <div class=\"type-item\">\n <div>其他</div>\n <div class=\"base-subject flex\">\n <div\n v-for=\"item in otherOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n <div class=\"type-item\">\n <div>互动问答类型(支持设置结果项)</div>\n <div class=\"base-subject flex\">\n <div\n v-for=\"item in interactionOptions\"\n :key=\"item.type\"\n class=\"item flex-center\"\n @click=\"emits('select', item.type, true)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["emits","__emit","subjectOptions","ref","type","label","otherOptions","interactionOptions","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","_hoisted_1","_cache","_hoisted_2","_Fragment","_renderList","item","key","onClick","$event","_toDisplayString","_hoisted_4","_hoisted_5","_hoisted_7","_hoisted_8"],"mappings":"oaAMA,MAAMA,EAAQC,EACRC,EAAiBC,EAAAA,IAAI,CACzB,CACEC,KAAM,SACNC,MAAO,OACN,CACDD,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,SAGLC,EAAeH,EAAAA,IAAI,CACvB,CACEC,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAGLE,EAAqBJ,EAAAA,IAAI,CAC7B,CACEC,KAAM,SACNC,MAAO,OACN,CACDD,KAAM,WACNC,MAAO,SAGLG,EAAKC,EAAAA,aAAa,4CAItBC,EAAAA,mBAwCM,MAAA,CAxCAC,MAAKC,EAAAA,eAAEC,EAAAA,MAAAL,GAAGM,EAAC,gBACfC,EAAAA,mBAYM,MAZNC,EAYM,CAXJC,EAAA,KAAAA,EAAA,GAAAF,EAAAA,mBAAiB,WAAZ,UAAM,IACXA,EAAAA,mBASM,MATNG,EASM,kBARJR,EAAAA,mBAOMS,EAAAA,SAAA,KAAAC,EAAAA,WANWP,EAAAA,MAAAX,GAARmB,kBADTX,EAAAA,mBAOM,MAAA,CALHY,IAAKD,EAAKjB,KACXO,MAAM,mBACLY,QAAKC,GAAExB,EAAK,SAAWqB,EAAKjB,QAE7BW,EAAAA,mBAA6B,OAAA,KAAAU,EAAAA,gBAApBJ,EAAKhB,OAAK,qBAIzBU,EAAAA,mBAYM,MAZNW,EAYM,CAXJT,EAAA,KAAAA,EAAA,GAAAF,EAAAA,mBAAa,WAAR,MAAE,IACPA,EAAAA,mBASM,MATNY,EASM,kBARJjB,EAAAA,mBAOMS,EAAAA,SAAA,KAAAC,EAAAA,WANWP,EAAAA,MAAAP,GAARe,kBADTX,EAAAA,mBAOM,MAAA,CALHY,IAAKD,EAAKjB,KACXO,MAAM,mBACLY,QAAKC,GAAExB,EAAK,SAAWqB,EAAKjB,QAE7BW,EAAAA,mBAA6B,OAAA,KAAAU,EAAAA,gBAApBJ,EAAKhB,OAAK,qBAIzBU,EAAAA,mBAYM,MAZNa,EAYM,CAXJX,EAAA,KAAAA,EAAA,GAAAF,EAAAA,mBAA0B,WAArB,mBAAe,IACpBA,EAAAA,mBASM,MATNc,EASM,kBARJnB,EAAAA,mBAOMS,EAAAA,SAAA,KAAAC,EAAAA,WANWP,EAAAA,MAAAN,GAARc,kBADTX,EAAAA,mBAOM,MAAA,CALHY,IAAKD,EAAKjB,KACXO,MAAM,mBACLY,QAAKC,GAAExB,EAAK,SAAWqB,EAAKjB,MAAI,KAEjCW,EAAAA,mBAA6B,OAAA,KAAAU,EAAAA,gBAApBJ,EAAKhB,OAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/tiny-mce-editor/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/tiny-mce-editor.vue'\n\nconst QxsTinyMceEditor = withInstall(component)\n\nexport {\n QxsTinyMceEditor,\n}\n\nexport default QxsTinyMceEditor\n"],"names":["QxsTinyMceEditor","withInstall","component","default"],"mappings":"mJAGA,MAAMA,EAAmBC,cAAYC,EAASC"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/tiny-mce-editor/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/tiny-mce-editor.vue'\n\nconst QxsTinyMceEditor = withInstall(component)\n\nexport {\n QxsTinyMceEditor,\n}\n\nexport default QxsTinyMceEditor\n"],"names":["QxsTinyMceEditor","withInstall","component"],"mappings":"mJAGA,MAAMA,EAAmBC,EAAAA,YAAYC,EAAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),n=require("@qxs-bns/hooks"),i=require("lodash-es"),t=require("tinymce/tinymce");require("tinymce/themes/silver/theme"),require("tinymce/icons/default/icons"),require("tinymce/models/dom"),require("tinymce/plugins/autolink"),require("tinymce/plugins/autoresize"),require("tinymce/plugins/fullscreen"),require("tinymce/plugins/image"),require("tinymce/plugins/insertdatetime"),require("tinymce/plugins/link"),require("tinymce/plugins/lists"),require("tinymce/plugins/media"),require("tinymce/plugins/preview"),require("tinymce/plugins/table"),require("tinymce/plugins/wordcount"),require("tinymce/plugins/code"),require("tinymce/plugins/searchreplace"),require("tinymce/plugins/nonbreaking");const r=["id","name"];var l=e.defineComponent({name:"QxsTinyMceEditor",__name:"tiny-mce-editor",props:{modelValue:{type:String,required:!0,default:""},config:{type:Object,required:!1,default:()=>({})},assetsBasePath:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(l,{emit:a}){const u=a,o=n.useNamespace("tiny-mce-editor"),s=l.assetsBasePath||"node_modules/",c=e.shallowRef(null),m=e.ref(`tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2,9)}`),d=e.computed({get:()=>l.modelValue,set(e){u("update:modelValue",e)}}),g={selector:`textarea#${m.value}`,promotion:!1,license_key:"gpl",elementpath:!1,language:"zh-Hans",language_url:`${s}tinymce/langs/zh-Hans.js`,skin_url:`${s}tinymce/skins/ui/oxide`,content_css:`${s}tinymce/skins/content/default/content.min.css`,min_height:300,max_height:700,plugins:"autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking",toolbar:"undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code",branding:!1,autoresize:!0,menubar:!1,nonbreaking_force_tab:!0,toolbar_mode:"sliding",insertdatetime_formats:["%Y年%m月%d日","%H点%M分%S秒","%Y-%m-%d","%H:%M:%S"],setup:e=>{e.on("init",(()=>{c.value=e,e.setContent(d.value)})),e.on("input change undo redo",(()=>{d.value=e.getContent()})),l.config?.expandSetup?.(e)}},p=e.computed((()=>{const e=g;return l.config.images_upload_handler||("string"==typeof e.plugins?e.plugins=e.plugins.replace("image",""):Array.isArray(e.plugins)&&(e.plugins=e.plugins.filter((e=>"image"!==e)))),i.merge(e,l.config)}));return e.watch((()=>l.modelValue),(e=>{try{c.value&&e!==c.value?.getContent()&&c.value.setContent(e)}catch(e){console.error("设置编辑器内容时出错:",e)}})),e.onMounted((async()=>{"undefined"!=typeof window&&t.init(p.value)})),e.onBeforeUnmount((()=>{c.value&&(c.value.destroy(),c.value=null)})),(n,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(o).e("tiny-mce"))},[e.createCommentVNode(" 使用动态生成的 id "),e.withDirectives(e.createElementVNode("textarea",{id:e.unref(m),"onUpdate:modelValue":i[0]||(i[0]=n=>e.isRef(d)?d.value=n:null),name:e.unref(m)},null,8,r),[[e.vModelText,e.unref(d)]])],2))}});exports.default=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),n=require("@qxs-bns/hooks"),i=require("lodash-es"),t=require("tinymce/tinymce");require("tinymce/themes/silver/theme"),require("tinymce/icons/default/icons"),require("tinymce/models/dom"),require("tinymce/plugins/autolink"),require("tinymce/plugins/autoresize"),require("tinymce/plugins/fullscreen"),require("tinymce/plugins/image"),require("tinymce/plugins/insertdatetime"),require("tinymce/plugins/link"),require("tinymce/plugins/lists"),require("tinymce/plugins/media"),require("tinymce/plugins/preview"),require("tinymce/plugins/table"),require("tinymce/plugins/wordcount"),require("tinymce/plugins/code"),require("tinymce/plugins/searchreplace"),require("tinymce/plugins/nonbreaking");const r=["id","name"];var l=e.defineComponent({name:"QxsTinyMceEditor",__name:"tiny-mce-editor",props:{modelValue:{type:String,required:!0,default:""},config:{type:Object,required:!1,default:()=>({})},assetsBasePath:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(l,{emit:a}){const u=a,o=n.useNamespace("tiny-mce-editor"),s=l.assetsBasePath||"node_modules/",c=e.shallowRef(null),m=e.ref(`tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2,9)}`),d=e.computed({get:()=>l.modelValue,set(e){u("update:modelValue",e)}}),g={selector:`textarea#${m.value}`,promotion:!1,license_key:"gpl",elementpath:!1,language:"zh-Hans",language_url:`${s}tinymce/langs/zh-Hans.js`,skin_url:`${s}tinymce/skins/ui/oxide`,content_css:`${s}tinymce/skins/content/default/content.min.css`,min_height:300,max_height:700,plugins:"autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking",toolbar:"undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code",branding:!1,autoresize:!0,menubar:!1,nonbreaking_force_tab:!0,toolbar_mode:"sliding",insertdatetime_formats:["%Y年%m月%d日","%H点%M分%S秒","%Y-%m-%d","%H:%M:%S"],setup:e=>{e.on("init",()=>{c.value=e,e.setContent(d.value)}),e.on("input change undo redo",()=>{d.value=e.getContent()}),l.config?.expandSetup?.(e)}},p=e.computed(()=>{const e=g;return l.config.images_upload_handler||("string"==typeof e.plugins?e.plugins=e.plugins.replace("image",""):Array.isArray(e.plugins)&&(e.plugins=e.plugins.filter(e=>"image"!==e))),i.merge(e,l.config)});return e.watch(()=>l.modelValue,e=>{try{c.value&&e!==c.value?.getContent()&&c.value.setContent(e)}catch(e){console.error("设置编辑器内容时出错:",e)}}),e.onMounted(async()=>{"undefined"!=typeof window&&t.init(p.value)}),e.onBeforeUnmount(()=>{c.value&&(c.value.destroy(),c.value=null)}),(n,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(o).e("tiny-mce"))},[e.createCommentVNode(" 使用动态生成的 id "),e.withDirectives(e.createElementVNode("textarea",{id:e.unref(m),"onUpdate:modelValue":i[0]||(i[0]=n=>e.isRef(d)?d.value=n:null),name:e.unref(m)},null,8,r),[[e.vModelText,e.unref(d)]])],2))}});exports.default=l;
2
2
  //# sourceMappingURL=tiny-mce-editor.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiny-mce-editor.vue.cjs","sources":["../../../../../../packages/components/src/tiny-mce-editor/src/tiny-mce-editor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Editor, RawEditorOptions } from 'tinymce/tinymce'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { merge } from 'lodash-es'\nimport tinymce from 'tinymce/tinymce'\n\n// 导入核心功能\nimport 'tinymce/themes/silver/theme'\nimport 'tinymce/icons/default/icons'\nimport 'tinymce/models/dom'\n\nimport 'tinymce/plugins/autolink'\nimport 'tinymce/plugins/autoresize'\nimport 'tinymce/plugins/fullscreen'\nimport 'tinymce/plugins/image'\nimport 'tinymce/plugins/insertdatetime'\nimport 'tinymce/plugins/link'\nimport 'tinymce/plugins/lists'\nimport 'tinymce/plugins/media'\nimport 'tinymce/plugins/preview'\nimport 'tinymce/plugins/table'\nimport 'tinymce/plugins/wordcount'\nimport 'tinymce/plugins/code'\nimport 'tinymce/plugins/searchreplace'\nimport 'tinymce/plugins/nonbreaking'\n// 导入语言包\n\ndefineOptions({\n name: 'QxsTinyMceEditor',\n})\n\nconst {\n modelValue = '',\n config = {},\n assetsBasePath = '',\n} = defineProps<{\n modelValue: string\n config?: RawEditorOptions & {\n expandSetup?: RawEditorOptions['setup']\n }\n assetsBasePath?: string\n}>()\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst ns = useNamespace('tiny-mce-editor')\n\nconst colorScheme = 'light'\nconst basePath = assetsBasePath || 'node_modules/'\n// 存储编辑器实例的引用\nconst editorInstance = shallowRef<Editor | null>(null)\n// 生成唯一的 id\nconst uniqueId = ref(\n `tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,\n)\n\nconst content = computed({\n get() {\n return modelValue\n },\n set(val) {\n emit('update:modelValue', val)\n },\n})\n\nconst defaultSetting: RawEditorOptions = {\n // 使用动态生成的 id\n selector: `textarea#${uniqueId.value}`,\n promotion: false, // 禁用推广信息\n license_key: 'gpl',\n elementpath: false,\n language: 'zh-Hans',\n language_url: `${basePath}tinymce/langs/zh-Hans.js`,\n skin_url: `${basePath}${\n colorScheme === 'light' ? 'tinymce/skins/ui/oxide' : 'tinymce/skins/ui/oxide-dark'\n }`,\n content_css: `${basePath}${\n colorScheme === 'light'\n ? 'tinymce/skins/content/default/content.min.css'\n : 'tinymce/skins/content/dark/content.min.css'\n }`,\n min_height: 300,\n max_height: 700,\n plugins:\n 'autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking',\n toolbar:\n 'undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code',\n branding: false,\n autoresize: true,\n menubar: false,\n nonbreaking_force_tab: true,\n toolbar_mode: 'sliding',\n insertdatetime_formats: [\n '%Y年%m月%d日',\n '%H点%M分%S秒',\n '%Y-%m-%d',\n '%H:%M:%S',\n ],\n // https://www.tiny.cloud/docs/tinymce/6/file-image-upload/#images_upload_handler\n // images_upload_handler: async (blobInfo: any, progress: any) => {\n // // blobInfo, succFun, failFun, progress\n // const files = blobInfo.blob()\n // const formData = new FormData()\n // formData.append('image', files)\n\n // const { res, error } = await useApi({\n // // ...commonUrls.uploadImage,\n // params: {\n // bucketType: classify,\n // },\n // data: formData,\n // onUploadProgress: (e: any) => {\n // progress((e.loaded / e.total) * 100)\n // },\n // })\n // if (res) {\n // const { normal } = res\n // console.log('normal: ', res)\n // return normal\n // }\n // if (error) {\n // console.log(error.message)\n // return Promise.reject(error.message)\n // }\n // },\n setup: (editor: Editor) => {\n // 编辑器初始化完成后设置内容\n editor.on('init', () => {\n // 保存编辑器实例\n editorInstance.value = editor\n editor.setContent(content.value)\n })\n\n // 监听编辑器内容变化\n editor.on('input change undo redo', () => {\n content.value = editor.getContent()\n })\n\n config?.expandSetup?.(editor)\n },\n}\n\nconst initSetting = computed(() => {\n const dealDefaultSetting = defaultSetting\n if (!config.images_upload_handler) {\n // 删除 image 图片 plugin\n if (typeof dealDefaultSetting.plugins === 'string') {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.replace(\n 'image',\n '',\n )\n }\n else if (Array.isArray(dealDefaultSetting.plugins)) {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.filter(\n plugin => plugin !== 'image',\n )\n }\n }\n return merge(dealDefaultSetting, config)\n})\n\n// 监听 modelValue 的变化\nwatch(() => modelValue, (newVal) => {\n try {\n // 确保编辑器已初始化且内容确实发生变化\n if (editorInstance.value && newVal !== editorInstance.value?.getContent()) {\n editorInstance.value.setContent(newVal)\n }\n }\n catch (error) {\n console.error('设置编辑器内容时出错:', error)\n }\n})\n\nonMounted(async () => {\n if (typeof window !== 'undefined') {\n tinymce.init(initSetting.value)\n }\n})\n\n// 组件卸载时清理\nonBeforeUnmount(() => {\n if (editorInstance.value) {\n editorInstance.value.destroy()\n editorInstance.value = null\n }\n})\n</script>\n\n<template>\n <div :class=\"ns.e('tiny-mce')\">\n <!-- 使用动态生成的 id -->\n <textarea\n :id=\"uniqueId\"\n v-model=\"content\"\n :name=\"uniqueId\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","ns","useNamespace","basePath","__props","assetsBasePath","editorInstance","shallowRef","uniqueId","ref","Date","now","Math","random","toString","substr","content","computed","get","modelValue","set","val","defaultSetting","selector","value","promotion","license_key","elementpath","language","language_url","skin_url","content_css","min_height","max_height","plugins","toolbar","branding","autoresize","menubar","nonbreaking_force_tab","toolbar_mode","insertdatetime_formats","setup","editor","on","setContent","getContent","config","expandSetup","initSetting","dealDefaultSetting","images_upload_handler","replace","Array","isArray","filter","plugin","merge","watch","newVal","error","console","onMounted","async","window","tinymce","init","onBeforeUnmount","destroy"],"mappings":"ujCA2CA,MAAMA,EAAOC,EAEPC,EAAKC,eAAa,mBAGlBC,EAAWC,EAAAC,gBAAkB,gBAE7BC,EAAiBC,aAA0B,MAE3CC,EAAWC,EAAAA,IACf,qBAAqBC,KAAKC,SAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,MAGpEC,EAAUC,EAAAA,SAAS,CACvBC,IAAM,IACGd,EAAAe,WAET,GAAAC,CAAIC,GACFtB,EAAK,oBAAqBsB,EAAG,IAI3BC,EAAmC,CAEvCC,SAAU,YAAYf,EAASgB,QAC/BC,WAAW,EACXC,YAAa,MACbC,aAAa,EACbC,SAAU,UACVC,aAAc,GAAG1B,4BACjB2B,SAAU,GAAG3B,0BAGb4B,YAAa,GAAG5B,iDAKhB6B,WAAY,IACZC,WAAY,IACZC,QACE,8HACFC,QACE,oPACFC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,uBAAuB,EACvBC,aAAc,UACdC,uBAAwB,CACtB,YACA,YACA,WACA,YA6BFC,MAAQC,IAECA,EAAAC,GAAG,QAAQ,KAEhBtC,EAAekB,MAAQmB,EAChBA,EAAAE,WAAW7B,EAAQQ,MAAK,IAI1BmB,EAAAC,GAAG,0BAA0B,KAC1B5B,EAAAQ,MAAQmB,EAAOG,YAAW,IAG9B1C,EAAA2C,QAAEC,cAAcL,EAAM,GAI1BM,EAAchC,EAAAA,UAAS,KAC3B,MAAMiC,EAAqB5B,EAepB,OAdFlB,EAAM2C,OAACI,wBAEgC,iBAA/BD,EAAmBhB,QACTgB,EAAAhB,QAAUgB,EAAmBhB,QAAQkB,QACtD,QACA,IAGKC,MAAMC,QAAQJ,EAAmBhB,WACrBgB,EAAAhB,QAAUgB,EAAmBhB,QAAQqB,WACjC,UAAXC,MAITC,QAAMP,EAAoB9C,EAAM2C,OAAA,WAIzCW,EAAAA,OAAM,IAAMtD,EAAAe,aAAawC,IACnB,IAEErD,EAAekB,OAASmC,IAAWrD,EAAekB,OAAOsB,cAC5CxC,EAAAkB,MAAMqB,WAAWc,SAG7BC,GACGC,QAAAD,MAAM,cAAeA,EAAK,KAItCE,EAAAA,WAAUC,UACc,oBAAXC,QACDC,EAAAC,KAAKjB,EAAYzB,MAAK,IAKlC2C,EAAAA,iBAAgB,KACV7D,EAAekB,QACjBlB,EAAekB,MAAM4C,UACrB9D,EAAekB,MAAQ,KAAA"}
1
+ {"version":3,"file":"tiny-mce-editor.vue.cjs","sources":["../../../../../../packages/components/src/tiny-mce-editor/src/tiny-mce-editor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Editor, RawEditorOptions } from 'tinymce/tinymce'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { merge } from 'lodash-es'\nimport tinymce from 'tinymce/tinymce'\n\n// 导入核心功能\nimport 'tinymce/themes/silver/theme'\nimport 'tinymce/icons/default/icons'\nimport 'tinymce/models/dom'\n\nimport 'tinymce/plugins/autolink'\nimport 'tinymce/plugins/autoresize'\nimport 'tinymce/plugins/fullscreen'\nimport 'tinymce/plugins/image'\nimport 'tinymce/plugins/insertdatetime'\nimport 'tinymce/plugins/link'\nimport 'tinymce/plugins/lists'\nimport 'tinymce/plugins/media'\nimport 'tinymce/plugins/preview'\nimport 'tinymce/plugins/table'\nimport 'tinymce/plugins/wordcount'\nimport 'tinymce/plugins/code'\nimport 'tinymce/plugins/searchreplace'\nimport 'tinymce/plugins/nonbreaking'\n// 导入语言包\n\ndefineOptions({\n name: 'QxsTinyMceEditor',\n})\n\nconst {\n modelValue = '',\n config = {},\n assetsBasePath = '',\n} = defineProps<{\n modelValue: string\n config?: RawEditorOptions & {\n expandSetup?: RawEditorOptions['setup']\n }\n assetsBasePath?: string\n}>()\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst ns = useNamespace('tiny-mce-editor')\n\nconst colorScheme = 'light'\nconst basePath = assetsBasePath || 'node_modules/'\n// 存储编辑器实例的引用\nconst editorInstance = shallowRef<Editor | null>(null)\n// 生成唯一的 id\nconst uniqueId = ref(\n `tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,\n)\n\nconst content = computed({\n get() {\n return modelValue\n },\n set(val) {\n emit('update:modelValue', val)\n },\n})\n\nconst defaultSetting: RawEditorOptions = {\n // 使用动态生成的 id\n selector: `textarea#${uniqueId.value}`,\n promotion: false, // 禁用推广信息\n license_key: 'gpl',\n elementpath: false,\n language: 'zh-Hans',\n language_url: `${basePath}tinymce/langs/zh-Hans.js`,\n skin_url: `${basePath}${\n colorScheme === 'light' ? 'tinymce/skins/ui/oxide' : 'tinymce/skins/ui/oxide-dark'\n }`,\n content_css: `${basePath}${\n colorScheme === 'light'\n ? 'tinymce/skins/content/default/content.min.css'\n : 'tinymce/skins/content/dark/content.min.css'\n }`,\n min_height: 300,\n max_height: 700,\n plugins:\n 'autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking',\n toolbar:\n 'undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code',\n branding: false,\n autoresize: true,\n menubar: false,\n nonbreaking_force_tab: true,\n toolbar_mode: 'sliding',\n insertdatetime_formats: [\n '%Y年%m月%d日',\n '%H点%M分%S秒',\n '%Y-%m-%d',\n '%H:%M:%S',\n ],\n // https://www.tiny.cloud/docs/tinymce/6/file-image-upload/#images_upload_handler\n // images_upload_handler: async (blobInfo: any, progress: any) => {\n // // blobInfo, succFun, failFun, progress\n // const files = blobInfo.blob()\n // const formData = new FormData()\n // formData.append('image', files)\n\n // const { res, error } = await useApi({\n // // ...commonUrls.uploadImage,\n // params: {\n // bucketType: classify,\n // },\n // data: formData,\n // onUploadProgress: (e: any) => {\n // progress((e.loaded / e.total) * 100)\n // },\n // })\n // if (res) {\n // const { normal } = res\n // console.log('normal: ', res)\n // return normal\n // }\n // if (error) {\n // console.log(error.message)\n // return Promise.reject(error.message)\n // }\n // },\n setup: (editor: Editor) => {\n // 编辑器初始化完成后设置内容\n editor.on('init', () => {\n // 保存编辑器实例\n editorInstance.value = editor\n editor.setContent(content.value)\n })\n\n // 监听编辑器内容变化\n editor.on('input change undo redo', () => {\n content.value = editor.getContent()\n })\n\n config?.expandSetup?.(editor)\n },\n}\n\nconst initSetting = computed(() => {\n const dealDefaultSetting = defaultSetting\n if (!config.images_upload_handler) {\n // 删除 image 图片 plugin\n if (typeof dealDefaultSetting.plugins === 'string') {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.replace(\n 'image',\n '',\n )\n }\n else if (Array.isArray(dealDefaultSetting.plugins)) {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.filter(\n plugin => plugin !== 'image',\n )\n }\n }\n return merge(dealDefaultSetting, config)\n})\n\n// 监听 modelValue 的变化\nwatch(() => modelValue, (newVal) => {\n try {\n // 确保编辑器已初始化且内容确实发生变化\n if (editorInstance.value && newVal !== editorInstance.value?.getContent()) {\n editorInstance.value.setContent(newVal)\n }\n }\n catch (error) {\n console.error('设置编辑器内容时出错:', error)\n }\n})\n\nonMounted(async () => {\n if (typeof window !== 'undefined') {\n tinymce.init(initSetting.value)\n }\n})\n\n// 组件卸载时清理\nonBeforeUnmount(() => {\n if (editorInstance.value) {\n editorInstance.value.destroy()\n editorInstance.value = null\n }\n})\n</script>\n\n<template>\n <div :class=\"ns.e('tiny-mce')\">\n <!-- 使用动态生成的 id -->\n <textarea\n :id=\"uniqueId\"\n v-model=\"content\"\n :name=\"uniqueId\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","ns","useNamespace","basePath","__props","assetsBasePath","editorInstance","shallowRef","uniqueId","ref","Date","now","Math","random","toString","substr","content","computed","get","modelValue","set","val","defaultSetting","selector","value","promotion","license_key","elementpath","language","language_url","skin_url","content_css","min_height","max_height","plugins","toolbar","branding","autoresize","menubar","nonbreaking_force_tab","toolbar_mode","insertdatetime_formats","setup","editor","on","setContent","getContent","config","expandSetup","initSetting","dealDefaultSetting","images_upload_handler","replace","Array","isArray","filter","plugin","merge","watch","newVal","error","console","onMounted","async","window","tinymce","init","onBeforeUnmount","destroy","_createElementBlock","class","_normalizeClass","_unref","e","_createCommentVNode","_createElementVNode","id","$event","name"],"mappings":"ujCA2CA,MAAMA,EAAOC,EAEPC,EAAKC,EAAAA,aAAa,mBAGlBC,EAAWC,EAAAC,gBAAkB,gBAE7BC,EAAiBC,EAAAA,WAA0B,MAE3CC,EAAWC,EAAAA,IACf,qBAAqBC,KAAKC,SAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,MAGpEC,EAAUC,EAAAA,SAAS,CACvBC,IAAA,IACSd,EAAAe,WAET,GAAAC,CAAIC,GACFtB,EAAK,oBAAqBsB,EAC5B,IAGIC,EAAmC,CAEvCC,SAAU,YAAYf,EAASgB,QAC/BC,WAAW,EACXC,YAAa,MACbC,aAAa,EACbC,SAAU,UACVC,aAAc,GAAG1B,4BACjB2B,SAAU,GAAG3B,0BAGb4B,YAAa,GAAG5B,iDAKhB6B,WAAY,IACZC,WAAY,IACZC,QACE,8HACFC,QACE,oPACFC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,uBAAuB,EACvBC,aAAc,UACdC,uBAAwB,CACtB,YACA,YACA,WACA,YA6BFC,MAAQC,IAENA,EAAOC,GAAG,OAAQ,KAEhBtC,EAAekB,MAAQmB,EACvBA,EAAOE,WAAW7B,EAAQQ,SAI5BmB,EAAOC,GAAG,yBAA0B,KAClC5B,EAAQQ,MAAQmB,EAAOG,eAGzB1C,EAAA2C,QAAQC,cAAcL,KAIpBM,EAAchC,EAAAA,SAAS,KAC3B,MAAMiC,EAAqB5B,EAe3B,OAdKlB,EAAA2C,OAAOI,wBAEgC,iBAA/BD,EAAmBhB,QAC5BgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQkB,QACtD,QACA,IAGKC,MAAMC,QAAQJ,EAAmBhB,WACxCgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQqB,UACjC,UAAXC,KAITC,QAAMP,EAAoB9C,EAAA2C,iBAInCW,EAAAA,MAAM,IAAMtD,EAAAe,WAAawC,IACvB,IAEMrD,EAAekB,OAASmC,IAAWrD,EAAekB,OAAOsB,cAC3DxC,EAAekB,MAAMqB,WAAWc,EAEpC,OACOC,GACLC,QAAQD,MAAM,cAAeA,EAC/B,IAGFE,EAAAA,UAAUC,UACc,oBAAXC,QACTC,EAAQC,KAAKjB,EAAYzB,SAK7B2C,EAAAA,gBAAgB,KACV7D,EAAekB,QACjBlB,EAAekB,MAAM4C,UACrB9D,EAAekB,MAAQ,8BAMzB6C,EAAAA,mBAOM,MAAA,CAPAC,MAAKC,EAAAA,eAAEC,EAAAA,MAAAvE,GAAGwE,EAAC,eACfC,EAAAA,mBAAA,iCACAC,EAAAA,mBAIE,WAAA,CAHCC,GAAIJ,EAAAA,MAAAhE,mDACIQ,EAAOQ,MAAAqD,EAAA,MACfC,KAAMN,EAAAA,MAAAhE,6BADEgE,EAAAA,MAAAxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"withInstall.cjs","sources":["../../../../packages/components/src/withInstall.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n// type SFCwithInstall<T> = T & Plugin\n\nexport function withInstall<T, E extends Record<string, any>>(main: T,\n extra?: E) {\n ; (main as SFCWithInstall<T>).install = (app: App): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n ; (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n"],"names":["main","extra","install","app","comp","Object","values","component","name"],"mappings":"iCAKgB,SAA8CA,EAC5DC,GAYO,OAXJD,EAA2BE,QAAWC,IAC5B,IAAA,MAAAC,IAAQ,CAACJ,KAASK,OAAOC,OAAgB,CAAE,IAChDH,EAAAI,UAAUH,EAAKI,KAAMJ,EAC3B,EAQKJ,CACT"}
1
+ {"version":3,"file":"withInstall.cjs","sources":["../../../../packages/components/src/withInstall.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n// type SFCwithInstall<T> = T & Plugin\n\nexport function withInstall<T, E extends Record<string, any>>(main: T,\n extra?: E) {\n ; (main as SFCWithInstall<T>).install = (app: App): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n ; (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n"],"names":["main","extra","install","app","comp","Object","values","component","name"],"mappings":"iCAKO,SAAuDA,EAC5DC,GAYA,OAXGD,EAA2BE,QAAWC,IACvC,IAAA,MAAWC,IAAQ,CAACJ,KAASK,OAAOC,OAAgB,CAAA,IAClDH,EAAII,UAAUH,EAAKI,KAAMJ,IAStBJ,CACT"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qxs-bns/components",
3
3
  "type": "module",
4
- "version": "0.0.55",
4
+ "version": "0.0.57",
5
5
  "description": "Vue 3 Component Library",
6
6
  "license": "MIT",
7
7
  "homepage": "https://trry-hub.github.io/qxs-bns/",
@@ -29,7 +29,8 @@
29
29
  ],
30
30
  "peerDependencies": {
31
31
  "@element-plus/icons-vue": "^2.3.1",
32
- "element-plus": "^2.9.4"
32
+ "element-plus": "^2.9.4",
33
+ "vue": "^3.5.12"
33
34
  },
34
35
  "peerDependenciesMeta": {
35
36
  "@element-plus/icons-vue": {
@@ -1,6 +1,7 @@
1
1
  export * from './data-chart/index';
2
2
  export * from './file-upload/index';
3
3
  export * from './fixed-action-bar/index';
4
+ export * from './icon/index';
4
5
  export * from './image-upload/index';
5
6
  export * from './photo-crop-tool/index';
6
7
  export * from './subject-action/index';
@@ -8,5 +9,4 @@ export * from './subject-layout/index';
8
9
  export * from './subject-list/index';
9
10
  export * from './subject-type/index';
10
11
  export * from './tiny-mce-editor/index';
11
- export * from './icon/index';
12
12
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../packages/components/src/components.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAElC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,0BAA0B,CAAA;AAExC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,wBAAwB,CAAA;AAEtC,cAAc,wBAAwB,CAAA;AAEtC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../packages/components/src/components.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAElC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,0BAA0B,CAAA;AAExC,cAAc,cAAc,CAAA;AAE5B,cAAc,sBAAsB,CAAA;AAEpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,wBAAwB,CAAA;AAEtC,cAAc,wBAAwB,CAAA;AAEtC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,yBAAyB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"area.vue.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/components/area.vue"],"names":[],"mappings":"AA0NA,OAAO,KAAK,EAAE,aAAa,EAAW,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAU/E,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,aAAa,CAAA;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B,CAAC;;AA6MF,wBAMG"}
1
+ {"version":3,"file":"area.vue.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/components/area.vue"],"names":[],"mappings":"AAsPA,OAAO,KAAK,EAAE,aAAa,EAAW,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAU/E,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,aAAa,CAAA;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B,CAAC;;AAyOF,wBAMG"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAA+B,MAAM,SAAS,CAAA;AAG5E;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;CA4XlD,CAAA;AAED,wBAAgB,YAAY,CAAC,QAAQ,SAAI,GAAG,OAAO,CAGlD;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG;;;;;;;;;;;EAQzE;AACD,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAQ7B,CAAA;AAIF,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAiE7D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAA+B,MAAM,SAAS,CAAA;AAK5E;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;CA4XlD,CAAA;AAED,wBAAgB,YAAY,CAAC,QAAQ,SAAI,GAAG,OAAO,CAGlD;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG;;;;;;;;;;;EAQzE;AACD,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAQ7B,CAAA;AAwBF,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAmE7D"}
@@ -0,0 +1,64 @@
1
+ export declare const FREE_MAP_SOURCES: {
2
+ PROVINCE: {
3
+ TIANDITU: () => string;
4
+ DATAV: (adcode: string) => string;
5
+ };
6
+ TIANDITU_ADMIN: {
7
+ BOUNDARY: (adcode: string) => string;
8
+ };
9
+ };
10
+ export declare const CHINA_MAP_DATA: {
11
+ type: string;
12
+ features: never[];
13
+ };
14
+ export declare function getChinaMapData(): Promise<any>;
15
+ export declare const PROVINCE_CODES: {
16
+ 北京市: string;
17
+ 天津市: string;
18
+ 河北省: string;
19
+ 山西省: string;
20
+ 内蒙古自治区: string;
21
+ 辽宁省: string;
22
+ 吉林省: string;
23
+ 黑龙江省: string;
24
+ 上海市: string;
25
+ 江苏省: string;
26
+ 浙江省: string;
27
+ 安徽省: string;
28
+ 福建省: string;
29
+ 江西省: string;
30
+ 山东省: string;
31
+ 河南省: string;
32
+ 湖北省: string;
33
+ 湖南省: string;
34
+ 广东省: string;
35
+ 广西壮族自治区: string;
36
+ 海南省: string;
37
+ 重庆市: string;
38
+ 四川省: string;
39
+ 贵州省: string;
40
+ 云南省: string;
41
+ 西藏自治区: string;
42
+ 陕西省: string;
43
+ 甘肃省: string;
44
+ 青海省: string;
45
+ 宁夏回族自治区: string;
46
+ 新疆维吾尔自治区: string;
47
+ 台湾省: string;
48
+ 香港特别行政区: string;
49
+ 澳门特别行政区: string;
50
+ };
51
+ export declare const PROVINCE_NAMES: {
52
+ [k: string]: string;
53
+ };
54
+ export declare function getProvinceCode(provinceName: string): string;
55
+ export declare function getProvinceName(provinceCode: string): string;
56
+ export declare function isProvinceCode(code: string): boolean;
57
+ export declare function getProvinceMapData(provinceName: string): Promise<any>;
58
+ export declare const TIANDITU_CONFIG: {
59
+ TOKEN: string;
60
+ BASE_URL: string;
61
+ };
62
+ export declare function fetchTiandituBoundary(adcode: string): Promise<any>;
63
+ export declare function fetchMapData(adcode: string): Promise<any>;
64
+ //# sourceMappingURL=mapData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapData.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/utils/mapData.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB;;;wBAMT,MAAM;;;2BAKH,MAAM;;CAE5B,CAAA;AAGD,eAAO,MAAM,cAAc;;;CAM1B,CAAA;AAGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CA0FpD;AAKD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC1B,CAAA;AAGD,eAAO,MAAM,cAAc;;CAE1B,CAAA;AAGD,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D;AAGD,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAGD,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAkB3E;AAGD,eAAO,MAAM,eAAe;;;CAK3B,CAAA;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgBxE;AAGD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAiC/D"}
@@ -10,6 +10,10 @@ export interface GeoJson {
10
10
  cp?: number[];
11
11
  [key: string]: any;
12
12
  };
13
+ geometry?: {
14
+ type: string;
15
+ coordinates: number[][][] | number[][];
16
+ };
13
17
  }[];
14
18
  }
15
19
  export interface IFormatPublicData {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAE9C,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,UAAU,EAAE;YACV,IAAI,CAAC,EAAE,MAAM,CAAA;YACb,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SACnB,CAAA;KACF,EAAE,CAAA;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAClD,EAAE,CAAA;IACH,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,WAAW,EAAE;YACX,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;YAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;YACtB,KAAK,EAAE,OAAO,CAAA;SACf,EAAE,CAAA;QACH,QAAQ,EAAE;YACR,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;YAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;YAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;SACxB,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAAA;IACpH,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,OAAO,CAAA;IACjF,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE;SACT,GAAG,IAAI,MAAM,GAAG,GAAG;KACrB,CAAA;IACD,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,OAAO,CAAA;KACnF,EAAE,CAAA;CACJ;AACD,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/data-chart/src/utils/types.ts"],"names":[],"mappings":"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"}