@qxs-bns/components 0.0.89 → 0.0.90

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 (323) hide show
  1. package/es/_virtual/_commonjsHelpers.mjs +2 -0
  2. package/es/_virtual/_commonjsHelpers.mjs.map +1 -0
  3. package/es/_virtual/sortable.esm.mjs +2 -0
  4. package/es/_virtual/sortable.esm.mjs.map +1 -0
  5. package/es/_virtual/vuedraggable.umd.mjs +2 -0
  6. package/es/_virtual/vuedraggable.umd.mjs.map +1 -0
  7. package/es/_virtual/vuedraggable.umd2.mjs +2 -0
  8. package/es/_virtual/vuedraggable.umd2.mjs.map +1 -0
  9. package/es/index.mjs +1 -1
  10. package/es/index.mjs.map +1 -1
  11. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs +1 -1
  12. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs.map +1 -1
  13. package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs +8 -0
  14. package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs.map +1 -0
  15. package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs +2 -0
  16. package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs.map +1 -0
  17. package/es/package.json.mjs +1 -1
  18. package/es/src/alert/index.mjs +2 -0
  19. package/es/src/alert/index.mjs.map +1 -0
  20. package/es/src/alert/src/alert.mjs +2 -0
  21. package/es/src/alert/src/alert.mjs.map +1 -0
  22. package/es/src/components.mjs +1 -1
  23. package/es/src/data-chart/src/components/area.vue2.mjs +1 -1
  24. package/es/src/data-chart/src/components/area.vue2.mjs.map +1 -1
  25. package/es/src/data-chart/src/components/card.vue2.mjs +1 -1
  26. package/es/src/data-chart/src/components/card.vue2.mjs.map +1 -1
  27. package/es/src/data-chart/src/components/line.vue2.mjs +1 -1
  28. package/es/src/data-chart/src/components/line.vue2.mjs.map +1 -1
  29. package/es/src/data-chart/src/components/pie.vue2.mjs +1 -1
  30. package/es/src/data-chart/src/components/pie.vue2.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/safe-eval.mjs +1 -1
  38. package/es/src/data-chart/src/utils/safe-eval.mjs.map +1 -1
  39. package/es/src/data-chart/src/utils/useCharts.mjs +1 -1
  40. package/es/src/data-chart/src/utils/useCharts.mjs.map +1 -1
  41. package/es/src/dialog/src/dialog.mjs +2 -0
  42. package/es/src/dialog/src/dialog.mjs.map +1 -0
  43. package/es/src/feedback-plugin/index.mjs +2 -0
  44. package/es/src/feedback-plugin/index.mjs.map +1 -0
  45. package/es/src/file-upload/src/file-upload.vue.mjs +1 -1
  46. package/es/src/file-upload/src/file-upload.vue.mjs.map +1 -1
  47. package/es/src/file-upload/src/file-upload.vue2.mjs +1 -1
  48. package/es/src/file-upload/src/file-upload.vue2.mjs.map +1 -1
  49. package/es/src/file-upload/src/file-upload.vue3.mjs +2 -0
  50. package/es/src/file-upload/src/file-upload.vue3.mjs.map +1 -0
  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/image-upload/src/image-upload.vue2.mjs +1 -1
  54. package/es/src/image-upload/src/image-upload.vue2.mjs.map +1 -1
  55. package/es/src/image-upload/src/image-upload.vue3.mjs +2 -0
  56. package/es/src/image-upload/src/image-upload.vue3.mjs.map +1 -0
  57. package/es/src/make-installer.mjs +1 -1
  58. package/es/src/make-installer.mjs.map +1 -1
  59. package/es/src/message/src/message.mjs +2 -0
  60. package/es/src/message/src/message.mjs.map +1 -0
  61. package/es/src/subject-action/src/subject-action.vue.mjs +1 -1
  62. package/es/src/subject-action/src/subject-action.vue.mjs.map +1 -1
  63. package/es/src/subject-layout/src/subject-layout.vue.mjs +1 -1
  64. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +1 -1
  65. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +1 -1
  66. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +1 -1
  67. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +1 -1
  68. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +1 -1
  69. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +1 -1
  70. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +1 -1
  71. package/es/src/subject-list/src/components/subject-scale.vue.mjs +1 -1
  72. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +1 -1
  73. package/es/src/subject-list/src/components/subject-single.vue.mjs +1 -1
  74. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +1 -1
  75. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +1 -1
  76. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +1 -1
  77. package/es/src/subject-list/src/subject-list.vue.mjs +1 -1
  78. package/es/src/subject-list/src/subject-list.vue.mjs.map +1 -1
  79. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +1 -1
  80. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -1
  81. package/es/src/ui/button/index.mjs +2 -0
  82. package/es/src/ui/button/index.mjs.map +1 -0
  83. package/es/src/ui/checkbox/index.mjs +2 -0
  84. package/es/src/ui/checkbox/index.mjs.map +1 -0
  85. package/es/src/ui/dialog/index.mjs +2 -0
  86. package/es/src/ui/dialog/index.mjs.map +1 -0
  87. package/es/src/ui/input/index.mjs +2 -0
  88. package/es/src/ui/input/index.mjs.map +1 -0
  89. package/es/src/ui/input-number/index.mjs +2 -0
  90. package/es/src/ui/input-number/index.mjs.map +1 -0
  91. package/es/src/ui/layout/index.mjs +2 -0
  92. package/es/src/ui/layout/index.mjs.map +1 -0
  93. package/es/src/ui/link/index.mjs +2 -0
  94. package/es/src/ui/link/index.mjs.map +1 -0
  95. package/es/src/ui/popover/index.mjs +2 -0
  96. package/es/src/ui/popover/index.mjs.map +1 -0
  97. package/es/src/ui/radio/index.mjs +2 -0
  98. package/es/src/ui/radio/index.mjs.map +1 -0
  99. package/es/src/ui/scrollbar/index.mjs +2 -0
  100. package/es/src/ui/scrollbar/index.mjs.map +1 -0
  101. package/es/src/ui/select/index.mjs +2 -0
  102. package/es/src/ui/select/index.mjs.map +1 -0
  103. package/es/src/ui/table/index.mjs +2 -0
  104. package/es/src/ui/table/index.mjs.map +1 -0
  105. package/es/src/ui/tag/index.mjs +2 -0
  106. package/es/src/ui/tag/index.mjs.map +1 -0
  107. package/lib/_virtual/_commonjsHelpers.cjs +2 -0
  108. package/lib/_virtual/_commonjsHelpers.cjs.map +1 -0
  109. package/lib/_virtual/sortable.esm.cjs +2 -0
  110. package/lib/_virtual/sortable.esm.cjs.map +1 -0
  111. package/lib/_virtual/vuedraggable.umd.cjs +2 -0
  112. package/lib/_virtual/vuedraggable.umd.cjs.map +1 -0
  113. package/lib/_virtual/vuedraggable.umd2.cjs +2 -0
  114. package/lib/_virtual/vuedraggable.umd2.cjs.map +1 -0
  115. package/lib/index.cjs +1 -1
  116. package/lib/index.cjs.map +1 -1
  117. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs +1 -1
  118. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs.map +1 -1
  119. package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs +9 -0
  120. package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs.map +1 -0
  121. package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs +2 -0
  122. package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs.map +1 -0
  123. package/lib/package.json.cjs +1 -1
  124. package/lib/src/alert/index.cjs +2 -0
  125. package/lib/src/alert/index.cjs.map +1 -0
  126. package/lib/src/alert/src/alert.cjs +2 -0
  127. package/lib/src/alert/src/alert.cjs.map +1 -0
  128. package/lib/src/components.cjs +1 -1
  129. package/lib/src/data-chart/src/components/area.vue2.cjs +1 -1
  130. package/lib/src/data-chart/src/components/area.vue2.cjs.map +1 -1
  131. package/lib/src/data-chart/src/components/card.vue2.cjs +1 -1
  132. package/lib/src/data-chart/src/components/card.vue2.cjs.map +1 -1
  133. package/lib/src/data-chart/src/components/line.vue2.cjs +1 -1
  134. package/lib/src/data-chart/src/components/line.vue2.cjs.map +1 -1
  135. package/lib/src/data-chart/src/components/pie.vue2.cjs +1 -1
  136. package/lib/src/data-chart/src/components/pie.vue2.cjs.map +1 -1
  137. package/lib/src/data-chart/src/components/table.vue.cjs +1 -1
  138. package/lib/src/data-chart/src/components/table.vue.cjs.map +1 -1
  139. package/lib/src/data-chart/src/data-chart.vue.cjs +1 -1
  140. package/lib/src/data-chart/src/data-chart.vue.cjs.map +1 -1
  141. package/lib/src/data-chart/src/utils/config.cjs +1 -1
  142. package/lib/src/data-chart/src/utils/config.cjs.map +1 -1
  143. package/lib/src/data-chart/src/utils/safe-eval.cjs +1 -1
  144. package/lib/src/data-chart/src/utils/safe-eval.cjs.map +1 -1
  145. package/lib/src/data-chart/src/utils/useCharts.cjs +1 -1
  146. package/lib/src/data-chart/src/utils/useCharts.cjs.map +1 -1
  147. package/lib/src/dialog/src/dialog.cjs +2 -0
  148. package/lib/src/dialog/src/dialog.cjs.map +1 -0
  149. package/lib/src/feedback-plugin/index.cjs +2 -0
  150. package/lib/src/feedback-plugin/index.cjs.map +1 -0
  151. package/lib/src/file-upload/src/file-upload.vue.cjs +1 -1
  152. package/lib/src/file-upload/src/file-upload.vue.cjs.map +1 -1
  153. package/lib/src/file-upload/src/file-upload.vue2.cjs +1 -1
  154. package/lib/src/file-upload/src/file-upload.vue2.cjs.map +1 -1
  155. package/lib/src/file-upload/src/file-upload.vue3.cjs +2 -0
  156. package/lib/src/file-upload/src/file-upload.vue3.cjs.map +1 -0
  157. package/lib/src/image-upload/src/image-upload.vue.cjs +1 -1
  158. package/lib/src/image-upload/src/image-upload.vue.cjs.map +1 -1
  159. package/lib/src/image-upload/src/image-upload.vue2.cjs +1 -1
  160. package/lib/src/image-upload/src/image-upload.vue2.cjs.map +1 -1
  161. package/lib/src/image-upload/src/image-upload.vue3.cjs +2 -0
  162. package/lib/src/image-upload/src/image-upload.vue3.cjs.map +1 -0
  163. package/lib/src/make-installer.cjs +1 -1
  164. package/lib/src/make-installer.cjs.map +1 -1
  165. package/lib/src/message/src/message.cjs +2 -0
  166. package/lib/src/message/src/message.cjs.map +1 -0
  167. package/lib/src/subject-action/src/subject-action.vue.cjs +1 -1
  168. package/lib/src/subject-action/src/subject-action.vue.cjs.map +1 -1
  169. package/lib/src/subject-layout/src/subject-layout.vue.cjs +1 -1
  170. package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +1 -1
  171. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +1 -1
  172. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +1 -1
  173. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +1 -1
  174. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +1 -1
  175. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +1 -1
  176. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +1 -1
  177. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +1 -1
  178. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +1 -1
  179. package/lib/src/subject-list/src/components/subject-single.vue.cjs +1 -1
  180. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +1 -1
  181. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +1 -1
  182. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +1 -1
  183. package/lib/src/subject-list/src/subject-list.vue.cjs +1 -1
  184. package/lib/src/subject-list/src/subject-list.vue.cjs.map +1 -1
  185. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +1 -1
  186. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -1
  187. package/lib/src/ui/button/index.cjs +2 -0
  188. package/lib/src/ui/button/index.cjs.map +1 -0
  189. package/lib/src/ui/checkbox/index.cjs +2 -0
  190. package/lib/src/ui/checkbox/index.cjs.map +1 -0
  191. package/lib/src/ui/dialog/index.cjs +2 -0
  192. package/lib/src/ui/dialog/index.cjs.map +1 -0
  193. package/lib/src/ui/input/index.cjs +2 -0
  194. package/lib/src/ui/input/index.cjs.map +1 -0
  195. package/lib/src/ui/input-number/index.cjs +2 -0
  196. package/lib/src/ui/input-number/index.cjs.map +1 -0
  197. package/lib/src/ui/layout/index.cjs +2 -0
  198. package/lib/src/ui/layout/index.cjs.map +1 -0
  199. package/lib/src/ui/link/index.cjs +2 -0
  200. package/lib/src/ui/link/index.cjs.map +1 -0
  201. package/lib/src/ui/popover/index.cjs +2 -0
  202. package/lib/src/ui/popover/index.cjs.map +1 -0
  203. package/lib/src/ui/radio/index.cjs +2 -0
  204. package/lib/src/ui/radio/index.cjs.map +1 -0
  205. package/lib/src/ui/scrollbar/index.cjs +2 -0
  206. package/lib/src/ui/scrollbar/index.cjs.map +1 -0
  207. package/lib/src/ui/select/index.cjs +2 -0
  208. package/lib/src/ui/select/index.cjs.map +1 -0
  209. package/lib/src/ui/table/index.cjs +2 -0
  210. package/lib/src/ui/table/index.cjs.map +1 -0
  211. package/lib/src/ui/tag/index.cjs +2 -0
  212. package/lib/src/ui/tag/index.cjs.map +1 -0
  213. package/package.json +3 -12
  214. package/theme-chalk/index.css +1 -1
  215. package/theme-chalk/index.scss +6 -2
  216. package/theme-chalk/src/common/qxs-components.css +1 -0
  217. package/theme-chalk/src/common/qxs-components.scss +4 -0
  218. package/theme-chalk/src/common/qxs-variables.css +1 -0
  219. package/theme-chalk/src/common/qxs-variables.scss +81 -0
  220. package/theme-chalk/src/dialog.css +1 -0
  221. package/theme-chalk/src/dialog.scss +122 -0
  222. package/theme-chalk/src/file-upload.css +0 -1
  223. package/theme-chalk/src/file-upload.scss +5 -32
  224. package/theme-chalk/src/fixed-action-bar.scss +1 -1
  225. package/theme-chalk/src/icon.scss +1 -1
  226. package/theme-chalk/src/image-upload.css +1 -1
  227. package/theme-chalk/src/image-upload.scss +22 -30
  228. package/theme-chalk/src/photo-crop-tool.scss +1 -1
  229. package/theme-chalk/src/subject-action.css +1 -1
  230. package/theme-chalk/src/subject-action.scss +45 -4
  231. package/theme-chalk/src/subject-layout.scss +1 -1
  232. package/theme-chalk/src/subject-list.css +1 -1
  233. package/theme-chalk/src/subject-list.scss +371 -93
  234. package/theme-chalk/src/subject-template.scss +1 -1
  235. package/theme-chalk/src/subject-type.css +1 -1
  236. package/theme-chalk/src/subject-type.scss +22 -12
  237. package/theme-chalk/src/tiny-mce-editor.scss +1 -1
  238. package/theme-chalk/src/ui/button.css +1 -0
  239. package/theme-chalk/src/ui/button.scss +173 -0
  240. package/theme-chalk/src/ui/input.css +1 -0
  241. package/theme-chalk/src/ui/input.scss +128 -0
  242. package/theme-chalk/src/ui/table.css +1 -0
  243. package/theme-chalk/src/ui/table.scss +166 -0
  244. package/types/src/alert/index.d.ts +66 -0
  245. package/types/src/alert/index.d.ts.map +1 -0
  246. package/types/src/alert/src/alert.d.ts +73 -0
  247. package/types/src/alert/src/alert.d.ts.map +1 -0
  248. package/types/src/components.d.ts +3 -0
  249. package/types/src/components.d.ts.map +1 -1
  250. package/types/src/data-chart/src/components/table.vue.d.ts.map +1 -1
  251. package/types/src/data-chart/src/utils/config.d.ts +4 -4
  252. package/types/src/dialog/index.d.ts +3 -0
  253. package/types/src/dialog/index.d.ts.map +1 -0
  254. package/types/src/dialog/src/dialog.d.ts +25 -0
  255. package/types/src/dialog/src/dialog.d.ts.map +1 -0
  256. package/types/src/feedback-plugin/index.d.ts +9 -0
  257. package/types/src/feedback-plugin/index.d.ts.map +1 -0
  258. package/types/src/file-upload/index.d.ts +16 -27
  259. package/types/src/file-upload/index.d.ts.map +1 -1
  260. package/types/src/file-upload/src/file-upload.vue.d.ts +27 -13
  261. package/types/src/file-upload/src/file-upload.vue.d.ts.map +1 -1
  262. package/types/src/icon/index.d.ts +3 -3
  263. package/types/src/icon/src/icon.d.ts +3 -3
  264. package/types/src/image-upload/index.d.ts +23 -44
  265. package/types/src/image-upload/index.d.ts.map +1 -1
  266. package/types/src/image-upload/src/image-upload.vue.d.ts +32 -42
  267. package/types/src/image-upload/src/image-upload.vue.d.ts.map +1 -1
  268. package/types/src/make-installer.d.ts +1 -4
  269. package/types/src/make-installer.d.ts.map +1 -1
  270. package/types/src/message/index.d.ts +3 -0
  271. package/types/src/message/index.d.ts.map +1 -0
  272. package/types/src/message/src/message.d.ts +21 -0
  273. package/types/src/message/src/message.d.ts.map +1 -0
  274. package/types/src/message/src/toaster.vue.d.ts +3 -0
  275. package/types/src/message/src/toaster.vue.d.ts.map +1 -0
  276. package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
  277. package/types/src/subject-layout/index.d.ts +2 -2
  278. package/types/src/subject-layout/src/subject-layout.vue.d.ts +2 -2
  279. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
  280. package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +2 -2
  281. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +2 -2
  282. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts +2 -2
  283. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts.map +1 -1
  284. package/types/src/subject-list/src/components/subject-scale.vue.d.ts +2 -2
  285. package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
  286. package/types/src/subject-list/src/components/subject-single.vue.d.ts +2 -2
  287. package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
  288. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts +2 -2
  289. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts.map +1 -1
  290. package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
  291. package/types/src/ui/button/index.d.ts +96 -0
  292. package/types/src/ui/button/index.d.ts.map +1 -0
  293. package/types/src/ui/checkbox/index.d.ts +111 -0
  294. package/types/src/ui/checkbox/index.d.ts.map +1 -0
  295. package/types/src/ui/dialog/index.d.ts +134 -0
  296. package/types/src/ui/dialog/index.d.ts.map +1 -0
  297. package/types/src/ui/index.d.ts +16 -0
  298. package/types/src/ui/index.d.ts.map +1 -0
  299. package/types/src/ui/input/index.d.ts +132 -0
  300. package/types/src/ui/input/index.d.ts.map +1 -0
  301. package/types/src/ui/input-number/index.d.ts +106 -0
  302. package/types/src/ui/input-number/index.d.ts.map +1 -0
  303. package/types/src/ui/layout/index.d.ts +373 -0
  304. package/types/src/ui/layout/index.d.ts.map +1 -0
  305. package/types/src/ui/link/index.d.ts +57 -0
  306. package/types/src/ui/link/index.d.ts.map +1 -0
  307. package/types/src/ui/popover/index.d.ts +89 -0
  308. package/types/src/ui/popover/index.d.ts.map +1 -0
  309. package/types/src/ui/radio/index.d.ts +84 -0
  310. package/types/src/ui/radio/index.d.ts.map +1 -0
  311. package/types/src/ui/scrollbar/index.d.ts +35 -0
  312. package/types/src/ui/scrollbar/index.d.ts.map +1 -0
  313. package/types/src/ui/select/index.d.ts +113 -0
  314. package/types/src/ui/select/index.d.ts.map +1 -0
  315. package/types/src/ui/table/index.d.ts +152 -0
  316. package/types/src/ui/table/index.d.ts.map +1 -0
  317. package/types/src/ui/tag/index.d.ts +69 -0
  318. package/types/src/ui/tag/index.d.ts.map +1 -0
  319. package/types/tsconfig.tsbuildinfo +1 -1
  320. package/theme-chalk/src/common/element-plus-deps.css +0 -1
  321. package/theme-chalk/src/common/element-plus-deps.scss +0 -40
  322. package/theme-chalk/src/common/element-plus.css +0 -1
  323. package/theme-chalk/src/common/element-plus.scss +0 -606
