@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.
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +1 -1
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -1
- package/es/package.json.js +1 -1
- package/es/src/file-upload/src/file-upload.vue.js +0 -6
- package/es/src/file-upload/src/file-upload.vue.js.map +1 -1
- package/es/src/image-upload/src/image-upload.vue.js +0 -7
- package/es/src/image-upload/src/image-upload.vue.js.map +1 -1
- package/es/src/subject-action/src/subject-action.vue.js +7 -12
- package/es/src/subject-action/src/subject-action.vue.js.map +1 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.js +40 -51
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue.js +2 -8
- package/es/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -1
- package/es/src/subject-list/src/components/subject-scale.vue.js +2 -6
- package/es/src/subject-list/src/components/subject-scale.vue.js.map +1 -1
- package/es/src/subject-list/src/components/subject-single.vue.js +41 -54
- package/es/src/subject-list/src/components/subject-single.vue.js.map +1 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue.js +2 -9
- package/es/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -1
- package/es/src/subject-list/src/subject-list.vue.js +3 -4
- package/es/src/subject-list/src/subject-list.vue.js.map +1 -1
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +1 -1
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/src/file-upload/src/file-upload.vue.js +0 -6
- package/lib/src/file-upload/src/file-upload.vue.js.map +1 -1
- package/lib/src/image-upload/src/image-upload.vue.js +0 -7
- package/lib/src/image-upload/src/image-upload.vue.js.map +1 -1
- package/lib/src/subject-action/src/subject-action.vue.js +7 -12
- package/lib/src/subject-action/src/subject-action.vue.js.map +1 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js +38 -49
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.js +2 -8
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -1
- package/lib/src/subject-list/src/components/subject-scale.vue.js +2 -6
- package/lib/src/subject-list/src/components/subject-scale.vue.js.map +1 -1
- package/lib/src/subject-list/src/components/subject-single.vue.js +41 -54
- package/lib/src/subject-list/src/components/subject-single.vue.js.map +1 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue.js +2 -9
- package/lib/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -1
- package/lib/src/subject-list/src/subject-list.vue.js +3 -4
- package/lib/src/subject-list/src/subject-list.vue.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/subject-list.css +1 -1
- package/types/tsconfig.tsbuildinfo +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js
CHANGED
@@ -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 (
|
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,
|
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]}
|
package/es/package.json.js
CHANGED
@@ -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":"
|
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":"
|
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
|
-
|
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":"
|
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 '
|
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$
|
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(
|
40
|
-
|
41
|
-
|
42
|
-
|
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
|
-
|
74
|
-
|
75
|
-
"
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
-
},
|
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'\
|
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
|
-
|
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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"}
|