@qxs-bns/components 0.0.21 → 0.0.22

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 (154) hide show
  1. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +1 -1
  2. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -1
  3. package/es/package.json.js +1 -1
  4. package/es/src/file-upload/src/file-upload.vue.js +0 -6
  5. package/es/src/file-upload/src/file-upload.vue.js.map +1 -1
  6. package/es/src/image-upload/src/image-upload.vue.js +0 -7
  7. package/es/src/image-upload/src/image-upload.vue.js.map +1 -1
  8. package/es/src/subject-action/src/subject-action.vue.js +7 -12
  9. package/es/src/subject-action/src/subject-action.vue.js.map +1 -1
  10. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js +40 -51
  11. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -1
  12. package/es/src/subject-list/src/components/subject-blank-fill.vue.js +2 -8
  13. package/es/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -1
  14. package/es/src/subject-list/src/components/subject-scale.vue.js +2 -6
  15. package/es/src/subject-list/src/components/subject-scale.vue.js.map +1 -1
  16. package/es/src/subject-list/src/components/subject-single.vue.js +41 -54
  17. package/es/src/subject-list/src/components/subject-single.vue.js.map +1 -1
  18. package/es/src/subject-list/src/components/subject-text-fill.vue.js +2 -9
  19. package/es/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -1
  20. package/es/src/subject-list/src/subject-list.vue.js +3 -4
  21. package/es/src/subject-list/src/subject-list.vue.js.map +1 -1
  22. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +1 -1
  23. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -1
  24. package/lib/package.json.js +1 -1
  25. package/lib/src/file-upload/src/file-upload.vue.js +0 -6
  26. package/lib/src/file-upload/src/file-upload.vue.js.map +1 -1
  27. package/lib/src/image-upload/src/image-upload.vue.js +0 -7
  28. package/lib/src/image-upload/src/image-upload.vue.js.map +1 -1
  29. package/lib/src/subject-action/src/subject-action.vue.js +7 -12
  30. package/lib/src/subject-action/src/subject-action.vue.js.map +1 -1
  31. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js +38 -49
  32. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -1
  33. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js +2 -8
  34. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -1
  35. package/lib/src/subject-list/src/components/subject-scale.vue.js +2 -6
  36. package/lib/src/subject-list/src/components/subject-scale.vue.js.map +1 -1
  37. package/lib/src/subject-list/src/components/subject-single.vue.js +41 -54
  38. package/lib/src/subject-list/src/components/subject-single.vue.js.map +1 -1
  39. package/lib/src/subject-list/src/components/subject-text-fill.vue.js +2 -9
  40. package/lib/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -1
  41. package/lib/src/subject-list/src/subject-list.vue.js +3 -4
  42. package/lib/src/subject-list/src/subject-list.vue.js.map +1 -1
  43. package/package.json +1 -1
  44. package/theme-chalk/index.css +1 -1
  45. package/theme-chalk/subject-list.css +1 -1
  46. package/types/tsconfig.tsbuildinfo +1 -1
  47. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/alert.scss.js +0 -7
  48. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/alert.scss.js.map +0 -1
  49. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js +0 -7
  50. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js.map +0 -1
  51. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js +0 -7
  52. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js.map +0 -1
  53. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js +0 -7
  54. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js.map +0 -1
  55. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox-group.scss.js +0 -7
  56. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox-group.scss.js.map +0 -1
  57. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js +0 -7
  58. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js.map +0 -1
  59. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/col.scss.js +0 -7
  60. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/col.scss.js.map +0 -1
  61. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/dialog.scss.js +0 -7
  62. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/dialog.scss.js.map +0 -1
  63. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image-viewer.scss.js +0 -7
  64. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image-viewer.scss.js.map +0 -1
  65. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image.scss.js +0 -7
  66. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image.scss.js.map +0 -1
  67. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input-number.scss.js +0 -7
  68. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input-number.scss.js.map +0 -1
  69. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js +0 -7
  70. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js.map +0 -1
  71. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js +0 -7
  72. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js.map +0 -1
  73. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js +0 -7
  74. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js.map +0 -1
  75. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option-group.scss.js +0 -7
  76. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option-group.scss.js.map +0 -1
  77. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option.scss.js +0 -7
  78. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option.scss.js.map +0 -1
  79. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/overlay.scss.js +0 -7
  80. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/overlay.scss.js.map +0 -1
  81. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popover.scss.js +0 -7
  82. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popover.scss.js.map +0 -1
  83. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popper.scss.js +0 -7
  84. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popper.scss.js.map +0 -1
  85. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js +0 -7
  86. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js.map +0 -1
  87. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio-group.scss.js +0 -7
  88. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio-group.scss.js.map +0 -1
  89. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js +0 -7
  90. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js.map +0 -1
  91. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js +0 -7
  92. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js.map +0 -1
  93. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/scrollbar.scss.js +0 -7
  94. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/scrollbar.scss.js.map +0 -1
  95. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/select.scss.js +0 -7
  96. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/select.scss.js.map +0 -1
  97. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/tag.scss.js +0 -7
  98. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/tag.scss.js.map +0 -1
  99. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js +0 -7
  100. package/es/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js.map +0 -1
  101. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/alert.scss.js +0 -11
  102. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/alert.scss.js.map +0 -1
  103. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js +0 -11
  104. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js.map +0 -1
  105. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js +0 -11
  106. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js.map +0 -1
  107. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js +0 -11
  108. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js.map +0 -1
  109. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox-group.scss.js +0 -11
  110. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox-group.scss.js.map +0 -1
  111. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js +0 -11
  112. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js.map +0 -1
  113. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/col.scss.js +0 -11
  114. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/col.scss.js.map +0 -1
  115. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/dialog.scss.js +0 -11
  116. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/dialog.scss.js.map +0 -1
  117. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image-viewer.scss.js +0 -11
  118. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image-viewer.scss.js.map +0 -1
  119. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image.scss.js +0 -11
  120. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image.scss.js.map +0 -1
  121. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input-number.scss.js +0 -11
  122. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input-number.scss.js.map +0 -1
  123. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js +0 -11
  124. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js.map +0 -1
  125. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js +0 -11
  126. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js.map +0 -1
  127. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js +0 -11
  128. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js.map +0 -1
  129. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option-group.scss.js +0 -11
  130. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option-group.scss.js.map +0 -1
  131. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option.scss.js +0 -11
  132. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/option.scss.js.map +0 -1
  133. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/overlay.scss.js +0 -11
  134. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/overlay.scss.js.map +0 -1
  135. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popover.scss.js +0 -11
  136. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popover.scss.js.map +0 -1
  137. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popper.scss.js +0 -11
  138. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popper.scss.js.map +0 -1
  139. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js +0 -11
  140. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js.map +0 -1
  141. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio-group.scss.js +0 -11
  142. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio-group.scss.js.map +0 -1
  143. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js +0 -11
  144. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js.map +0 -1
  145. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js +0 -11
  146. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js.map +0 -1
  147. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/scrollbar.scss.js +0 -11
  148. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/scrollbar.scss.js.map +0 -1
  149. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/select.scss.js +0 -11
  150. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/select.scss.js.map +0 -1
  151. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/tag.scss.js +0 -11
  152. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/tag.scss.js.map +0 -1
  153. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js +0 -11
  154. package/lib/node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  function styleInject(css, ref) {
2
2
  if (ref === void 0) ref = {};
3
3
  var insertAt = ref.insertAt;
4
- if (!css || typeof document === 'undefined') {
4
+ if (typeof document === 'undefined') {
5
5
  return;
6
6
  }
7
7
  var head = document.head || document.getElementsByTagName('head')[0];
@@ -1 +1 @@
1
- {"version":3,"file":"style-inject.es.js","sources":["../../../../../../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"AAAA,SAASA,WAAWA,CAACC,GAAG,EAAEC,GAAG,EAAE;EAC7B,IAAKA,GAAG,KAAK,MAAM,EAAGA,GAAG,GAAG,EAAE;AAC9B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;AAE3B,EAAA,IAAI,CAACF,GAAG,IAAI,OAAOG,QAAQ,KAAK,WAAW,EAAE;AAAE,IAAA;AAAQ;AAEvD,EAAA,IAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAACE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,EAAA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;EAC3CD,KAAK,CAACE,IAAI,GAAG,UAAU;EAEvB,IAAIN,QAAQ,KAAK,KAAK,EAAE;IACtB,IAAIE,IAAI,CAACK,UAAU,EAAE;MACnBL,IAAI,CAACM,YAAY,CAACJ,KAAK,EAAEF,IAAI,CAACK,UAAU,CAAC;AAC3C,KAAC,MAAM;AACLL,MAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;AACF,GAAC,MAAM;AACLF,IAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;EAEA,IAAIA,KAAK,CAACM,UAAU,EAAE;AACpBN,IAAAA,KAAK,CAACM,UAAU,CAACC,OAAO,GAAGb,GAAG;AAChC,GAAC,MAAM;IACLM,KAAK,CAACK,WAAW,CAACR,QAAQ,CAACW,cAAc,CAACd,GAAG,CAAC,CAAC;AACjD;AACF;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"style-inject.es.js","sources":["../../../../../../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"AAAA,SAASA,WAAWA,CAACC,GAAG,EAAEC,GAAG,EAAE;EAC7B,IAAKA,GAAG,KAAK,MAAM,EAAGA,GAAG,GAAG,EAAE;AAC9B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;AAE3B,EAAA,IAAY,OAAOC,QAAQ,KAAK,WAAW,EAAE;AAAE,IAAA;AAAQ;AAEvD,EAAA,IAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAACE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,EAAA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;EAC3CD,KAAK,CAACE,IAAI,GAAG,UAAU;EAEvB,IAAIN,QAAQ,KAAK,KAAK,EAAE;IACtB,IAAIE,IAAI,CAACK,UAAU,EAAE;MACnBL,IAAI,CAACM,YAAY,CAACJ,KAAK,EAAEF,IAAI,CAACK,UAAU,CAAC;AAC3C,KAAC,MAAM;AACLL,MAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;AACF,GAAC,MAAM;AACLF,IAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;EAEA,IAAIA,KAAK,CAACM,UAAU,EAAE;AACpBN,IAAAA,KAAK,CAACM,UAAU,CAACC,OAAO,GAAGb,GAAG;AAChC,GAAC,MAAM;IACLM,KAAK,CAACK,WAAW,CAACR,QAAQ,CAACW,cAAc,CAACd,GAAG,CAAC,CAAC;AACjD;AACF;;;;","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- var version = "0.0.21";
1
+ var version = "0.0.22";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.js.map
@@ -1,12 +1,6 @@
1
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js';
3
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js';
4
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/alert.scss.js';
5
1
  import { defineComponent, computed, createBlock, openBlock, normalizeClass, unref, withCtx, createElementVNode, createVNode, createTextVNode, createElementBlock, createCommentVNode } from 'vue';
6
2
  import { UploadFilled } from '@element-plus/icons-vue';
7
3
  import { useNamespace } from '@qxs-bns/hooks';
8
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js';
9
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js';
10
4
  import { ElUpload } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/upload/index.js';
11
5
  import { ElIcon } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/icon/index.js';
12
6
  import { ElAlert } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/alert/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.vue.js","sources":["../../../../../../packages/components/src/file-upload/src/file-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadProps, UploadUserFile } from 'element-plus'\nimport { UploadFilled } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsFileUpload',\n})\n\nconst props = withDefaults(\n defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n size?: number\n max?: number\n accept?: string\n files?: UploadUserFile[]\n notip?: boolean\n ext?: string[]\n }>(),\n {\n name: 'file',\n size: 20,\n max: 3,\n files: () => [],\n notip: false,\n accept: 'zip,rar',\n },\n)\n\nconst emit = defineEmits(['onSuccess'])\n\nconst ns = useNamespace('file-upload')\n\nconst exts = computed(() => {\n return props.accept.split(',').map(ext => ext.split('/').pop())\n})\nconst beforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < props.size\n if (!isTypeOk) {\n ElMessage.error(`上传文件只支持 ${exts.value.join(' / ')} 格式!`)\n }\n if (!isSizeOk) {\n ElMessage.error(`上传文件大小不能超过 ${props.size}MB!`)\n }\n return isTypeOk && isSizeOk\n}\n\nconst onExceed: UploadProps['onExceed'] = () => {\n ElMessage.warning('文件上传超过限制')\n}\n\nconst onSuccess: UploadProps['onSuccess'] = (res, file, fileList) => {\n emit('onSuccess', res, file, fileList)\n}\n</script>\n\n<template>\n <el-upload\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"beforeUpload\"\n :on-exceed=\"onExceed\"\n :on-success=\"onSuccess\"\n :file-list=\"files\"\n :limit=\"max\"\n drag\n :class=\"ns.e('control')\"\n >\n <div class=\"slot\">\n <el-icon class=\"el-icon--upload\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text\">\n 将文件拖到此处,或<em>点击上传</em>\n </div>\n </div>\n <template #tip>\n <div v-if=\"!notip\" class=\"el-upload__tip\">\n <div style=\"display: inline-block;\">\n <el-alert\n :title=\"`上传文件支持 ${exts.join(' / ')} 格式,单个文件大小不超过 ${size}MB,且文件数量不超过 ${max} 个`\"\n type=\"info\"\n show-icon\n :closable=\"false\"\n />\n </div>\n </div>\n </template>\n </el-upload>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAuBd,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA;AAErC,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA,GAAA,CAAI,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,EAAK,CAAA;AAAA,KAC/D,CAAA;AACD,IAAM,MAAA,YAAA,GAA4C,CAAC,IAAS,KAAA;AAC1D,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,MAAM,OAAU,GAAA,QAAA,CAAS,EAAG,CAAA,EAAE,CAAK,IAAA,EAAA;AACnC,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAS,OAAO,CAAA;AAC5C,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAO,GAAA,IAAA,GAAO,OAAO,KAAM,CAAA,IAAA;AACjD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,MAAM,CAAW,2CAAA,EAAA,IAAA,CAAK,MAAM,IAAK,CAAA,KAAK,CAAC,CAAM,mBAAA,CAAA,CAAA;AAAA;AAEzD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,KAAM,CAAA,CAAA,6DAAA,EAAc,KAAM,CAAA,IAAI,CAAK,QAAA,CAAA,CAAA;AAAA;AAE/C,MAAA,OAAO,QAAY,IAAA,QAAA;AAAA,KACrB;AAEA,IAAA,MAAM,WAAoC,MAAM;AAC9C,MAAA,SAAA,CAAU,QAAQ,kDAAU,CAAA;AAAA,KAC9B;AAEA,IAAA,MAAM,SAAsC,GAAA,CAAC,GAAK,EAAA,IAAA,EAAM,QAAa,KAAA;AACnE,MAAK,IAAA,CAAA,WAAA,EAAa,GAAK,EAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,KACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"file-upload.vue.js","sources":["../../../../../../packages/components/src/file-upload/src/file-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadProps, UploadUserFile } from 'element-plus'\nimport { UploadFilled } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsFileUpload',\n})\n\nconst props = withDefaults(\n defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n size?: number\n max?: number\n accept?: string\n files?: UploadUserFile[]\n notip?: boolean\n ext?: string[]\n }>(),\n {\n name: 'file',\n size: 20,\n max: 3,\n files: () => [],\n notip: false,\n accept: 'zip,rar',\n },\n)\n\nconst emit = defineEmits(['onSuccess'])\n\nconst ns = useNamespace('file-upload')\n\nconst exts = computed(() => {\n return props.accept.split(',').map(ext => ext.split('/').pop())\n})\nconst beforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < props.size\n if (!isTypeOk) {\n ElMessage.error(`上传文件只支持 ${exts.value.join(' / ')} 格式!`)\n }\n if (!isSizeOk) {\n ElMessage.error(`上传文件大小不能超过 ${props.size}MB!`)\n }\n return isTypeOk && isSizeOk\n}\n\nconst onExceed: UploadProps['onExceed'] = () => {\n ElMessage.warning('文件上传超过限制')\n}\n\nconst onSuccess: UploadProps['onSuccess'] = (res, file, fileList) => {\n emit('onSuccess', res, file, fileList)\n}\n</script>\n\n<template>\n <el-upload\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"beforeUpload\"\n :on-exceed=\"onExceed\"\n :on-success=\"onSuccess\"\n :file-list=\"files\"\n :limit=\"max\"\n drag\n :class=\"ns.e('control')\"\n >\n <div class=\"slot\">\n <el-icon class=\"el-icon--upload\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text\">\n 将文件拖到此处,或<em>点击上传</em>\n </div>\n </div>\n <template #tip>\n <div v-if=\"!notip\" class=\"el-upload__tip\">\n <div style=\"display: inline-block;\">\n <el-alert\n :title=\"`上传文件支持 ${exts.join(' / ')} 格式,单个文件大小不超过 ${size}MB,且文件数量不超过 ${max} 个`\"\n type=\"info\"\n show-icon\n :closable=\"false\"\n />\n </div>\n </div>\n </template>\n </el-upload>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAuBd,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA;AAErC,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA,GAAA,CAAI,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,EAAK,CAAA;AAAA,KAC/D,CAAA;AACD,IAAM,MAAA,YAAA,GAA4C,CAAC,IAAS,KAAA;AAC1D,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,MAAM,OAAU,GAAA,QAAA,CAAS,EAAG,CAAA,EAAE,CAAK,IAAA,EAAA;AACnC,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAS,OAAO,CAAA;AAC5C,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAO,GAAA,IAAA,GAAO,OAAO,KAAM,CAAA,IAAA;AACjD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,MAAM,CAAW,2CAAA,EAAA,IAAA,CAAK,MAAM,IAAK,CAAA,KAAK,CAAC,CAAM,mBAAA,CAAA,CAAA;AAAA;AAEzD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,KAAM,CAAA,CAAA,6DAAA,EAAc,KAAM,CAAA,IAAI,CAAK,QAAA,CAAA,CAAA;AAAA;AAE/C,MAAA,OAAO,QAAY,IAAA,QAAA;AAAA,KACrB;AAEA,IAAA,MAAM,WAAoC,MAAM;AAC9C,MAAA,SAAA,CAAU,QAAQ,kDAAU,CAAA;AAAA,KAC9B;AAEA,IAAA,MAAM,SAAsC,GAAA,CAAC,GAAK,EAAA,IAAA,EAAM,QAAa,KAAA;AACnE,MAAK,IAAA,CAAA,WAAA,EAAa,GAAK,EAAA,IAAA,EAAM,QAAQ,CAAA;AAAA,KACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,6 @@