@@ -1 +1 @@
1
- {"version":3,"file":"image-upload.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"image-upload.vue2.mjs","sources":["../../../../../../packages/components/src/image-upload/src/image-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Delete, UploadImage, ZoomIn } from '@qxs-bns/icons'\nimport { QxsIcon } from '../../icon'\nimport { computed, onUnmounted, ref } from 'vue'\nimport { QxsMessage } from '../../message'\n\nexport interface ImageFile {\n uid?: string | number\n name: string\n url?: string\n size?: number\n status?: 'ready' | 'uploading' | 'success' | 'fail'\n file?: File\n}\n\nexport interface ImageUploadProps {\n action: string\n headers?: Record<string, string>\n data?: Record<string, string | Blob>\n name?: string\n size?: number\n width?: number\n height?: number\n accept?: string\n placeholder?: string\n notip?: boolean\n tipText?: string\n disabled?: boolean\n limit?: number\n}\n\ndefineOptions({\n name: 'QxsImageUpload',\n})\n\nconst props = withDefaults(defineProps<ImageUploadProps>(), {\n name: 'file',\n size: 20,\n width: 160,\n height: 90,\n limit: 1,\n placeholder: '上传图片',\n notip: false,\n accept: 'image/jpeg,image/jpg,image/png,image/gif',\n tipText: '',\n disabled: false,\n})\n\nconst emits = defineEmits<{\n success: [res: any, file: ImageFile, files: ImageFile[]]\n remove: [file: ImageFile]\n}>()\n\nconst fileList = defineModel<ImageFile[]>('fileList', { default: () => [] })\n\nconst isUploading = ref(false)\nconst uploadProgress = ref(0)\nconst viewerVisible = ref(false)\nconst viewerIndex = ref(0)\n\nconst exts = computed(() =>\n props.accept.split(',').map((ext) => ext.split('/').pop()),\n)\n\nconst tipMessage = computed(() => {\n if (props.tipText) return props.tipText\n const formatText = `支持 ${exts.value.join(' / ')} 格式,大小不超过 ${props.size}MB`\n const sizeText = props.width && props.height ? `,建议尺寸 ${props.width}×${props.height}` : ''\n return formatText + sizeText\n})\n\nconst cssVars = computed(() => ({\n '--upload-width': `${props.width}px`,\n '--upload-height': `${props.height}px`,\n}))\n\nfunction validateFile(file: File): boolean {\n const fileExt = file.name.split('.').pop()?.toLowerCase() ?? ''\n const isTypeOk = exts.value.some((ext) => ext?.toLowerCase() === fileExt)\n\n if (!isTypeOk) {\n QxsMessage.error(`仅支持上传 ${exts.value.join(' / ')} 格式的图片`)\n return false\n }\n\n const fileSizeMB = file.size / 1024 / 1024\n if (fileSizeMB > props.size) {\n QxsMessage.error(`图片大小不能超过 ${props.size}MB`)\n return false\n }\n\n return true\n}\n\nfunction handleFileSelect(e: Event) {\n const target = e.target as HTMLInputElement\n const files = target.files\n if (!files || props.disabled) return\n\n if (fileList.value.length + files.length > props.limit) {\n QxsMessage.warning(`最多上传 ${props.limit} 张图片`)\n return\n }\n\n Array.from(files).forEach((file) => {\n if (!validateFile(file)) return\n\n const uid = Date.now() + Math.random()\n const imageFile: ImageFile = {\n uid,\n name: file.name,\n size: file.size,\n status: 'uploading',\n url: URL.createObjectURL(file),\n file,\n }\n\n fileList.value.push(imageFile)\n uploadFile(file, imageFile)\n })\n\n target.value = ''\n}\n\nfunction uploadFile(file: File, imageFile: ImageFile) {\n const formData = new FormData()\n formData.append(props.name, file)\n\n if (props.data) {\n Object.entries(props.data).forEach(([key, value]) => {\n formData.append(key, value)\n })\n }\n\n const xhr = new XMLHttpRequest()\n xhr.open('POST', props.action)\n\n if (props.headers) {\n Object.entries(props.headers).forEach(([key, value]) => {\n xhr.setRequestHeader(key, value)\n })\n }\n\n xhr.upload.onprogress = (e) => {\n if (e.lengthComputable) {\n uploadProgress.value = Math.floor((e.loaded / e.total) * 100)\n }\n }\n\n xhr.onload = () => {\n isUploading.value = false\n uploadProgress.value = 0\n\n if (xhr.status >= 200 && xhr.status < 300) {\n const res = JSON.parse(xhr.responseText)\n imageFile.status = 'success'\n emits('success', res, imageFile, fileList.value)\n } else {\n imageFile.status = 'fail'\n QxsMessage.error('上传失败')\n }\n }\n\n xhr.onerror = () => {\n isUploading.value = false\n uploadProgress.value = 0\n imageFile.status = 'fail'\n QxsMessage.error('上传失败')\n }\n\n isUploading.value = true\n uploadProgress.value = 0\n xhr.send(formData)\n}\n\nfunction handleRemove(index: number) {\n if (props.disabled) return\n\n const file = fileList.value[index]\n if (file.url?.startsWith('blob:')) {\n URL.revokeObjectURL(file.url)\n }\n\n fileList.value.splice(index, 1)\n emits('remove', file)\n}\n\nfunction handlePreview(index: number) {\n viewerIndex.value = index\n viewerVisible.value = true\n}\n\nfunction closeViewer() {\n viewerVisible.value = false\n}\n\nfunction prevImage() {\n viewerIndex.value = (viewerIndex.value - 1 + fileList.value.length) % fileList.value.length\n}\n\nfunction nextImage() {\n viewerIndex.value = (viewerIndex.value + 1) % fileList.value.length\n}\n\nonUnmounted(() => {\n fileList.value.forEach((file) => {\n if (file.url?.startsWith('blob:')) {\n URL.revokeObjectURL(file.url)\n }\n })\n})\n</script>\n\n<template>\n <div class=\"qxs-image-upload\" :style=\"cssVars\">\n <div class=\"qxs-image-upload__list\">\n <div\n v-for=\"(file, index) in fileList\"\n :key=\"file.uid || index\"\n class=\"qxs-image-upload__item\"\n >\n <img v-if=\"file.url\" :src=\"file.url\" :alt=\"file.name\">\n <div v-else class=\"qxs-image-upload__placeholder\">无图片</div>\n\n <div v-if=\"file.status === 'uploading'\" class=\"qxs-image-upload__progress\">\n <div class=\"qxs-image-upload__progress-bar\" :style=\"{ width: `${uploadProgress}%` }\" />\n </div>\n\n <div class=\"qxs-image-upload__actions\">\n <span v-if=\"file.url\" class=\"qxs-image-upload__action\" @click=\"handlePreview(index)\">\n <QxsIcon :icon=\"ZoomIn\" size=\"14px\" />\n </span>\n <span class=\"qxs-image-upload__action\" :class=\"{ 'is-disabled': disabled }\" @click=\"handleRemove(index)\">\n <QxsIcon :icon=\"Delete\" size=\"14px\" />\n </span>\n </div>\n </div>\n\n <label\n v-if=\"fileList.length < limit\"\n class=\"qxs-image-upload__add\"\n :class=\"{ 'is-disabled': disabled }\"\n >\n <input\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"limit > 1\"\n :disabled=\"disabled\"\n @change=\"handleFileSelect\"\n >\n <div class=\"qxs-image-upload__add-content\">\n <QxsIcon :icon=\"UploadImage\" size=\"32px\" />\n <p>{{ placeholder }}</p>\n </div>\n </label>\n </div>\n\n <div v-if=\"!notip\" class=\"qxs-image-upload__tip\">\n {{ tipMessage }}\n </div>\n\n <!-- Image Viewer -->\n <div v-if=\"viewerVisible\" class=\"qxs-image-viewer\" @click.self=\"closeViewer\">\n <div class=\"qxs-image-viewer__mask\" @click=\"closeViewer\" />\n <span class=\"qxs-image-viewer__close\" @click=\"closeViewer\">×</span>\n <span v-if=\"fileList.length > 1\" class=\"qxs-image-viewer__prev\" @click=\"prevImage\">‹</span>\n <span v-if=\"fileList.length > 1\" class=\"qxs-image-viewer__next\" @click=\"nextImage\">›</span>\n <img\n v-if=\"fileList[viewerIndex]?.url\"\n :src=\"fileList[viewerIndex].url\"\n class=\"qxs-image-viewer__img\"\n >\n </div>\n </div>\n</template>\n\n<style scoped>\n.qxs-image-upload {\n --upload-width: 160px;\n --upload-height: 90px;\n}\n\n.qxs-image-upload__list {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.qxs-image-upload__item,\n.qxs-image-upload__add {\n position: relative;\n width: var(--upload-width);\n height: var(--upload-height);\n overflow: hidden;\n cursor: pointer;\n border: 1px dashed #d9d9d9;\n border-radius: 6px;\n}\n\n.qxs-image-upload__item:hover,\n.qxs-image-upload__add:hover {\n border-color: #409eff;\n}\n\n.qxs-image-upload__add.is-disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.qxs-image-upload__add input {\n display: none;\n}\n\n.qxs-image-upload__add-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #8c939d;\n}\n\n.qxs-image-upload__add-content p {\n margin: 8px 0 0;\n font-size: 14px;\n}\n\n.qxs-image-upload__item img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.qxs-image-upload__placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #909399;\n background: #f5f7fa;\n}\n\n.qxs-image-upload__progress {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 4px;\n background: rgb(0 0 0 / 10%);\n}\n\n.qxs-image-upload__progress-bar {\n height: 100%;\n background: #409eff;\n transition: width 0.2s;\n}\n\n.qxs-image-upload__actions {\n position: absolute;\n inset: 0;\n display: flex;\n gap: 16px;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 50%);\n opacity: 0;\n transition: opacity 0.2s;\n}\n\n.qxs-image-upload__item:hover .qxs-image-upload__actions {\n opacity: 1;\n}\n\n.qxs-image-upload__action {\n padding: 4px;\n color: #fff;\n cursor: pointer;\n}\n\n.qxs-image-upload__action.is-disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.qxs-image-upload__tip {\n margin-top: 8px;\n font-size: 12px;\n color: #909399;\n}\n\n/* Image Viewer */\n.qxs-image-viewer {\n position: fixed;\n inset: 0;\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.qxs-image-viewer__mask {\n position: absolute;\n inset: 0;\n background: rgb(0 0 0 / 80%);\n}\n\n.qxs-image-viewer__close {\n position: absolute;\n top: 40px;\n right: 40px;\n z-index: 1;\n font-size: 40px;\n color: #fff;\n cursor: pointer;\n}\n\n.qxs-image-viewer__prev,\n.qxs-image-viewer__next {\n position: absolute;\n top: 50%;\n z-index: 1;\n font-size: 60px;\n color: #fff;\n cursor: pointer;\n user-select: none;\n transform: translateY(-50%);\n}\n\n.qxs-image-viewer__prev {\n left: 40px;\n}\n\n.qxs-image-viewer__next {\n right: 40px;\n}\n\n.qxs-image-viewer__img {\n z-index: 1;\n max-width: 80%;\n max-height: 80%;\n}\n</style>\n"],"names":["props","__props","emits","__emit","fileList","_useModel","isUploading","ref","uploadProgress","viewerVisible","viewerIndex","exts","computed","accept","split","map","ext","pop","tipMessage","tipText","value","join","size","width","height","cssVars","handleFileSelect","e","target","files","disabled","length","limit","QxsMessage","warning","Array","from","forEach","file","fileExt","name","toLowerCase","some","error","validateFile","imageFile","uid","Date","now","Math","random","status","url","URL","createObjectURL","push","formData","FormData","append","data","Object","entries","key","xhr","XMLHttpRequest","open","action","headers","setRequestHeader","upload","onprogress","lengthComputable","floor","loaded","total","onload","res","JSON","parse","responseText","onerror","send","uploadFile","closeViewer","prevImage","nextImage","onUnmounted","startsWith","revokeObjectURL","_createElementBlock","class","style","_createElementVNode","_hoisted_1","_openBlock","_Fragment","_renderList","index","src","alt","_hoisted_3","_hoisted_4","_hoisted_5","onClick","$event","handlePreview","_createVNode","_unref","QxsIcon","icon","ZoomIn","_normalizeClass","splice","handleRemove","Delete","type","multiple","onChange","_hoisted_9","UploadImage","placeholder","notip","_hoisted_10","_toDisplayString","_createCommentVNode"],"mappings":"imDAmCA,MAAMA,EAAQC,EAaRC,EAAQC,EAKRC,EAAWC,EAAwBJ,EAAC,YAEpCK,EAAcC,GAAI,GAClBC,EAAiBD,EAAI,GACrBE,EAAgBF,GAAI,GACpBG,EAAcH,EAAI,GAElBI,EAAOC,EAAS,IACpBZ,EAAMa,OAAOC,MAAM,KAAKC,IAAKC,GAAQA,EAAIF,MAAM,KAAKG,QAGhDC,EAAaN,EAAS,KAC1B,GAAIZ,EAAMmB,QAAS,OAAOnB,EAAMmB,QAGhC,MAFmB,MAAMR,EAAKS,MAAMC,KAAK,mBAAmBrB,EAAMsB,UACjDtB,EAAMuB,OAASvB,EAAMwB,OAAS,SAASxB,EAAMuB,SAASvB,EAAMwB,SAAW,MAIpFC,EAAUb,EAAS,KAAA,CACvB,iBAAkB,GAAGZ,EAAMuB,UAC3B,kBAAmB,GAAGvB,EAAMwB,cAqB9B,SAASE,EAAiBC,GACxB,MAAMC,EAASD,EAAEC,OACXC,EAAQD,EAAOC,MAChBA,IAAS7B,EAAM8B,WAEhB1B,EAASgB,MAAMW,OAASF,EAAME,OAAS/B,EAAMgC,MAC/CC,EAAWC,QAAQ,QAAQlC,EAAMgC,cAInCG,MAAMC,KAAKP,GAAOQ,QAASC,IACzB,IA7BJ,SAAsBA,GACpB,MAAMC,EAAUD,EAAKE,KAAK1B,MAAM,KAAKG,OAAOwB,eAAiB,GAG7D,OAFiB9B,EAAKS,MAAMsB,KAAM1B,GAAQA,GAAKyB,gBAAkBF,KAO9CD,EAAKhB,KAAO,KAAO,KACrBtB,EAAMsB,OACrBW,EAAWU,MAAM,YAAY3C,EAAMsB,UAC5B,KAPPW,EAAWU,MAAM,SAAShC,EAAKS,MAAMC,KAAK,iBACnC,EAUX,CAaSuB,CAAaN,GAAO,OAEzB,MACMO,EAAuB,CAC3BC,IAFUC,KAAKC,MAAQC,KAAKC,SAG5BV,KAAMF,EAAKE,KACXlB,KAAMgB,EAAKhB,KACX6B,OAAQ,YACRC,IAAKC,IAAIC,gBAAgBhB,GACzBA,QAGFlC,EAASgB,MAAMmC,KAAKV,GAOxB,SAAoBP,EAAYO,GAC9B,MAAMW,EAAW,IAAIC,SACrBD,EAASE,OAAO1D,EAAMwC,KAAMF,GAExBtC,EAAM2D,MACRC,OAAOC,QAAQ7D,EAAM2D,MAAMtB,QAAQ,EAAEyB,EAAK1C,MACxCoC,EAASE,OAAOI,EAAK1C,KAIzB,MAAM2C,EAAM,IAAIC,eAChBD,EAAIE,KAAK,OAAQjE,EAAMkE,QAEnBlE,EAAMmE,SACRP,OAAOC,QAAQ7D,EAAMmE,SAAS9B,QAAQ,EAAEyB,EAAK1C,MAC3C2C,EAAIK,iBAAiBN,EAAK1C,KAI9B2C,EAAIM,OAAOC,WAAc3C,IACnBA,EAAE4C,mBACJ/D,EAAeY,MAAQ6B,KAAKuB,MAAO7C,EAAE8C,OAAS9C,EAAE+C,MAAS,OAI7DX,EAAIY,OAAS,KAIX,GAHArE,EAAYc,OAAQ,EACpBZ,EAAeY,MAAQ,EAEnB2C,EAAIZ,QAAU,KAAOY,EAAIZ,OAAS,IAAK,CACzC,MAAMyB,EAAMC,KAAKC,MAAMf,EAAIgB,cAC3BlC,EAAUM,OAAS,UACnBjD,EAAM,UAAW0E,EAAK/B,EAAWzC,EAASgB,MAC5C,MACEyB,EAAUM,OAAS,OACnBlB,EAAWU,MAAM,SAIrBoB,EAAIiB,QAAU,KACZ1E,EAAYc,OAAQ,EACpBZ,EAAeY,MAAQ,EACvByB,EAAUM,OAAS,OACnBlB,EAAWU,MAAM,SAGnBrC,EAAYc,OAAQ,EACpBZ,EAAeY,MAAQ,EACvB2C,EAAIkB,KAAKzB,EACX,CAvDI0B,CAAW5C,EAAMO,KAGnBjB,EAAOR,MAAQ,IACjB,CAsEA,SAAS+D,IACP1E,EAAcW,OAAQ,CACxB,CAEA,SAASgE,IACP1E,EAAYU,OAASV,EAAYU,MAAQ,EAAIhB,EAASgB,MAAMW,QAAU3B,EAASgB,MAAMW,MACvF,CAEA,SAASsD,IACP3E,EAAYU,OAASV,EAAYU,MAAQ,GAAKhB,EAASgB,MAAMW,MAC/D,QAEAuD,EAAY,KACVlF,EAASgB,MAAMiB,QAASC,IAClBA,EAAKc,KAAKmC,WAAW,UACvBlC,IAAImC,gBAAgBlD,EAAKc,qBAO7BqC,EA2DM,MAAA,CA3DDC,MAAM,mBAAoBC,QAAOlE,EAAAL,SACpCwE,EAwCM,MAxCNC,EAwCM,EAvCJC,GAAA,GAAAL,EAoBMM,EAAA,KAAAC,EAnBoB5F,EAAAgB,MAAQ,CAAxBkB,EAAM2D,SADhBR,EAoBM,MAAA,CAlBH3B,IAAKxB,EAAKQ,KAAOmD,EAClBP,MAAM,2BAEKpD,EAAKc,SAAhBqC,EAAsD,MAAA,OAAhCS,IAAK5D,EAAKc,IAAM+C,IAAK7D,EAAKE,sBAChDiD,EAA2D,MAA3DW,EAAkD,QAE5B,cAAX9D,EAAKa,QAAhB2C,IAAAL,EAEM,MAFNY,EAEM,CADJT,EAAuF,MAAA,CAAlFF,MAAM,iCAAkCC,kBAAmBnF,EAAAY,oCAGlEwE,EAOM,MAPNU,EAOM,CANQhE,EAAKc,SAAjBqC,EAEO,OAAA,OAFeC,MAAM,2BAA4Ba,QAAKC,GA1CvE,SAAuBP,GACrBvF,EAAYU,MAAQ6E,EACpBxF,EAAcW,OAAQ,CACxB,CAuCyEqF,CAAcR,KAC3ES,EAAsCC,EAAAC,GAAA,CAA5BC,KAAMF,EAAAG,GAAQxF,KAAK,6CAE/BsE,EAEO,OAAA,CAFDF,MAAKqB,EAAA,CAAC,2BAA0B,CAAA,cAA0BjF,EAAAA,YAAayE,QAAKC,GAzD5F,SAAsBP,GACpB,GAAIjG,EAAM8B,SAAU,OAEpB,MAAMQ,EAAOlC,EAASgB,MAAM6E,GACxB3D,EAAKc,KAAKmC,WAAW,UACvBlC,IAAImC,gBAAgBlD,EAAKc,KAG3BhD,EAASgB,MAAM4F,OAAOf,EAAO,GAC7B/F,EAAM,SAAUoC,EAClB,CA+C8F2E,CAAahB,KAC/FS,EAAsCC,EAAAC,GAAA,CAA5BC,KAAMF,EAAAO,GAAQ5F,KAAK,4CAM3BlB,EAAAgB,MAASW,OAASC,EAAAA,WAD1ByD,EAgBQ,QAAA,OAdNC,MAAKqB,EAAA,CAAC,wBAAuB,CAAA,cACJjF,EAAAA,cAEzB8D,EAMC,QAAA,CALCuB,KAAK,OACJtG,OAAQA,EAAAA,OACRuG,SAAUpF,EAAAA,MAAK,EACfF,SAAUA,EAAAA,SACVuF,SAAQ3F,cAEXkE,EAGM,MAHN0B,EAGM,CAFJZ,EAA2CC,EAAAC,GAAA,CAAjCC,KAAMF,EAAAY,GAAajG,KAAK,yBAClCsE,EAAwB,WAAlB4B,EAAAA,aAAW,yBAKXC,EAAAA,wBAAZhC,EAEM,MAFNiC,EAEMC,EADDzG,EAAAE,OAAU,IAGfwG,EAAA,kBACWnH,EAAAW,WAAXqE,EAUM,MAAA,OAVoBC,MAAM,mBAAoBa,UAAYpB,EAAW,CAAA,WACzES,EAA2D,MAAA,CAAtDF,MAAM,yBAA0Ba,QAAOpB,IAC5CS,EAAmE,OAAA,CAA7DF,MAAM,0BAA2Ba,QAAOpB,GAAa,KAC/C/E,EAAAgB,MAASW,OAAM,OAA3B0D,EAA2F,OAAA,OAA1DC,MAAM,yBAA0Ba,QAAOnB,GAAW,mBACvEhF,EAAAgB,MAASW,OAAM,OAA3B0D,EAA2F,OAAA,OAA1DC,MAAM,yBAA0Ba,QAAOlB,GAAW,mBAE3EjF,EAAAgB,MAASV,EAAAU,QAAcgC,SAD/BqC,EAIC,MAAA,OAFES,IAAK9F,EAAAgB,MAASV,EAAAU,OAAagC,IAC5BsC,MAAM"}
@@ -0,0 +1,2 @@
1
+ import a from"../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var e=".qxs-image-upload[data-v-299e0c8a]{--upload-width:160px;--upload-height:90px}.qxs-image-upload__list[data-v-299e0c8a]{display:flex;flex-wrap:wrap;gap:8px}.qxs-image-upload__add[data-v-299e0c8a],.qxs-image-upload__item[data-v-299e0c8a]{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;height:var(--upload-height);overflow:hidden;position:relative;width:var(--upload-width)}.qxs-image-upload__add[data-v-299e0c8a]:hover,.qxs-image-upload__item[data-v-299e0c8a]:hover{border-color:#409eff}.qxs-image-upload__add.is-disabled[data-v-299e0c8a]{cursor:not-allowed;opacity:.5}.qxs-image-upload__add input[data-v-299e0c8a]{display:none}.qxs-image-upload__add-content[data-v-299e0c8a]{align-items:center;color:#8c939d;display:flex;flex-direction:column;height:100%;justify-content:center}.qxs-image-upload__add-content p[data-v-299e0c8a]{font-size:14px;margin:8px 0 0}.qxs-image-upload__item img[data-v-299e0c8a]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.qxs-image-upload__placeholder[data-v-299e0c8a]{align-items:center;background:#f5f7fa;color:#909399;display:flex;height:100%;justify-content:center}.qxs-image-upload__progress[data-v-299e0c8a]{background:rgba(0,0,0,.1);bottom:0;height:4px;left:0;position:absolute;right:0}.qxs-image-upload__progress-bar[data-v-299e0c8a]{background:#409eff;height:100%;transition:width .2s}.qxs-image-upload__actions[data-v-299e0c8a]{align-items:center;background:rgba(0,0,0,.5);display:flex;gap:16px;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .2s}.qxs-image-upload__item:hover .qxs-image-upload__actions[data-v-299e0c8a]{opacity:1}.qxs-image-upload__action[data-v-299e0c8a]{color:#fff;cursor:pointer;padding:4px}.qxs-image-upload__action.is-disabled[data-v-299e0c8a]{cursor:not-allowed;opacity:.5}.qxs-image-upload__tip[data-v-299e0c8a]{color:#909399;font-size:12px;margin-top:8px}.qxs-image-viewer[data-v-299e0c8a]{align-items:center;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.qxs-image-viewer__mask[data-v-299e0c8a]{background:rgba(0,0,0,.8);inset:0;position:absolute}.qxs-image-viewer__close[data-v-299e0c8a]{color:#fff;cursor:pointer;font-size:40px;position:absolute;right:40px;top:40px;z-index:1}.qxs-image-viewer__next[data-v-299e0c8a],.qxs-image-viewer__prev[data-v-299e0c8a]{color:#fff;cursor:pointer;font-size:60px;position:absolute;top:50%;transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.qxs-image-viewer__prev[data-v-299e0c8a]{left:40px}.qxs-image-viewer__next[data-v-299e0c8a]{right:40px}.qxs-image-viewer__img[data-v-299e0c8a]{max-height:80%;max-width:80%;z-index:1}";a(e);export{e as default};
2
+ //# sourceMappingURL=image-upload.vue3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-upload.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{version as n}from"../package.json.mjs";function o(o){return{version:n,install:n=>{for(const r in o)n.use(o[r])}}}export{o as makeInstaller};
1
+ import{version as n}from"../package.json.mjs";function o(o){return{version:n,install:n=>{for(const t in o){const s=o[t];s&&"object"==typeof s&&"install"in s&&n.use(s)}}}}export{o as makeInstaller};
2
2
  //# sourceMappingURL=make-installer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","use"],"mappings":"8CAGA,SAASA,EAAcC,GASrB,MAAO,CACLC,UACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACdG,EAAIE,IAAIL,EAAWI,KAQzB"}
1
+ {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import { version } from '../package.json'\n\nfunction makeInstaller(components: Record<string, any>) {\n const install = (app: any) => {\n for (const n in components) {\n const component = components[n]\n if (component && typeof component === 'object' && 'install' in component) {\n app.use(component)\n }\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","component","use"],"mappings":"8CAEA,SAASA,EAAcC,GAUrB,MAAO,CACLC,UACAC,QAXeC,IACf,IAAA,MAAWC,KAAKJ,EAAY,CAC1B,MAAMK,EAAYL,EAAWI,GACzBC,GAAkC,iBAAdA,GAA0B,YAAaA,GAC7DF,EAAIG,IAAID,EAEZ,GAOJ"}
@@ -0,0 +1,2 @@
1
+ function n(n){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";const o=function(n){return"string"==typeof n?{message:n}:n}(n),s=function(n){switch(n){case"success":return{bgColor:"#ecfdf5",borderColor:"#a7f3d0",textColor:"#065f46"};case"warning":return{bgColor:"#fffbeb",borderColor:"#fde68a",textColor:"#92400e"};case"error":return{bgColor:"#fef2f2",borderColor:"#fecaca",textColor:"#991b1b"};default:return{bgColor:"#eff6ff",borderColor:"#bfdbfe",textColor:"#1e40af"}}}(e),a=document.getElementById("qxs-message-container")||function(){const n=document.createElement("div");return n.id="qxs-message-container",n.className="qxs-toast-container",document.body.appendChild(n),n}(),r=document.createElement("div");r.className=`qxs-toast qxs-toast--${e}`,r.setAttribute("role","status"),r.setAttribute("aria-live","polite"),r.innerHTML=`\n <div class="qxs-toast__content">\n <span class="qxs-toast__text">${o.message}</span>\n <button class="qxs-toast__close" aria-label="Close">\n <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M3.5 3.5l7 7m0-7l-7 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>\n </button>\n </div>\n `,r.style.cssText=`\n --toast-bg: ${s.bgColor};\n --toast-border: ${s.borderColor};\n --toast-text: ${s.textColor};\n `;r.querySelector(".qxs-toast__close").onclick=()=>t(r),a.appendChild(r),requestAnimationFrame(()=>{r.classList.add("qxs-toast--enter"),requestAnimationFrame(()=>{r.classList.remove("qxs-toast--enter")})});const i=o.duration??3e3,l=setTimeout(()=>{t(r)},i);return r.onmouseenter=()=>clearTimeout(l),r.onmouseleave=()=>{setTimeout(()=>t(r),1e3)},{close:()=>t(r)}}function t(n){n.classList.add("qxs-toast--leave"),setTimeout(()=>n.remove(),200)}const e=function(t){return n(t)};if(e.success=t=>n(t,"success"),e.warning=t=>n(t,"warning"),e.info=t=>n(t,"info"),e.error=t=>n(t,"error"),e.closeAll=()=>{document.querySelectorAll(".qxs-toast").forEach(n=>n.remove())},"undefined"!=typeof document&&!document.getElementById("qxs-toast-styles")){const n=document.createElement("style");n.id="qxs-toast-styles",n.textContent="\n .qxs-toast-container {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 320px;\n width: auto;\n pointer-events: none;\n }\n\n .qxs-toast {\n position: relative;\n overflow: hidden;\n border-radius: 10px;\n border: 1px solid var(--toast-border);\n background: var(--toast-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.02);\n pointer-events: all;\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--enter {\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--leave {\n animation: qxs-toast-out 0.2s cubic-bezier(0.21, 1.02, 0.73, 1) forwards;\n }\n\n .qxs-toast__content {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n gap: 8px;\n }\n\n .qxs-toast__text {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: var(--toast-text);\n }\n\n .qxs-toast__close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin: -4px -4px -4px 0;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n color: var(--toast-text);\n opacity: 0.5;\n transition: all 0.15s;\n }\n\n .qxs-toast__close:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.05);\n }\n\n @keyframes qxs-toast-in {\n 0% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n 100% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n }\n\n @keyframes qxs-toast-out {\n 0% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n }\n\n @media (max-width: 480px) {\n .qxs-toast-container {\n top: 10px;\n right: 10px;\n left: 10px;\n max-width: none;\n }\n }\n ",document.head.appendChild(n)}export{e as QxsMessage,e as default};
2
+ //# sourceMappingURL=message.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.mjs","sources":["../../../../../../packages/components/src/message/src/message.ts"],"sourcesContent":["export interface QxsMessageOptions {\n message: string\n duration?: number\n}\n\nexport type QxsMessageParams = QxsMessageOptions | string\n\ninterface QxsMessageInstance {\n close: () => void\n}\n\nfunction normalizeParams(params: QxsMessageParams): QxsMessageOptions {\n return typeof params === 'string' ? { message: params } : params\n}\n\nfunction getTypeConfig(type: string) {\n switch (type) {\n case 'success':\n return {\n bgColor: '#ecfdf5',\n borderColor: '#a7f3d0',\n textColor: '#065f46',\n }\n case 'warning':\n return {\n bgColor: '#fffbeb',\n borderColor: '#fde68a',\n textColor: '#92400e',\n }\n case 'error':\n return {\n bgColor: '#fef2f2',\n borderColor: '#fecaca',\n textColor: '#991b1b',\n }\n case 'info':\n default:\n return {\n bgColor: '#eff6ff',\n borderColor: '#bfdbfe',\n textColor: '#1e40af',\n }\n }\n}\n\nfunction createMessage(params: QxsMessageParams, type: 'success' | 'warning' | 'info' | 'error' = 'info'): QxsMessageInstance {\n const options = normalizeParams(params)\n const config = getTypeConfig(type)\n\n const container = document.getElementById('qxs-message-container') || createContainer()\n\n const messageEl = document.createElement('div')\n messageEl.className = `qxs-toast qxs-toast--${type}`\n messageEl.setAttribute('role', 'status')\n messageEl.setAttribute('aria-live', 'polite')\n messageEl.innerHTML = `\n <div class=\"qxs-toast__content\">\n <span class=\"qxs-toast__text\">${options.message}</span>\n <button class=\"qxs-toast__close\" aria-label=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><path d=\"M3.5 3.5l7 7m0-7l-7 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n </button>\n </div>\n `\n\n messageEl.style.cssText = `\n --toast-bg: ${config.bgColor};\n --toast-border: ${config.borderColor};\n --toast-text: ${config.textColor};\n `\n\n const closeBtn = messageEl.querySelector('.qxs-toast__close') as HTMLElement\n closeBtn.onclick = () => removeMessage(messageEl)\n\n container.appendChild(messageEl)\n\n requestAnimationFrame(() => {\n messageEl.classList.add('qxs-toast--enter')\n requestAnimationFrame(() => {\n messageEl.classList.remove('qxs-toast--enter')\n })\n })\n\n const duration = options.duration ?? 3000\n\n const timer = setTimeout(() => {\n removeMessage(messageEl)\n }, duration)\n\n messageEl.onmouseenter = () => clearTimeout(timer)\n messageEl.onmouseleave = () => {\n setTimeout(() => removeMessage(messageEl), 1000)\n }\n\n return {\n close: () => removeMessage(messageEl),\n }\n}\n\nfunction createContainer(): HTMLElement {\n const container = document.createElement('div')\n container.id = 'qxs-message-container'\n container.className = 'qxs-toast-container'\n document.body.appendChild(container)\n return container\n}\n\nfunction removeMessage(el: HTMLElement) {\n el.classList.add('qxs-toast--leave')\n setTimeout(() => el.remove(), 200)\n}\n\nexport interface QxsMessageFunction {\n (params: QxsMessageParams): QxsMessageInstance\n success: (params: QxsMessageParams) => QxsMessageInstance\n warning: (params: QxsMessageParams) => QxsMessageInstance\n info: (params: QxsMessageParams) => QxsMessageInstance\n error: (params: QxsMessageParams) => QxsMessageInstance\n closeAll: () => void\n}\n\nconst QxsMessage = function (params: QxsMessageParams): QxsMessageInstance {\n return createMessage(params)\n} as QxsMessageFunction\n\nQxsMessage.success = (params: QxsMessageParams) => createMessage(params, 'success')\nQxsMessage.warning = (params: QxsMessageParams) => createMessage(params, 'warning')\nQxsMessage.info = (params: QxsMessageParams) => createMessage(params, 'info')\nQxsMessage.error = (params: QxsMessageParams) => createMessage(params, 'error')\nQxsMessage.closeAll = () => {\n document.querySelectorAll('.qxs-toast').forEach(el => el.remove())\n}\n\nexport { QxsMessage }\nexport type { QxsMessageInstance }\nexport default QxsMessage\n\nif (typeof document !== 'undefined' && !document.getElementById('qxs-toast-styles')) {\n const style = document.createElement('style')\n style.id = 'qxs-toast-styles'\n style.textContent = `\n .qxs-toast-container {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 320px;\n width: auto;\n pointer-events: none;\n }\n\n .qxs-toast {\n position: relative;\n overflow: hidden;\n border-radius: 10px;\n border: 1px solid var(--toast-border);\n background: var(--toast-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.02);\n pointer-events: all;\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--enter {\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--leave {\n animation: qxs-toast-out 0.2s cubic-bezier(0.21, 1.02, 0.73, 1) forwards;\n }\n\n .qxs-toast__content {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n gap: 8px;\n }\n\n .qxs-toast__text {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: var(--toast-text);\n }\n\n .qxs-toast__close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin: -4px -4px -4px 0;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n color: var(--toast-text);\n opacity: 0.5;\n transition: all 0.15s;\n }\n\n .qxs-toast__close:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.05);\n }\n\n @keyframes qxs-toast-in {\n 0% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n 100% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n }\n\n @keyframes qxs-toast-out {\n 0% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n }\n\n @media (max-width: 480px) {\n .qxs-toast-container {\n top: 10px;\n right: 10px;\n left: 10px;\n max-width: none;\n }\n }\n `\n document.head.appendChild(style)\n}"],"names":["createMessage","params","type","arguments","length","undefined","options","message","normalizeParams","config","bgColor","borderColor","textColor","getTypeConfig","container","document","getElementById","createElement","id","className","body","appendChild","createContainer","messageEl","setAttribute","innerHTML","style","cssText","querySelector","onclick","removeMessage","requestAnimationFrame","classList","add","remove","duration","timer","setTimeout","onmouseenter","clearTimeout","onmouseleave","close","el","QxsMessage","success","warning","info","error","closeAll","querySelectorAll","forEach","textContent","head"],"mappings":"AA6CA,SAASA,EAAcC,GAAuG,IAA7EC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAiD,OAChG,MAAMG,EAnCR,SAAyBL,GACvB,MAAyB,iBAAXA,EAAsB,CAAEM,QAASN,GAAWA,CAC5D,CAiCkBO,CAAgBP,GAC1BQ,EAhCR,SAAuBP,GACrB,OAAQA,GACN,IAAK,UACH,MAAO,CACLQ,QAAS,UACTC,YAAa,UACbC,UAAW,WAEf,IAAK,UACH,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAEf,IAAK,QACH,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAGf,QACE,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAGnB,CAIiBC,CAAcX,GAEvBY,EAAYC,SAASC,eAAe,0BAiD5C,WACE,MAAMF,EAAYC,SAASE,cAAc,OAIzC,OAHAH,EAAUI,GAAK,wBACfJ,EAAUK,UAAY,sBACtBJ,SAASK,KAAKC,YAAYP,GACnBA,CACT,CAvDwEQ,GAEhEC,EAAYR,SAASE,cAAc,OACzCM,EAAUJ,UAAY,wBAAwBjB,IAC9CqB,EAAUC,aAAa,OAAQ,UAC/BD,EAAUC,aAAa,YAAa,UACpCD,EAAUE,UAAY,+EAEcnB,EAAQC,2RAO5CgB,EAAUG,MAAMC,QAAU,qBACVlB,EAAOC,iCACHD,EAAOE,mCACTF,EAAOG,iBAGRW,EAAUK,cAAc,qBAChCC,QAAU,IAAMC,EAAcP,GAEvCT,EAAUO,YAAYE,GAEtBQ,sBAAsB,KACpBR,EAAUS,UAAUC,IAAI,oBACxBF,sBAAsB,KACpBR,EAAUS,UAAUE,OAAO,wBAI/B,MAAMC,EAAW7B,EAAQ6B,UAAY,IAE/BC,EAAQC,WAAW,KACvBP,EAAcP,IACbY,GAOH,OALAZ,EAAUe,aAAe,IAAMC,aAAaH,GAC5Cb,EAAUiB,aAAe,KACvBH,WAAW,IAAMP,EAAcP,GAAY,MAGtC,CACLkB,MAAOA,IAAMX,EAAcP,GAE/B,CAUA,SAASO,EAAcY,GACrBA,EAAGV,UAAUC,IAAI,oBACjBI,WAAW,IAAMK,EAAGR,SAAU,IAChC,CAWA,MAAMS,EAAa,SAAU1C,GAC3B,OAAOD,EAAcC,EACvB,EAcA,GAZA0C,EAAWC,QAAW3C,GAA6BD,EAAcC,EAAQ,WACzE0C,EAAWE,QAAW5C,GAA6BD,EAAcC,EAAQ,WACzE0C,EAAWG,KAAQ7C,GAA6BD,EAAcC,EAAQ,QACtE0C,EAAWI,MAAS9C,GAA6BD,EAAcC,EAAQ,SACvE0C,EAAWK,SAAW,KACpBjC,SAASkC,iBAAiB,cAAcC,QAAQR,GAAMA,EAAGR,WAOnC,oBAAbnB,WAA6BA,SAASC,eAAe,oBAAqB,CACnF,MAAMU,EAAQX,SAASE,cAAc,SACrCS,EAAMR,GAAK,mBACXQ,EAAMyB,YAAc,ouEAsGpBpC,SAASqC,KAAK/B,YAAYK,EAC5B"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,ref as l,computed as a,createElementBlock as t,openBlock as o,normalizeClass as u,unref as n,createElementVNode as i,createCommentVNode as s,createVNode as d,createBlock as c,withCtx as m,createTextVNode as f,Fragment as r,renderList as p,toDisplayString as v}from"vue";import{Edit as y,Delete as _,Top as b,Bottom as k}from"@element-plus/icons-vue";import{useNamespace as h}from"@qxs-bns/hooks";import{ElPopover as w,ElLink as x,ElCheckbox as V,ElButton as g,ElIcon as C,ElDialog as j,ElRadioGroup as O,ElRadio as S}from"element-plus";import T from"../../subject-type/src/subject-type.vue.mjs";const U={key:0,class:"flex-justify-between"},B={class:"flex-justify-between"},E={key:0,class:"has-set"},R={key:1,class:"flex flex-justify-end action-buttons"};var A=e({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:Boolean,isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},showRichText:{type:Boolean,default:!0},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(e,{emit:A}){const K=e,z=A,D=l(K.isKey),N=l(!1),q=l(K.answerCheckType),Q=h("subject-action"),F=l(!0),G=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],H=a(()=>G.find(e=>e.value===q.value)?.label);function I(){N.value=!1,z("setAnswerSetting",q.value)}function J(){z("setKey",D.value)}function L(e,l){z("add",e,l?K.examAnswerRelationType:null)}return(l,a)=>(o(),t("div",{class:u(n(Q).e("action-exam"))},[i("div",{class:u(["action flex flex-justify-between",{active:e.isEdit}])},[s(" 编辑模式 "),e.isEdit?(o(),t("div",U,[d(n(w),{trigger:"click"},{reference:m(()=>[d(n(x),{type:"primary",class:"btn-margin"},{default:m(()=>a[15]||(a[15]=[f(" +在此题后加入新题 ",-1)])),_:1,__:[15]})]),default:m(()=>[d(T,{onSelect:L})]),_:1}),e.showRichText?(o(),c(n(x),{key:0,type:"primary",class:"btn-margin",onClick:a[0]||(a[0]=e=>z("onShowRichText"))},{default:m(()=>a[16]||(a[16]=[f(" +添加题目描述(图文) ",-1)])),_:1,__:[16]})):s("v-if",!0),e.showOtherOption?(o(),c(n(x),{key:1,type:"primary",class:"btn-margin",onClick:a[1]||(a[1]=e=>N.value=!0)},{default:m(()=>a[17]||(a[17]=[f(" 答题设置 ",-1)])),_:1,__:[17]})):s("v-if",!0),e.showOtherOption?(o(),c(n(V),{key:2,modelValue:D.value,"onUpdate:modelValue":a[2]||(a[2]=e=>D.value=e),label:"核心题",onChange:J},null,8,["modelValue"])):s("v-if",!0)])):(o(),t(r,{key:1},[s(" 非编辑模式 "),i("div",B,[e.showOtherOption?(o(),c(n(V),{key:0,modelValue:D.value,"onUpdate:modelValue":a[3]||(a[3]=e=>D.value=e),label:"核心题",disabled:""},null,8,["modelValue"])):s("v-if",!0),e.showOtherOption?(o(),c(n(V),{key:1,modelValue:F.value,"onUpdate:modelValue":a[4]||(a[4]=e=>F.value=e),label:H.value,disabled:"",class:"btn-margin"},null,8,["modelValue","label"])):s("v-if",!0)])],2112)),s(" 操作按钮 "),i("div",null,[e.isSet?(o(),t("div",E," *此题设置了跳题逻辑 ")):(o(),t("div",R,[e.isEdit?(o(),t(r,{key:1},[d(n(g),{class:"btn-margin",onClick:a[9]||(a[9]=e=>z("delete"))},{default:m(()=>a[22]||(a[22]=[f(" 删除 ",-1)])),_:1,__:[22]}),d(n(g),{type:"primary",onClick:a[10]||(a[10]=e=>z("save"))},{default:m(()=>a[23]||(a[23]=[f(" 完成编辑 ",-1)])),_:1,__:[23]})],64)):(o(),t(r,{key:0},[e.pageEnd?s("v-if",!0):(o(),c(n(g),{key:0,onClick:a[5]||(a[5]=e=>z("edit"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(y))]),_:1})]),default:m(()=>[a[18]||(a[18]=f(" 编辑 ",-1))]),_:1,__:[18]})),d(n(g),{onClick:a[6]||(a[6]=e=>z("delete"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(_))]),_:1})]),default:m(()=>[a[19]||(a[19]=f(" 删除 ",-1))]),_:1,__:[19]}),d(n(g),{onClick:a[7]||(a[7]=e=>z("moveUp"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(b))]),_:1})]),default:m(()=>[a[20]||(a[20]=f(" 上移 ",-1))]),_:1,__:[20]}),d(n(g),{onClick:a[8]||(a[8]=e=>z("moveDown"))},{icon:m(()=>[d(n(C),null,{default:m(()=>[d(n(k))]),_:1})]),default:m(()=>[a[21]||(a[21]=f(" 下移 ",-1))]),_:1,__:[21]})],64))]))]),s(" 答题设置弹窗 "),d(n(j),{modelValue:N.value,"onUpdate:modelValue":a[13]||(a[13]=e=>N.value=e),title:"答题设置",class:"customize-dialog",onClose:a[14]||(a[14]=e=>N.value=!1)},{footer:m(()=>[d(n(g),{class:"customize-button",type:"primary",plain:"",onClick:a[12]||(a[12]=e=>N.value=!1)},{default:m(()=>a[24]||(a[24]=[f(" 取消 ",-1)])),_:1,__:[24]}),d(n(g),{class:"customize-button",type:"primary",plain:"",onClick:I},{default:m(()=>a[25]||(a[25]=[f(" 保存 ",-1)])),_:1,__:[25]})]),default:m(()=>[d(n(O),{modelValue:q.value,"onUpdate:modelValue":a[11]||(a[11]=e=>q.value=e),class:"vertical-radio-group"},{default:m(()=>[(o(),t(r,null,p(G,e=>d(n(S),{key:e.value,value:e.value},{default:m(()=>[f(v(e.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])],2)],2))}});export{A as default};
1
+ import{defineComponent as e,ref as l,computed as t,resolveComponent as i,createElementBlock as a,openBlock as o,normalizeClass as n,unref as s,createElementVNode as u,createCommentVNode as m,createVNode as d,createBlock as r,withModifiers as p,withCtx as c,createTextVNode as v,Fragment as f,renderList as y,toDisplayString as b}from"vue";import x from"@qxs-bns/icons/src/components/Check.vue";import _ from"@qxs-bns/icons/src/components/Delete.vue";import k from"@qxs-bns/icons/src/components/Edit.vue";import{useNamespace as h}from"@qxs-bns/hooks";import{QxsButton as j}from"../../ui/button/index.mjs";import"../../ui/input/index.mjs";import{QxsRadioGroup as w,QxsRadio as g}from"../../ui/radio/index.mjs";import{QxsCheckbox as V}from"../../ui/checkbox/index.mjs";import{QxsLink as C}from"../../ui/link/index.mjs";import"../../ui/tag/index.mjs";import"../../ui/input-number/index.mjs";import"../../ui/select/index.mjs";import"../../ui/popover/index.mjs";import"../../ui/layout/index.mjs";import"../../ui/scrollbar/index.mjs";import{QxsDialogComponent as O}from"../../ui/dialog/index.mjs";import"../../ui/table/index.mjs";import"../../icon/index.mjs";import"../../message/src/message.mjs";const E={key:0,class:"flex-justify-between"},S={class:"flex-justify-between"},T={key:0,class:"has-set"},B={key:1,class:"flex flex-justify-end action-buttons"};var U=e({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:Boolean,isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},showRichText:{type:Boolean,default:!0},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(e,{emit:U}){const R=e,q=U,A=l(R.isKey),K=l(!1),z=l(R.answerCheckType),D=h("subject-action"),N=l(!0),Q=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],I=t(()=>Q.find(e=>e.value===z.value)?.label);function F(){K.value=!1,q("setAnswerSetting",z.value)}function G(){q("setKey",A.value)}return(l,t)=>{const h=i("QxsIcon");return o(),a("div",{class:n(s(D).e("action-exam"))},[u("div",{class:n(["action flex flex-justify-between",{active:e.isEdit}])},[m(" 编辑模式 "),e.isEdit?(o(),a("div",E,[e.showRichText?(o(),r(s(C),{key:0,type:"primary",class:"btn-margin",onClick:t[0]||(t[0]=p(e=>q("onShowRichText"),["prevent"]))},{default:c(()=>t[12]||(t[12]=[v(" +添加题目描述(图文) ",-1)])),_:1,__:[12]})):m("v-if",!0),e.showOtherOption?(o(),r(s(C),{key:1,type:"primary",class:"btn-margin",onClick:t[1]||(t[1]=p(e=>K.value=!0,["prevent"]))},{default:c(()=>t[13]||(t[13]=[v(" 答题设置 ",-1)])),_:1,__:[13]})):m("v-if",!0),e.showOtherOption?(o(),r(s(V),{key:2,modelValue:A.value,"onUpdate:modelValue":t[2]||(t[2]=e=>A.value=e),label:"核心题",onChange:G},null,8,["modelValue"])):m("v-if",!0)])):(o(),a(f,{key:1},[m(" 非编辑模式 "),u("div",S,[e.showOtherOption?(o(),r(s(V),{key:0,modelValue:A.value,"onUpdate:modelValue":t[3]||(t[3]=e=>A.value=e),label:"核心题",disabled:""},null,8,["modelValue"])):m("v-if",!0),e.showOtherOption?(o(),r(s(V),{key:1,modelValue:N.value,"onUpdate:modelValue":t[4]||(t[4]=e=>N.value=e),label:I.value,disabled:"",class:"btn-margin"},null,8,["modelValue","label"])):m("v-if",!0)])],2112)),m(" 操作按钮 "),u("div",null,[e.isSet?(o(),a("div",T," *此题设置了跳题逻辑 ")):(o(),a("div",B,[e.isEdit?(o(),a(f,{key:1},[d(s(j),{class:"btn-margin",type:"danger",plain:"",onClick:t[7]||(t[7]=e=>q("delete"))},{icon:c(()=>[d(h,{icon:_})]),default:c(()=>[t[16]||(t[16]=v(" 删除 ",-1))]),_:1,__:[16]}),d(s(j),{type:"primary",onClick:t[8]||(t[8]=e=>q("save"))},{icon:c(()=>[d(h,{icon:x})]),default:c(()=>[t[17]||(t[17]=v(" 完成编辑 ",-1))]),_:1,__:[17]})],64)):(o(),a(f,{key:0},[e.pageEnd?m("v-if",!0):(o(),r(s(j),{key:0,class:"btn-margin",onClick:t[5]||(t[5]=e=>q("edit"))},{icon:c(()=>[d(h,{icon:k})]),default:c(()=>[t[14]||(t[14]=v(" 编辑 ",-1))]),_:1,__:[14]})),d(s(j),{type:"danger",plain:"",onClick:t[6]||(t[6]=e=>q("delete"))},{icon:c(()=>[d(h,{icon:_})]),default:c(()=>[t[15]||(t[15]=v(" 删除 ",-1))]),_:1,__:[15]})],64))]))]),m(" 答题设置弹窗 "),d(s(O),{modelValue:K.value,"onUpdate:modelValue":t[11]||(t[11]=e=>K.value=e),title:"答题设置",class:"customize-dialog",width:"400px"},{footer:c(()=>[d(s(j),{class:"customize-button",type:"primary",plain:"",onClick:t[10]||(t[10]=e=>K.value=!1)},{default:c(()=>t[18]||(t[18]=[v(" 取消 ",-1)])),_:1,__:[18]}),d(s(j),{class:"customize-button",type:"primary",plain:"",onClick:F},{default:c(()=>t[19]||(t[19]=[v(" 保存 ",-1)])),_:1,__:[19]})]),default:c(()=>[d(s(w),{modelValue:z.value,"onUpdate:modelValue":t[9]||(t[9]=e=>z.value=e),class:"vertical-radio-group"},{default:c(()=>[(o(),a(f,null,y(Q,e=>d(s(g),{key:e.value,label:e.value},{default:c(()=>[v(b(e.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])],2)],2)}}});export{U as default};
2
2
  //# sourceMappingURL=subject-action.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-action.vue.mjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElButton, ElCheckbox, ElDialog, ElIcon, ElLink, ElPopover, ElRadio, ElRadioGroup } from 'element-plus'\nimport { computed, ref } from 'vue'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\n\nconst props = defineProps({\n isEdit: Boolean,\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1,\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null,\n },\n showRichText: {\n type: Boolean,\n default: true,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst emits = defineEmits([\n 'moveUp',\n 'moveDown',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'onShowRichText',\n 'setKey',\n 'setAnswerSetting',\n])\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\nconst checked = ref(true)\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步',\n },\n {\n value: 1,\n label: '无需判断是否是支持选项',\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步',\n },\n]\n\nconst answerText = computed(() => {\n return answerTextList.find(item => item.value === answerType.value)?.label\n})\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType.value)\n}\n\nfunction setKey() {\n emits('setKey', isKey.value)\n}\n\nfunction selectExam(type: string, canSet: boolean) {\n emits('add', type, canSet ? props.examAnswerRelationType : null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div\n class=\"action flex flex-justify-between\"\n :class=\"{ active: isEdit }\"\n >\n <!-- 编辑模式 -->\n <div\n v-if=\"isEdit\"\n class=\"flex-justify-between\"\n >\n <ElPopover trigger=\"click\">\n <template #reference>\n <ElLink\n type=\"primary\"\n class=\"btn-margin\"\n >\n +在此题后加入新题\n </ElLink>\n </template>\n <SubjectType @select=\"selectExam\" />\n </ElPopover>\n <ElLink\n v-if=\"showRichText\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"emits('onShowRichText')\"\n >\n +添加题目描述(图文)\n </ElLink>\n <ElLink\n v-if=\"showOtherOption\"\n type=\"primary\"\n class=\"btn-margin\"\n @click=\"showAnswerSetting = true\"\n >\n 答题设置\n </ElLink>\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n />\n </div>\n\n <!-- 非编辑模式 -->\n <div\n v-else\n class=\"flex-justify-between\"\n >\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n />\n <ElCheckbox\n v-if=\"showOtherOption\"\n v-model=\"checked\"\n :label=\"answerText\"\n disabled\n class=\"btn-margin\"\n />\n </div>\n\n <!-- 操作按钮 -->\n <div>\n <div\n v-if=\"isSet\"\n class=\"has-set\"\n >\n *此题设置了跳题逻辑\n </div>\n <div\n v-else\n class=\"flex flex-justify-end action-buttons\"\n >\n <template v-if=\"!isEdit\">\n <ElButton\n v-if=\"!pageEnd\"\n @click=\"emits('edit')\"\n >\n <template #icon>\n <ElIcon><Edit /></ElIcon>\n </template>\n 编辑\n </ElButton>\n <ElButton @click=\"emits('delete')\">\n <template #icon>\n <ElIcon><Delete /></ElIcon>\n </template>\n 删除\n </ElButton>\n <ElButton @click=\"emits('moveUp')\">\n <template #icon>\n <ElIcon><Top /></ElIcon>\n </template>\n 上移\n </ElButton>\n <ElButton @click=\"emits('moveDown')\">\n <template #icon>\n <ElIcon><Bottom /></ElIcon>\n </template>\n 下移\n </ElButton>\n </template>\n <template v-else>\n <ElButton\n class=\"btn-margin\"\n @click=\"emits('delete')\"\n >\n 删除\n </ElButton>\n <ElButton\n type=\"primary\"\n @click=\"emits('save')\"\n >\n 完成编辑\n </ElButton>\n </template>\n </div>\n </div>\n\n <!-- 答题设置弹窗 -->\n <ElDialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n @close=\"showAnswerSetting = false\"\n >\n <ElRadioGroup\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <ElRadio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.label }}\n </ElRadio>\n </ElRadioGroup>\n <template #footer>\n <ElButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </ElButton>\n <ElButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </ElButton>\n </template>\n </ElDialog>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","isKey","ref","showAnswerSetting","answerType","answerCheckType","ns","useNamespace","checked","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","selectExam","type","canSet","examAnswerRelationType","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","active","isEdit","_createCommentVNode","_openBlock","_hoisted_1","_createVNode","ElPopover","trigger","reference","ElLink","_cache","SubjectType","onSelect","showRichText","_createBlock","onClick","showOtherOption","ElCheckbox","$event","onChange","_Fragment","key","_hoisted_2","disabled","isSet","_hoisted_3","_hoisted_4","ElButton","pageEnd","icon","ElIcon","Edit","Delete","Top","Bottom","ElDialog","title","onClose","footer","plain","ElRadioGroup","_renderList","ElRadio","_createTextVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"subject-action.vue.mjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport Check from '@qxs-bns/icons/src/components/Check.vue'\nimport Delete from '@qxs-bns/icons/src/components/Delete.vue'\nimport Edit from '@qxs-bns/icons/src/components/Edit.vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { QxsButton, QxsCheckbox,\n QxsDialogComponent,\n QxsLink,\n QxsRadio,\n QxsRadioGroup } from '../../ui'\nimport { computed, ref } from 'vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\n\nconst props = defineProps({\n isEdit: Boolean,\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1,\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null,\n },\n showRichText: {\n type: Boolean,\n default: true,\n },\n pageEnd: {\n type: Boolean,\n default: false,\n },\n})\n\nconst emits = defineEmits([\n 'moveUp',\n 'moveDown',\n 'delete',\n 'save',\n 'edit',\n 'add',\n 'onShowRichText',\n 'setKey',\n 'setAnswerSetting',\n])\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\nconst checked = ref(true)\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步',\n },\n {\n value: 1,\n label: '无需判断是否是支持选项',\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步',\n },\n]\n\nconst answerText = computed(() => {\n return answerTextList.find(item => item.value === answerType.value)?.label\n})\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType.value)\n}\n\nfunction setKey() {\n emits('setKey', isKey.value)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div\n class=\"action flex flex-justify-between\"\n :class=\"{ active: isEdit }\"\n >\n <!-- 编辑模式 -->\n <div\n v-if=\"isEdit\"\n class=\"flex-justify-between\"\n >\n <QxsLink\n v-if=\"showRichText\"\n type=\"primary\"\n class=\"btn-margin\"\n @click.prevent=\"emits('onShowRichText')\"\n >\n +添加题目描述(图文)\n </QxsLink>\n <QxsLink\n v-if=\"showOtherOption\"\n type=\"primary\"\n class=\"btn-margin\"\n @click.prevent=\"showAnswerSetting = true\"\n >\n 答题设置\n </QxsLink>\n <QxsCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n @change=\"setKey\"\n />\n </div>\n\n <!-- 非编辑模式 -->\n <div\n v-else\n class=\"flex-justify-between\"\n >\n <QxsCheckbox\n v-if=\"showOtherOption\"\n v-model=\"isKey\"\n label=\"核心题\"\n disabled\n />\n <QxsCheckbox\n v-if=\"showOtherOption\"\n v-model=\"checked\"\n :label=\"answerText\"\n disabled\n class=\"btn-margin\"\n />\n </div>\n\n <!-- 操作按钮 -->\n <div>\n <div\n v-if=\"isSet\"\n class=\"has-set\"\n >\n *此题设置了跳题逻辑\n </div>\n <div\n v-else\n class=\"flex flex-justify-end action-buttons\"\n >\n <template v-if=\"!isEdit\">\n <QxsButton\n v-if=\"!pageEnd\"\n class=\"btn-margin\"\n @click=\"emits('edit')\"\n >\n <template #icon>\n <QxsIcon :icon=\"Edit\" />\n </template>\n 编辑\n </QxsButton>\n <QxsButton\n type=\"danger\"\n plain\n @click=\"emits('delete')\"\n >\n <template #icon>\n <QxsIcon :icon=\"Delete\" />\n </template>\n 删除\n </QxsButton>\n </template>\n <template v-else>\n <QxsButton\n class=\"btn-margin\"\n type=\"danger\"\n plain\n @click=\"emits('delete')\"\n >\n <template #icon>\n <QxsIcon :icon=\"Delete\" />\n </template>\n 删除\n </QxsButton>\n <QxsButton\n type=\"primary\"\n @click=\"emits('save')\"\n >\n <template #icon>\n <QxsIcon :icon=\"Check\" />\n </template>\n 完成编辑\n </QxsButton>\n </template>\n </div>\n </div>\n\n <!-- 答题设置弹窗 -->\n <QxsDialogComponent\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n width=\"400px\"\n >\n <QxsRadioGroup\n v-model=\"answerType\"\n class=\"vertical-radio-group\"\n >\n <QxsRadio\n v-for=\"item in answerTextList\"\n :key=\"item.value\"\n :label=\"item.value\"\n >\n {{ item.label }}\n </QxsRadio>\n </QxsRadioGroup>\n <template #footer>\n <QxsButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </QxsButton>\n <QxsButton\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </QxsButton>\n </template>\n </QxsDialogComponent>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","isKey","ref","showAnswerSetting","answerType","answerCheckType","ns","useNamespace","checked","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","setKey","_createElementBlock","class","_normalizeClass","_unref","e","_createElementVNode","active","isEdit","_createCommentVNode","_openBlock","_hoisted_1","showRichText","_createBlock","QxsLink","type","onClick","_cache","showOtherOption","QxsCheckbox","$event","onChange","_Fragment","key","_hoisted_2","disabled","isSet","_hoisted_3","_hoisted_4","_createVNode","QxsButton","plain","icon","_component_QxsIcon","Delete","Check","pageEnd","Edit","QxsDialogComponent","title","width","footer","QxsRadioGroup","_renderList","QxsRadio","_createTextVNode","_toDisplayString"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as s,createElementBlock as t,openBlock as e,normalizeClass as o,unref as a,createCommentVNode as l,renderSlot as u,createElementVNode as i}from"vue";import{useNamespace as r}from"@qxs-bns/hooks";const d={key:0,class:"edit"};var c=s({name:"QxsSubjectLayout",__name:"subject-layout",props:{showEdit:{type:Boolean,required:!0}},setup(s){const c=r("subject-layout");return(s,r)=>(e(),t("div",{class:o(a(c).e("layout-exam"))},[l(' <div class="subject-layout"> '),u(s.$slots,"preview"),s.showEdit?(e(),t("div",d,[r[0]||(r[0]=i("div",{class:"triangle-up"},null,-1)),u(s.$slots,"edit")])):l("v-if",!0),u(s.$slots,"default"),l(" </div> ")],2))}});export{c as default};
1
+ import{defineComponent as t,createElementBlock as e,openBlock as s,normalizeClass as o,unref as a,createCommentVNode as u,renderSlot as r,Fragment as l}from"vue";import{useNamespace as i}from"@qxs-bns/hooks";const d={key:0,class:"edit"};var p=t({name:"QxsSubjectLayout",__name:"subject-layout",props:{showEdit:{type:Boolean,required:!0}},setup(t){const p=i("subject-layout");return(t,i)=>(s(),e("div",{class:o(a(p).e("layout-exam"))},[u(" 编辑模式:只显示编辑区域 "),t.showEdit?(s(),e("div",d,[r(t.$slots,"edit")])):(s(),e(l,{key:1},[u(" 预览模式:只显示预览区域 "),r(t.$slots,"preview")],64)),r(t.$slots,"default")],2))}});export{p as default};
2
2
  //# sourceMappingURL=subject-layout.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-layout.vue.mjs","sources":["../../../../../../packages/components/src/subject-layout/src/subject-layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsSubjectLayout',\n})\ndefineProps<{\n showEdit: boolean\n}>()\n\nconst ns = useNamespace('subject-layout')\n</script>\n\n<template>\n <div :class=\"ns.e('layout-exam')\">\n <!-- <div class=\"subject-layout\"> -->\n <slot name=\"preview\" />\n <div\n v-if=\"showEdit\"\n class=\"edit\"\n >\n <div class=\"triangle-up\" />\n <slot name=\"edit\" />\n </div>\n <slot />\n <!-- </div> -->\n </div>\n</template>\n"],"names":["ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createCommentVNode","_renderSlot","_ctx","$slots","showEdit","_openBlock","_hoisted_1","_createElementVNode"],"mappings":"qWAUA,MAAMA,EAAKC,EAAa,oCAItBC,EAYM,MAAA,CAZAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,kBACfC,EAAA,kCACAC,EAAuBC,EAAAC,OAAA,WAEfC,EAAAA,UADRC,IAAAV,EAMM,MANNW,EAMM,aAFJC,EAA2B,MAAA,CAAtBX,MAAM,eAAa,MAAA,IACxBK,EAAoBC,EAAAC,OAAA,wBAEtBF,EAAQC,EAAAC,OAAA,WACVH,EAAA"}
1
+ {"version":3,"file":"subject-layout.vue.mjs","sources":["../../../../../../packages/components/src/subject-layout/src/subject-layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsSubjectLayout',\n})\ndefineProps<{\n showEdit: boolean\n}>()\n\nconst ns = useNamespace('subject-layout')\n</script>\n\n<template>\n <div :class=\"ns.e('layout-exam')\">\n <!-- 编辑模式:只显示编辑区域 -->\n <template v-if=\"showEdit\">\n <div class=\"edit\">\n <slot name=\"edit\" />\n </div>\n </template>\n <!-- 预览模式:只显示预览区域 -->\n <template v-else>\n <slot name=\"preview\" />\n </template>\n <slot />\n </div>\n</template>\n"],"names":["ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createCommentVNode","showEdit","_openBlock","_hoisted_1","_renderSlot","_ctx","$slots","_Fragment","key"],"mappings":"2VAUA,MAAMA,EAAKC,EAAa,oCAItBC,EAYM,MAAA,CAZAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,kBACfC,EAAA,kBACgBC,EAAAA,UACdC,IAAAP,EAEM,MAFNQ,EAEM,CADJC,EAAoBC,EAAAC,OAAA,gBAIxBX,EAEWY,EAAA,CAAAC,IAAA,GAAA,CAHXR,EAAA,kBAEEI,EAAuBC,EAAAC,OAAA,iBAEzBF,EAAQC,EAAAC,OAAA"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,onMounted as t,createElementBlock as o,openBlock as n,normalizeClass as a,unref as r,createVNode as s,withCtx as i,createElementVNode as l,toDisplayString as d}from"vue";import{useNamespace as u}from"@qxs-bns/hooks";import{ElRow as p}from"element-plus";import m from"../../../subject-action/src/subject-action.vue.mjs";var c=e({name:"QxsSubjectScale",__name:"SubjectPageEnd",props:{currentPageIndex:{type:Number,required:!0},totalPage:{type:Number,required:!0},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:c}){const x=e,y=c;t(function(){});const v=u("subject-end");return(e,t)=>(n(),o("div",{class:a(r(v).e("end-exam"))},[s(r(p),{type:"flex",align:"middle"},{default:i(()=>[t[5]||(t[5]=l("span",{class:"auto-line"},null,-1)),l("span",null,"第"+d(x.currentPageIndex)+" / "+d(e.totalPage)+"页",1),t[6]||(t[6]=l("span",{class:"auto-line"},null,-1))]),_:1,__:[5,6]}),s(m,{"is-edit":!1,"is-set":e.isSet,"page-end":!0,"exam-answer-relation-type":x.examAnswerRelationType,"show-other-option":!1,"show-rich-text":!1,onMoveUp:t[0]||(t[0]=e=>y("move","up")),onMoveDown:t[1]||(t[1]=e=>y("move","down")),onDelete:t[2]||(t[2]=e=>y("delete")),onEdit:t[3]||(t[3]=e=>y("edit")),onAdd:t[4]||(t[4]=e=>y("add",e))},null,8,["is-set","exam-answer-relation-type"])],2))}});export{c as default};
1
+ import{defineComponent as e,onMounted as i,createElementBlock as t,openBlock as o,normalizeClass as n,unref as r,createVNode as s,withCtx as m,createElementVNode as a,toDisplayString as u}from"vue";import{useNamespace as d}from"@qxs-bns/hooks";import"../../../ui/button/index.mjs";import"../../../ui/input/index.mjs";import"../../../ui/radio/index.mjs";import"../../../ui/checkbox/index.mjs";import"../../../ui/link/index.mjs";import"../../../ui/tag/index.mjs";import"../../../ui/input-number/index.mjs";import"../../../ui/select/index.mjs";import"../../../ui/popover/index.mjs";import{QxsRow as p}from"../../../ui/layout/index.mjs";import"../../../ui/scrollbar/index.mjs";import"../../../ui/dialog/index.mjs";import"../../../ui/table/index.mjs";import"../../../icon/index.mjs";import"../../../message/src/message.mjs";import l from"../../../subject-action/src/subject-action.vue.mjs";var x=e({name:"QxsSubjectScale",__name:"SubjectPageEnd",props:{currentPageIndex:{type:Number,required:!0},totalPage:{type:Number,required:!0},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:x}){const c=e,j=x;i(function(){});const b=d("subject-end");return(e,i)=>(o(),t("div",{class:n(r(b).e("end-exam"))},[s(r(p),{type:"flex",align:"middle"},{default:m(()=>[i[5]||(i[5]=a("span",{class:"auto-line"},null,-1)),a("span",null,"第"+u(c.currentPageIndex)+" / "+u(e.totalPage)+"页",1),i[6]||(i[6]=a("span",{class:"auto-line"},null,-1))]),_:1,__:[5,6]}),s(l,{"is-edit":!1,"is-set":e.isSet,"page-end":!0,"exam-answer-relation-type":c.examAnswerRelationType,"show-other-option":!1,"show-rich-text":!1,onMoveUp:i[0]||(i[0]=e=>j("move","up")),onMoveDown:i[1]||(i[1]=e=>j("move","down")),onDelete:i[2]||(i[2]=e=>j("delete")),onEdit:i[3]||(i[3]=e=>j("edit")),onAdd:i[4]||(i[4]=e=>j("add",e))},null,8,["is-set","exam-answer-relation-type"])],2))}});export{x as default};
2
2
  //# sourceMappingURL=SubjectPageEnd.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectPageEnd.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElRow } from 'element-plus'\nimport { onMounted } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n currentPageIndex: number\n totalPage: number\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nfunction init() {\n\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-end')\n</script>\n\n<template>\n <div :class=\"ns.e('end-exam')\">\n <ElRow\n type=\"flex\"\n align=\"middle\"\n >\n <span class=\"auto-line\" />\n <span>第{{ props.currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </ElRow>\n <SubjectAction\n :is-edit=\"false\"\n :is-set=\"isSet\"\n :page-end=\"true\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n :show-other-option=\"false\"\n :show-rich-text=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","onMounted","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","ElRow","type","align","_createElementVNode","_toDisplayString","currentPageIndex","totalPage","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onEdit","onAdd","_cache"],"mappings":"ouBASA,MAAMA,EAAQC,EASRC,EAAQC,EAMdC,EAJA,WAEA,GAGA,MAAMC,EAAKC,EAAa,iCAItBC,EAsBM,MAAA,CAtBAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,eACfC,EAOQF,EAAAG,GAAA,CANNC,KAAK,OACLC,MAAM,qBAEN,IAA0B,aAA1BC,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,IACvBQ,EAA6D,OAAA,KAAvD,IAACC,EAAGjB,EAAMkB,kBAAmB,MAAGD,EAAGE,EAAAA,WAAY,IAAC,eACtDH,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,qBAEzBI,EAYEQ,EAAA,CAXC,WAAS,EACT,SAAQC,EAAAA,MACR,YAAU,EACV,4BAA2BrB,EAAMsB,uBACjC,qBAAmB,EACnB,kBAAgB,EAChBC,wBAASrB,EAAK,OAAA,OACdsB,0BAAWtB,EAAK,OAAA,SAChBuB,wBAAQvB,EAAK,WACbwB,sBAAMxB,EAAK,SACXyB,MAAGC,EAAA,KAAAA,EAAA,GAAEd,GAAQZ,QAAaY"}
1
+ {"version":3,"file":"SubjectPageEnd.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { QxsRow } from '../../../ui'\nimport { onMounted } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n currentPageIndex: number\n totalPage: number\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nfunction init() {\n\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-end')\n</script>\n\n<template>\n <div :class=\"ns.e('end-exam')\">\n <QxsRow\n type=\"flex\"\n align=\"middle\"\n >\n <span class=\"auto-line\" />\n <span>第{{ props.currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </QxsRow>\n <SubjectAction\n :is-edit=\"false\"\n :is-set=\"isSet\"\n :page-end=\"true\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n :show-other-option=\"false\"\n :show-rich-text=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","onMounted","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","QxsRow","type","align","_createElementVNode","_toDisplayString","currentPageIndex","totalPage","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onEdit","onAdd","_cache"],"mappings":"8vCASA,MAAMA,EAAQC,EASRC,EAAQC,EAMdC,EAJA,WAEA,GAGA,MAAMC,EAAKC,EAAa,iCAItBC,EAsBM,MAAA,CAtBAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,eACfC,EAOSF,EAAAG,GAAA,CANPC,KAAK,OACLC,MAAM,qBAEN,IAA0B,aAA1BC,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,IACvBQ,EAA6D,OAAA,KAAvD,IAACC,EAAGjB,EAAMkB,kBAAmB,MAAGD,EAAGE,EAAAA,WAAY,IAAC,eACtDH,EAA0B,OAAA,CAApBR,MAAM,aAAW,MAAA,qBAEzBI,EAYEQ,EAAA,CAXC,WAAS,EACT,SAAQC,EAAAA,MACR,YAAU,EACV,4BAA2BrB,EAAMsB,uBACjC,qBAAmB,EACnB,kBAAgB,EAChBC,wBAASrB,EAAK,OAAA,OACdsB,0BAAWtB,EAAK,OAAA,SAChBuB,wBAAQvB,EAAK,WACbwB,sBAAMxB,EAAK,SACXyB,MAAGC,EAAA,KAAAA,EAAA,GAAEd,GAAQZ,QAAaY"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,useAttrs as t,ref as o,onMounted as i,createElementBlock as r,openBlock as n,normalizeClass as s,unref as a,createVNode as d,withCtx as u,createBlock as l,createCommentVNode as m,mergeProps as c,createElementVNode as p,createTextVNode as v,toDisplayString as y}from"vue";import{useNamespace as x}from"@qxs-bns/hooks";import{ElMessage as h}from"element-plus";import w from"../../../subject-action/src/subject-action.vue.mjs";import f from"../../../subject-layout/src/subject-layout.vue.mjs";import b from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const j={class:"preview"},q=["innerHTML"];var S=e({name:"QxsSubjectScale",__name:"SubjectRichText",props:{orderIndex:{type:Number,required:!0},richTextContent:{type:String,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:S}){const T=e,A=S,B=t(),C=o("");function E(){C.value?A("save",{richTextContent:C.value||""}):h.error("富文本内容不能为空!")}i(function(){T.richTextContent&&(C.value=T.richTextContent)});const M=x("subject-scale");return(e,t)=>(n(),r("div",{class:s(a(M).e("scale-exam"))},[d(f,{"show-edit":e.isEdit},{preview:u(()=>[p("div",j,[v(y(e.orderIndex+1)+".",1),p("div",{innerHTML:C.value},null,8,q)])]),edit:u(()=>[d(b,c({"model-value":C.value,"onUpdate:modelValue":t[0]||(t[0]=e=>C.value=e)},a(B),{style:{width:"100%"}}),null,16,["model-value"])]),default:u(()=>[e.showAction?(n(),l(w,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"exam-answer-relation-type":T.examAnswerRelationType,"show-other-option":!1,"show-rich-text":!1,onMoveUp:t[1]||(t[1]=e=>A("move","up")),onMoveDown:t[2]||(t[2]=e=>A("move","down")),onDelete:t[3]||(t[3]=e=>A("delete")),onSave:E,onEdit:t[4]||(t[4]=e=>A("edit")),onAdd:t[5]||(t[5]=e=>A("add",e))},null,8,["is-edit","is-set","exam-answer-relation-type"])):m("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{S as default};
1
+ import{defineComponent as e,useAttrs as t,ref as o,onMounted as i,createElementBlock as r,openBlock as s,normalizeClass as n,unref as a,createVNode as d,withCtx as u,createBlock as l,createCommentVNode as m,mergeProps as c,createElementVNode as p,createTextVNode as v,toDisplayString as y}from"vue";import{useNamespace as x}from"@qxs-bns/hooks";import{QxsMessage as h}from"../../../message/src/message.mjs";import w from"../../../subject-action/src/subject-action.vue.mjs";import f from"../../../subject-layout/src/subject-layout.vue.mjs";import j from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const b={class:"preview"},q=["innerHTML"];var S=e({name:"QxsSubjectScale",__name:"SubjectRichText",props:{orderIndex:{type:Number,required:!0},richTextContent:{type:String,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:S}){const T=e,A=S,g=t(),B=o("");function C(){B.value?A("save",{richTextContent:B.value||""}):h.error("富文本内容不能为空!")}i(function(){T.richTextContent&&(B.value=T.richTextContent)});const E=x("subject-scale");return(e,t)=>(s(),r("div",{class:n(a(E).e("scale-exam"))},[d(f,{"show-edit":e.isEdit},{preview:u(()=>[p("div",b,[v(y(e.orderIndex+1)+".",1),p("div",{innerHTML:B.value},null,8,q)])]),edit:u(()=>[d(j,c({"model-value":B.value,"onUpdate:modelValue":t[0]||(t[0]=e=>B.value=e)},a(g),{style:{width:"100%"}}),null,16,["model-value"])]),default:u(()=>[e.showAction?(s(),l(w,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"exam-answer-relation-type":T.examAnswerRelationType,"show-other-option":!1,"show-rich-text":!1,onMoveUp:t[1]||(t[1]=e=>A("move","up")),onMoveDown:t[2]||(t[2]=e=>A("move","down")),onDelete:t[3]||(t[3]=e=>A("delete")),onSave:C,onEdit:t[4]||(t[4]=e=>A("edit")),onAdd:t[5]||(t[5]=e=>A("add",e))},null,8,["is-edit","is-set","exam-answer-relation-type"])):m("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{S as default};
2
2
  //# sourceMappingURL=SubjectRichText.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectRichText.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectRichText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport { onMounted, ref, useAttrs } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n richTextContent: string\n title?: string\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst richContent = ref('')\n\nfunction save() {\n if (!richContent.value) {\n ElMessage.error('富文本内容不能为空!')\n return\n }\n\n emits('save', {\n richTextContent: richContent.value || '',\n })\n}\n\nfunction init() {\n if (props.richTextContent) {\n richContent.value = props.richTextContent\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n {{ orderIndex + 1 }}.<div v-html=\"richContent\" />\n </div>\n </template>\n <template #edit>\n <TinyMceEditor\n v-model:model-value=\"richContent\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n :show-other-option=\"false\"\n :show-rich-text=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","richContent","ref","save","value","richTextContent","ElMessage","error","onMounted","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","orderIndex","innerHTML","_hoisted_2","edit","TinyMceEditor","_mergeProps","$event","style","width","showAction","_createBlock","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","_cache","type"],"mappings":"8hCAWA,MAAMA,EAAQC,EAURC,EAAQC,EAERC,EAAQC,IAERC,EAAcC,EAAI,IAExB,SAASC,IACFF,EAAYG,MAKjBP,EAAM,OAAQ,CACZQ,gBAAiBJ,EAAYG,OAAS,KALtCE,EAAUC,MAAM,aAOpB,CAQAC,EANA,WACMb,EAAMU,kBACRJ,EAAYG,MAAQT,EAAMU,gBAE9B,GAGA,MAAMI,EAAKC,EAAa,mCAItBC,EA6BM,MAAA,CA7BAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,iBACfC,EA2BgBC,EAAA,CA3BA,YAAWC,EAAAA,QAAM,CACpBC,UACT,IAEM,CAFNC,EAEM,MAFNC,EAEM,CADDC,EAAAA,EAAAA,EAAAA,cAAiB,IAAC,GAAAF,EAA4B,MAAA,CAAvBG,UAAQtB,EAAAG,OAAW,KAAA,EAAAoB,OAGtCC,OACT,IAIE,CAJFT,EAIEU,EAJFC,EAIE,CAHQ,cAAa1B,EAAAG,2CAAAH,EAAWG,MAAAwB,IACxBd,EAAAf,GAAK,CACb8B,MAAA,CAAAC,MAAA,UAAoB,KAAA,GAAA,CAAA,4BAGxB,IAaE,CAZMC,EAAAA,gBADRC,EAaEC,EAAA,OAXC,UAASf,EAAAA,OACT,SAAQgB,EAAAA,MACR,4BAA2BvC,EAAMwC,uBACjC,qBAAmB,EACnB,kBAAgB,EAChBC,wBAASvC,EAAK,OAAA,OACdwC,0BAAWxC,EAAK,OAAA,SAChByC,wBAAQzC,EAAK,WACb0C,OAAMpC,EACNqC,sBAAM3C,EAAK,SACX4C,MAAGC,EAAA,KAAAA,EAAA,GAAEC,GAAQ9C,QAAa8C"}
1
+ {"version":3,"file":"SubjectRichText.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectRichText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { QxsMessage } from '../../../message'\nimport { onMounted, ref, useAttrs } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n richTextContent: string\n title?: string\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst richContent = ref('')\n\nfunction save() {\n if (!richContent.value) {\n QxsMessage.error('富文本内容不能为空!')\n return\n }\n\n emits('save', {\n richTextContent: richContent.value || '',\n })\n}\n\nfunction init() {\n if (props.richTextContent) {\n richContent.value = props.richTextContent\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n {{ orderIndex + 1 }}.<div v-html=\"richContent\" />\n </div>\n </template>\n <template #edit>\n <TinyMceEditor\n v-model:model-value=\"richContent\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n :show-other-option=\"false\"\n :show-rich-text=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","richContent","ref","save","value","richTextContent","QxsMessage","error","onMounted","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","orderIndex","innerHTML","_hoisted_2","edit","TinyMceEditor","_mergeProps","$event","style","width","showAction","_createBlock","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","_cache","type"],"mappings":"mjCAWA,MAAMA,EAAQC,EAURC,EAAQC,EAERC,EAAQC,IAERC,EAAcC,EAAI,IAExB,SAASC,IACFF,EAAYG,MAKjBP,EAAM,OAAQ,CACZQ,gBAAiBJ,EAAYG,OAAS,KALtCE,EAAWC,MAAM,aAOrB,CAQAC,EANA,WACMb,EAAMU,kBACRJ,EAAYG,MAAQT,EAAMU,gBAE9B,GAGA,MAAMI,EAAKC,EAAa,mCAItBC,EA6BM,MAAA,CA7BAC,MAAKC,EAAEC,EAAAL,GAAGM,EAAC,iBACfC,EA2BgBC,EAAA,CA3BA,YAAWC,EAAAA,QAAM,CACpBC,UACT,IAEM,CAFNC,EAEM,MAFNC,EAEM,CADDC,EAAAA,EAAAA,EAAAA,cAAiB,IAAC,GAAAF,EAA4B,MAAA,CAAvBG,UAAQtB,EAAAG,OAAW,KAAA,EAAAoB,OAGtCC,OACT,IAIE,CAJFT,EAIEU,EAJFC,EAIE,CAHQ,cAAa1B,EAAAG,2CAAAH,EAAWG,MAAAwB,IACxBd,EAAAf,GAAK,CACb8B,MAAA,CAAAC,MAAA,UAAoB,KAAA,GAAA,CAAA,4BAGxB,IAaE,CAZMC,EAAAA,gBADRC,EAaEC,EAAA,OAXC,UAASf,EAAAA,OACT,SAAQgB,EAAAA,MACR,4BAA2BvC,EAAMwC,uBACjC,qBAAmB,EACnB,kBAAgB,EAChBC,wBAASvC,EAAK,OAAA,OACdwC,0BAAWxC,EAAK,OAAA,SAChByC,wBAAQzC,EAAK,WACb0C,OAAMpC,EACNqC,sBAAM3C,EAAK,SACX4C,MAAGC,EAAA,KAAAA,EAAA,GAAEC,GAAQ9C,QAAa8C"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,useAttrs as l,ref as t,watch as a,onMounted as i,createElementBlock as s,openBlock as n,normalizeClass as o,unref as u,createVNode as r,withCtx as d,createBlock as v,createCommentVNode as c,createElementVNode as m,createTextVNode as f,Fragment as p,renderList as x,toDisplayString as y,mergeProps as w}from"vue";import{Plus as g}from"@element-plus/icons-vue";import{useNamespace as h}from"@qxs-bns/hooks";import{ElInput as _,ElLink as b,ElCheckboxGroup as k,ElCheckbox as j,ElTag as C,ElButton as I,ElIcon as V,ElMessage as S}from"element-plus";import A from"../../../subject-action/src/subject-action.vue.mjs";import q from"../../../subject-layout/src/subject-layout.vue.mjs";import O from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const T={class:"preview"},R={class:"content"},B={class:"title"},U={key:0},L=["innerHTML"],E={key:1,class:"flex flex-wrap",style:{"margin-top":"10px",color:"#a8abb2"}},M={class:"flex"},D={style:{flex:"1"}},H={class:"flex flex-justify-end"},N={class:"margin-bottom flex flex-items-center"},z={class:"margin-bottom answer-list"},F={class:"label flex flex-justify-end"},G={class:"answer-tags"},J={key:0,class:"margin-bottom flex"},K={style:{flex:"1"}},P={key:1,class:"margin-bottom flex"},Q={style:{flex:"1"}},W={class:"flex flex-justify-end"};var X=e({__name:"subject-blank-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:X}){const Y=e,Z=X,$=l(),ee=t([]),le=t(""),te=t(""),ae=t(!1),ie=t(""),se=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],ne=t(["isIgnoreCase"]);function oe(){le.value+=" ______",ee.value.push({title:"",tag:"",showInput:!1})}function ue(){ae.value=!1,ie.value=""}function re(){le.value?ee.value.length<1?S.error("至少添加一个填空符!"):Z("save",{title:le.value.replaceAll(/ ______/g,"<filter></filter>"),answers:ee.value.map(e=>({title:e.title,isCorrect:!0})),analysis:te.value,isSetCorrectAnswer:!0,examAnswerSettingBO:{isIgnoreCase:ne.value?.includes("isIgnoreCase"),isInOrder:ne.value?.includes("isInOrder")},examRichTextContent:ae.value?ie.value:""}):S.error("题目标题不能为空!")}a(()=>le.value,()=>{const[...e]=le.value.matchAll(/ ______/g);if(e.length!==ee.value.length){const l=ee.value.length-e.length;ee.value.splice(ee.value.length-l,l)}}),i(function(){Y.title&&(le.value=Y.title.replaceAll(/<filter><\/filter>/g," ______")),Y.answerList&&Y.answerList.length&&(ee.value=Y.answerList),Y.examAnswerSettingVO&&(ne.value=ne.value.filter(e=>"isIgnoreCase"===e&&Y.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&Y.examAnswerSettingVO?.isInOrder)),Y.analysis&&(te.value=Y.analysis),Y.examRichTextContent&&(ie.value=Y.examRichTextContent,ae.value=!0)});const de=h("subject-blank-fill");return(e,l)=>(n(),s("div",{class:o(u(de).e("blank-fill-exam"))},[r(q,{"show-edit":e.isEdit},{preview:d(()=>[m("div",T,[m("div",R,[m("span",B,y(e.orderIndex+1)+"."+y(le.value)+"(填空题)",1),ae.value?(n(),s("div",U,[m("div",{class:"rich-text",innerHTML:ie.value},null,8,L)])):c("v-if",!0),ee.value.some(e=>e.title)?(n(),s("div",E,[l[10]||(l[10]=m("span",{class:"title"},"正确答案:",-1)),(n(!0),s(p,null,x(ee.value,(e,l)=>(n(),s("div",{key:l,class:"flex flex-wrap flex-items-center",style:{"margin-right":"10px"}},[m("span",null,"填空"+y(l+1)+":",1),m("span",null,y(e.title),1)]))),128))])):c("v-if",!0)])])]),edit:d(()=>[m("div",M,[l[11]||(l[11]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"题目:")],-1)),m("div",D,[r(u(_),{modelValue:le.value,"onUpdate:modelValue":l[0]||(l[0]=e=>le.value=e),type:"textarea",rows:7,"show-word-limit":"",maxlength:"400",placeholder:"【填空题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])]),m("div",H,[c(' <el-link\n v-if="!showRichText"\n type="primary"\n @click="showRichText = true"\n >\n 添加富文本\n </el-link> '),r(u(b),{class:"margin-left-10",type:"primary",disabled:e.isSave,onClick:oe},{default:d(()=>l[12]||(l[12]=[f(" 插入填空符 ",-1)])),_:1,__:[12]},8,["disabled"])]),m("div",N,[l[13]||(l[13]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"答题设置:")],-1)),(n(),s(p,null,x(se,e=>r(u(k),{key:e.value,modelValue:ne.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ne.value=e)},{default:d(()=>[r(u(j),{value:e.value,class:"margin-left-10"},{default:d(()=>[f(y(e.label),1)]),_:2},1032,["value"])]),_:2},1032,["modelValue"])),64))]),m("div",z,[(n(!0),s(p,null,x(ee.value,(l,t)=>(n(),s("div",{key:t,class:"answer-item flex flex-items-center"},[m("div",F,[m("span",null,"第"+y(t+1)+"空答案:",1)]),m("div",G,[(n(!0),s(p,null,x(l.title.split(","),e=>(n(),s(p,{key:e},[e?(n(),v(u(C),{key:0,closable:"",onClose:t=>function(e,l){if(e){const t=l.title.split(","),a=t.findIndex(l=>l===e);a>-1&&(t.splice(a,1),l.title=t.join(","))}}(e,l)},{default:d(()=>[f(y(e),1)]),_:2},1032,["onClose"])):c("v-if",!0)],64))),128)),e.isSave?c("v-if",!0):(n(),s(p,{key:0},[l.showInput?(n(),v(u(_),{key:0,modelValue:l.tag,"onUpdate:modelValue":e=>l.tag=e,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(l)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(n(),v(u(I),{key:1,size:"small",onClick:e=>l.showInput=!0},{default:d(()=>[r(u(V),null,{default:d(()=>[r(u(g))]),_:1}),m("span",null,y(l.title?"添加同义词":"添加答案"),1)]),_:2},1032,["onClick"]))],64))])]))),128))]),e.showAnalysis?(n(),s("div",J,[l[14]||(l[14]=m("div",{class:"label flex flex-justify-end"},[m("span",null,"解析:")],-1)),m("div",K,[r(u(_),{modelValue:te.value,"onUpdate:modelValue":l[2]||(l[2]=e=>te.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):c("v-if",!0),ae.value?(n(),s("div",P,[l[16]||(l[16]=m("div",{class:"label flex flex-justify-center"},[m("span",null,"富文本:")],-1)),m("div",Q,[r(O,w({"model-value":ie.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ie.value=e)},u($),{style:{width:"100%"}}),null,16,["model-value"]),m("div",W,[r(u(b),{type:"danger",onClick:ue},{default:d(()=>l[15]||(l[15]=[f(" 删除富文本 ",-1)])),_:1,__:[15]})])])])):c("v-if",!0)]),default:d(()=>[e.showAction?(n(),v(A,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":Y.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>Z("move","up")),onMoveDown:l[5]||(l[5]=e=>Z("move","down")),onDelete:l[6]||(l[6]=e=>Z("delete")),onSave:re,onEdit:l[7]||(l[7]=e=>Z("edit")),onAdd:l[8]||(l[8]=e=>Z("add",e)),onOnShowRichText:l[9]||(l[9]=e=>ae.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):c("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{X as default};
1
+ import{defineComponent as e,useAttrs as l,ref as t,watch as i,onMounted as a,createElementBlock as s,openBlock as n,normalizeClass as o,unref as r,createVNode as u,withCtx as d,createBlock as m,createCommentVNode as v,createElementVNode as p,createTextVNode as c,Fragment as x,renderList as f,toDisplayString as y,mergeProps as g}from"vue";import{useNamespace as w}from"@qxs-bns/hooks";import h from"@qxs-bns/icons/src/components/Plus.vue";import{QxsIcon as _}from"../../../icon/index.mjs";import{QxsMessage as b}from"../../../message/src/message.mjs";import j from"../../../subject-action/src/subject-action.vue.mjs";import k from"../../../subject-layout/src/subject-layout.vue.mjs";import C from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";import{QxsButton as I}from"../../../ui/button/index.mjs";import{QxsInput as V}from"../../../ui/input/index.mjs";import"../../../ui/radio/index.mjs";import{QxsCheckboxGroup as S,QxsCheckbox as A}from"../../../ui/checkbox/index.mjs";import{QxsLink as q}from"../../../ui/link/index.mjs";import{QxsTag as O}from"../../../ui/tag/index.mjs";import"../../../ui/input-number/index.mjs";import"../../../ui/select/index.mjs";import"../../../ui/popover/index.mjs";import"../../../ui/layout/index.mjs";import"../../../ui/scrollbar/index.mjs";import"../../../ui/dialog/index.mjs";import"../../../ui/table/index.mjs";const T={class:"preview"},B={class:"content"},R={class:"title"},U={key:0},L=["innerHTML"],E={key:1,class:"flex flex-wrap",style:{"margin-top":"10px",color:"#a8abb2"}},M={class:"flex flex-items-start"},D={style:{flex:"1"}},H={class:"flex flex-justify-end"},N={class:"flex flex-items-start",style:{"margin-top":"12px"}},z={class:"answer-list",style:{"margin-top":"12px"}},P={class:"label"},F={class:"answer-tags"},G={key:0,class:"flex flex-items-start",style:{"margin-top":"12px"}},J={style:{flex:"1"}},K={key:1,class:"flex flex-items-start",style:{"margin-top":"12px"}},Q={style:{flex:"1"}},W={class:"flex flex-justify-end"};var X=e({__name:"subject-blank-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:X}){const Y=e,Z=X,$=l(),ee=t([]),le=t(""),te=t(""),ie=t(!1),ae=t(""),se=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],ne=t(["isIgnoreCase"]);function oe(){le.value+=" ______",ee.value.push({title:"",tag:"",showInput:!1})}function re(){ie.value=!1,ae.value=""}function ue(){le.value?ee.value.length<1?b.error("至少添加一个填空符!"):Z("save",{title:le.value.replaceAll(/ ______/g,"<filter></filter>"),answers:ee.value.map(e=>({title:e.title,isCorrect:!0})),analysis:te.value,isSetCorrectAnswer:!0,examAnswerSettingBO:{isIgnoreCase:ne.value?.includes("isIgnoreCase"),isInOrder:ne.value?.includes("isInOrder")},examRichTextContent:ie.value?ae.value:""}):b.error("题目标题不能为空!")}i(()=>le.value,()=>{const[...e]=le.value.matchAll(/ ______/g);if(e.length!==ee.value.length){const l=ee.value.length-e.length;ee.value.splice(ee.value.length-l,l)}}),a(function(){Y.title&&(le.value=Y.title.replaceAll(/<filter><\/filter>/g," ______")),Y.answerList&&Y.answerList.length&&(ee.value=Y.answerList),Y.examAnswerSettingVO&&(ne.value=ne.value.filter(e=>"isIgnoreCase"===e&&Y.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&Y.examAnswerSettingVO?.isInOrder)),Y.analysis&&(te.value=Y.analysis),Y.examRichTextContent&&(ae.value=Y.examRichTextContent,ie.value=!0)});const de=w("subject-blank-fill");return(e,l)=>(n(),s("div",{class:o(r(de).e("blank-fill-exam"))},[u(k,{"show-edit":e.isEdit},{preview:d(()=>[p("div",T,[p("div",B,[p("span",R,y(e.orderIndex+1)+"."+y(le.value)+"(填空题)",1),ie.value?(n(),s("div",U,[p("div",{class:"rich-text",innerHTML:ae.value},null,8,L)])):v("v-if",!0),ee.value.some(e=>e.title)?(n(),s("div",E,[l[10]||(l[10]=p("span",{class:"title"},"正确答案:",-1)),(n(!0),s(x,null,f(ee.value,(e,l)=>(n(),s("div",{key:l,class:"flex flex-wrap flex-items-center",style:{"margin-right":"10px"}},[p("span",null,"填空"+y(l+1)+":",1),p("span",null,y(e.title),1)]))),128))])):v("v-if",!0)])])]),edit:d(()=>[p("div",M,[l[11]||(l[11]=p("div",{class:"label"},[p("span",null,"题目:")],-1)),p("div",D,[u(r(V),{modelValue:le.value,"onUpdate:modelValue":l[0]||(l[0]=e=>le.value=e),type:"textarea",rows:7,"show-word-limit":"",maxlength:400,placeholder:"【填空题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])]),p("div",H,[u(r(q),{type:"primary",disabled:e.isSave,onClick:oe},{default:d(()=>l[12]||(l[12]=[c(" 插入填空符 ",-1)])),_:1,__:[12]},8,["disabled"])]),p("div",N,[l[13]||(l[13]=p("div",{class:"label"},[p("span",null,"答题设置:")],-1)),(n(),s(x,null,f(se,e=>u(r(S),{key:e.value,modelValue:ne.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ne.value=e)},{default:d(()=>[u(r(A),{value:e.value},{default:d(()=>[c(y(e.label),1)]),_:2},1032,["value"])]),_:2},1032,["modelValue"])),64))]),p("div",z,[(n(!0),s(x,null,f(ee.value,(l,t)=>(n(),s("div",{key:t,class:"answer-item flex flex-items-center"},[p("div",P,[p("span",null,"第"+y(t+1)+"空答案:",1)]),p("div",F,[(n(!0),s(x,null,f(l.title.split(","),e=>(n(),s(x,{key:e},[e?(n(),m(r(O),{key:0,closable:"",onClose:t=>function(e,l){if(e){const t=l.title.split(","),i=t.findIndex(l=>l===e);i>-1&&(t.splice(i,1),l.title=t.join(","))}}(e,l)},{default:d(()=>[c(y(e),1)]),_:2},1032,["onClose"])):v("v-if",!0)],64))),128)),e.isSave?v("v-if",!0):(n(),s(x,{key:0},[l.showInput?(n(),m(r(V),{key:0,modelValue:l.tag,"onUpdate:modelValue":e=>l.tag=e,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(l)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(n(),m(r(I),{key:1,size:"small",onClick:e=>l.showInput=!0},{icon:d(()=>[u(r(_),{icon:h})]),default:d(()=>[p("span",null,y(l.title?"添加同义词":"添加答案"),1)]),_:2},1032,["onClick"]))],64))])]))),128))]),e.showAnalysis?(n(),s("div",G,[l[14]||(l[14]=p("div",{class:"label"},[p("span",null,"解析:")],-1)),p("div",J,[u(r(V),{modelValue:te.value,"onUpdate:modelValue":l[2]||(l[2]=e=>te.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):v("v-if",!0),ie.value?(n(),s("div",K,[l[16]||(l[16]=p("div",{class:"label"},[p("span",null,"富文本:")],-1)),p("div",Q,[u(C,g({"model-value":ae.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ae.value=e)},r($),{style:{width:"100%"}}),null,16,["model-value"]),p("div",W,[u(r(q),{type:"danger",onClick:re},{default:d(()=>l[15]||(l[15]=[c(" 删除富文本 ",-1)])),_:1,__:[15]})])])])):v("v-if",!0)]),default:d(()=>[e.showAction?(n(),m(j,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":Y.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>Z("move","up")),onMoveDown:l[5]||(l[5]=e=>Z("move","down")),onDelete:l[6]||(l[6]=e=>Z("delete")),onSave:ue,onEdit:l[7]||(l[7]=e=>Z("edit")),onAdd:l[8]||(l[8]=e=>Z("add",e)),onOnShowRichText:l[9]||(l[9]=e=>ie.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):v("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{X as default};
2
2
  //# sourceMappingURL=subject-blank-fill.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject-blank-fill.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElButton, ElCheckbox, ElCheckboxGroup, ElIcon, ElInput, ElLink, ElMessage, ElTag } from 'element-plus'\nimport { onMounted, ref, useAttrs, watch } from 'vue'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n isEdit: boolean\n isSet: boolean\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n }\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n tag: string\n showInput: boolean\n}[]>([])\n\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\n\nconst checkList = [\n {\n label: '答案不分顺序',\n value: 'isInOrder',\n },\n {\n label: '忽略大小写',\n value: 'isIgnoreCase',\n },\n]\n\nconst isCheckList = ref(['isIgnoreCase'])\n\nfunction handleAddTag(item: any) {\n item.showInput = false\n if (item.tag) {\n item.title = item.title ? [item.title, item.tag].join(',') : item.tag\n item.tag = ''\n }\n}\n\nfunction closeTag(tag: string, item: any) {\n if (tag) {\n const tags = item.title.split(',')\n const index = tags.findIndex((i: string) => i === tag)\n if (index > -1) {\n tags.splice(index, 1)\n item.title = tags.join(',')\n }\n }\n}\n\nfunction addBlank() {\n title.value += ' ______'\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n\n if (answers.value.length < 1) {\n ElMessage.error('至少添加一个填空符!')\n return\n }\n\n emits('save', {\n title: title.value.replaceAll(/ ______/g, '<filter></filter>'),\n answers: answers.value.map((item: any) => {\n return { title: item.title, isCorrect: true }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: true,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n },\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title.replaceAll(/<filter><\\/filter>/g, ' ______')\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter((item: any) =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nwatch(() => title.value, () => {\n const [...matchs] = title.value.matchAll(/ ______/g)\n if (matchs.length !== answers.value.length) {\n const differ = answers.value.length - matchs.length\n answers.value.splice(answers.value.length - differ, differ)\n }\n})\n\nonMounted(init)\nconst ns = useNamespace('subject-blank-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('blank-fill-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div class=\"content\">\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(填空题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <ElLink\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </ElLink>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <ElCheckboxGroup\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <ElCheckbox\n :value=\"item.value\"\n class=\"margin-left-10\"\n >\n {{ item.label }}\n </ElCheckbox>\n </ElCheckboxGroup>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <ElTag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </ElTag>\n </template>\n <template v-if=\"!isSave\">\n <ElInput\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <ElButton\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <ElIcon><Plus /></ElIcon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </ElButton>\n </template>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAnalysis\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <ElInput\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div\n v-if=\"showRichText\"\n class=\"margin-bottom flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor\n v-model:model-value=\"richText\"\n v-bind=\"attrs\"\n style=\"width: 100%;\"\n />\n <div class=\"flex flex-justify-end\">\n <ElLink\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </ElLink>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","showRichText","richText","checkList","label","value","isCheckList","addBlank","push","tag","showInput","deleteRichText","save","length","ElMessage","error","replaceAll","map","item","isCorrect","isSetCorrectAnswer","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","watch","matchs","matchAll","differ","splice","onMounted","answerList","examAnswerSettingVO","filter","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","orderIndex","_hoisted_4","innerHTML","some","_openBlock","_hoisted_6","_cache","_Fragment","_renderList","index","key","style","edit","_hoisted_7","_hoisted_8","ElInput","$event","type","rows","maxlength","placeholder","disabled","isSave","_hoisted_9","_createCommentVNode","ElLink","onClick","_hoisted_10","ElCheckboxGroup","ElCheckbox","_createTextVNode","_hoisted_11","_hoisted_12","_hoisted_13","split","i","_createBlock","ElTag","closable","onClose","tags","findIndex","join","closeTag","modelValue","width","onBlur","handleAddTag","ElButton","size","ElIcon","Plus","showAnalysis","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","TinyMceEditor","_mergeProps","_hoisted_18","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
1
+ {"version":3,"file":"subject-blank-fill.vue.mjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport Plus from '@qxs-bns/icons/src/components/Plus.vue'\nimport { onMounted, ref, useAttrs, watch } from 'vue'\nimport { QxsIcon } from '../../../icon'\nimport { QxsMessage } from '../../../message'\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'\nimport { QxsButton, QxsCheckbox, QxsCheckboxGroup, QxsInput, QxsLink, QxsTag } from '../../../ui'\n\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n isEdit: boolean\n isSet: boolean\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n }\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n tag: string\n showInput: boolean\n}[]>([])\n\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\n\nconst checkList = [\n {\n label: '答案不分顺序',\n value: 'isInOrder',\n },\n {\n label: '忽略大小写',\n value: 'isIgnoreCase',\n },\n]\n\nconst isCheckList = ref(['isIgnoreCase'])\n\nfunction handleAddTag(item: any) {\n item.showInput = false\n if (item.tag) {\n item.title = item.title ? [item.title, item.tag].join(',') : item.tag\n item.tag = ''\n }\n}\n\nfunction closeTag(tag: string, item: any) {\n if (tag) {\n const tags = item.title.split(',')\n const index = tags.findIndex((i: string) => i === tag)\n if (index > -1) {\n tags.splice(index, 1)\n item.title = tags.join(',')\n }\n }\n}\n\nfunction addBlank() {\n title.value += ' ______'\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n QxsMessage.error('题目标题不能为空!')\n return\n }\n\n if (answers.value.length < 1) {\n QxsMessage.error('至少添加一个填空符!')\n return\n }\n\n emits('save', {\n title: title.value.replaceAll(/ ______/g, '<filter></filter>'),\n answers: answers.value.map((item: any) => {\n return { title: item.title, isCorrect: true }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: true,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n },\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title.replaceAll(/<filter><\\/filter>/g, ' ______')\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter((item: any) =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nwatch(() => title.value, () => {\n const [...matchs] = title.value.matchAll(/ ______/g)\n if (matchs.length !== answers.value.length) {\n const differ = answers.value.length - matchs.length\n answers.value.splice(answers.value.length - differ, differ)\n }\n})\n\nonMounted(init)\nconst ns = useNamespace('subject-blank-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('blank-fill-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div class=\"content\">\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(填空题)</span>\n <div v-if=\"showRichText\">\n <div\n class=\"rich-text\"\n v-html=\"richText\"\n />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex flex-items-start\">\n <div class=\"label\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <QxsInput\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n :maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <QxsLink\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </QxsLink>\n </div>\n <div\n class=\"flex flex-items-start\"\n style=\"margin-top: 12px;\"\n >\n <div class=\"label\">\n <span>答题设置:</span>\n </div>\n\n <QxsCheckboxGroup\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <QxsCheckbox\n :value=\"item.value\"\n >\n {{ item.label }}\n </QxsCheckbox>\n </QxsCheckboxGroup>\n </div>\n <div\n class=\"answer-list\"\n style=\"margin-top: 12px;\"\n >\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\">\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 <QxsTag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </QxsTag>\n </template>\n <template v-if=\"!isSave\">\n <QxsInput\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <QxsButton\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <template #icon>\n <QxsIcon :icon=\"Plus\" />\n </template>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </QxsButton>\n </template>\n </div>\n </div>\n </div>\n <div\n v-if=\"showAnalysis\"\n class=\"flex flex-items-start\"\n style=\"margin-top: 12px;\"\n >\n <div class=\"label\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <QxsInput\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=\"flex flex-items-start\"\n style=\"margin-top: 12px;\"\n >\n <div class=\"label\">\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 <QxsLink\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </QxsLink>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :show-other-option=\"false\"\n :exam-answer-relation-type=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n @on-show-rich-text=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","showRichText","richText","checkList","label","value","isCheckList","addBlank","push","tag","showInput","deleteRichText","save","length","QxsMessage","error","replaceAll","map","item","isCorrect","isSetCorrectAnswer","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","watch","matchs","matchAll","differ","splice","onMounted","answerList","examAnswerSettingVO","filter","ns","useNamespace","_createElementBlock","class","_normalizeClass","_unref","e","_createVNode","SubjectLayout","isEdit","preview","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","orderIndex","_hoisted_4","innerHTML","some","_openBlock","_hoisted_6","_cache","_Fragment","_renderList","index","key","style","edit","_hoisted_7","_hoisted_8","QxsInput","$event","type","rows","maxlength","placeholder","disabled","isSave","_hoisted_9","QxsLink","onClick","_hoisted_10","QxsCheckboxGroup","QxsCheckbox","_createTextVNode","_hoisted_11","_hoisted_12","_hoisted_13","split","i","_createBlock","QxsTag","closable","onClose","tags","findIndex","join","closeTag","modelValue","width","onBlur","handleAddTag","QxsButton","size","icon","QxsIcon","Plus","showAnalysis","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","TinyMceEditor","_mergeProps","_hoisted_18","showAction","SubjectAction","isSet","examAnswerRelationType","onMoveUp","onMoveDown","onDelete","onSave","onEdit","onAdd","onOnShowRichText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,useAttrs as l,ref as a,computed as t,onMounted as s,createElementBlock as i,openBlock as n,normalizeClass as u,unref as o,createVNode as d,withCtx as r,createBlock as c,createCommentVNode as v,createElementVNode as p,Fragment as m,renderList as f,toDisplayString as x,mergeProps as y,createTextVNode as h}from"vue";import{CirclePlus as w,Remove as b}from"@element-plus/icons-vue";import{useNamespace as g}from"@qxs-bns/hooks";import{ElInput as j,ElIcon as C,ElLink as S,ElRow as k,ElCol as V,ElRadio as q,ElMessage as _}from"element-plus";import L from"../../../subject-action/src/subject-action.vue.mjs";import T from"../../../subject-layout/src/subject-layout.vue.mjs";import A from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const R={class:"preview"},U={class:"title"},M={key:0},E=["innerHTML"],Q={class:"answer-radio flex-col"},B={style:{flex:"1"}},O={class:"answer flex"},D={class:"flex"},H={class:"answer-list flex-col"},I={class:"order"},N={class:"flex",style:{"margin-bottom":"20px"}},$={style:{flex:"1"}},P={key:0,class:"margin-bottom flex"},z={style:{flex:"1"}},F={class:"flex flex-justify-end"};var G=e({name:"QxsSubjectScale",__name:"subject-scale",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},rowTitle:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},scaleQuestionList:{type:null,required:!1},examRichTextContent:{type:String,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:G}){const J=e,K=G,W=l(),X=a([{title:""},{title:""},{title:""},{title:""},{title:""}]),Y=a(""),Z=a(""),ee=a(""),le=a(!1),ae=a(""),te=a([]),se=t(()=>Math.ceil(24/(X.value.length+1)));function ie(){5!==X.value.length&&X.value.push({title:""})}function ne(){le.value=!1,ae.value=""}function ue(){if(!Y.value)return void _.error("题目标题不能为空!");let e="";X.value.forEach((l,a)=>{l.title||(e+=`选项${String.fromCharCode(65+a)}未填写。`)}),e?_.error(e):ee.value?(te.value=ee.value.split("\n").filter(e=>e),K("save",{title:Y.value,answers:X.value,analysis:Z.value,scaleQuestionList:te.value,examRichTextContent:le.value?ae.value:""})):_.error("行标题不能为空!")}s(function(){J.title&&(Y.value=J.title),J.answerList&&J.answerList.length&&(X.value=J.answerList),J.analysis&&(Z.value=J.analysis),J.scaleQuestionList&&(te.value=J.scaleQuestionList,ee.value=te.value.join("\n")),J.examRichTextContent&&(ae.value=J.examRichTextContent,le.value=!0)});const oe=g("subject-scale");return(e,l)=>(n(),i("div",{class:u(o(oe).e("scale-exam"))},[d(T,{"show-edit":e.isEdit},{preview:r(()=>[p("div",R,[p("div",null,[p("span",U,x(e.orderIndex+1)+"."+x(Y.value)+"(量表题)",1),le.value?(n(),i("div",M,[p("div",{class:"rich-text",innerHTML:ae.value},null,8,E)])):v("v-if",!0)]),p("div",Q,[d(o(k),{style:{padding:"10px 0"}},{default:r(()=>[d(o(V),{span:se.value},null,8,["span"]),(n(!0),i(m,null,f(X.value,e=>(n(),c(o(V),{key:e.title,class:"flex flex-center",span:se.value},{default:r(()=>[p("span",null,x(e.title),1)]),_:2},1032,["span"]))),128))]),_:1}),(n(!0),i(m,null,f(te.value,e=>(n(),c(o(k),{key:e,style:{padding:"10px 0"}},{default:r(()=>[d(o(V),{span:se.value,class:"flex flex-center"},{default:r(()=>[p("span",null,x(e),1)]),_:2},1032,["span"]),(n(!0),i(m,null,f(X.value.length,e=>(n(),c(o(V),{key:e,class:"radio-item flex flex-center",span:se.value},{default:r(()=>[d(o(q),{disabled:!0})]),_:2},1032,["span"]))),128))]),_:2},1024))),128))])])]),edit:r(()=>[p("div",{class:u(["flex",[{"margin-bottom":le.value}]])},[l[10]||(l[10]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"题目:")],-1)),p("div",B,[d(o(j),{modelValue:Y.value,"onUpdate:modelValue":l[0]||(l[0]=e=>Y.value=e),type:"textarea",rows:2,placeholder:"【量表题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])],2),p("div",O,[l[11]||(l[11]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"行标题:")],-1)),p("div",D,[d(o(j),{modelValue:ee.value,"onUpdate:modelValue":l[1]||(l[1]=e=>ee.value=e),type:"textarea",placeholder:"请输入行标题",style:{width:"160px"},rows:10},null,8,["modelValue"]),p("div",H,[(n(!0),i(m,null,f(X.value,(l,a)=>(n(),i("div",{key:a,class:"answer-item flex flex-items-center"},[p("span",I,x(String.fromCharCode(65+a))+".",1),d(o(j),{modelValue:l.title,"onUpdate:modelValue":e=>l.title=e,class:"input","show-word-limit":"",maxlength:10,placeholder:`选项${String.fromCharCode(65+a)}`,disabled:e.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),v(' <PlusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length === 5 }]"\n @click="addAnswer"\n />\n <MinusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length < 3 }]"\n @click="deleteAnswer(index)"\n /> '),d(o(C),{class:"icon"},{default:r(()=>[d(o(w),{class:u([{disabled:5===X.value.length}]),onClick:ie},null,8,["class"])]),_:1}),d(o(C),{class:"icon"},{default:r(()=>[d(o(b),{class:u([{disabled:X.value.length<3}]),onClick:e=>function(e){X.value.length<3||X.value.splice(e,1)}(a)},null,8,["class","onClick"])]),_:2},1024)]))),128))])])]),p("div",N,[l[12]||(l[12]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"解析:")],-1)),p("div",$,[d(o(j),{modelValue:Z.value,"onUpdate:modelValue":l[2]||(l[2]=e=>Z.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])]),le.value?(n(),i("div",P,[l[14]||(l[14]=p("div",{class:"label flex flex-justify-center"},[p("span",null,"富文本:")],-1)),p("div",z,[d(A,y({"model-value":ae.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ae.value=e)},o(W),{style:{width:"100%"}}),null,16,["model-value"]),p("div",F,[d(o(S),{type:"danger",onClick:ne},{default:r(()=>l[13]||(l[13]=[h(" 删除富文本 ",-1)])),_:1,__:[13]})])])])):v("v-if",!0)]),default:r(()=>[e.showAction?(n(),c(L,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":J.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>K("move","up")),onMoveDown:l[5]||(l[5]=e=>K("move","down")),onDelete:l[6]||(l[6]=e=>K("delete")),onSave:ue,onEdit:l[7]||(l[7]=e=>K("edit")),onAdd:l[8]||(l[8]=e=>K("add",e)),onOnShowRichText:l[9]||(l[9]=e=>le.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):v("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{G as default};
1
+ import{defineComponent as e,useAttrs as l,ref as t,computed as i,onMounted as a,createElementBlock as s,openBlock as n,normalizeClass as o,unref as r,createVNode as u,withCtx as d,createBlock as m,createCommentVNode as c,createElementVNode as p,Fragment as v,renderList as x,toDisplayString as f,mergeProps as y,withModifiers as h,createTextVNode as w}from"vue";import b from"@qxs-bns/icons/src/components/CirclePlus.vue";import j from"@qxs-bns/icons/src/components/Remove.vue";import{useNamespace as g}from"@qxs-bns/hooks";import"../../../ui/button/index.mjs";import{QxsInput as S}from"../../../ui/input/index.mjs";import{QxsRadio as q}from"../../../ui/radio/index.mjs";import"../../../ui/checkbox/index.mjs";import{QxsLink as C}from"../../../ui/link/index.mjs";import"../../../ui/tag/index.mjs";import"../../../ui/input-number/index.mjs";import"../../../ui/select/index.mjs";import"../../../ui/popover/index.mjs";import{QxsRow as k,QxsCol as V}from"../../../ui/layout/index.mjs";import"../../../ui/scrollbar/index.mjs";import"../../../ui/dialog/index.mjs";import"../../../ui/table/index.mjs";import{QxsIcon as _}from"../../../icon/index.mjs";import{QxsMessage as L}from"../../../message/src/message.mjs";import T from"../../../subject-action/src/subject-action.vue.mjs";import R from"../../../subject-layout/src/subject-layout.vue.mjs";import U from"../../../tiny-mce-editor/src/tiny-mce-editor.vue.mjs";const A={class:"preview"},E={class:"title"},M={key:0},Q=["innerHTML"],B={class:"answer-radio flex-col"},D={class:"flex flex-items-start"},H={style:{flex:"1"}},I={class:"answer flex flex-items-start",style:{"margin-top":"12px"}},N={class:"flex"},$={class:"answer-list flex-col"},O={class:"order"},P={class:"flex flex-items-start",style:{"margin-top":"12px"}},z={style:{flex:"1"}},F={key:0,class:"flex flex-items-start",style:{"margin-top":"12px"}},G={style:{flex:"1"}},J={class:"flex flex-justify-end"};var K=e({name:"QxsSubjectScale",__name:"subject-scale",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},rowTitle:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},scaleQuestionList:{type:null,required:!1},examRichTextContent:{type:String,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(e,{emit:K}){const W=e,X=K,Y=l(),Z=t([{title:""},{title:""},{title:""},{title:""},{title:""}]),ee=t(""),le=t(""),te=t(""),ie=t(!1),ae=t(""),se=t([]),ne=i(()=>Math.ceil(24/(Z.value.length+1)));function oe(){5!==Z.value.length&&Z.value.push({title:""})}function re(){ie.value=!1,ae.value=""}function ue(){if(!ee.value)return void L.error("题目标题不能为空!");let e="";Z.value.forEach((l,t)=>{l.title||(e+=`选项${String.fromCharCode(65+t)}未填写。`)}),e?L.error(e):te.value?(se.value=te.value.split("\n").filter(e=>e),X("save",{title:ee.value,answers:Z.value,analysis:le.value,scaleQuestionList:se.value,examRichTextContent:ie.value?ae.value:""})):L.error("行标题不能为空!")}a(function(){W.title&&(ee.value=W.title),W.answerList&&W.answerList.length&&(Z.value=W.answerList),W.analysis&&(le.value=W.analysis),W.scaleQuestionList&&(se.value=W.scaleQuestionList,te.value=se.value.join("\n")),W.examRichTextContent&&(ae.value=W.examRichTextContent,ie.value=!0)});const de=g("subject-scale");return(e,l)=>(n(),s("div",{class:o(r(de).e("scale-exam"))},[u(R,{"show-edit":e.isEdit},{preview:d(()=>[p("div",A,[p("div",null,[p("span",E,f(e.orderIndex+1)+"."+f(ee.value)+"(量表题)",1),ie.value?(n(),s("div",M,[p("div",{class:"rich-text",innerHTML:ae.value},null,8,Q)])):c("v-if",!0)]),p("div",B,[u(r(k),{style:{padding:"10px 0"}},{default:d(()=>[u(r(V),{span:ne.value},null,8,["span"]),(n(!0),s(v,null,x(Z.value,e=>(n(),m(r(V),{key:e.title,class:"flex flex-center",span:ne.value},{default:d(()=>[p("span",null,f(e.title),1)]),_:2},1032,["span"]))),128))]),_:1}),(n(!0),s(v,null,x(se.value,e=>(n(),m(r(k),{key:e,style:{padding:"10px 0"}},{default:d(()=>[u(r(V),{span:ne.value,class:"flex flex-center"},{default:d(()=>[p("span",null,f(e),1)]),_:2},1032,["span"]),(n(!0),s(v,null,x(Z.value.length,e=>(n(),m(r(V),{key:e,class:"radio-item flex flex-center",span:ne.value},{default:d(()=>[u(r(q),{disabled:!0})]),_:2},1032,["span"]))),128))]),_:2},1024))),128))])])]),edit:d(()=>[p("div",D,[l[10]||(l[10]=p("div",{class:"label"},[p("span",null,"题目:")],-1)),p("div",H,[u(r(S),{modelValue:ee.value,"onUpdate:modelValue":l[0]||(l[0]=e=>ee.value=e),type:"textarea",rows:2,placeholder:"【量表题】请输入问题",disabled:e.isSave},null,8,["modelValue","disabled"])])]),p("div",I,[l[11]||(l[11]=p("div",{class:"label"},[p("span",null,"行标题:")],-1)),p("div",N,[u(r(S),{modelValue:te.value,"onUpdate:modelValue":l[1]||(l[1]=e=>te.value=e),type:"textarea",placeholder:"请输入行标题",style:{width:"160px"},rows:10},null,8,["modelValue"]),p("div",$,[(n(!0),s(v,null,x(Z.value,(l,t)=>(n(),s("div",{key:t,class:"answer-item flex flex-items-center"},[p("span",O,f(String.fromCharCode(65+t))+".",1),u(r(S),{modelValue:l.title,"onUpdate:modelValue":e=>l.title=e,class:"input","show-word-limit":"",maxlength:10,placeholder:`选项${String.fromCharCode(65+t)}`,disabled:e.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),u(r(_),{class:o(["icon",[{disabled:5===Z.value.length}]]),color:"#c0c4cc",icon:b,onClick:oe},null,8,["class"]),u(r(_),{class:o(["icon",[{disabled:Z.value.length<3}]]),color:"#c0c4cc",icon:j,onClick:e=>function(e){Z.value.length<3||Z.value.splice(e,1)}(t)},null,8,["class","onClick"])]))),128))])])]),p("div",P,[l[12]||(l[12]=p("div",{class:"label"},[p("span",null,"解析:")],-1)),p("div",z,[u(r(S),{modelValue:le.value,"onUpdate:modelValue":l[2]||(l[2]=e=>le.value=e),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])]),ie.value?(n(),s("div",F,[l[14]||(l[14]=p("div",{class:"label"},[p("span",null,"富文本:")],-1)),p("div",G,[u(U,y({"model-value":ae.value,"onUpdate:modelValue":l[3]||(l[3]=e=>ae.value=e)},r(Y),{style:{width:"100%"}}),null,16,["model-value"]),p("div",J,[u(r(C),{type:"danger",onClick:h(re,["prevent"])},{default:d(()=>l[13]||(l[13]=[w(" 删除富文本 ",-1)])),_:1,__:[13]})])])])):c("v-if",!0)]),default:d(()=>[e.showAction?(n(),m(T,{key:0,"is-edit":e.isEdit,"is-set":e.isSet,"show-other-option":!1,"exam-answer-relation-type":W.examAnswerRelationType,onMoveUp:l[4]||(l[4]=e=>X("move","up")),onMoveDown:l[5]||(l[5]=e=>X("move","down")),onDelete:l[6]||(l[6]=e=>X("delete")),onSave:ue,onEdit:l[7]||(l[7]=e=>X("edit")),onAdd:l[8]||(l[8]=e=>X("add",e)),onOnShowRichText:l[9]||(l[9]=e=>ie.value=!0)},null,8,["is-edit","is-set","exam-answer-relation-type"])):c("v-if",!0)]),_:1},8,["show-edit"])],2))}});export{K as default};
2
2
  //# sourceMappingURL=subject-scale.vue.mjs.map