1
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image-viewer.scss.js';
3
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/upload.scss.js';
4
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/progress.scss.js';
5
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/image.scss.js';
6
1
  import { defineComponent, ref, computed, createElementBlock, openBlock, normalizeClass, unref, createVNode, createCommentVNode, createBlock, withCtx, withDirectives, normalizeStyle, createElementVNode, toDisplayString, withModifiers, vShow } from 'vue';
7
2
  import { Plus, ZoomIn, Delete } from '@element-plus/icons-vue';
8
3
  import { useNamespace } from '@qxs-bns/hooks';
9
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/badge.scss.js';
10
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/message.scss.js';
11
4
  import { ElUpload } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/upload/index.js';
12
5
  import { ElImage } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/image/index.js';
13
6
  import { ElIcon } from '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/icon/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"image-upload.vue.js","sources":["../../../../../../packages/components/src/image-upload/src/image-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadFile, UploadFiles, UploadProps } from 'element-plus'\nimport { Delete, Plus, ZoomIn } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsImageUpload',\n})\nconst props = withDefaults(\n defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n url?: string\n size?: number\n width?: number\n accept?: string\n height?: number\n placeholder?: string\n notip?: boolean\n tipText?: string\n beforeUpload?: UploadProps['beforeUpload']\n }>(),\n {\n name: 'file',\n url: '',\n size: 20,\n width: 160,\n height: 90,\n placeholder: '点击上传图片',\n notip: false,\n accept: 'image/jpeg,image/jpg,image/png,image/gif',\n },\n)\nconst emits = defineEmits<{\n 'update:url': [\n url: string,\n ]\n 'onSuccess': [\n res: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles,\n ]\n}>()\n\nconst ns = useNamespace('image-upload')\n\nconst uploadData = ref({\n imageViewerVisible: false,\n progress: {\n preview: '',\n percent: 0,\n },\n})\n\nconst exts = computed(() => {\n return props.accept.split(',').map(ext => ext.split('/').pop())\n})\n\n// 预览\nfunction preview() {\n uploadData.value.imageViewerVisible = true\n}\n// 关闭预览\nfunction previewClose() {\n uploadData.value.imageViewerVisible = false\n}\n// 移除\nfunction remove() {\n emits('update:url', '')\n}\nconst handleBeforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < props.size\n\n if (!isTypeOk) {\n ElMessage.error(`上传图片只支持${exts.value.join(' / ')}格式!`)\n }\n\n else if (!isSizeOk) {\n ElMessage.error(`上传图片大小不能超过 ${props.size}MB!`)\n }\n else {\n uploadData.value.progress.preview = URL.createObjectURL(file)\n }\n\n return isTypeOk && isSizeOk && (!props.beforeUpload || props.beforeUpload(file))\n}\nconst onProgress: UploadProps['onProgress'] = (file) => {\n uploadData.value.progress.percent = ~~file.percent\n}\nconst onSuccess: UploadProps['onSuccess'] = (...res) => {\n uploadData.value.progress.preview = ''\n uploadData.value.progress.percent = 0\n emits('onSuccess', ...res)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('upload-container')\">\n <el-upload\n :show-file-list=\"false\"\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"handleBeforeUpload\"\n :on-progress=\"onProgress\"\n :on-success=\"onSuccess\"\n drag\n :accept=\"accept\"\n :class=\"ns.e('image-upload')\"\n >\n <el-image\n v-if=\"url === ''\"\n :src=\"url === '' ? placeholder : url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n >\n <template #error>\n <div class=\"image-slot\" :style=\"`width:${width}px;height:${height}px;`\">\n <el-icon>\n <Plus />\n </el-icon>\n <p>\n {{ placeholder }}\n </p>\n </div>\n </template>\n </el-image>\n <div v-else class=\"image\">\n <el-image\n :src=\"url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <div class=\"mask\">\n <div class=\"actions\">\n <span title=\"预览\" @click.stop=\"preview\">\n <el-icon><ZoomIn /></el-icon>\n </span>\n <span title=\"移除\" @click.stop=\"remove\">\n <el-icon>\n <Delete />\n </el-icon>\n </span>\n </div>\n </div>\n </div>\n <div\n v-show=\"url === '' && uploadData.progress.percent\"\n class=\"progress\"\n :style=\"`width:${width}px;height:${height}px;`\"\n >\n <el-image\n :src=\"uploadData.progress.preview\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <el-progress\n type=\"circle\"\n :width=\"Math.min(width, height) * 0.8\"\n :percentage=\"uploadData.progress.percent\"\n />\n </div>\n </el-upload>\n <div v-if=\"!notip\" class=\"el-upload__tip-text\">\n <div style=\"display: inline-block;\">\n {{ tipText || `上传图片支持 ${exts.join(' / ')} 格式,且图片大小不超过 ${size}MB,建议图片尺寸为 ${width}*${height}` }}\n </div>\n </div>\n <el-image-viewer\n v-if=\"uploadData.imageViewerVisible\"\n :url-list=\"[url]\"\n teleported\n @close=\"previewClose\"\n />\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AA2Bd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAM,MAAA,EAAA,GAAK,aAAa,cAAc,CAAA;AAEtC,IAAA,MAAM,aAAa,GAAI,CAAA;AAAA,MACrB,kBAAoB,EAAA,KAAA;AAAA,MACpB,QAAU,EAAA;AAAA,QACR,OAAS,EAAA,EAAA;AAAA,QACT,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA,GAAA,CAAI,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,EAAK,CAAA;AAAA,KAC/D,CAAA;AAGD,IAAA,SAAS,OAAU,GAAA;AACjB,MAAA,UAAA,CAAW,MAAM,kBAAqB,GAAA,IAAA;AAAA;AAGxC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,UAAA,CAAW,MAAM,kBAAqB,GAAA,KAAA;AAAA;AAGxC,IAAA,SAAS,MAAS,GAAA;AAChB,MAAA,KAAA,CAAM,cAAc,EAAE,CAAA;AAAA;AAExB,IAAM,MAAA,kBAAA,GAAkD,CAAC,IAAS,KAAA;AAChE,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,MAAM,OAAU,GAAA,QAAA,CAAS,EAAG,CAAA,EAAE,CAAK,IAAA,EAAA;AACnC,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAS,OAAO,CAAA;AAC5C,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAO,GAAA,IAAA,GAAO,OAAO,KAAM,CAAA,IAAA;AAEjD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,MAAM,CAAU,0CAAA,EAAA,IAAA,CAAK,MAAM,IAAK,CAAA,KAAK,CAAC,CAAK,kBAAA,CAAA,CAAA;AAAA,OACvD,MAAA,IAES,CAAC,QAAU,EAAA;AAClB,QAAA,SAAA,CAAU,KAAM,CAAA,CAAA,6DAAA,EAAc,KAAM,CAAA,IAAI,CAAK,QAAA,CAAA,CAAA;AAAA,OAE1C,MAAA;AACH,QAAA,UAAA,CAAW,KAAM,CAAA,QAAA,CAAS,OAAU,GAAA,GAAA,CAAI,gBAAgB,IAAI,CAAA;AAAA;AAG9D,MAAA,OAAO,YAAY,QAAa,KAAA,CAAC,MAAM,YAAgB,IAAA,KAAA,CAAM,aAAa,IAAI,CAAA,CAAA;AAAA,KAChF;AACA,IAAM,MAAA,UAAA,GAAwC,CAAC,IAAS,KAAA;AACtD,MAAA,UAAA,CAAW,KAAM,CAAA,QAAA,CAAS,OAAU,GAAA,CAAC,CAAC,IAAK,CAAA,OAAA;AAAA,KAC7C;AACA,IAAM,MAAA,SAAA,GAAsC,IAAI,GAAQ,KAAA;AACtD,MAAW,UAAA,CAAA,KAAA,CAAM,SAAS,OAAU,GAAA,EAAA;AACpC,MAAW,UAAA,CAAA,KAAA,CAAM,SAAS,OAAU,GAAA,CAAA;AACpC,MAAM,KAAA,CAAA,WAAA,EAAa,GAAG,GAAG,CAAA;AAAA,KAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"image-upload.vue.js","sources":["../../../../../../packages/components/src/image-upload/src/image-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadFile, UploadFiles, UploadProps } from 'element-plus'\nimport { Delete, Plus, ZoomIn } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsImageUpload',\n})\nconst props = withDefaults(\n defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n url?: string\n size?: number\n width?: number\n accept?: string\n height?: number\n placeholder?: string\n notip?: boolean\n tipText?: string\n beforeUpload?: UploadProps['beforeUpload']\n }>(),\n {\n name: 'file',\n url: '',\n size: 20,\n width: 160,\n height: 90,\n placeholder: '点击上传图片',\n notip: false,\n accept: 'image/jpeg,image/jpg,image/png,image/gif',\n },\n)\nconst emits = defineEmits<{\n 'update:url': [\n url: string,\n ]\n 'onSuccess': [\n res: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles,\n ]\n}>()\n\nconst ns = useNamespace('image-upload')\n\nconst uploadData = ref({\n imageViewerVisible: false,\n progress: {\n preview: '',\n percent: 0,\n },\n})\n\nconst exts = computed(() => {\n return props.accept.split(',').map(ext => ext.split('/').pop())\n})\n\n// 预览\nfunction preview() {\n uploadData.value.imageViewerVisible = true\n}\n// 关闭预览\nfunction previewClose() {\n uploadData.value.imageViewerVisible = false\n}\n// 移除\nfunction remove() {\n emits('update:url', '')\n}\nconst handleBeforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < props.size\n\n if (!isTypeOk) {\n ElMessage.error(`上传图片只支持${exts.value.join(' / ')}格式!`)\n }\n\n else if (!isSizeOk) {\n ElMessage.error(`上传图片大小不能超过 ${props.size}MB!`)\n }\n else {\n uploadData.value.progress.preview = URL.createObjectURL(file)\n }\n\n return isTypeOk && isSizeOk && (!props.beforeUpload || props.beforeUpload(file))\n}\nconst onProgress: UploadProps['onProgress'] = (file) => {\n uploadData.value.progress.percent = ~~file.percent\n}\nconst onSuccess: UploadProps['onSuccess'] = (...res) => {\n uploadData.value.progress.preview = ''\n uploadData.value.progress.percent = 0\n emits('onSuccess', ...res)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('upload-container')\">\n <el-upload\n :show-file-list=\"false\"\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"handleBeforeUpload\"\n :on-progress=\"onProgress\"\n :on-success=\"onSuccess\"\n drag\n :accept=\"accept\"\n :class=\"ns.e('image-upload')\"\n >\n <el-image\n v-if=\"url === ''\"\n :src=\"url === '' ? placeholder : url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n >\n <template #error>\n <div class=\"image-slot\" :style=\"`width:${width}px;height:${height}px;`\">\n <el-icon>\n <Plus />\n </el-icon>\n <p>\n {{ placeholder }}\n </p>\n </div>\n </template>\n </el-image>\n <div v-else class=\"image\">\n <el-image\n :src=\"url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <div class=\"mask\">\n <div class=\"actions\">\n <span title=\"预览\" @click.stop=\"preview\">\n <el-icon><ZoomIn /></el-icon>\n </span>\n <span title=\"移除\" @click.stop=\"remove\">\n <el-icon>\n <Delete />\n </el-icon>\n </span>\n </div>\n </div>\n </div>\n <div\n v-show=\"url === '' && uploadData.progress.percent\"\n class=\"progress\"\n :style=\"`width:${width}px;height:${height}px;`\"\n >\n <el-image\n :src=\"uploadData.progress.preview\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <el-progress\n type=\"circle\"\n :width=\"Math.min(width, height) * 0.8\"\n :percentage=\"uploadData.progress.percent\"\n />\n </div>\n </el-upload>\n <div v-if=\"!notip\" class=\"el-upload__tip-text\">\n <div style=\"display: inline-block;\">\n {{ tipText || `上传图片支持 ${exts.join(' / ')} 格式,且图片大小不超过 ${size}MB,建议图片尺寸为 ${width}*${height}` }}\n </div>\n </div>\n <el-image-viewer\n v-if=\"uploadData.imageViewerVisible\"\n :url-list=\"[url]\"\n teleported\n @close=\"previewClose\"\n />\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AA2Bd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAM,MAAA,EAAA,GAAK,aAAa,cAAc,CAAA;AAEtC,IAAA,MAAM,aAAa,GAAI,CAAA;AAAA,MACrB,kBAAoB,EAAA,KAAA;AAAA,MACpB,QAAU,EAAA;AAAA,QACR,OAAS,EAAA,EAAA;AAAA,QACT,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA,GAAA,CAAI,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,EAAK,CAAA;AAAA,KAC/D,CAAA;AAGD,IAAA,SAAS,OAAU,GAAA;AACjB,MAAA,UAAA,CAAW,MAAM,kBAAqB,GAAA,IAAA;AAAA;AAGxC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,UAAA,CAAW,MAAM,kBAAqB,GAAA,KAAA;AAAA;AAGxC,IAAA,SAAS,MAAS,GAAA;AAChB,MAAA,KAAA,CAAM,cAAc,EAAE,CAAA;AAAA;AAExB,IAAM,MAAA,kBAAA,GAAkD,CAAC,IAAS,KAAA;AAChE,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,MAAM,OAAU,GAAA,QAAA,CAAS,EAAG,CAAA,EAAE,CAAK,IAAA,EAAA;AACnC,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAS,OAAO,CAAA;AAC5C,MAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAO,GAAA,IAAA,GAAO,OAAO,KAAM,CAAA,IAAA;AAEjD,MAAA,IAAI,CAAC,QAAU,EAAA;AACb,QAAA,SAAA,CAAU,MAAM,CAAU,0CAAA,EAAA,IAAA,CAAK,MAAM,IAAK,CAAA,KAAK,CAAC,CAAK,kBAAA,CAAA,CAAA;AAAA,OACvD,MAAA,IAES,CAAC,QAAU,EAAA;AAClB,QAAA,SAAA,CAAU,KAAM,CAAA,CAAA,6DAAA,EAAc,KAAM,CAAA,IAAI,CAAK,QAAA,CAAA,CAAA;AAAA,OAE1C,MAAA;AACH,QAAA,UAAA,CAAW,KAAM,CAAA,QAAA,CAAS,OAAU,GAAA,GAAA,CAAI,gBAAgB,IAAI,CAAA;AAAA;AAG9D,MAAA,OAAO,YAAY,QAAa,KAAA,CAAC,MAAM,YAAgB,IAAA,KAAA,CAAM,aAAa,IAAI,CAAA,CAAA;AAAA,KAChF;AACA,IAAM,MAAA,UAAA,GAAwC,CAAC,IAAS,KAAA;AACtD,MAAA,UAAA,CAAW,KAAM,CAAA,QAAA,CAAS,OAAU,GAAA,CAAC,CAAC,IAAK,CAAA,OAAA;AAAA,KAC7C;AACA,IAAM,MAAA,SAAA,GAAsC,IAAI,GAAQ,KAAA;AACtD,MAAW,UAAA,CAAA,KAAA,CAAM,SAAS,OAAU,GAAA,EAAA;AACpC,MAAW,UAAA,CAAA,KAAA,CAAM,SAAS,OAAU,GAAA,CAAA;AACpC,MAAM,KAAA,CAAA,WAAA,EAAa,GAAG,GAAG,CAAA;AAAA,KAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,3 @@
1
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/dialog.scss.js';
3
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/overlay.scss.js';
4
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio-group.scss.js';
5
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js';
6
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js';
7
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js';
8
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popper.scss.js';
9
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/popover.scss.js';
10
- import '../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js';
11
1
  import { defineComponent, ref, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createVNode, createBlock, createCommentVNode, withCtx, createTextVNode, isRef, Fragment } from 'vue';
12
2
  import { Edit, Delete, Top, Bottom } from '@element-plus/icons-vue';
13
3
  import { useNamespace } from '@qxs-bns/hooks';
@@ -57,6 +47,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
57
47
  examAnswerRelationType: {
58
48
  type: Number,
59
49
  default: null
50
+ },
51
+ pageEnd: {
52
+ type: Boolean,
53
+ default: false
60
54
  }
61
55
  },
62
56
  emits: ["moveUp", "moveDown", "delete", "save", "edit", "add", "onShowRichText", "setKey", "setAnswerSetting"],
@@ -146,7 +140,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
146
140
  Fragment,
147
141
  { key: 0 },
148
142
  [
149
- createVNode(_component_el_button, {
143
+ !__props.pageEnd ? (openBlock(), createBlock(_component_el_button, {
144
+ key: 0,
150
145
  class: "btn-margin",
151
146
  onClick: _cache[4] || (_cache[4] = ($event) => emits("edit"))
152
147
  }, {
@@ -164,7 +159,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
164
159
  ]),
165
160
  _: 1
166
161
  /* STABLE */
167
- }),
162
+ })) : createCommentVNode("v-if", true),
168
163
  createVNode(_component_el_button, {
169
164
  class: "btn-margin",
170
165
  onClick: _cache[5] || (_cache[5] = ($event) => emits("delete"))
@@ -1 +1 @@
1
- {"version":3,"file":"subject-action.vue.js","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n },\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 2\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null\n }\n})\nconst key = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits(['moveUp', 'moveDown', 'delete', 'save', 'edit', 'add', 'onShowRichText', 'setKey', 'setAnswerSetting'])\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType)\n}\n\nfunction selectExam(type:string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link type=\"primary\" @click=\"emits('onShowRichText')\" v-if=\"showOtherOption\">\n +添加题目描述(图文)\n </el-link>\n <el-link type=\"primary\" @click=\"showAnswerSetting = true\" v-if=\"showOtherOption\">\n 答题设置\n </el-link>\n <el-checkbox v-model=\"key\" label=\"核心题\" @change=\"emits('setKey', key)\" v-if=\"showOtherOption\"/>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end\" style=\"width: 100%;\">\n <template v-if=\"!isEdit\">\n <el-button class=\"btn-margin\" @click=\"emits('edit')\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n >\n <el-radio-group v-model=\"answerType\" class=\"vertical-radio-group\">\n <el-radio :value=\"1\">必须全部都是支持选项,方可下一步</el-radio>\n <el-radio :value=\"2\">无需判断是否是支持选项</el-radio>\n <el-radio :value=\"3\">包含全部支持选项,即可下一步</el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAyBd,IAAM,MAAA,GAAA,GAAM,GAAI,CAAA,KAAA,CAAM,KAAK,CAAA;AAC3B,IAAM,MAAA,iBAAA,GAAoB,IAAI,KAAK,CAAA;AACnC,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,UAAA,GAAa,GAAI,CAAA,KAAA,CAAM,eAAe,CAAA;AAC5C,IAAM,MAAA,EAAA,GAAK,aAAa,gBAAgB,CAAA;AAExC,IAAA,SAAS,aAAgB,GAAA;AACvB,MAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA;AAC1B,MAAA,KAAA,CAAM,oBAAoB,UAAU,CAAA;AAAA;AAGtC,IAAS,SAAA,UAAA,CAAW,MAAa,MAAiB,EAAA;AACjD,MAAA,KAAA,CAAM,KAAO,EAAA,IAAA,EAAM,MAAQ,GAAA,KAAA,CAAM,yBAAwB,IAAI,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"subject-action.vue.js","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n },\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 2\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null\n },\n pageEnd: {\n type: Boolean,\n default: false\n }\n})\nconst key = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits(['moveUp', 'moveDown', 'delete', 'save', 'edit', 'add', 'onShowRichText', 'setKey', 'setAnswerSetting'])\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\n\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType)\n}\n\nfunction selectExam(type:string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div class=\"action flex flex-justify-between\" :class=\"[{ active: isEdit }]\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link type=\"primary\" @click=\"emits('onShowRichText')\" v-if=\"showOtherOption\">\n +添加题目描述(图文)\n </el-link>\n <el-link type=\"primary\" @click=\"showAnswerSetting = true\" v-if=\"showOtherOption\">\n 答题设置\n </el-link>\n <el-checkbox v-model=\"key\" label=\"核心题\" @change=\"emits('setKey', key)\" v-if=\"showOtherOption\"/>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end\" style=\"width: 100%;\">\n <template v-if=\"!isEdit\">\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n >\n <el-radio-group v-model=\"answerType\" class=\"vertical-radio-group\">\n <el-radio :value=\"1\">必须全部都是支持选项,方可下一步</el-radio>\n <el-radio :value=\"2\">无需判断是否是支持选项</el-radio>\n <el-radio :value=\"3\">包含全部支持选项,即可下一步</el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AA6Bd,IAAM,MAAA,GAAA,GAAM,GAAI,CAAA,KAAA,CAAM,KAAK,CAAA;AAC3B,IAAM,MAAA,iBAAA,GAAoB,IAAI,KAAK,CAAA;AACnC,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,UAAA,GAAa,GAAI,CAAA,KAAA,CAAM,eAAe,CAAA;AAC5C,IAAM,MAAA,EAAA,GAAK,aAAa,gBAAgB,CAAA;AAExC,IAAA,SAAS,aAAgB,GAAA;AACvB,MAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA;AAC1B,MAAA,KAAA,CAAM,oBAAoB,UAAU,CAAA;AAAA;AAGtC,IAAS,SAAA,UAAA,CAAW,MAAa,MAAiB,EAAA;AACjD,MAAA,KAAA,CAAM,KAAO,EAAA,IAAA,EAAM,MAAQ,GAAA,KAAA,CAAM,yBAAwB,IAAI,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,6 @@
1
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js';
3
- import { defineComponent, onMounted, createElementBlock, openBlock, normalizeClass, unref, createVNode, withCtx, createBlock, createCommentVNode, createElementVNode, toDisplayString } from 'vue';
1
+ import { defineComponent, onMounted, createElementBlock, openBlock, normalizeClass, unref, createVNode, withCtx, createElementVNode, toDisplayString } from 'vue';
4
2
  import { useNamespace } from '@qxs-bns/hooks';
5
- import _sfc_main$2 from '../../../subject-action/src/subject-action.vue.js';
6
- import _sfc_main$1 from '../../../subject-layout/src/subject-layout.vue.js';
3
+ import _sfc_main$1 from '../../../subject-action/src/subject-action.vue.js';
7
4
  import { ElRow } from '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/es/components/row/index.js';
8
5
 
9
6
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -36,56 +33,48 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
36
33
  class: normalizeClass(unref(ns).e("end-exam"))
37
34
  },
38
35
  [
39
- createVNode(_sfc_main$1, { "show-edit": _ctx.isEdit }, {
40
- preview: withCtx(() => [
41
- createVNode(_component_el_row, {
42
- type: "flex",
43
- align: "middle"
44
- }, {
45
- default: withCtx(() => [
46
- _cache[5] || (_cache[5] = createElementVNode(
47
- "span",
48
- { class: "auto-line" },
49
- null,
50
- -1
51
- /* HOISTED */
52
- )),
53
- createElementVNode(
54
- "span",
55
- null,
56
- "\u7B2C" + toDisplayString(_ctx.currentPageIndex) + " / " + toDisplayString(_ctx.totalPage) + "\u9875",
57
- 1
58
- /* TEXT */
59
- ),
60
- _cache[6] || (_cache[6] = createElementVNode(
61
- "span",
62
- { class: "auto-line" },
63
- null,
64
- -1
65
- /* HOISTED */
66
- ))
67
- ]),
68
- _: 1
69
- /* STABLE */
70
- })
71
- ]),
36
+ createVNode(_component_el_row, {
37
+ type: "flex",
38
+ align: "middle"
39
+ }, {
72
40
  default: withCtx(() => [
73
- _ctx.showAction ? (openBlock(), createBlock(_sfc_main$2, {
74
- key: 0,
75
- "is-edit": _ctx.isEdit,
76
- "is-set": _ctx.isSet,
77
- examAnswerRelationType: props.examAnswerRelationType,
78
- showOtherOption: false,
79
- onMoveUp: _cache[0] || (_cache[0] = ($event) => emits("move", "up")),
80
- onMoveDown: _cache[1] || (_cache[1] = ($event) => emits("move", "down")),
81
- onDelete: _cache[2] || (_cache[2] = ($event) => emits("delete")),
82
- onEdit: _cache[3] || (_cache[3] = ($event) => emits("edit")),
83
- onAdd: _cache[4] || (_cache[4] = (type) => emits("add", type))
84
- }, null, 8, ["is-edit", "is-set", "examAnswerRelationType"])) : createCommentVNode("v-if", true)
41
+ _cache[5] || (_cache[5] = createElementVNode(
42
+ "span",
43
+ { class: "auto-line" },
44
+ null,
45
+ -1
46
+ /* HOISTED */
47
+ )),
48
+ createElementVNode(
49
+ "span",
50
+ null,
51
+ "\u7B2C" + toDisplayString(props.currentPageIndex) + " / " + toDisplayString(_ctx.totalPage) + "\u9875",
52
+ 1
53
+ /* TEXT */
54
+ ),
55
+ _cache[6] || (_cache[6] = createElementVNode(
56
+ "span",
57
+ { class: "auto-line" },
58
+ null,
59
+ -1
60
+ /* HOISTED */
61
+ ))
85
62
  ]),
86
63
  _: 1
87
64
  /* STABLE */
88
- }, 8, ["show-edit"])
65
+ }),
66
+ createVNode(_sfc_main$1, {
67
+ "is-edit": false,
68
+ "is-set": _ctx.isSet,
69
+ pageEnd: true,
70
+ examAnswerRelationType: props.examAnswerRelationType,
71
+ showOtherOption: false,
72
+ onMoveUp: _cache[0] || (_cache[0] = ($event) => emits("move", "up")),
73
+ onMoveDown: _cache[1] || (_cache[1] = ($event) => emits("move", "down")),
74
+ onDelete: _cache[2] || (_cache[2] = ($event) => emits("delete")),
75
+ onEdit: _cache[3] || (_cache[3] = ($event) => emits("edit")),
76
+ onAdd: _cache[4] || (_cache[4] = (type) => emits("add", type))
77
+ }, null, 8, ["is-set", "examAnswerRelationType"])
89
78
  ],
90
79
  2
91
80
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectPageEnd.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.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 <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <el-row type=\"flex\" align=\"middle\">\n <span class=\"auto-line\" />\n <span>第{{ currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </el-row>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n :showOtherOption=\"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 </SubjectLayout>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AASd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,SAAS,IAAO,GAAA;AAAA;AAIhB,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SubjectPageEnd.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\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 <el-row type=\"flex\" align=\"middle\">\n <span class=\"auto-line\" />\n <span>第{{ props.currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </el-row>\n <SubjectAction\n :is-edit=\"false\"\n :is-set=\"isSet\"\n :pageEnd=\"true\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n :showOtherOption=\"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":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AASd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,SAAS,IAAO,GAAA;AAAA;AAIhB,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,3 @@
1
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/button.scss.js';
3
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/tag.scss.js';
4
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox-group.scss.js';
5
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/checkbox.scss.js';
6
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js';
7
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js';
8
1
  import { defineComponent, useAttrs, ref, watch, onMounted, createElementBlock, openBlock, normalizeClass, unref, createVNode, withCtx, createBlock, createCommentVNode, createElementVNode, isRef, createTextVNode, Fragment, renderList, toDisplayString, mergeProps } from 'vue';
9
2
  import { Plus } from '@element-plus/icons-vue';
10
3
  import { useNamespace } from '@qxs-bns/hooks';
@@ -129,7 +122,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
129
122
  }),
130
123
  analysis: analysis.value,
131
124
  isSetCorrectAnswer: true,
132
- examAnswerSettingVO: {
125
+ examAnswerSettingBO: {
133
126
  isIgnoreCase: isCheckList.value?.includes("isIgnoreCase"),
134
127
  isInOrder: isCheckList.value?.includes("isInOrder")
135
128
  },
@@ -465,6 +458,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
465
458
  key: 0,
466
459
  "is-edit": _ctx.isEdit,
467
460
  "is-set": _ctx.isSet,
461
+ showOtherOption: false,
468
462
  examAnswerRelationType: props.examAnswerRelationType,
469
463
  onMoveUp: _cache[4] || (_cache[4] = ($event) => emits("move", "up")),
470
464
  onMoveDown: _cache[5] || (_cache[5] = ($event) => emits("move", "down")),
@@ -1 +1 @@
1
- {"version":3,"file":"subject-blank-fill.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport 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 examAnswerSettingVO: {\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 v-html=\"richText\" />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <el-link\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </el-link>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox :value=\"item.value\" class=\"margin-left-10\">\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <el-tag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </el-tag>\n </template>\n <template v-if=\"!isSave\">\n <el-input\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <el-button\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <el-icon><Plus /></el-icon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </el-button>\n </template>\n </div>\n </div>\n </div>\n <div v-if=\"showAnalysis\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :examAnswerRelationType=\"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 @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject-blank-fill.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport 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 v-html=\"richText\" />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <el-link\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </el-link>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox :value=\"item.value\" class=\"margin-left-10\">\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <el-tag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </el-tag>\n </template>\n <template v-if=\"!isSave\">\n <el-input\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <el-button\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <el-icon><Plus /></el-icon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </el-button>\n </template>\n </div>\n </div>\n </div>\n <div v-if=\"showAnalysis\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :showOtherOption=\"false\"\n :examAnswerRelationType=\"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 @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/base.scss.js';
2
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/link.scss.js';
3
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/input.scss.js';
4
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/radio.scss.js';
5
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/row.scss.js';
6
- import '../../../../node_modules/.pnpm/element-plus@2.9.6_vue@3.5.13_typescript@5.8.2_/node_modules/element-plus/theme-chalk/src/col.scss.js';
7
1
  import { defineComponent, useAttrs, ref, computed, onMounted, createElementBlock, openBlock, normalizeClass, unref, createVNode, withCtx, createBlock, createCommentVNode, createElementVNode, isRef, Fragment, renderList, toDisplayString, mergeProps, createTextVNode } from 'vue';
8
2
  import { CirclePlus, Remove } from '@element-plus/icons-vue';
9
3
  import { useNamespace } from '@qxs-bns/hooks';
@@ -81,6 +75,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
81
75
  const richText = ref("");
82
76
  const scaleQuestionList = ref([]);
83
77
  const span = computed(() => Math.ceil(24 / (answers.value.length + 1)));
78
+ ref(false);
84
79
  function addAnswer() {
85
80
  if (answers.value.length === 5) {
86
81
  return;
@@ -435,6 +430,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
435
430
  key: 0,
436
431
  "is-edit": _ctx.isEdit,
437
432
  "is-set": _ctx.isSet,
433
+ showOtherOption: false,
438
434
  examAnswerRelationType: props.examAnswerRelationType,
439
435
  onMoveUp: _cache[4] || (_cache[4] = ($event) => emits("move", "up")),
440
436
  onMoveDown: _cache[5] || (_cache[5] = ($event) => emits("move", "down")),
@@ -1 +1 @@
1
- {"version":3,"file":"subject-scale.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-scale.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n rowTitle?: string\n isEdit: boolean\n isSet: boolean\n scaleQuestionList?: any\n examRichTextContent?: string\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n}[]>([{\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst rowTitle = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst scaleQuestionList = ref<string[]>([])\nconst span = computed(() => Math.ceil(24 / (answers.value.length + 1)))\n\nfunction addAnswer() {\n if (answers.value.length === 5) {\n return\n }\n answers.value.push({\n title: '',\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n answers.value.forEach((v, i) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n })\n\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n if (!rowTitle.value) {\n ElMessage.error('行标题不能为空!')\n return\n }\n\n scaleQuestionList.value = rowTitle.value.split('\\n').filter(i => i)\n\n emits('save', {\n title: title.value,\n answers: answers.value,\n analysis: analysis.value,\n scaleQuestionList: scaleQuestionList.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.scaleQuestionList) {\n scaleQuestionList.value = props.scaleQuestionList\n rowTitle.value = scaleQuestionList.value.join('\\n')\n }\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(量表题)</span>\n <div v-if=\"showRichText\">\n <div v-html=\"richText\" />\n </div>\n </div>\n <div class=\"answer-radio flex flex-col\">\n <el-row style=\"padding: 10px 0;\">\n <el-col :span=\"span\" />\n <el-col\n v-for=\"item in answers\"\n :key=\"item.title\"\n class=\"flex flex-center\"\n :span=\"span\"\n >\n <span>{{ item.title }}</span>\n </el-col>\n </el-row>\n <el-row\n v-for=\"item in scaleQuestionList\"\n :key=\"item\"\n style=\"padding: 10px 0;\"\n >\n <el-col :span=\"span\" class=\"flex flex-center\">\n <span>{{ item }}</span>\n </el-col>\n <el-col\n v-for=\"i in answers.length\"\n :key=\"i\"\n class=\"radio-item flex flex-center\"\n :span=\"span\"\n >\n <el-radio :disabled=\"true\" />\n </el-col>\n </el-row>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\" :class=\"[{ 'margin-bottom': showRichText }]\">\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【量表题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"answer flex\">\n <div class=\"label flex flex-justify-center\">\n <span>行标题:</span>\n </div>\n <div class=\"flex\">\n <el-input\n v-model.trim=\"rowTitle\"\n type=\"textarea\"\n placeholder=\"请输入行标题\"\n style=\"width: 160px;\"\n :rows=\"10\"\n />\n <div class=\"answer-list flex-col\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <el-input\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n :maxlength=\"10\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <!-- <PlusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n <MinusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n /> -->\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex\" style=\"margin-bottom: 20px;\">\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :examAnswerRelationType=\"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 @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject-scale.vue.js","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-scale.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n rowTitle?: string\n isEdit: boolean\n isSet: boolean\n scaleQuestionList?: any\n examRichTextContent?: string\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n}[]>([{\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst rowTitle = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst scaleQuestionList = ref<string[]>([])\nconst span = computed(() => Math.ceil(24 / (answers.value.length + 1)))\nconst isKey = ref(false)\nfunction addAnswer() {\n if (answers.value.length === 5) {\n return\n }\n answers.value.push({\n title: '',\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n answers.value.forEach((v, i) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n })\n\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n if (!rowTitle.value) {\n ElMessage.error('行标题不能为空!')\n return\n }\n\n scaleQuestionList.value = rowTitle.value.split('\\n').filter(i => i)\n\n emits('save', {\n title: title.value,\n answers: answers.value,\n analysis: analysis.value,\n scaleQuestionList: scaleQuestionList.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.scaleQuestionList) {\n scaleQuestionList.value = props.scaleQuestionList\n rowTitle.value = scaleQuestionList.value.join('\\n')\n }\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(量表题)</span>\n <div v-if=\"showRichText\">\n <div v-html=\"richText\" />\n </div>\n </div>\n <div class=\"answer-radio flex flex-col\">\n <el-row style=\"padding: 10px 0;\">\n <el-col :span=\"span\" />\n <el-col\n v-for=\"item in answers\"\n :key=\"item.title\"\n class=\"flex flex-center\"\n :span=\"span\"\n >\n <span>{{ item.title }}</span>\n </el-col>\n </el-row>\n <el-row\n v-for=\"item in scaleQuestionList\"\n :key=\"item\"\n style=\"padding: 10px 0;\"\n >\n <el-col :span=\"span\" class=\"flex flex-center\">\n <span>{{ item }}</span>\n </el-col>\n <el-col\n v-for=\"i in answers.length\"\n :key=\"i\"\n class=\"radio-item flex flex-center\"\n :span=\"span\"\n >\n <el-radio :disabled=\"true\" />\n </el-col>\n </el-row>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\" :class=\"[{ 'margin-bottom': showRichText }]\">\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【量表题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"answer flex\">\n <div class=\"label flex flex-justify-center\">\n <span>行标题:</span>\n </div>\n <div class=\"flex\">\n <el-input\n v-model.trim=\"rowTitle\"\n type=\"textarea\"\n placeholder=\"请输入行标题\"\n style=\"width: 160px;\"\n :rows=\"10\"\n />\n <div class=\"answer-list flex-col\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <el-input\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n :maxlength=\"10\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <!-- <PlusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n <MinusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n /> -->\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex\" style=\"margin-bottom: 20px;\">\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :showOtherOption=\"false\"\n :examAnswerRelationType=\"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 @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":[],"mappings":"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"}