@qxs-bns/components 0.0.90 → 0.0.91
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/README.md +11 -15
- package/es/base/define.mjs +2 -0
- package/es/base/define.mjs.map +1 -0
- package/es/base/uid.mjs +2 -0
- package/es/base/uid.mjs.map +1 -0
- package/es/data-chart.mjs +142 -0
- package/es/data-chart.mjs.map +1 -0
- package/es/editor/blocksuite-editor.mjs +1115 -0
- package/es/editor/blocksuite-editor.mjs.map +1 -0
- package/es/editor/content-format.mjs +2 -0
- package/es/editor/content-format.mjs.map +1 -0
- package/es/editor/index.mjs +2 -0
- package/es/editor/index.mjs.map +1 -0
- package/es/editor/toolbar.mjs +2 -0
- package/es/editor/toolbar.mjs.map +1 -0
- package/es/entry-data-chart.mjs +2 -0
- package/es/entry-data-chart.mjs.map +1 -0
- package/es/entry-editor.mjs +2 -0
- package/es/entry-editor.mjs.map +1 -0
- package/es/entry-file-upload.mjs +2 -0
- package/es/entry-file-upload.mjs.map +1 -0
- package/es/entry-fixed-action-bar.mjs +2 -0
- package/es/entry-fixed-action-bar.mjs.map +1 -0
- package/es/entry-icon.mjs +2 -0
- package/es/entry-icon.mjs.map +1 -0
- package/es/entry-image-upload.mjs +2 -0
- package/es/entry-image-upload.mjs.map +1 -0
- package/es/entry-photo-crop-tool.mjs +2 -0
- package/es/entry-photo-crop-tool.mjs.map +1 -0
- package/es/entry-subject.mjs +2 -0
- package/es/entry-subject.mjs.map +1 -0
- package/es/file-upload.mjs +157 -0
- package/es/file-upload.mjs.map +1 -0
- package/es/fixed-action-bar.mjs +39 -0
- package/es/fixed-action-bar.mjs.map +1 -0
- package/es/icon.mjs +20 -0
- package/es/icon.mjs.map +1 -0
- package/es/image-upload.mjs +333 -0
- package/es/image-upload.mjs.map +1 -0
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs +2 -0
- package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs.map +1 -0
- package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs +2 -0
- package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs.map +1 -0
- package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs +2 -0
- package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs.map +1 -0
- package/es/photo-crop-tool.mjs +147 -0
- package/es/photo-crop-tool.mjs.map +1 -0
- package/es/src/alert/src/alert.mjs.map +1 -1
- package/es/src/components.mjs +1 -1
- package/es/src/data-chart/index.mjs +1 -1
- package/es/src/data-chart/index.mjs.map +1 -1
- package/es/src/dialog/src/dialog.mjs +1 -1
- package/es/src/dialog/src/dialog.mjs.map +1 -1
- package/es/src/file-upload/index.mjs +1 -1
- package/es/src/file-upload/index.mjs.map +1 -1
- package/es/src/image-upload/index.mjs +1 -1
- package/es/src/image-upload/index.mjs.map +1 -1
- package/es/src/message/src/message.mjs +1 -1
- package/es/src/message/src/message.mjs.map +1 -1
- package/es/src/photo-crop-tool/index.mjs +1 -1
- package/es/src/photo-crop-tool/index.mjs.map +1 -1
- package/es/src/ui/button/index.mjs.map +1 -1
- package/es/src/ui/checkbox/index.mjs.map +1 -1
- package/es/src/ui/dialog/index.mjs.map +1 -1
- package/es/src/ui/input/index.mjs +1 -1
- package/es/src/ui/input/index.mjs.map +1 -1
- package/es/src/ui/input-number/index.mjs.map +1 -1
- package/es/src/ui/layout/index.mjs.map +1 -1
- package/es/src/ui/popover/index.mjs.map +1 -1
- package/es/src/ui/radio/index.mjs.map +1 -1
- package/es/src/ui/scrollbar/index.mjs.map +1 -1
- package/es/src/ui/select/index.mjs +1 -1
- package/es/src/ui/select/index.mjs.map +1 -1
- package/es/src/ui/table/index.mjs.map +1 -1
- package/es/src/ui/tag/index.mjs.map +1 -1
- package/es/src/wc-bridge.mjs +2 -0
- package/es/src/wc-bridge.mjs.map +1 -0
- package/es/subject/action.mjs +171 -0
- package/es/subject/action.mjs.map +1 -0
- package/es/subject/blank-fill.mjs +385 -0
- package/es/subject/blank-fill.mjs.map +1 -0
- package/es/subject/draft.mjs +2 -0
- package/es/subject/draft.mjs.map +1 -0
- package/es/subject/layout.mjs +21 -0
- package/es/subject/layout.mjs.map +1 -0
- package/es/subject/page-end.mjs +28 -0
- package/es/subject/page-end.mjs.map +1 -0
- package/es/subject/pagination.mjs +2 -0
- package/es/subject/pagination.mjs.map +1 -0
- package/es/subject/runtime.mjs +2 -0
- package/es/subject/runtime.mjs.map +1 -0
- package/es/subject/scale.mjs +267 -0
- package/es/subject/scale.mjs.map +1 -0
- package/es/subject/shared-methods.mjs +2 -0
- package/es/subject/shared-methods.mjs.map +1 -0
- package/es/subject/shared-styles.mjs +75 -0
- package/es/subject/shared-styles.mjs.map +1 -0
- package/es/subject/single.mjs +600 -0
- package/es/subject/single.mjs.map +1 -0
- package/es/subject/sort-controller.mjs +2 -0
- package/es/subject/sort-controller.mjs.map +1 -0
- package/es/subject/sortable.mjs +30 -0
- package/es/subject/sortable.mjs.map +1 -0
- package/es/subject/sorting-card.mjs +52 -0
- package/es/subject/sorting-card.mjs.map +1 -0
- package/es/subject/text-fill.mjs +395 -0
- package/es/subject/text-fill.mjs.map +1 -0
- package/es/subject/title-prefix.mjs +2 -0
- package/es/subject/title-prefix.mjs.map +1 -0
- package/es/subject/types.mjs +2 -0
- package/es/subject/types.mjs.map +1 -0
- package/lib/base/define.cjs +2 -0
- package/lib/base/define.cjs.map +1 -0
- package/lib/base/uid.cjs +2 -0
- package/lib/base/uid.cjs.map +1 -0
- package/lib/data-chart.cjs +142 -0
- package/lib/data-chart.cjs.map +1 -0
- package/lib/editor/blocksuite-editor.cjs +1115 -0
- package/lib/editor/blocksuite-editor.cjs.map +1 -0
- package/lib/editor/content-format.cjs +2 -0
- package/lib/editor/content-format.cjs.map +1 -0
- package/lib/editor/index.cjs +2 -0
- package/lib/editor/index.cjs.map +1 -0
- package/lib/editor/toolbar.cjs +2 -0
- package/lib/editor/toolbar.cjs.map +1 -0
- package/lib/entry-data-chart.cjs +2 -0
- package/lib/entry-data-chart.cjs.map +1 -0
- package/lib/entry-editor.cjs +2 -0
- package/lib/entry-editor.cjs.map +1 -0
- package/lib/entry-file-upload.cjs +2 -0
- package/lib/entry-file-upload.cjs.map +1 -0
- package/lib/entry-fixed-action-bar.cjs +2 -0
- package/lib/entry-fixed-action-bar.cjs.map +1 -0
- package/lib/entry-icon.cjs +2 -0
- package/lib/entry-icon.cjs.map +1 -0
- package/lib/entry-image-upload.cjs +2 -0
- package/lib/entry-image-upload.cjs.map +1 -0
- package/lib/entry-photo-crop-tool.cjs +2 -0
- package/lib/entry-photo-crop-tool.cjs.map +1 -0
- package/lib/entry-subject.cjs +2 -0
- package/lib/entry-subject.cjs.map +1 -0
- package/lib/file-upload.cjs +157 -0
- package/lib/file-upload.cjs.map +1 -0
- package/lib/fixed-action-bar.cjs +39 -0
- package/lib/fixed-action-bar.cjs.map +1 -0
- package/lib/icon.cjs +20 -0
- package/lib/icon.cjs.map +1 -0
- package/lib/image-upload.cjs +333 -0
- package/lib/image-upload.cjs.map +1 -0
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs +2 -0
- package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs.map +1 -0
- package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs +2 -0
- package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs.map +1 -0
- package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs +2 -0
- package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs.map +1 -0
- package/lib/photo-crop-tool.cjs +147 -0
- package/lib/photo-crop-tool.cjs.map +1 -0
- package/lib/src/alert/src/alert.cjs.map +1 -1
- package/lib/src/components.cjs +1 -1
- package/lib/src/data-chart/index.cjs +1 -1
- package/lib/src/data-chart/index.cjs.map +1 -1
- package/lib/src/dialog/src/dialog.cjs +1 -1
- package/lib/src/dialog/src/dialog.cjs.map +1 -1
- package/lib/src/file-upload/index.cjs +1 -1
- package/lib/src/file-upload/index.cjs.map +1 -1
- package/lib/src/image-upload/index.cjs +1 -1
- package/lib/src/image-upload/index.cjs.map +1 -1
- package/lib/src/message/src/message.cjs +1 -1
- package/lib/src/message/src/message.cjs.map +1 -1
- package/lib/src/photo-crop-tool/index.cjs +1 -1
- package/lib/src/photo-crop-tool/index.cjs.map +1 -1
- package/lib/src/ui/button/index.cjs.map +1 -1
- package/lib/src/ui/checkbox/index.cjs.map +1 -1
- package/lib/src/ui/dialog/index.cjs.map +1 -1
- package/lib/src/ui/input/index.cjs +1 -1
- package/lib/src/ui/input/index.cjs.map +1 -1
- package/lib/src/ui/input-number/index.cjs.map +1 -1
- package/lib/src/ui/layout/index.cjs.map +1 -1
- package/lib/src/ui/popover/index.cjs.map +1 -1
- package/lib/src/ui/radio/index.cjs.map +1 -1
- package/lib/src/ui/scrollbar/index.cjs.map +1 -1
- package/lib/src/ui/select/index.cjs +1 -1
- package/lib/src/ui/select/index.cjs.map +1 -1
- package/lib/src/ui/table/index.cjs.map +1 -1
- package/lib/src/ui/tag/index.cjs.map +1 -1
- package/lib/src/wc-bridge.cjs +2 -0
- package/lib/src/wc-bridge.cjs.map +1 -0
- package/lib/subject/action.cjs +171 -0
- package/lib/subject/action.cjs.map +1 -0
- package/lib/subject/blank-fill.cjs +385 -0
- package/lib/subject/blank-fill.cjs.map +1 -0
- package/lib/subject/draft.cjs +2 -0
- package/lib/subject/draft.cjs.map +1 -0
- package/lib/subject/layout.cjs +21 -0
- package/lib/subject/layout.cjs.map +1 -0
- package/lib/subject/page-end.cjs +28 -0
- package/lib/subject/page-end.cjs.map +1 -0
- package/lib/subject/pagination.cjs +2 -0
- package/lib/subject/pagination.cjs.map +1 -0
- package/lib/subject/runtime.cjs +2 -0
- package/lib/subject/runtime.cjs.map +1 -0
- package/lib/subject/scale.cjs +267 -0
- package/lib/subject/scale.cjs.map +1 -0
- package/lib/subject/shared-methods.cjs +2 -0
- package/lib/subject/shared-methods.cjs.map +1 -0
- package/lib/subject/shared-styles.cjs +75 -0
- package/lib/subject/shared-styles.cjs.map +1 -0
- package/lib/subject/single.cjs +600 -0
- package/lib/subject/single.cjs.map +1 -0
- package/lib/subject/sort-controller.cjs +2 -0
- package/lib/subject/sort-controller.cjs.map +1 -0
- package/lib/subject/sortable.cjs +30 -0
- package/lib/subject/sortable.cjs.map +1 -0
- package/lib/subject/sorting-card.cjs +52 -0
- package/lib/subject/sorting-card.cjs.map +1 -0
- package/lib/subject/text-fill.cjs +395 -0
- package/lib/subject/text-fill.cjs.map +1 -0
- package/lib/subject/title-prefix.cjs +2 -0
- package/lib/subject/title-prefix.cjs.map +1 -0
- package/lib/subject/types.cjs +2 -0
- package/lib/subject/types.cjs.map +1 -0
- package/package.json +94 -32
- package/types/base/define.d.ts +1 -0
- package/types/base/uid.d.ts +1 -0
- package/types/data-chart.d.ts +65 -0
- package/types/editor/blocksuite-editor.d.ts +191 -0
- package/types/editor/content-format.d.ts +4 -0
- package/types/editor/index.d.ts +4 -0
- package/types/editor/toolbar.d.ts +6 -0
- package/types/editor/types.d.ts +42 -0
- package/types/entry-data-chart.d.ts +1 -0
- package/types/entry-editor.d.ts +2 -0
- package/types/entry-file-upload.d.ts +1 -0
- package/types/entry-fixed-action-bar.d.ts +1 -0
- package/types/entry-icon.d.ts +2 -0
- package/types/entry-image-upload.d.ts +1 -0
- package/types/entry-photo-crop-tool.d.ts +1 -0
- package/types/entry-subject.d.ts +2 -0
- package/types/file-upload.d.ts +48 -0
- package/types/fixed-action-bar.d.ts +25 -0
- package/types/icon.d.ts +30 -0
- package/types/image-upload.d.ts +68 -0
- package/types/index.d.ts +21 -6
- package/types/photo-crop-tool.d.ts +43 -0
- package/types/src/components.d.ts +2 -7
- package/types/src/components.d.ts.map +1 -1
- package/types/src/data-chart/index.d.ts +11 -27
- package/types/src/data-chart/index.d.ts.map +1 -1
- package/types/src/dialog/src/dialog.d.ts.map +1 -1
- package/types/src/file-upload/index.d.ts +10 -17
- package/types/src/file-upload/index.d.ts.map +1 -1
- package/types/src/icon/index.d.ts +1 -1
- package/types/src/icon/src/icon.d.ts +1 -1
- package/types/src/image-upload/index.d.ts +10 -25
- package/types/src/image-upload/index.d.ts.map +1 -1
- package/types/src/message/index.d.ts +2 -2
- package/types/src/message/index.d.ts.map +1 -1
- package/types/src/message/src/message.d.ts.map +1 -1
- package/types/src/photo-crop-tool/index.d.ts +9 -52
- package/types/src/photo-crop-tool/index.d.ts.map +1 -1
- package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-scale.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-single.vue.d.ts +2 -2
- package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
- package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts +2 -2
- package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
- package/types/src/subject-type/src/subject-type.vue.d.ts.map +1 -1
- package/types/src/ui/button/index.d.ts +4 -4
- package/types/src/ui/checkbox/index.d.ts +2 -2
- package/types/src/ui/checkbox/index.d.ts.map +1 -1
- package/types/src/ui/dialog/index.d.ts +2 -2
- package/types/src/ui/dialog/index.d.ts.map +1 -1
- package/types/src/ui/index.d.ts +9 -9
- package/types/src/ui/index.d.ts.map +1 -1
- package/types/src/ui/input/index.d.ts +4 -4
- package/types/src/ui/input-number/index.d.ts +4 -4
- package/types/src/ui/input-number/index.d.ts.map +1 -1
- package/types/src/ui/layout/index.d.ts +6 -6
- package/types/src/ui/layout/index.d.ts.map +1 -1
- package/types/src/ui/popover/index.d.ts +4 -4
- package/types/src/ui/popover/index.d.ts.map +1 -1
- package/types/src/ui/radio/index.d.ts.map +1 -1
- package/types/src/ui/scrollbar/index.d.ts.map +1 -1
- package/types/src/ui/select/index.d.ts +4 -4
- package/types/src/ui/select/index.d.ts.map +1 -1
- package/types/src/ui/table/index.d.ts +3 -3
- package/types/src/ui/table/index.d.ts.map +1 -1
- package/types/src/ui/tag/index.d.ts +2 -2
- package/types/src/ui/tag/index.d.ts.map +1 -1
- package/types/src/wc-bridge.d.ts +23 -0
- package/types/src/wc-bridge.d.ts.map +1 -0
- package/types/subject/action.d.ts +37 -0
- package/types/subject/blank-fill.d.ts +79 -0
- package/types/subject/draft.d.ts +63 -0
- package/types/subject/index.d.ts +13 -0
- package/types/subject/layout.d.ts +7 -0
- package/types/subject/page-end.d.ts +16 -0
- package/types/subject/pagination.d.ts +23 -0
- package/types/subject/runtime.d.ts +12 -0
- package/types/subject/scale.d.ts +55 -0
- package/types/subject/shared-methods.d.ts +8 -0
- package/types/subject/shared-styles.d.ts +5 -0
- package/types/subject/single.d.ts +288 -0
- package/types/subject/sort-controller.d.ts +3 -0
- package/types/subject/sortable.d.ts +19 -0
- package/types/subject/sorting-card.d.ts +2 -0
- package/types/subject/text-fill.d.ts +88 -0
- package/types/subject/title-prefix.d.ts +2 -0
- package/types/subject/types.d.ts +12 -0
- package/types/tsconfig.tsbuildinfo +1 -1
- package/es/_virtual/_commonjsHelpers.mjs +0 -2
- package/es/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +0 -2
- package/es/_virtual/_plugin-vue_export-helper.mjs.map +0 -1
- package/es/_virtual/sortable.esm.mjs +0 -2
- package/es/_virtual/sortable.esm.mjs.map +0 -1
- package/es/_virtual/vuedraggable.umd.mjs +0 -2
- package/es/_virtual/vuedraggable.umd.mjs.map +0 -1
- package/es/_virtual/vuedraggable.umd2.mjs +0 -2
- package/es/_virtual/vuedraggable.umd2.mjs.map +0 -1
- package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs +0 -8
- package/es/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.mjs.map +0 -1
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -2
- package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +0 -1
- package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs +0 -2
- package/es/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.mjs.map +0 -1
- package/es/src/data-chart/src/analyze.mjs +0 -2
- package/es/src/data-chart/src/analyze.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/area.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/area.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/bar.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/bar.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/card.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/card.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs +0 -2
- package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs +0 -2
- package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.svg.mjs +0 -2
- package/es/src/data-chart/src/components/empty.svg.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.vue.mjs +0 -2
- package/es/src/data-chart/src/components/empty.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/empty.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/empty.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/funnel.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/funnel.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/line.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/line.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/pie.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/pie.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/radar.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/radar.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/components/scatter.vue3.mjs +0 -2
- package/es/src/data-chart/src/components/scatter.vue3.mjs.map +0 -1
- package/es/src/data-chart/src/components/table.vue.mjs +0 -2
- package/es/src/data-chart/src/components/table.vue.mjs.map +0 -1
- package/es/src/data-chart/src/components/table.vue2.mjs +0 -2
- package/es/src/data-chart/src/components/table.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/data-chart.vue.mjs +0 -2
- package/es/src/data-chart/src/data-chart.vue.mjs.map +0 -1
- package/es/src/data-chart/src/data-chart.vue2.mjs +0 -2
- package/es/src/data-chart/src/data-chart.vue2.mjs.map +0 -1
- package/es/src/data-chart/src/utils/config.mjs +0 -2
- package/es/src/data-chart/src/utils/config.mjs.map +0 -1
- package/es/src/data-chart/src/utils/injectionKeys.mjs +0 -2
- package/es/src/data-chart/src/utils/injectionKeys.mjs.map +0 -1
- package/es/src/data-chart/src/utils/mapData.mjs +0 -2
- package/es/src/data-chart/src/utils/mapData.mjs.map +0 -1
- package/es/src/data-chart/src/utils/safe-eval.mjs +0 -2
- package/es/src/data-chart/src/utils/safe-eval.mjs.map +0 -1
- package/es/src/data-chart/src/utils/types.mjs +0 -2
- package/es/src/data-chart/src/utils/types.mjs.map +0 -1
- package/es/src/data-chart/src/utils/useCharts.mjs +0 -2
- package/es/src/data-chart/src/utils/useCharts.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue2.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue2.mjs.map +0 -1
- package/es/src/file-upload/src/file-upload.vue3.mjs +0 -2
- package/es/src/file-upload/src/file-upload.vue3.mjs.map +0 -1
- package/es/src/fixed-action-bar/index.mjs +0 -2
- package/es/src/fixed-action-bar/index.mjs.map +0 -1
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +0 -2
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +0 -1
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +0 -2
- package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue2.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue2.mjs.map +0 -1
- package/es/src/image-upload/src/image-upload.vue3.mjs +0 -2
- package/es/src/image-upload/src/image-upload.vue3.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/composables.mjs +0 -2
- package/es/src/photo-crop-tool/src/composables.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +0 -2
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +0 -1
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +0 -2
- package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +0 -1
- package/es/src/subject-action/index.mjs +0 -2
- package/es/src/subject-action/index.mjs.map +0 -1
- package/es/src/subject-action/src/subject-action.vue.mjs +0 -2
- package/es/src/subject-action/src/subject-action.vue.mjs.map +0 -1
- package/es/src/subject-action/src/subject-action.vue2.mjs +0 -2
- package/es/src/subject-action/src/subject-action.vue2.mjs.map +0 -1
- package/es/src/subject-layout/index.mjs +0 -2
- package/es/src/subject-layout/index.mjs.map +0 -1
- package/es/src/subject-layout/src/subject-layout.vue.mjs +0 -2
- package/es/src/subject-layout/src/subject-layout.vue.mjs.map +0 -1
- package/es/src/subject-layout/src/subject-layout.vue2.mjs +0 -2
- package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +0 -1
- package/es/src/subject-list/index.mjs +0 -2
- package/es/src/subject-list/index.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-scale.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-scale.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-single.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-single.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-single.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +0 -2
- package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +0 -1
- package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +0 -2
- package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +0 -1
- package/es/src/subject-list/src/subject-list.vue.mjs +0 -2
- package/es/src/subject-list/src/subject-list.vue.mjs.map +0 -1
- package/es/src/subject-list/src/subject-list.vue2.mjs +0 -2
- package/es/src/subject-list/src/subject-list.vue2.mjs.map +0 -1
- package/es/src/subject-type/index.mjs +0 -2
- package/es/src/subject-type/index.mjs.map +0 -1
- package/es/src/subject-type/src/subject-type.vue.mjs +0 -2
- package/es/src/subject-type/src/subject-type.vue.mjs.map +0 -1
- package/es/src/subject-type/src/subject-type.vue2.mjs +0 -2
- package/es/src/subject-type/src/subject-type.vue2.mjs.map +0 -1
- package/lib/_virtual/_commonjsHelpers.cjs +0 -2
- package/lib/_virtual/_commonjsHelpers.cjs.map +0 -1
- package/lib/_virtual/_plugin-vue_export-helper.cjs +0 -2
- package/lib/_virtual/_plugin-vue_export-helper.cjs.map +0 -1
- package/lib/_virtual/sortable.esm.cjs +0 -2
- package/lib/_virtual/sortable.esm.cjs.map +0 -1
- package/lib/_virtual/vuedraggable.umd.cjs +0 -2
- package/lib/_virtual/vuedraggable.umd.cjs.map +0 -1
- package/lib/_virtual/vuedraggable.umd2.cjs +0 -2
- package/lib/_virtual/vuedraggable.umd2.cjs.map +0 -1
- package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs +0 -9
- package/lib/node_modules/.pnpm/sortablejs@1.14.0/node_modules/sortablejs/modular/sortable.esm.cjs.map +0 -1
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs +0 -2
- package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +0 -1
- package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs +0 -2
- package/lib/node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.18_typescript@5.9.2_/node_modules/vuedraggable/dist/vuedraggable.umd.cjs.map +0 -1
- package/lib/src/data-chart/src/analyze.cjs +0 -2
- package/lib/src/data-chart/src/analyze.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/area.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/area.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/bar.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/bar.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/card.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/card.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.svg.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.svg.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/empty.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/empty.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/funnel.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/funnel.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/line.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/line.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/pie.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/pie.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/radar.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/radar.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/components/scatter.vue3.cjs +0 -2
- package/lib/src/data-chart/src/components/scatter.vue3.cjs.map +0 -1
- package/lib/src/data-chart/src/components/table.vue.cjs +0 -2
- package/lib/src/data-chart/src/components/table.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/components/table.vue2.cjs +0 -2
- package/lib/src/data-chart/src/components/table.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/data-chart.vue.cjs +0 -2
- package/lib/src/data-chart/src/data-chart.vue.cjs.map +0 -1
- package/lib/src/data-chart/src/data-chart.vue2.cjs +0 -2
- package/lib/src/data-chart/src/data-chart.vue2.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/config.cjs +0 -2
- package/lib/src/data-chart/src/utils/config.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/injectionKeys.cjs +0 -2
- package/lib/src/data-chart/src/utils/injectionKeys.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/mapData.cjs +0 -2
- package/lib/src/data-chart/src/utils/mapData.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/safe-eval.cjs +0 -2
- package/lib/src/data-chart/src/utils/safe-eval.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/types.cjs +0 -2
- package/lib/src/data-chart/src/utils/types.cjs.map +0 -1
- package/lib/src/data-chart/src/utils/useCharts.cjs +0 -2
- package/lib/src/data-chart/src/utils/useCharts.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue2.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue2.cjs.map +0 -1
- package/lib/src/file-upload/src/file-upload.vue3.cjs +0 -2
- package/lib/src/file-upload/src/file-upload.vue3.cjs.map +0 -1
- package/lib/src/fixed-action-bar/index.cjs +0 -2
- package/lib/src/fixed-action-bar/index.cjs.map +0 -1
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +0 -2
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +0 -1
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs +0 -2
- package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue2.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue2.cjs.map +0 -1
- package/lib/src/image-upload/src/image-upload.vue3.cjs +0 -2
- package/lib/src/image-upload/src/image-upload.vue3.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/composables.cjs +0 -2
- package/lib/src/photo-crop-tool/src/composables.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +0 -2
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +0 -1
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs +0 -2
- package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs.map +0 -1
- package/lib/src/subject-action/index.cjs +0 -2
- package/lib/src/subject-action/index.cjs.map +0 -1
- package/lib/src/subject-action/src/subject-action.vue.cjs +0 -2
- package/lib/src/subject-action/src/subject-action.vue.cjs.map +0 -1
- package/lib/src/subject-action/src/subject-action.vue2.cjs +0 -2
- package/lib/src/subject-action/src/subject-action.vue2.cjs.map +0 -1
- package/lib/src/subject-layout/index.cjs +0 -2
- package/lib/src/subject-layout/index.cjs.map +0 -1
- package/lib/src/subject-layout/src/subject-layout.vue.cjs +0 -2
- package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +0 -1
- package/lib/src/subject-layout/src/subject-layout.vue2.cjs +0 -2
- package/lib/src/subject-layout/src/subject-layout.vue2.cjs.map +0 -1
- package/lib/src/subject-list/index.cjs +0 -2
- package/lib/src/subject-list/index.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-scale.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-scale.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-single.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-single.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-single.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs +0 -2
- package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs.map +0 -1
- package/lib/src/subject-list/src/subject-list.vue.cjs +0 -2
- package/lib/src/subject-list/src/subject-list.vue.cjs.map +0 -1
- package/lib/src/subject-list/src/subject-list.vue2.cjs +0 -2
- package/lib/src/subject-list/src/subject-list.vue2.cjs.map +0 -1
- package/lib/src/subject-type/index.cjs +0 -2
- package/lib/src/subject-type/index.cjs.map +0 -1
- package/lib/src/subject-type/src/subject-type.vue.cjs +0 -2
- package/lib/src/subject-type/src/subject-type.vue.cjs.map +0 -1
- package/lib/src/subject-type/src/subject-type.vue2.cjs +0 -2
- package/lib/src/subject-type/src/subject-type.vue2.cjs.map +0 -1
- package/theme-chalk/index.css +0 -1
- package/theme-chalk/index.scss +0 -21
- package/theme-chalk/src/base.css +0 -1
- package/theme-chalk/src/base.scss +0 -16
- package/theme-chalk/src/common/qxs-components.css +0 -1
- package/theme-chalk/src/common/qxs-components.scss +0 -4
- package/theme-chalk/src/common/qxs-variables.css +0 -1
- package/theme-chalk/src/common/qxs-variables.scss +0 -81
- package/theme-chalk/src/data-chart/empty.css +0 -1
- package/theme-chalk/src/data-chart/empty.scss +0 -24
- package/theme-chalk/src/data-chart/index.css +0 -1
- package/theme-chalk/src/data-chart/index.scss +0 -11
- package/theme-chalk/src/data-chart/table.css +0 -1
- package/theme-chalk/src/data-chart/table.scss +0 -43
- package/theme-chalk/src/dialog.css +0 -1
- package/theme-chalk/src/dialog.scss +0 -122
- package/theme-chalk/src/file-upload.css +0 -0
- package/theme-chalk/src/file-upload.scss +0 -7
- package/theme-chalk/src/fixed-action-bar.css +0 -1
- package/theme-chalk/src/fixed-action-bar.scss +0 -18
- package/theme-chalk/src/icon.css +0 -1
- package/theme-chalk/src/icon.scss +0 -35
- package/theme-chalk/src/image-upload.css +0 -1
- package/theme-chalk/src/image-upload.scss +0 -149
- package/theme-chalk/src/mixins/_var.css +0 -0
- package/theme-chalk/src/mixins/_var.scss +0 -24
- package/theme-chalk/src/mixins/config.css +0 -0
- package/theme-chalk/src/mixins/config.scss +0 -12
- package/theme-chalk/src/mixins/function.css +0 -0
- package/theme-chalk/src/mixins/function.scss +0 -95
- package/theme-chalk/src/mixins/mixins.css +0 -0
- package/theme-chalk/src/mixins/mixins.scss +0 -102
- package/theme-chalk/src/normalize.css +0 -1
- package/theme-chalk/src/normalize.scss +0 -11
- package/theme-chalk/src/photo-crop-tool.css +0 -1
- package/theme-chalk/src/photo-crop-tool.scss +0 -98
- package/theme-chalk/src/subject-action.css +0 -1
- package/theme-chalk/src/subject-action.scss +0 -78
- package/theme-chalk/src/subject-layout.css +0 -1
- package/theme-chalk/src/subject-layout.scss +0 -28
- package/theme-chalk/src/subject-list.css +0 -1
- package/theme-chalk/src/subject-list.scss +0 -568
- package/theme-chalk/src/subject-template.css +0 -1
- package/theme-chalk/src/subject-template.scss +0 -5
- package/theme-chalk/src/subject-type.css +0 -1
- package/theme-chalk/src/subject-type.scss +0 -42
- package/theme-chalk/src/tiny-mce-editor.css +0 -1
- package/theme-chalk/src/tiny-mce-editor.scss +0 -29
- package/theme-chalk/src/ui/button.css +0 -1
- package/theme-chalk/src/ui/button.scss +0 -173
- package/theme-chalk/src/ui/input.css +0 -1
- package/theme-chalk/src/ui/input.scss +0 -128
- package/theme-chalk/src/ui/table.css +0 -1
- package/theme-chalk/src/ui/table.scss +0 -166
- package/types/src/data-chart/src/analyze.d.ts +0 -23
- package/types/src/data-chart/src/analyze.d.ts.map +0 -1
- package/types/src/data-chart/src/components/area.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/area.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/bar.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/bar.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/card.vue.d.ts +0 -27
- package/types/src/data-chart/src/components/card.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/empty.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/empty.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/funnel.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/funnel.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/line.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/line.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/pie.vue.d.ts +0 -12
- package/types/src/data-chart/src/components/pie.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/radar.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/radar.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/scatter.vue.d.ts +0 -11
- package/types/src/data-chart/src/components/scatter.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/components/table.vue.d.ts +0 -27
- package/types/src/data-chart/src/components/table.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/data-chart.vue.d.ts +0 -28
- package/types/src/data-chart/src/data-chart.vue.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/config.d.ts +0 -41
- package/types/src/data-chart/src/utils/config.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
- package/types/src/data-chart/src/utils/injectionKeys.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/mapData.d.ts +0 -64
- package/types/src/data-chart/src/utils/mapData.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/safe-eval.d.ts +0 -9
- package/types/src/data-chart/src/utils/safe-eval.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/types.d.ts +0 -72
- package/types/src/data-chart/src/utils/types.d.ts.map +0 -1
- package/types/src/data-chart/src/utils/useCharts.d.ts +0 -16
- package/types/src/data-chart/src/utils/useCharts.d.ts.map +0 -1
- package/types/src/file-upload/src/file-upload.vue.d.ts +0 -34
- package/types/src/file-upload/src/file-upload.vue.d.ts.map +0 -1
- package/types/src/fixed-action-bar/index.d.ts +0 -56
- package/types/src/fixed-action-bar/index.d.ts.map +0 -1
- package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -31
- package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +0 -1
- package/types/src/image-upload/src/image-upload.vue.d.ts +0 -49
- package/types/src/image-upload/src/image-upload.vue.d.ts.map +0 -1
- package/types/src/photo-crop-tool/src/composables.d.ts +0 -7
- package/types/src/photo-crop-tool/src/composables.d.ts.map +0 -1
- package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
- package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts.map +0 -1
- package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -25
- package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pie.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/pie.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PieSeriesOption } from 'echarts/charts'\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { orderBy } from 'lodash-es'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartPie',\n})\nconst {\n chartData,\n subShowType = 'pie-simple',\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n subShowType: string\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst dataChartPie = ref(null)\nconst pieChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, data, modelName } = chartData\n const colDescLength = colDesc.length\n const config = {\n title: { text: modelName },\n series: colDesc.map((item, index) => {\n const seriesItem: PieSeriesOption = {\n name: item,\n type: 'pie',\n center: ['50%', '50%'],\n data: [],\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)',\n },\n },\n label: {\n formatter: '{b}:{c}({d}%)',\n rich: {\n b: {\n color: '#4C5058',\n fontSize: 14,\n fontWeight: 'bold',\n lineHeight: 33,\n },\n },\n },\n }\n\n let cutNum = 5\n const currentItemData = data.filter(row => row[item] !== undefined)\n const orderByData = orderBy(currentItemData, [item], ['desc'])\n // 总数\n const totalDesc = orderByData.reduce((prev, cur) => {\n const value = Number(cur[item]) || 0\n return Number.isNaN(value) ? prev : prev + value\n }, 0)\n if (currentItemData.length > cutNum) {\n while (cutNum < 9) {\n const headerData = orderByData.slice(0, cutNum)\n // 前 cutNum 个总数\n const headerTotal = headerData.reduce(\n (prev, cur) => prev + Number(cur[item]),\n 0,\n )\n // 前N项总占比\n const headerScale = headerTotal / totalDesc\n if (headerScale > 0.9 || cutNum === 8) {\n const footerData = orderByData.slice(cutNum)\n\n // 处理前N项数据\n seriesItem.data = headerData.map(headerItem => ({\n name: xGroupByDesc?.colDesc\n ? String(headerItem[xGroupByDesc.colDesc] || '')\n : '',\n value: Number(headerItem[item]) || 0,\n }))\n\n // 添加\"其它\"项,包含剩余所有数据\n const footerTotal = footerData.reduce(\n (prev, cur) => prev + Number(cur[item]),\n 0,\n )\n\n if (footerTotal > 0 && seriesItem.data) {\n seriesItem.data.push({\n name: '其它',\n value: footerTotal,\n })\n }\n\n break\n }\n else {\n cutNum++\n }\n }\n }\n else {\n seriesItem.data = currentItemData.map(yItem => ({\n name: xGroupByDesc?.colDesc ? (yItem[xGroupByDesc.colDesc] || '') : '',\n value: Number(yItem[item] || 0),\n }))\n }\n\n if (colDescLength === 1) {\n seriesItem.center = ['50%', '60%']\n }\n else if (colDescLength === 2) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n else {\n seriesItem.right = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '60%']\n }\n }\n else if (colDescLength === 3) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = ''\n seriesItem.center = ['40%', '78%']\n }\n else if (index === 1) {\n seriesItem.right = ''\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '78%']\n }\n else {\n seriesItem.right = '40%'\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n }\n else if (colDescLength === 4) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = ''\n seriesItem.center = ['40%', '78%']\n }\n else if (index === 1) {\n seriesItem.right = ''\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '78%']\n }\n else if (index === 2) {\n seriesItem.right = '40%'\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n else {\n seriesItem.right = ''\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '60%']\n }\n }\n // 处理图表形状\n switch (subShowType) {\n case 'pie-borderRadius':\n seriesItem.radius = ['50%', '70%']\n break\n case 'pie-simple':\n seriesItem.radius = '50%'\n break\n default:\n seriesItem.radius = '50%'\n break\n }\n return seriesItem\n }),\n }\n console.log(config)\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartPie,\n chartOptions: pieChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartPie\"\n class=\"data-chart-pie\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-pie {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["merge","inject","InjectionChartMerge","v","dataChartPie","ref","pieChartOptions","computed","colDesc","xGroupByDesc","data","modelName","__props","chartData","colDescLength","length","config","title","text","series","map","item","index","seriesItem","name","type","center","emphasis","itemStyle","shadowBlur","shadowOffsetX","shadowColor","label","formatter","rich","b","color","fontSize","fontWeight","lineHeight","cutNum","currentItemData","filter","row","orderByData","orderBy","totalDesc","reduce","prev","cur","value","Number","isNaN","headerData","slice","footerData","headerItem","String","footerTotal","push","yItem","right","left","bottom","top","subShowType","radius","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pie.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"radar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as a,ref as r,inject as e,computed as t,createElementBlock as o,openBlock as s}from"vue";import{uniq as l}from"lodash-es";import{InjectionChartMerge as m}from"../utils/injectionKeys.mjs";import{useCharts as u}from"../utils/useCharts.mjs";var p=a({name:"DataChartRadar",__name:"radar",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(a,{expose:p}){const c=r(),i=e(m,a=>a,!0),d=t(()=>{const{colDesc:r,xGroupByDesc:e,modelName:t,data:o}=a.chartData;e?.groupByValues||(e.groupByValues=[]),e.groupByValues=l(o.map(a=>a[e.colDesc||""]).filter(a=>a));const s={title:{text:t},radar:{indicator:e?.groupByValues?.map(a=>({name:a,max:Math.max(...o.map(a=>Number(a[r[0]])))}))||[]},series:[{name:e?.colDesc,type:"radar",tooltip:{trigger:"item"},data:r.map(a=>({name:a,value:e?.groupByValues?.map(r=>o.map(t=>r===t[e.colDesc||""]?t[a]:null).filter(a=>a).reduce((a,r)=>Number(a||0)+Number(r||0),0))}))}]};return i(s,a.chartOptions)}),{myChart:n}=u({chartDOM:c,chartOptions:d,chartData:t(()=>a.chartData),lazyLoad:a.lazyLoad});return p({myChart:n}),(a,r)=>(s(),o("div",{ref_key:"dataChartRadar",ref:c,class:"data-chart-radar"},null,512))}});export{p as default};
|
|
2
|
-
//# sourceMappingURL=radar.vue2.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"radar.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/radar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { uniq } from 'lodash-es'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartRadar',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartRadar = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\nconst radarChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n\n if (!xGroupByDesc?.groupByValues) {\n xGroupByDesc.groupByValues = []\n }\n xGroupByDesc.groupByValues = uniq(data.map((item) => {\n return item[xGroupByDesc.colDesc || ''] as string\n }).filter(v => v))\n\n const config = {\n title: {\n text: modelName,\n },\n radar: {\n indicator: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return {\n name: groupByValuesItem,\n max: Math.max(...data.map(item => Number(item[colDesc[0]]))),\n }\n }) || [],\n },\n series: [{\n name: xGroupByDesc?.colDesc,\n type: 'radar',\n tooltip: {\n trigger: 'item',\n },\n data: colDesc.map(colDescItem => ({\n name: colDescItem,\n value: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return (data.map((dataItem) => {\n if (groupByValuesItem === dataItem[xGroupByDesc.colDesc || '']) {\n return dataItem[colDescItem]\n }\n return null\n }).filter(v => v)).reduce((pre, cur) => Number(pre || 0) + Number(cur || 0), 0)\n }),\n })),\n }],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartRadar,\n chartOptions: radarChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartRadar\"\n class=\"data-chart-radar\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-radar {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartRadar","ref","merge","inject","InjectionChartMerge","v","radarChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","groupByValues","uniq","map","item","filter","config","title","text","radar","indicator","groupByValuesItem","name","max","Math","Number","series","type","tooltip","trigger","colDescItem","value","dataItem","reduce","pre","cur","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"ucAqBA,MAAMA,EAAiBC,IACjBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GACnDC,EAAoBC,EAAwB,KAChD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAE9CJ,GAAcK,gBACjBL,EAAaK,cAAgB,IAE/BL,EAAaK,cAAgBC,EAAKJ,EAAKK,IAAKC,GACnCA,EAAKR,EAAaD,SAAW,KACnCU,OAAOb,GAAKA,IAEf,MAAMc,EAAS,CACbC,MAAO,CACLC,KAAMX,GAERY,MAAO,CACLC,UAAWd,GAAcK,eAAeE,IAAKQ,IACpC,CACLC,KAAMD,EACNE,IAAKC,KAAKD,OAAOf,EAAKK,IAAIC,GAAQW,OAAOX,EAAKT,EAAQ,WAEpD,IAERqB,OAAQ,CAAC,CACPJ,KAAMhB,GAAcD,QACpBsB,KAAM,QACNC,QAAS,CACPC,QAAS,QAEXrB,KAAMH,EAAQQ,IAAIiB,IAAA,CAChBR,KAAMQ,EACNC,MAAOzB,GAAcK,eAAeE,IAAKQ,GAC/Bb,EAAKK,IAAKmB,GACZX,IAAsBW,EAAS1B,EAAaD,SAAW,IAClD2B,EAASF,GAEX,MACNf,UAAYb,GAAI+B,OAAO,CAACC,EAAKC,IAAQV,OAAOS,GAAO,GAAKT,OAAOU,GAAO,GAAI,UAMrF,OAAOpC,EAAMiB,EAAQP,EAAA2B,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAU1C,EACVuC,aAAcjC,EACdO,UAAWN,EAAS,IAAMK,EAAAC,WAC1B8B,SAAO/B,EAAA+B,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,iBAAJ5C,IAAID,EACJ8C,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"radar.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter-simple.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as t,ref as a,inject as e,computed as r,createElementBlock as s,openBlock as l}from"vue";import{InjectionChartMerge as o}from"../utils/injectionKeys.mjs";import{useCharts as m}from"../utils/useCharts.mjs";var c=t({name:"DataChartScatterSimple",__name:"scatter-simple",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(t,{expose:c}){const i=a(),p=e(o,t=>t,!0),u=r(()=>{const{colDesc:a,xGroupByDesc:e,modelName:r,data:s}=t.chartData,l={title:{text:r},tooltip:{formatter:t=>t.value.length>1?`${t.seriesName} :<br/>${t.value[0]} ${t.value[1]} `:`${t.seriesName} :<br/>${t.name} : ${t.value} `},series:a.map(t=>({symbolSize:20,name:t,data:s.map(a=>[a[t],a[e?.colDesc||""]]),type:"scatter"}))};return p(l,t.chartOptions)}),{myChart:n}=m({chartDOM:i,chartOptions:u,chartData:r(()=>t.chartData),lazyLoad:t.lazyLoad});return c({myChart:n}),(t,a)=>(l(),s("div",{ref_key:"dataChartScatterSimple",ref:i,class:"data-chart-scatter-simple"},null,512))}});export{c as default};
|
|
2
|
-
//# sourceMappingURL=scatter-simple.vue2.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter-simple.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter-simple.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatterSimple',\n})\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst dataChartScatterSimple = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n const config = {\n title: {\n text: modelName,\n },\n tooltip: {\n formatter(params: { value: string, seriesName: string, name: string }) {\n if (params.value.length > 1) {\n return (\n `${params.seriesName\n } :<br/>${params.value[0]\n } ${params.value[1]\n } `\n )\n }\n else {\n return (\n `${params.seriesName\n } :<br/>${params.name\n } : ${params.value\n } `\n )\n }\n },\n },\n series: colDesc.map((colDescItem) => {\n return {\n symbolSize: 20,\n name: colDescItem,\n data: data.map((dataItem) => {\n return [dataItem[colDescItem], dataItem[xGroupByDesc?.colDesc || '']]\n }),\n type: 'scatter',\n }\n }),\n }\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatterSimple,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatterSimple\"\n class=\"data-chart-scatter-simple\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter-simple {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatterSimple","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","config","title","text","tooltip","formatter","params","value","length","seriesName","name","series","map","colDescItem","symbolSize","dataItem","type","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"ubAkBA,MAAMA,EAAyBC,IACzBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAwB,KAClD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAC7CC,EAAS,CACbC,MAAO,CACLC,KAAMN,GAERO,QAAS,CACPC,UAAUC,GACJA,EAAOC,MAAMC,OAAS,EAEtB,GAAGF,EAAOG,oBACAH,EAAOC,MAAM,MACnBD,EAAOC,MAAM,MAMjB,GAAGD,EAAOG,oBACAH,EAAOI,UACXJ,EAAOC,UAMrBI,OAAQhB,EAAQiB,IAAKC,IACZ,CACLC,WAAY,GACZJ,KAAMG,EACNf,KAAMA,EAAKc,IAAKG,GACP,CAACA,EAASF,GAAcE,EAASnB,GAAcD,SAAW,MAEnEqB,KAAM,cAIZ,OAAO3B,EAAMY,EAAQF,EAAAkB,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAUjC,EACV8B,aAAcxB,EACdO,UAAWN,EAAS,IAAMK,EAAAC,WAC1BqB,SAAOtB,EAAAsB,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,yBAAJnC,IAAID,EACJqC,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter-simple.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as t,ref as a,inject as r,computed as e,createElementBlock as s,openBlock as o}from"vue";import{InjectionChartMerge as i}from"../utils/injectionKeys.mjs";import{useCharts as c}from"../utils/useCharts.mjs";var p=t({name:"DataChartScatter",__name:"scatter",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(t,{expose:p}){const l=a(),h=r(i,t=>t,!0),m=e(()=>h({xAxis:{},yAxis:{},series:[{symbolSize:20,data:[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82],[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]],type:"scatter"}]},t.chartOptions)),{myChart:u}=c({chartDOM:l,chartOptions:m,chartData:e(()=>t.chartData),lazyLoad:t.lazyLoad});return p({myChart:u}),(t,a)=>(o(),s("div",{ref_key:"dataChartScatter",ref:l,class:"data-chart-scatter"},null,512))}});export{p as default};
|
|
2
|
-
//# sourceMappingURL=scatter.vue2.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatter',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartScatter = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const config = {\n xAxis: {},\n yAxis: {},\n series: [\n {\n symbolSize: 20,\n data: [\n [10.0, 8.04],\n [8.07, 6.95],\n [13.0, 7.58],\n [9.05, 8.81],\n [11.0, 8.33],\n [14.0, 7.66],\n [13.4, 6.81],\n [10.0, 6.33],\n [14.0, 8.96],\n [12.5, 6.82],\n [9.15, 7.2],\n [11.5, 7.2],\n [3.03, 4.23],\n [12.2, 7.83],\n [2.02, 4.47],\n [1.05, 3.33],\n [4.05, 4.96],\n [6.03, 7.24],\n [12.0, 6.26],\n [12.0, 8.84],\n [7.08, 5.82],\n [5.02, 5.68],\n ],\n type: 'scatter',\n },\n ],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatter,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatter\"\n class=\"data-chart-scatter\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatter","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","xAxis","yAxis","series","symbolSize","data","type","__props","chartOptions","myChart","useCharts","chartDOM","chartData","lazyLoad","__expose","_createElementBlock","class"],"mappings":"0aAoBA,MAAMA,EAAmBC,IACnBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAwB,IAoC3CL,EAnCQ,CACbM,MAAO,CAAA,EACPC,MAAO,CAAA,EACPC,OAAQ,CACN,CACEC,WAAY,GACZC,KAAM,CACJ,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,KACP,CAAC,KAAM,KACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,OAETC,KAAM,aAKSC,EAAAC,gBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAUlB,EACVe,aAAcT,EACda,UAAWZ,EAAS,IAAMO,EAAAK,WAC1BC,SAAON,EAAAM,kBAITC,EAAa,CACXL,wBAKAM,EAGE,MAAA,SAFI,mBAAJrB,IAAID,EACJuB,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scatter.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as e,computed as t,createElementBlock as a,openBlock as o,normalizeClass as l,unref as r,createCommentVNode as c,createVNode as s,createElementVNode as p,toDisplayString as i,withCtx as m,Fragment as n,renderList as u,createBlock as d,createTextVNode as h}from"vue";import{useNamespace as D}from"@qxs-bns/hooks";import{QxsTable as f,QxsTableColumn as b}from"../../../ui/table/index.mjs";import y from"./empty.vue.mjs";const v={key:0,class:"title"};var w=e({name:"DataChartTable",__name:"table",props:{chartData:{type:Object,default:()=>({colDesc:[],xGroupByDesc:[],data:[],modelName:""})}},setup(e){const w=e,x=D("data-chart"),g=t(()=>w.chartData.groupByDesc.find(e=>!e.xAxis));function $(e){if(!e)return 100;const t=e.split("").reduce((e,t)=>/[a-zA-Z0-9]/.test(t)?e+8:/[\u4e00-\u9fa5]/.test(t)?e+14:e+10,0);return Math.max(t+40,100)}return(t,D)=>(o(),a("div",{class:l([r(x).e("table")])},[e.chartData.modelName?(o(),a("p",v,[p("span",null,i(e.chartData.modelName),1)])):c("v-if",!0),s(r(f),{class:"customize-table",data:e.chartData.data,stripe:"",border:"",height:"100%"},{empty:m(()=>[s(y)]),default:m(()=>[(o(!0),a(n,null,u(e.chartData.groupByDesc,(e,t)=>(o(),d(r(b),{key:`${e.colDesc}${e.groupByDesc}${t}`,align:"center","show-overflow-tooltip":"",sortable:"","min-width":`${$(e.colDesc??null)}px`,prop:e.colDesc||""},{header:m(()=>[h(i(e.colDesc),1)]),default:m(t=>[h(i((g.value&&(g.value.colDesc,e.colDesc),t.row[e.colDesc||""]||"--")),1)]),_:2},1032,["min-width","prop"]))),128)),(o(!0),a(n,null,u(e.chartData.colDesc,(e,t)=>(o(),d(r(b),{key:e+t,align:"center","min-width":`${$(e)}px`,label:e,"show-overflow-tooltip":"",sortable:"",prop:e},{header:m(()=>[h(i(e),1)]),_:2},1032,["min-width","label","prop"]))),128))]),_:1},8,["data"])],2))}});export{w as default};
|
|
2
|
-
//# sourceMappingURL=table.vue.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/table.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { IFormatPublicData } from '../utils/types'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { QxsTable, QxsTableColumn } from '../../../ui/table'\nimport { computed } from 'vue'\nimport Empty from './empty.vue'\n\ndefineOptions({\n name: 'DataChartTable',\n})\n\nconst props = defineProps({\n chartData: {\n type: Object as PropType<IFormatPublicData>,\n default: () => ({\n colDesc: [],\n xGroupByDesc: [],\n data: [],\n modelName: '',\n }),\n },\n})\n\nconst ns = useNamespace('data-chart')\n\nconst yGroupByDesc = computed(() => {\n return props.chartData.groupByDesc.find(item => !item.xAxis)\n})\n\nfunction baseWidth(str: string | null): number {\n if (!str) return 100\n const strWidth = str.split('').reduce((width: number, char: string) => {\n if (/[a-zA-Z0-9]/.test(char)) {\n return width + 8\n }\n else if (/[\\u4e00-\\u9fa5]/.test(char)) {\n return width + 14\n }\n return width + 10\n }, 0)\n return Math.max(strWidth + 40, 100)\n}\n</script>\n\n<template>\n <div :class=\"[ns.e('table')]\">\n <p\n v-if=\"chartData.modelName\"\n class=\"title\"\n >\n <span>{{ chartData.modelName }}</span>\n </p>\n <QxsTable\n class=\"customize-table\"\n :data=\"chartData.data\"\n stripe\n border\n height=\"100%\"\n >\n <QxsTableColumn\n v-for=\"(item, index) in chartData.groupByDesc\"\n :key=\"`${item.colDesc}${item.groupByDesc}${index}`\"\n align=\"center\"\n show-overflow-tooltip\n sortable\n :min-width=\"`${baseWidth(item.colDesc ?? null)}px`\"\n :prop=\"item.colDesc || ''\"\n >\n <template #header>\n {{ item.colDesc }}\n </template>\n <template #default=\"scoped\">\n {{ (yGroupByDesc && yGroupByDesc.colDesc === item.colDesc ? scoped.row[item.colDesc || ''] : scoped.row[item.colDesc || '']) || '--' }}\n </template>\n </QxsTableColumn>\n <QxsTableColumn\n v-for=\"(item, index) in chartData.colDesc\"\n :key=\"item + index\"\n align=\"center\"\n :min-width=\"`${baseWidth(item)}px`\"\n :label=\"item\"\n show-overflow-tooltip\n sortable\n :prop=\"item\"\n >\n <template #header>\n {{ item }}\n </template>\n </QxsTableColumn>\n <template #empty>\n <Empty />\n </template>\n </QxsTable>\n </div>\n</template>\n"],"names":["props","__props","ns","useNamespace","yGroupByDesc","computed","chartData","groupByDesc","find","item","xAxis","baseWidth","str","strWidth","split","reduce","width","char","test","Math","max","_createElementBlock","class","_normalizeClass","_unref","e","modelName","_openBlock","_hoisted_1","_createElementVNode","_toDisplayString","_createVNode","QxsTable","data","stripe","border","height","empty","Empty","_Fragment","index","_createBlock","QxsTableColumn","key","colDesc","align","sortable","prop","header","_createTextVNode","default","_withCtx","scoped","value","row","label"],"mappings":"8mBAYA,MAAMA,EAAQC,EAYRC,EAAKC,EAAa,cAElBC,EAAeC,EAAS,IACrBL,EAAMM,UAAUC,YAAYC,KAAKC,IAASA,EAAKC,QAGxD,SAASC,EAAUC,GACjB,IAAKA,EAAK,OAAO,IACjB,MAAMC,EAAWD,EAAIE,MAAM,IAAIC,OAAO,CAACC,EAAeC,IAChD,cAAcC,KAAKD,GACdD,EAAQ,EAER,kBAAkBE,KAAKD,GACvBD,EAAQ,GAEVA,EAAQ,GACd,GACH,OAAOG,KAAKC,IAAIP,EAAW,GAAI,IACjC,mBAIEQ,EAgDM,MAAA,CAhDAC,MAAKC,EAAA,CAAGC,EAAAtB,GAAGuB,EAAC,aAERxB,EAAAK,UAAUoB,WADlBC,IAAAN,EAKI,IALJO,EAKI,CADFC,EAAsC,OAAA,KAAAC,EAA7B7B,EAAAK,UAAUoB,WAAS,mBAE9BK,EAwCWP,EAAAQ,GAAA,CAvCTV,MAAM,kBACLW,KAAMhC,EAAAK,UAAU2B,KACjBC,OAAA,GACAC,OAAA,GACAC,OAAO,SAgCIC,QACT,IAAS,CAATN,EAASO,eA9BT,IAA8C,EADhDX,GAAA,GAAAN,EAeiBkB,SAdStC,EAAAK,UAAUC,YAAW,CAArCE,EAAM+B,SADhBC,EAeiBjB,EAAAkB,GAAA,CAbdC,IAAG,GAAKlC,EAAKmC,UAAUnC,EAAKF,cAAciC,IAC3CK,MAAM,SACN,wBAAA,GACAC,SAAA,GACC,YAAS,GAAKnC,EAAUF,EAAKmC,SAAO,UACpCG,KAAMtC,EAAKmC,SAAO,KAERI,SACT,IAAkB,CAAfC,EAAAnB,EAAArB,EAAKmC,SAAO,KAENM,QAAOC,EACuHC,GAD/G,MACpBhD,EAAAiD,QAAgBjD,QAAawC,QAAYnC,EAAKmC,SAAUQ,EAAOE,IAAI7C,EAAKmC,SAAO,KAAiC,OAAA,8CAGxHjB,GAAA,GAAAN,EAaiBkB,SAZStC,EAAAK,UAAUsC,QAAO,CAAjCnC,EAAM+B,SADhBC,EAaiBjB,EAAAkB,GAAA,CAXdC,IAAKlC,EAAO+B,EACbK,MAAM,SACL,YAAS,GAAKlC,EAAUF,OACxB8C,MAAO9C,EACR,wBAAA,GACAqC,SAAA,GACCC,KAAMtC,IAEIuC,SACT,IAAU,KAAPvC,GAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as e,ref as t,computed as o,provide as r,createBlock as a,openBlock as s,resolveDynamicComponent as m,normalizeClass as p,unref as n}from"vue";import{useNamespace as i}from"@qxs-bns/hooks";import{JsonToExcel as l}from"@qxs-bns/utils";import{cloneDeep as u,merge as c}from"lodash-es";import*as f from"./analyze.mjs";import d from"./components/area.vue.mjs";import y from"./components/bar.vue.mjs";import h from"./components/card.vue.mjs";import j from"./components/funnel.vue.mjs";import v from"./components/line.vue.mjs";import b from"./components/pie.vue.mjs";import g from"./components/radar.vue.mjs";import w from"./components/scatter-simple.vue.mjs";import D from"./components/scatter.vue.mjs";import x from"./components/table.vue.mjs";import*as C from"./utils/config.mjs";import{defaultChartOption as S}from"./utils/config.mjs";import{InjectionChartMerge as T}from"./utils/injectionKeys.mjs";import{safeEvalConfig as q}from"./utils/safe-eval.mjs";import*as N from"./utils/types.mjs";import{useDataToExcelJson as B}from"./utils/useCharts.mjs";var z=e({name:"QxsDataChart",__name:"data-chart",props:{modelName:{type:String,required:!1,default:""},showTypeName:{type:String,required:!1,default:"table"},subShowType:{type:String,required:!1},data:{type:Object,required:!1,default:()=>({data:[],desc:{colDesc:[],showDesc:{showType:0,chartOptions:"{}",jsCodeSnippet:""},groupByDesc:[]}})},chartOptions:{type:null,required:!1,default:()=>({})},jsCodeSnippet:{type:String,required:!1,default:""},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:z}){const O=i("data-chart"),k=t(null),_={analyze:f,config:C,types:N},A={table:x,bar:y,line:v,pie:b,radar:g,scatter:D,funnel:j,area:d,card:h,"scatter-simple":w},L=o(()=>u(S[e.showTypeName])),Q=o(()=>{const{desc:{colDesc:t=[],groupByDesc:o=[]}={},data:r=[]}=e.data;let a=[],s=null;const m=o;a=m?.map(e=>(e.xAxis&&(s=e),e))||[];const p=s&&s.colDesc?r.filter(e=>{const t=s.colDesc;return e&&t&&void 0!==e[t]&&null!==e[t]}):r;return{colDesc:t||[],modelName:e.modelName,subShowType:e.subShowType,xGroupByDesc:s||{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:a,data:p}});function E(){if("table"===e.showTypeName)return null;const t=k.value;return t&&"function"==typeof t.myChart?t.myChart():null}return z({exportExal:function(){if(0===e.data.data.length)return;const t=B(e.data);l(e.modelName,t)},QxsDataChartConfig:_,myChart:o(()=>E()),getMyChart:E}),r(T,function(t,o){let r=c({},L.value,t,o)||{};if(e.jsCodeSnippet)try{r=q(e.jsCodeSnippet,r)}catch(e){}return r}),(e,t)=>(s(),a(m(A[e.showTypeName]),{ref_key:"myChartRef",ref:k,key:e.showTypeName,class:p([n(O).e("wrapper")]),"sub-show-type":e.subShowType,"chart-data":Q.value,"chart-options":e.chartOptions,"lazy-load":e.lazyLoad},null,8,["class","sub-show-type","chart-data","chart-options","lazy-load"]))}});export{z as default};
|
|
2
|
-
//# sourceMappingURL=data-chart.vue.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-chart.vue.mjs","sources":["../../../../../../packages/components/src/data-chart/src/data-chart.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ECharts } from 'echarts'\nimport type { EChartData, EChartsOption, IconRow, IFormatPublicData } from './utils/types'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { JsonToExcel } from '@qxs-bns/utils'\nimport { cloneDeep, merge as lodashMerge } from 'lodash-es'\nimport { computed, provide, ref } from 'vue'\nimport * as analyze from './analyze'\nimport Area from './components/area.vue'\nimport Bar from './components/bar.vue'\nimport Card from './components/card.vue'\nimport Funnel from './components/funnel.vue'\nimport Line from './components/line.vue'\nimport Pie from './components/pie.vue'\nimport Radar from './components/radar.vue'\nimport ScatterSimple from './components/scatter-simple.vue'\nimport Scatter from './components/scatter.vue'\nimport Table from './components/table.vue'\nimport * as config from './utils/config'\nimport { defaultChartOption } from './utils/config'\nimport { InjectionChartMerge } from './utils/injectionKeys'\nimport { safeEvalConfig } from './utils/safe-eval'\nimport * as types from './utils/types'\nimport { useDataToExcelJson } from './utils/useCharts'\n\ndefineOptions({\n name: 'QxsDataChart',\n})\nconst {\n showTypeName = 'table',\n subShowType,\n modelName = '',\n data: propData = {\n data: [],\n desc: {\n colDesc: [],\n showDesc: {\n showType: 0,\n chartOptions: '{}',\n jsCodeSnippet: '',\n },\n groupByDesc: [],\n },\n },\n chartOptions = {},\n jsCodeSnippet = '',\n lazyLoad = true,\n} = defineProps<{\n modelName?: string\n showTypeName?: IconRow['showTypeName']\n subShowType?: string\n data?: EChartData\n chartOptions?: EChartsOption\n jsCodeSnippet?: string\n lazyLoad?: boolean\n}>()\n\nconst ns = useNamespace('data-chart')\n\n// 子组件引用\nconst myChartRef = ref<any>(null)\n\nconst QxsDataChartConfig = {\n analyze,\n config,\n types,\n}\nconst coms: {\n [key: string]: any\n} = {\n 'table': Table,\n 'bar': Bar,\n 'line': Line,\n 'pie': Pie,\n 'radar': Radar,\n 'scatter': Scatter,\n 'funnel': Funnel,\n 'area': Area,\n 'card': Card,\n 'scatter-simple': ScatterSimple,\n}\n\nconst defaultChartOptionCopy = computed(() => {\n return cloneDeep(defaultChartOption[showTypeName])\n})\n\nconst formatPublicData = computed<IFormatPublicData>(() => {\n const { desc: { colDesc = [], groupByDesc = [] } = {}, data = [] } = propData\n\n // 处理 X 轴数据\n let xValue: EChartData['desc']['groupByDesc'] = []\n\n let xGroupByDesc: EChartData['desc']['groupByDesc'][0] | null = null\n const typedGroupByDesc = groupByDesc as EChartData['desc']['groupByDesc']\n xValue = typedGroupByDesc?.map((groupByDescItem) => {\n // if (groupByDescItem.colValues) {\n // groupByDescItem.colValuesDesc = {}\n // groupByDescItem.colValues.split(',')?.forEach((item) => {\n // const [key, value] = item.split(':')\n // groupByDescItem.colValuesDesc[key] = value\n // })\n // }\n if (groupByDescItem.xAxis) {\n xGroupByDesc = groupByDescItem\n }\n return groupByDescItem\n }) || []\n\n // 修复数据过滤逻辑,避免因为字段不存在导致数据被过滤掉\n const dataValue = xGroupByDesc && (xGroupByDesc as EChartData['desc']['groupByDesc'][0]).colDesc\n ? data.filter((item) => {\n const colDescKey = (xGroupByDesc as EChartData['desc']['groupByDesc'][0]).colDesc\n return item && colDescKey && (item[colDescKey] !== undefined && item[colDescKey] !== null)\n })\n : data\n\n // if (xGroupByDesc && xGroupByDesc.colValuesDesc && Object.keys(xGroupByDesc.colValuesDesc).length) {\n // const { colDesc: colDescItem, colValuesDesc } = xGroupByDesc\n // console.log('colDesc: colDescItem, colValuesDesc: ', colDescItem, colValuesDesc)\n // dataValue = dataValue.map((item) => {\n // if (typeof item[colDescItem] === 'number') {\n // item[colDescItem] = colValuesDesc[item[colDescItem]]\n // }\n // return item\n // })\n // }\n\n const mergeConfig = {\n colDesc: colDesc || [],\n modelName,\n subShowType,\n xGroupByDesc: xGroupByDesc || {\n colDesc: '',\n groupByDesc: '',\n groupByValues: [],\n xAxis: false,\n },\n groupByDesc: xValue,\n data: dataValue,\n }\n return mergeConfig\n})\n\n// 导出数据\nfunction exportExal() {\n if (propData.data.length === 0) {\n // useMessage.error('暂无数据')\n console.log('暂无数据')\n return\n }\n const arr = useDataToExcelJson(propData)\n JsonToExcel(modelName, arr)\n}\nfunction merge(config: EChartsOption, defaultConfig: EChartsOption) {\n const mergeOpt = lodashMerge({}, defaultChartOptionCopy.value, config, defaultConfig)\n let conf = mergeOpt || {}\n\n if (jsCodeSnippet) {\n try {\n // 使用安全的配置处理函数\n conf = safeEvalConfig(jsCodeSnippet, conf)\n }\n catch (error) {\n console.error('代码执行失败:', error)\n }\n }\n\n return conf\n}\n\n// 获取内部 myChart 实例的方法\nfunction getMyChart(): ECharts | null {\n // 对于 table 类型,没有 myChart 实例\n if (showTypeName === 'table') {\n return null\n }\n\n // 尝试从子组件获取 myChart 实例\n const childComponent = myChartRef.value\n if (!childComponent) {\n return null\n }\n\n // 检查子组件是否有 myChart 方法(来自 useCharts)\n if (typeof childComponent.myChart === 'function') {\n return childComponent.myChart()\n }\n\n return null\n}\n\n// 为了保持向后兼容,提供 myChart 计算属性\nconst myChart = computed(() => getMyChart())\n\ndefineExpose({\n exportExal,\n QxsDataChartConfig,\n myChart,\n getMyChart,\n})\nprovide(InjectionChartMerge, merge)\n</script>\n\n<template>\n <component\n :is=\"coms[showTypeName]\"\n ref=\"myChartRef\"\n :key=\"showTypeName\"\n :class=\"[ns.e('wrapper')]\"\n :sub-show-type=\"subShowType\"\n :chart-data=\"formatPublicData\"\n :chart-options=\"chartOptions\"\n :lazy-load=\"lazyLoad\"\n />\n</template>\n"],"names":["ns","useNamespace","myChartRef","ref","QxsDataChartConfig","analyze","config","types","coms","table","Table","bar","Bar","line","Line","pie","Pie","radar","Radar","scatter","Scatter","funnel","Funnel","area","Area","card","Card","ScatterSimple","defaultChartOptionCopy","computed","cloneDeep","defaultChartOption","__props","formatPublicData","desc","colDesc","groupByDesc","data","xValue","xGroupByDesc","typedGroupByDesc","map","groupByDescItem","xAxis","dataValue","filter","item","colDescKey","modelName","subShowType","groupByValues","getMyChart","showTypeName","childComponent","value","myChart","__expose","exportExal","length","arr","useDataToExcelJson","JsonToExcel","provide","InjectionChartMerge","defaultConfig","conf","lodashMerge","jsCodeSnippet","safeEvalConfig","error","_createBlock","_resolveDynamicComponent","key","class","_normalizeClass","_unref","e","chartOptions","lazyLoad"],"mappings":"gjDAyDA,MAAMA,EAAKC,EAAa,cAGlBC,EAAaC,EAAS,MAEtBC,EAAqB,CACzBC,UACAC,SACAC,SAEIC,EAEF,CACFC,MAASC,EACTC,IAAOC,EACPC,KAAQC,EACRC,IAAOC,EACPC,MAASC,EACTC,QAAWC,EACXC,OAAUC,EACVC,KAAQC,EACRC,KAAQC,EACR,iBAAkBC,GAGdC,EAAyBC,EAAS,IAC/BC,EAAUC,EAAmBC,kBAGhCC,EAAmBJ,EAA4B,KACnD,MAAQK,MAAMC,QAAEA,EAAU,eAAIC,EAAc,IAAO,CAAA,EAACC,KAAGA,EAAO,IAAOL,EAAAK,KAGrE,IAAIC,EAA4C,GAE5CC,EAA4D,KAChE,MAAMC,EAAmBJ,EACzBE,EAASE,GAAkBC,IAAKC,IAQ1BA,EAAgBC,QAClBJ,EAAeG,GAEVA,KACH,GAGN,MAAME,EAAYL,GAAiBA,EAAsDJ,QACrFE,EAAKQ,OAAQC,IACX,MAAMC,EAAcR,EAAsDJ,QAC1E,OAAOW,GAAQC,QAAoC,IAArBD,EAAKC,IAAkD,OAArBD,EAAKC,KAEvEV,EA0BJ,MAboB,CAClBF,QAASA,GAAW,GACpBa,UAAQhB,EAAAgB,UACRC,YAAUjB,EAAAiB,YACVV,aAAcA,GAAgB,CAC5BJ,QAAS,GACTC,YAAa,GACbc,cAAe,GACfP,OAAO,GAETP,YAAaE,EACbD,KAAMO,KAiCV,SAASO,IAEP,GAAqB,UAAjBnB,EAAAoB,aACF,OAAO,KAIT,MAAMC,EAAiBnD,EAAWoD,MAClC,OAAKD,GAKiC,mBAA3BA,EAAeE,QACjBF,EAAeE,UALf,IASX,QAKAC,EAAa,CACXC,WAnDF,WACE,GAA6B,IAAzBzB,OAASK,KAAKqB,OAGhB,OAEF,MAAMC,EAAMC,EAAmB5B,EAAAK,MAC/BwB,EAAY7B,EAAAgB,UAAWW,EACzB,EA4CEvD,qBACAmD,QALc1B,EAAS,IAAMsB,KAM7BA,eAEFW,EAAQC,EA/CR,SAAezD,EAAuB0D,GAEpC,IAAIC,EADaC,EAAY,CAAA,EAAItC,EAAuB0B,MAAOhD,EAAQ0D,IAChD,CAAA,EAEvB,GAAIhC,EAAAmC,cACF,IAEEF,EAAOG,EAAepC,gBAAeiC,EACvC,OACOI,GAEP,CAGF,OAAOJ,CACT,eAoCEK,EASEC,EARK/D,EAAK4C,EAAAA,eAAY,SAClB,aAAJjD,IAAID,EACHsE,IAAKpB,EAAAA,aACLqB,MAAKC,EAAA,CAAGC,EAAA3E,GAAG4E,EAAC,aACZ,gBAAe3B,EAAAA,YACf,aAAYhB,EAAAqB,MACZ,gBAAeuB,EAAAA,aACf,YAAWC,EAAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-chart.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import*as e from"echarts";import{merge as t}from"lodash-es";import{getProvinceCode as o,isProvinceCode as a}from"./mapData.mjs";const s={get:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"showTypeName",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table";return s.data.find(o=>o[e].toString()===t||o[e]===t)},data:[{showTypeName:"table",label:"表格",coverImg:"table.png",disabled:()=>!1,subTypeList:[],showType:0,baseConfig:{}},{showTypeName:"line",label:"折线图",coverImg:"line-stack.png",showType:1,subTypeList:[{value:"line-simple",icon:"line-smooth",tooltipContent:"折线图"},{value:"area-basic",icon:"chart-line-area",tooltipContent:"折线面积图"}],baseConfig:{tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"line"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},grid:{left:"0",bottom:"10px",containLabel:!0},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},dataZoom:[{type:"inside"}]},disabled:(e,t)=>{const o=t?.length;return!(o>=1&&o<2)}},{showTypeName:"bar",label:"柱状图",coverImg:"bar-tick-align.png",showType:2,baseConfig:{legend:{type:"scroll",top:"25px"},tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"shadow"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},grid:{left:"0",bottom:"20px",containLabel:!0},xAxis:{axisLabel:{showMaxLabel:!0},axisTick:{alignWithLabel:!0}},yAxis:{},dataZoom:[{type:"inside"}]},subTypeList:[{value:"bar-simple",icon:"bar-simple",tooltipContent:"垂直条形图"},{value:"bar-y-category",icon:"bar-y-category",tooltipContent:"水平条形图"}],disabled:(e,t)=>{const o=t?.length;return!(o>=1)}},{showTypeName:"pie",label:"饼图",coverImg:"pie-simple.png",showType:4,subTypeList:[{value:"pie-simple",icon:"pie-simple",tooltipContent:"饼图"},{value:"pie-borderRadius",icon:"pie-borderRadius",tooltipContent:"环形图"}],baseConfig:{tooltip:{confine:!0,formatter:"{a}<br>{b}: {c}({d}%)",trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=4&&o>0&&o<=1)}},{showTypeName:"area",label:"地图",coverImg:"area.png",showType:5,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},visualMap:{text:["高","低"],realtime:!1,calculable:!0,inRange:{color:["#E8F4FD","#B8D4F7","#7BA4F0","#4A7BE8","#3562e1"]}}},disabled:(e,t)=>{const o=t?.length,a=t?.some(e=>{let{colDesc:t}=e;return t.includes("省")||t.includes("市")});return!(a&&o>0)}},{showTypeName:"funnel",label:"漏斗图",coverImg:"funnel.png",showType:6,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item",formatter:"{a} <br/>{b} : {c}"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:20}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=5&&o>0&&o<=1)}},{showTypeName:"card",label:"卡片",coverImg:"card.png",showType:9,subTypeList:[],baseConfig:{},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a>0&&o<=1)}},{showTypeName:"radar",label:"雷达图",coverImg:"radar.png",showType:10,subTypeList:[],baseConfig:{legend:{type:"scroll",orient:"vertical",left:"left",top:"25px"},tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},radar:{center:["50%","55%"]}},disabled:(e,t)=>{const o=t?.length;return 1!==o||1!==e.length}},{showTypeName:"scatter-simple",label:"散点图",coverImg:"",showType:11,subTypeList:[],disabled:()=>!1,baseConfig:{grid:{left:"0",bottom:"10px",containLabel:!0},tooltip:{showDelay:0,axisPointer:{show:!0,type:"cross",lineStyle:{type:"dashed",width:1}}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},xAxis:{splitLine:{lineStyle:{type:"dashed"}}},yAxis:{splitLine:{lineStyle:{type:"dashed"}}}}}]};function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return s.get("showType",e)}function n(e,o){const a={};return e.forEach(e=>{a[e.showTypeName]=t(e.baseConfig,o)}),a}const l=n(s.data,{backgroundColor:"transparent",title:{textStyle:{fontSize:14,lineHeight:16}}}),r=new Map;function p(){try{const t=e.getMap("china");if(t&&t.geoJson)return t.geoJson}catch(e){}return{type:"FeatureCollection",features:[]}}function c(e){let{adcode:t}=e;const s="https://cdnfile.yaomaitong.cn/ksh/lib/geo-data";if("string"!=typeof t||t.match(/^\d{6}$/)||"中国"===t||"100000"===t||(t=o(t)),r.has(t)){const e=r.get(t);if(e)return Promise.resolve(e)}return(async()=>{try{if("中国"===t||"100000"===t)try{const e=await fetch(`${s}/china.json`);if(e.ok){const o=await e.json();return r.set(t,o),o}}catch(e){}if(a(t))try{const e=await fetch(`${s}/${t}.json`);if(e.ok){const o=await e.json();if(o&&o.features&&o.features.length>0)return r.set(t,o),o}}catch(e){}const e=p();return r.set(t,e),e}catch(e){const o=p();return r.set(t,o),o}})()}export{l as defaultChartOption,c as getGeoJsonData,s as iconList,n as setDefaultChartOption,i as showTypeText};
|
|
2
|
-
//# sourceMappingURL=config.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/config.ts"],"sourcesContent":["import type { GeoJson, IconRow, IGroupByInfos, ISelectInfos } from './types'\nimport * as echarts from 'echarts'\nimport { merge } from 'lodash-es'\nimport { getProvinceCode, isProvinceCode } from './mapData'\n\n/**\n * 禁用功能函数\n * 判断当前图表类型是否被禁用\n * 调用时机:渲染页面\n * @param {object} selectInfos 选择信息\n * @param {object} groupByInfos 分组信息\n * @param {Message[]|Message} data 数据\n * @returns Boolean 布尔值\n */\nexport const iconList: {\n data: IconRow[]\n get: (type: keyof IconRow, value: any) => IconRow\n} = {\n get: (type: keyof IconRow = 'showTypeName', value: any = 'table') => {\n return iconList.data.find(item => item[type].toString() === value || item[type] === value)!\n },\n data: [\n {\n showTypeName: 'table',\n label: '表格',\n coverImg: 'table.png',\n disabled: () => false,\n subTypeList: [],\n showType: 0,\n baseConfig: {},\n },\n {\n showTypeName: 'line',\n label: '折线图',\n coverImg: 'line-stack.png',\n showType: 1,\n subTypeList: [\n {\n value: 'line-simple',\n icon: 'line-smooth',\n tooltipContent: '折线图',\n },\n {\n value: 'area-basic',\n icon: 'chart-line-area',\n tooltipContent: '折线面积图',\n },\n ],\n baseConfig: {\n tooltip: {\n confine: false,\n trigger: 'axis',\n axisPointer: {\n type: 'line',\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n grid: {\n left: '0',\n bottom: '10px',\n containLabel: true,\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n },\n yAxis: {\n type: 'value',\n },\n dataZoom: [\n {\n type: 'inside',\n },\n ],\n },\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght >= 1 && groupByInfosLenght < 2) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'bar',\n label: '柱状图',\n coverImg: 'bar-tick-align.png',\n showType: 2,\n baseConfig: {\n legend: {\n type: 'scroll',\n top: '25px',\n },\n tooltip: {\n confine: false,\n trigger: 'axis',\n axisPointer: {\n type: 'shadow',\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n // myFull: { // 全屏\n // show: true,\n // title: '全屏',\n // icon: 'path://...',\n // }\n },\n },\n grid: {\n left: '0',\n bottom: '20px',\n containLabel: true,\n },\n xAxis: {\n axisLabel: {\n showMaxLabel: true,\n },\n axisTick: {\n alignWithLabel: true,\n },\n },\n yAxis: {},\n dataZoom: [\n {\n type: 'inside',\n },\n ],\n },\n subTypeList: [\n {\n value: 'bar-simple',\n icon: 'bar-simple',\n tooltipContent: '垂直条形图',\n },\n {\n value: 'bar-y-category',\n icon: 'bar-y-category',\n tooltipContent: '水平条形图',\n },\n ],\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght >= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'pie',\n label: '饼图',\n coverImg: 'pie-simple.png',\n showType: 4,\n subTypeList: [\n {\n value: 'pie-simple',\n icon: 'pie-simple',\n tooltipContent: '饼图',\n },\n {\n value: 'pie-borderRadius',\n icon: 'pie-borderRadius',\n tooltipContent: '环形图',\n },\n ],\n baseConfig: {\n tooltip: {\n confine: true,\n formatter: '{a}<br>{b}: {c}({d}%)',\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength <= 4 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'area',\n label: '地图',\n coverImg: 'area.png',\n showType: 5,\n subTypeList: [],\n baseConfig: {\n tooltip: {\n confine: true,\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n visualMap: {\n text: ['高', '低'],\n realtime: false,\n calculable: true,\n inRange: {\n color: ['#E8F4FD', '#B8D4F7', '#7BA4F0', '#4A7BE8', '#3562e1'],\n },\n },\n },\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const flag = groupByInfos?.some(({ colDesc }) => (colDesc.includes('省') || colDesc.includes('市')))\n if (flag && groupByInfosLenght > 0) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'funnel',\n label: '漏斗图',\n coverImg: 'funnel.png',\n showType: 6,\n subTypeList: [],\n baseConfig: {\n tooltip: {\n confine: true,\n trigger: 'item',\n formatter: '{a} <br/>{b} : {c}',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: 20,\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength <= 5 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n\n // { label: 'scatter', value: 7 },\n {\n showTypeName: 'card',\n label: '卡片',\n coverImg: 'card.png',\n showType: 9,\n subTypeList: [],\n baseConfig: {},\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'radar',\n label: '雷达图',\n coverImg: 'radar.png',\n showType: 10,\n subTypeList: [],\n baseConfig: {\n legend: {\n type: 'scroll',\n orient: 'vertical',\n left: 'left',\n top: '25px',\n },\n tooltip: {\n confine: true,\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n radar: {\n // shape: 'circle',\n center: ['50%', '55%'],\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght === 1 && selectInfos.length === 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'scatter-simple',\n label: '散点图',\n coverImg: '',\n showType: 11,\n subTypeList: [],\n disabled: () => false,\n baseConfig: {\n grid: {\n left: '0',\n bottom: '10px',\n containLabel: true,\n },\n tooltip: {\n showDelay: 0,\n axisPointer: {\n show: true,\n type: 'cross',\n lineStyle: {\n type: 'dashed',\n width: 1,\n },\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n xAxis: {\n splitLine: {\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n yAxis: {\n splitLine: {\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n },\n },\n ],\n}\n\nexport function showTypeText(showType = 0): IconRow {\n const row = iconList.get('showType', showType)\n return row\n}\n\n// 修改默认配置\nexport function setDefaultChartOption(option: IconRow[], changeConfig: any) {\n const obj: {\n [key in IconRow['showTypeName']]: any\n } = {} as { [key in IconRow['showTypeName']]: any }\n option.forEach((item) => {\n obj[item.showTypeName] = merge(item.baseConfig, changeConfig)\n })\n return obj\n}\nexport const defaultChartOption = setDefaultChartOption(iconList.data, {\n backgroundColor: 'transparent',\n title: {\n textStyle: {\n fontSize: 14,\n lineHeight: 16,\n },\n },\n})\n// 获取地图数据(GeoJson)\n// 添加缓存对象\nconst geoJsonCache = new Map<string, GeoJson>()\n\n// 使用 ECharts 内置的中国地图数据\nfunction getBuiltinChinaMap(): GeoJson {\n try {\n // 尝试获取 ECharts 内置的中国地图数据\n const chinaMap = echarts.getMap('china')\n if (chinaMap && chinaMap.geoJson) {\n return chinaMap.geoJson as GeoJson\n }\n }\n catch (error) {\n console.warn('Failed to get builtin China map:', error)\n }\n\n // 如果获取失败,返回空的地图数据\n return {\n type: 'FeatureCollection',\n features: [],\n } as GeoJson\n}\nexport function getGeoJsonData(options: any): Promise<GeoJson> {\n let { adcode } = options\n const baseUrl = 'https://cdnfile.yaomaitong.cn/ksh/lib/geo-data'\n\n // 如果传入的是省份名称,转换为代码\n if (typeof adcode === 'string' && !adcode.match(/^\\d{6}$/) && adcode !== '中国' && adcode !== '100000') {\n adcode = getProvinceCode(adcode)\n }\n\n // 检查缓存中是否存在对应的 GeoJSON 数据\n if (geoJsonCache.has(adcode)) {\n const cachedGeoJson = geoJsonCache.get(adcode)\n if (cachedGeoJson) {\n return Promise.resolve(cachedGeoJson)\n }\n }\n\n // 构建基础 URL\n return (async () => {\n try {\n // 方案1: 使用本地地图数据\n if (adcode === '中国' || adcode === '100000') {\n try {\n // 优先尝试本地中国地图数据\n const response = await fetch(`${baseUrl}/china.json`)\n if (response.ok) {\n const chinaData = await response.json()\n geoJsonCache.set(adcode, chinaData)\n return chinaData\n }\n }\n catch (error) {\n console.warn('Failed to load local China map data:', error)\n }\n }\n\n // 方案2: 使用本地省级地图数据\n if (isProvinceCode(adcode)) {\n try {\n const response = await fetch(`${baseUrl}/${adcode}.json`)\n if (response.ok) {\n const geoJson = await response.json()\n if (geoJson && geoJson.features && geoJson.features.length > 0) {\n geoJsonCache.set(adcode, geoJson)\n return geoJson\n }\n }\n }\n catch (error) {\n console.warn('Failed to load local province map data:', error)\n }\n }\n\n // 方案3: 使用内置的中国地图数据作为备用\n const builtinMap = getBuiltinChinaMap()\n geoJsonCache.set(adcode, builtinMap)\n return builtinMap\n }\n catch (error) {\n console.error('All map data sources failed, using simple fallback:', error)\n const builtinMap = getBuiltinChinaMap()\n geoJsonCache.set(adcode, builtinMap)\n return builtinMap\n }\n })()\n}\n"],"names":["iconList","get","type","arguments","length","undefined","value","data","find","item","toString","showTypeName","label","coverImg","disabled","subTypeList","showType","baseConfig","icon","tooltipContent","tooltip","confine","trigger","axisPointer","toolbox","show","showTitle","feature","saveAsImage","legend","top","grid","left","bottom","containLabel","xAxis","boundaryGap","yAxis","dataZoom","_","groupByInfos","groupByInfosLenght","axisLabel","showMaxLabel","axisTick","alignWithLabel","formatter","selectInfos","selectInfosLength","visualMap","text","realtime","calculable","inRange","color","flag","some","_ref","colDesc","includes","orient","radar","center","showDelay","lineStyle","width","splitLine","showTypeText","setDefaultChartOption","option","changeConfig","obj","forEach","merge","defaultChartOption","backgroundColor","title","textStyle","fontSize","lineHeight","geoJsonCache","Map","getBuiltinChinaMap","chinaMap","echarts","getMap","geoJson","error","features","getGeoJsonData","options","adcode","baseUrl","match","getProvinceCode","has","cachedGeoJson","Promise","resolve","response","fetch","ok","chinaData","json","set","isProvinceCode","builtinMap"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injectionKeys.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/injectionKeys.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\n\nexport const InjectionChartMerge: InjectionKey<(target: any, source: any) => any> = Symbol('merge')\n"],"names":["InjectionChartMerge","Symbol"],"mappings":"MAEaA,EAAuEC,OAAO"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const t={"北京市":"110000","天津市":"120000","河北省":"130000","山西省":"140000","内蒙古自治区":"150000","辽宁省":"210000","吉林省":"220000","黑龙江省":"230000","上海市":"310000","江苏省":"320000","浙江省":"330000","安徽省":"340000","福建省":"350000","江西省":"360000","山东省":"370000","河南省":"410000","湖北省":"420000","湖南省":"430000","广东省":"440000","广西壮族自治区":"450000","海南省":"460000","重庆市":"500000","四川省":"510000","贵州省":"520000","云南省":"530000","西藏自治区":"540000","陕西省":"610000","甘肃省":"620000","青海省":"630000","宁夏回族自治区":"640000","新疆维吾尔自治区":"650000","台湾省":"710000","香港特别行政区":"810000","澳门特别行政区":"820000"};function e(e){return t[e]||"100000"}function n(t){return/^\d{6}$/.test(t)&&"100000"!==t}Object.fromEntries(Object.entries(t).map(t=>{let[e,n]=t;return[n,e]}));export{t as PROVINCE_CODES,e as getProvinceCode,n as isProvinceCode};
|
|
2
|
-
//# sourceMappingURL=mapData.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapData.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/mapData.ts"],"sourcesContent":["// 免费的地图数据源\nexport const FREE_MAP_SOURCES = {\n // 省级地图数据源\n PROVINCE: {\n // 使用天地图省级数据\n TIANDITU: () => `https://api.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=你的天地图token`,\n // 使用 DataV 的省级数据\n DATAV: (adcode: string) => `https://geo.datav.aliyun.com/areas_v3/bound/${adcode}_full.json`,\n },\n // 天地图行政区划数据\n TIANDITU_ADMIN: {\n // 获取行政区划边界数据\n BOUNDARY: (adcode: string) => `https://api.tianditu.gov.cn/administrative?postStr={\"searchWord\":\"${adcode}\",\"searchType\":\"11\",\"needSubInfo\":true,\"needAll\":true,\"needPolygon\":true,\"needPre\":true}&type=query&tk=你的天地图token`,\n },\n}\n\n// 中国地图数据 - 使用真实的省级边界数据\nexport const CHINA_MAP_DATA = {\n type: 'FeatureCollection',\n features: [\n // 这里应该包含所有省份的边界数据\n // 由于数据量很大,建议使用外部数据源\n ],\n}\n\n// 获取中国地图数据的函数\nexport async function getChinaMapData(): Promise<any> {\n try {\n // 优先使用 DataV 的中国地图数据\n const response = await fetch('https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json')\n if (response.ok) {\n return await response.json()\n }\n }\n catch (error) {\n console.warn('Failed to fetch China map from DataV:', error)\n }\n\n // 备用方案:使用简化的地图数据\n return {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: {\n name: '中国',\n adcode: '100000',\n },\n geometry: {\n type: 'Polygon',\n coordinates: [[\n [73.66, 35.42], [78.91, 35.42], [81.33, 36.08], [85.29, 36.08],\n [88.02, 35.42], [90.16, 35.42], [92.13, 34.76], [94.81, 34.76],\n [97.06, 33.44], [99.43, 32.78], [101.06, 31.46], [102.73, 30.14],\n [104.40, 28.82], [106.07, 27.50], [107.74, 26.18], [109.41, 24.86],\n [111.08, 23.54], [112.75, 22.22], [114.42, 20.90], [116.09, 19.58],\n [117.76, 18.26], [119.43, 16.94], [121.10, 15.62], [122.77, 14.30],\n [124.44, 12.98], [126.11, 11.66], [127.78, 10.34], [129.45, 9.02],\n [131.12, 7.70], [132.79, 6.38], [134.46, 5.06], [135.05, 4.40],\n [135.05, 5.06], [135.05, 6.38], [135.05, 7.70], [135.05, 9.02],\n [135.05, 10.34], [135.05, 11.66], [135.05, 12.98], [135.05, 14.30],\n [135.05, 15.62], [135.05, 16.94], [135.05, 18.26], [135.05, 19.58],\n [135.05, 20.90], [135.05, 22.22], [135.05, 23.54], [135.05, 24.86],\n [135.05, 26.18], [135.05, 27.50], [135.05, 28.82], [135.05, 30.14],\n [135.05, 31.46], [135.05, 32.78], [135.05, 34.10], [135.05, 35.42],\n [134.46, 36.08], [133.79, 36.74], [133.12, 37.40], [132.45, 38.06],\n [131.78, 38.72], [131.11, 39.38], [130.44, 40.04], [129.77, 40.70],\n [129.10, 41.36], [128.43, 42.02], [127.76, 42.68], [127.09, 43.34],\n [126.42, 44.00], [125.75, 44.66], [125.08, 45.32], [124.41, 45.98],\n [123.74, 46.64], [123.07, 47.30], [122.40, 47.96], [121.73, 48.62],\n [121.06, 49.28], [120.39, 49.94], [119.72, 50.60], [119.05, 51.26],\n [118.38, 51.92], [117.71, 52.58], [117.04, 53.24], [116.37, 53.90],\n [115.70, 54.56], [115.03, 55.22], [114.36, 55.88], [113.69, 56.54],\n [113.02, 57.20], [112.35, 57.86], [111.68, 58.52], [111.01, 59.18],\n [110.34, 59.84], [109.67, 60.50], [109.00, 61.16], [108.33, 61.82],\n [107.66, 62.48], [106.99, 63.14], [106.32, 63.80], [105.65, 64.46],\n [104.98, 65.12], [104.31, 65.78], [103.64, 66.44], [102.97, 67.10],\n [102.30, 67.76], [101.63, 68.42], [100.96, 69.08], [100.29, 69.74],\n [99.62, 70.40], [98.95, 71.06], [98.28, 71.72], [97.61, 72.38],\n [96.94, 73.04], [96.27, 73.70], [95.60, 74.36], [94.93, 75.02],\n [94.26, 75.68], [93.59, 76.34], [92.92, 77.00], [92.25, 77.66],\n [91.58, 78.32], [90.91, 78.98], [90.24, 79.64], [89.57, 80.30],\n [88.90, 80.96], [88.23, 81.62], [87.56, 82.28], [86.89, 82.94],\n [86.22, 83.60], [85.55, 84.26], [84.88, 84.92], [84.21, 85.58],\n [83.54, 86.24], [82.87, 86.90], [82.20, 87.56], [81.53, 88.22],\n [80.86, 88.88], [80.19, 89.54], [79.52, 90.20], [78.85, 90.86],\n [78.18, 91.52], [77.51, 92.18], [76.84, 92.84], [76.17, 93.50],\n [75.50, 94.16], [74.83, 94.82], [74.16, 95.48], [73.66, 96.14],\n [73.66, 95.48], [73.66, 94.82], [73.66, 94.16], [73.66, 93.50],\n [73.66, 92.84], [73.66, 92.18], [73.66, 91.52], [73.66, 90.86],\n [73.66, 90.20], [73.66, 89.54], [73.66, 88.88], [73.66, 88.22],\n [73.66, 87.56], [73.66, 86.90], [73.66, 86.24], [73.66, 85.58],\n [73.66, 84.92], [73.66, 84.26], [73.66, 83.60], [73.66, 82.94],\n [73.66, 82.28], [73.66, 81.62], [73.66, 80.96], [73.66, 80.30],\n [73.66, 79.64], [73.66, 78.98], [73.66, 78.32], [73.66, 77.66],\n [73.66, 77.00], [73.66, 76.34], [73.66, 75.68], [73.66, 75.02],\n [73.66, 74.36], [73.66, 73.70], [73.66, 73.04], [73.66, 72.38],\n [73.66, 71.72], [73.66, 71.06], [73.66, 70.40], [73.66, 69.74],\n [73.66, 69.08], [73.66, 68.42], [73.66, 67.76], [73.66, 67.10],\n [73.66, 66.44], [73.66, 65.78], [73.66, 65.12], [73.66, 64.46],\n [73.66, 63.80], [73.66, 63.14], [73.66, 62.48], [73.66, 61.82],\n [73.66, 61.16], [73.66, 60.50], [73.66, 59.84], [73.66, 59.18],\n [73.66, 58.52], [73.66, 57.86], [73.66, 57.20], [73.66, 56.54],\n [73.66, 55.88], [73.66, 55.22], [73.66, 54.56], [73.66, 53.90],\n [73.66, 53.24], [73.66, 52.58], [73.66, 51.92], [73.66, 51.26],\n [73.66, 50.60], [73.66, 49.94], [73.66, 49.28], [73.66, 48.62],\n [73.66, 47.96], [73.66, 47.30], [73.66, 46.64], [73.66, 45.98],\n [73.66, 45.32], [73.66, 44.66], [73.66, 44.00], [73.66, 43.34],\n [73.66, 42.68], [73.66, 42.02], [73.66, 41.36], [73.66, 40.70],\n [73.66, 40.04], [73.66, 39.38], [73.66, 38.72], [73.66, 38.06],\n [73.66, 37.40], [73.66, 36.74], [73.66, 36.08], [73.66, 35.42],\n ]],\n },\n },\n ],\n }\n}\n\n// 省级行政区代码映射\nexport const PROVINCE_CODES = {\n 北京市: '110000',\n 天津市: '120000',\n 河北省: '130000',\n 山西省: '140000',\n 内蒙古自治区: '150000',\n 辽宁省: '210000',\n 吉林省: '220000',\n 黑龙江省: '230000',\n 上海市: '310000',\n 江苏省: '320000',\n 浙江省: '330000',\n 安徽省: '340000',\n 福建省: '350000',\n 江西省: '360000',\n 山东省: '370000',\n 河南省: '410000',\n 湖北省: '420000',\n 湖南省: '430000',\n 广东省: '440000',\n 广西壮族自治区: '450000',\n 海南省: '460000',\n 重庆市: '500000',\n 四川省: '510000',\n 贵州省: '520000',\n 云南省: '530000',\n 西藏自治区: '540000',\n 陕西省: '610000',\n 甘肃省: '620000',\n 青海省: '630000',\n 宁夏回族自治区: '640000',\n 新疆维吾尔自治区: '650000',\n 台湾省: '710000',\n 香港特别行政区: '810000',\n 澳门特别行政区: '820000',\n}\n\n// 省级名称映射(反向查找)\nexport const PROVINCE_NAMES = Object.fromEntries(\n Object.entries(PROVINCE_CODES).map(([name, code]) => [code, name]),\n)\n\n// 获取省级代码\nexport function getProvinceCode(provinceName: string): string {\n return PROVINCE_CODES[provinceName as keyof typeof PROVINCE_CODES] || '100000'\n}\n\n// 获取省级名称\nexport function getProvinceName(provinceCode: string): string {\n return PROVINCE_NAMES[provinceCode] || '中国'\n}\n\n// 判断是否为省级代码\nexport function isProvinceCode(code: string): boolean {\n return /^\\d{6}$/.test(code) && code !== '100000'\n}\n\n// 获取省级地图数据\nexport async function getProvinceMapData(provinceName: string): Promise<any> {\n const provinceCode = getProvinceCode(provinceName)\n\n try {\n const url = `https://geo.datav.aliyun.com/areas_v3/bound/${provinceCode}_full.json`\n\n const response = await fetch(url)\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n return data\n }\n catch (error) {\n console.error('Failed to fetch province map data for:', provinceName, error)\n throw error\n }\n}\n\n// 天地图配置\nexport const TIANDITU_CONFIG = {\n // 天地图 token(需要申请)\n TOKEN: '你的天地图token', // 请替换为您的天地图 token\n // 天地图 API 基础 URL\n BASE_URL: 'https://api.tianditu.gov.cn',\n}\n\n// 获取天地图行政区划数据\nexport async function fetchTiandituBoundary(adcode: string): Promise<any> {\n try {\n const url = FREE_MAP_SOURCES.TIANDITU_ADMIN.BOUNDARY(adcode).replace('你的天地图token', TIANDITU_CONFIG.TOKEN)\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n return data\n }\n catch (error) {\n console.error('Failed to fetch Tianditu boundary data:', error)\n throw error\n }\n}\n\n// 获取地图数据的函数\nexport async function fetchMapData(adcode: string): Promise<any> {\n try {\n // 优先尝试从天地图获取数据\n if (TIANDITU_CONFIG.TOKEN !== '你的天地图token') {\n try {\n const tiandituData = await fetchTiandituBoundary(adcode)\n if (tiandituData && tiandituData.data && tiandituData.data.length > 0) {\n // 转换天地图数据为 GeoJSON 格式\n return convertTiandituToGeoJson(tiandituData)\n }\n }\n catch (error) {\n console.warn('Failed to fetch from Tianditu, trying DataV:', error)\n }\n }\n\n // 备用方案:从 DataV 获取数据\n const url = FREE_MAP_SOURCES.PROVINCE.DATAV(adcode)\n console.log('Fetching province map data from:', url)\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n console.log('Successfully fetched province map data for:', adcode, data)\n return data\n }\n catch (error) {\n console.error('Failed to fetch map data for adcode:', adcode, error)\n throw error\n }\n}\n\n// 转换天地图数据为 GeoJSON 格式\nfunction convertTiandituToGeoJson(tiandituData: any): any {\n const features = tiandituData.data.map((item: any) => ({\n type: 'Feature',\n properties: {\n name: item.name,\n adcode: item.adcode,\n level: item.level,\n },\n geometry: {\n type: 'Polygon',\n coordinates: item.polygon ? [item.polygon] : [],\n },\n }))\n\n return {\n type: 'FeatureCollection',\n features,\n }\n}\n"],"names":["PROVINCE_CODES","北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省","西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区","澳门特别行政区","getProvinceCode","provinceName","isProvinceCode","code","test","Object","fromEntries","entries","map","_ref","name"],"mappings":"AAuHO,MAAMA,EAAiB,CAC5BC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,SAAQ,SACRC,MAAK,SACLC,MAAK,SACLC,OAAM,SACNC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,UAAS,SACTC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,QAAO,SACPC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,UAAS,SACTC,WAAU,SACVC,MAAK,SACLC,UAAS,SACTC,UAAS,UASJ,SAASC,EAAgBC,GAC9B,OAAOpC,EAAeoC,IAAgD,QACxE,CAQO,SAASC,EAAeC,GAC7B,MAAO,UAAUC,KAAKD,IAAkB,WAATA,CACjC,CAjB8BE,OAAOC,YACnCD,OAAOE,QAAQ1C,GAAgB2C,IAAIC,IAAA,IAAEC,EAAMP,GAAIM,EAAA,MAAM,CAACN,EAAMO"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function t(t,e){const n={...{Math:Math,Date:Date,Array:Array,Object:Object,String:String,Number:Number,Boolean:Boolean,console:console,JSON:JSON},config:{...e}},o=new Proxy(n,{has:(t,e)=>!0,get:(t,e)=>{if("symbol"==typeof e){if(e===Symbol.unscopables)return;return Reflect.get(t,e)}return t[e]}});try{const e=`with (sandbox) { ${t} }`;return new Function("sandbox",e)(o),o.config}catch(t){return e}}export{t as safeEvalConfig};
|
|
2
|
-
//# sourceMappingURL=safe-eval.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safe-eval.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/safe-eval.ts"],"sourcesContent":["import type { EChartsOption } from './types'\n\n/**\n * 安全的配置处理函数\n * @param jsCode - JavaScript 代码片段\n * @param config - ECharts 配置对象\n * @returns 处理后的配置对象\n */\nexport function safeEvalConfig(jsCode: string, config: EChartsOption): EChartsOption {\n // 预定义允许的操作和函数\n const allowedGlobals = {\n Math,\n Date,\n Array,\n Object,\n String,\n Number,\n Boolean,\n console,\n JSON,\n }\n\n // 创建安全的执行环境\n const sandbox = {\n ...allowedGlobals,\n config: { ...config },\n }\n\n // 使用 with 和 Proxy 创建安全的执行环境\n const handler: ProxyHandler<typeof sandbox> = {\n has: (_target, _key) => {\n return true // 使所有变量查找都在 sandbox 中\n },\n get: (target, key) => {\n // 处理 Symbol 类型的 key\n if (typeof key === 'symbol') {\n if (key === Symbol.unscopables) {\n return undefined\n }\n return Reflect.get(target, key)\n }\n return target[key as keyof typeof target]\n },\n }\n\n const proxiedSandbox = new Proxy(sandbox, handler)\n\n try {\n // 使用 with 语句创建局部作用域\n const code = `with (sandbox) { ${jsCode} }`\n // eslint-disable-next-line no-new-func\n const fn = new Function('sandbox', code)\n fn(proxiedSandbox)\n\n return proxiedSandbox.config as EChartsOption\n }\n catch (error) {\n console.error('配置处理失败:', error)\n return config\n }\n}\n"],"names":["safeEvalConfig","jsCode","config","sandbox","Math","Date","Array","Object","String","Number","Boolean","console","JSON","proxiedSandbox","Proxy","has","_target","_key","get","target","key","Symbol","unscopables","Reflect","code","Function","fn","error"],"mappings":"AAQO,SAASA,EAAeC,EAAgBC,GAE7C,MAaMC,EAAU,IAbO,CACrBC,UACAC,UACAC,YACAC,cACAC,cACAC,cACAC,gBACAC,gBACAC,WAMAV,OAAQ,IAAKA,IAoBTW,EAAiB,IAAIC,MAAMX,EAhBa,CAC5CY,IAAKA,CAACC,EAASC,KACN,EAETC,IAAKA,CAACC,EAAQC,KAEZ,GAAmB,iBAARA,EAAkB,CAC3B,GAAIA,IAAQC,OAAOC,YACjB,OAEF,OAAOC,QAAQL,IAAIC,EAAQC,EAC7B,CACA,OAAOD,EAAOC,MAMlB,IAEE,MAAMI,EAAO,oBAAoBvB,MAKjC,OAHW,IAAIwB,SAAS,UAAWD,EACnCE,CAAGb,GAEIA,EAAeX,MACxB,OACOyB,GAEL,OAAOzB,CACT,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useMouseInElement as e,watchDebounced as t,useElementSize as i}from"@vueuse/core";import*as s from"echarts";import{onMounted as n,nextTick as o,onUnmounted as r}from"vue";import a from"../components/empty.svg.mjs";var c=Object.defineProperty,l=(e,t,i)=>((e,t,i)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);const u=new class{constructor(){l(this,"observer",null),l(this,"callbacks",new Map)}createObserver(){return"undefined"==typeof IntersectionObserver?null:new IntersectionObserver(e=>{for(const t of e)if(t.isIntersecting){const e=this.callbacks.get(t.target);e&&(e(),this.unobserve(t.target))}},{threshold:0,rootMargin:"200px"})}observe(e,t){this.observer||(this.observer=this.createObserver()),this.observer&&(this.callbacks.set(e,t),this.observer.observe(e))}unobserve(e){this.observer&&(this.observer.unobserve(e),this.callbacks.delete(e))}disconnect(){this.observer&&(this.observer.disconnect(),this.callbacks.clear(),this.observer=null)}};function f(i){let{chartDOM:c,chartData:l,chartOptions:f,initBefore:d,initAfter:v,lazyLoad:b=!0}=i,p=null,g=!1,m=null,w=[];const y=window.devicePixelRatio||1;function D(){if(p){try{p.isDisposed()||p.dispose()}catch(e){}p=null}}function x(){if(!p||p.isDisposed()){if(!c.value)return null;const{clientWidth:e,clientHeight:t}=c.value;if(0===e||0===t)return null;p=s.init(c.value,null,{devicePixelRatio:y,renderer:"svg"})}return p}function O(){c.value&&u.unobserve(c.value)}function k(){if(w.length>0)return;const{isOutside:i}=e(c),s=t(i,e=>{"boolean"==typeof e&&p&&!p.isDisposed()&&function(e){if(p&&!p.isDisposed())try{p.setOption({toolbox:{show:e}})}catch(e){}}(!e)},{debounce:200}),n=t(()=>f.value,async()=>{await async function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];try{p&&!p.isDisposed()||await M(),p?.showLoading(),l.value?.data?.length?(!0===g&&(t[1]||(t[1]={}),t[1].notMerge=!0),g=!1):t=await R(),p?.setOption(...t)}catch(e){p&&!p.isDisposed()&&D(),x(),t=await R("配置项错误"),p?.setOption(...t)}finally{p?.hideLoading()}}(f.value)},{debounce:500,deep:!0,immediate:!0});w.push(s,n)}async function z(){await o();const{clientWidth:e,clientHeight:t}=c.value||{clientWidth:0,clientHeight:0};if(e>0&&t>0){x()&&(v&&v(p),p&&!p.isDisposed()&&h(p,c),k()),O()}else!function(){if(!c.value||"undefined"==typeof ResizeObserver)return;m=new ResizeObserver(e=>{for(const t of e){const{width:e,height:i}=t.contentRect;if(e>0&&i>0){x()&&(v&&v(p),p&&!p.isDisposed()&&h(p,c),k()),m?.disconnect(),m=null,O();break}}}),m.observe(c.value)}()}async function M(){return c.value?(await o(),b?(c.value&&u.observe(c.value,()=>{z()}),p):(await z(),p)):p}function R(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"暂无数据";return new Promise(t=>{const i=new Image;i.src=a,i.onload=()=>{const s=i.width/i.height,n={title:[{text:l.value?.modelName,...f.value.title},{subtext:e,top:"center",left:"center",text:"{a|}",itemGap:-20,subtextStyle:{fontSize:14},textStyle:{align:"center",rich:{a:{height:100/s,width:100,backgroundColor:{image:a}}}}}]};g=!0,t([n,{notMerge:!0,replaceMerge:["xAxis","yAxis","series"],lazyUpdate:!1}])}})}return n(async()=>{d&&await d(),await o(),await M(),p&&!p.isDisposed()&&(v&&v(p),h(p,c),k())}),r(()=>{if(w.forEach(e=>e()),w=[],m&&(m.disconnect(),m=null),O(),p&&!p.isDisposed())try{p.getZr()?.off("mousemove"),p.getZr()?.off("mouseout"),p.getZr()?.off("click"),p.off("click"),D()}catch(e){}}),{myChart:()=>p}}function h(e,s){const{width:n,height:o}=i(s);t([n,o],()=>{if(e&&!e.isDisposed())try{e.resize()}catch(e){}})}function d(e){const{desc:{colDesc:t=[],groupByDesc:i=[]}={},data:s=[]}=e,n=[...i.map(e=>e.colDesc),...t].filter(e=>e),o=s.map(e=>n.map(t=>e[t]||""));return[n,...o]}export{f as useCharts,d as useDataToExcelJson,h as useResize};
|
|
2
|
-
//# sourceMappingURL=useCharts.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCharts.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/useCharts.ts"],"sourcesContent":["import type { ECharts, SetOptionOpts } from 'echarts'\nimport type { Ref } from 'vue'\nimport type { EChartData, EChartsOption, IFormatPublicData } from './types'\nimport { useElementSize, useMouseInElement, watchDebounced } from '@vueuse/core'\nimport * as echarts from 'echarts'\nimport { nextTick, onMounted, onUnmounted } from 'vue'\n\n// 使用别名路径导入 SVG\nimport emptyImg from '../components/empty.svg'\n\n// 全局 IntersectionObserver 管理器\nclass IntersectionObserverManager {\n private observer: IntersectionObserver | null = null\n private callbacks = new Map<Element, () => void>()\n\n private createObserver() {\n if (typeof IntersectionObserver === 'undefined') {\n return null\n }\n\n return new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n const callback = this.callbacks.get(entry.target)\n if (callback) {\n callback()\n // 执行回调后移除监听,避免重复初始化\n this.unobserve(entry.target)\n }\n }\n }\n },\n {\n threshold: 0,\n rootMargin: '200px',\n },\n )\n }\n\n observe(element: Element, callback: () => void) {\n if (!this.observer) {\n this.observer = this.createObserver()\n }\n\n if (this.observer) {\n this.callbacks.set(element, callback)\n this.observer.observe(element)\n }\n }\n\n unobserve(element: Element) {\n if (this.observer) {\n this.observer.unobserve(element)\n this.callbacks.delete(element)\n }\n }\n\n disconnect() {\n if (this.observer) {\n this.observer.disconnect()\n this.callbacks.clear()\n this.observer = null\n }\n }\n}\n\n// 全局单例实例\nconst globalIntersectionObserver = new IntersectionObserverManager()\n\nexport function useCharts({ chartDOM, chartData, chartOptions, initBefore, initAfter, lazyLoad = true }: {\n chartDOM: Ref<HTMLElement | null>\n chartData: Ref<IFormatPublicData>\n chartOptions: Ref<EChartsOption>\n initBefore?: () => Promise<void>\n initAfter?: (e: ECharts | null) => void\n lazyLoad?: boolean\n}) {\n // 每个组件实例的独立状态\n let myChart: ECharts | null = null\n let isEmpty = false\n let resizeObserver: ResizeObserver | null = null\n let watchStopHandles: Array<() => void> = [] // 存储 watch 停止函数\n\n // 获取设备像素比\n const dpr = window.devicePixelRatio || 1\n\n function disposeChart() {\n if (myChart) {\n try {\n if (!myChart.isDisposed()) {\n myChart.dispose()\n }\n }\n catch (error) {\n console.warn('Error disposing chart:', error)\n }\n myChart = null\n }\n }\n\n function initChart() {\n if (!(myChart && !myChart.isDisposed())) {\n // 检查 DOM 元素是否存在\n if (!chartDOM.value) {\n console.warn('[ECharts] DOM element not found')\n return null\n }\n\n // 检查容器尺寸\n const { clientWidth, clientHeight } = chartDOM.value\n if (clientWidth === 0 || clientHeight === 0) {\n // 如果容器没有尺寸,返回 null 而不是强制初始化\n console.warn('[ECharts] Container has zero size. Width:', clientWidth, 'Height:', clientHeight, '. Skipping initialization.')\n return null\n }\n\n // 创建 ECharts 实例\n myChart = echarts.init(chartDOM.value, null, {\n devicePixelRatio: dpr,\n renderer: 'svg',\n })\n }\n return myChart\n }\n\n // 清理所有观察器\n function cleanupObservers() {\n // 从全局观察器中移除当前元素\n if (chartDOM.value) {\n globalIntersectionObserver.unobserve(chartDOM.value)\n }\n }\n\n // 初始化 watchDebounced 监听器\n function setupWatchers() {\n if (watchStopHandles.length > 0) {\n return // 已经设置过了,避免重复设置\n }\n\n // 鼠标悬停监听\n const { isOutside: mouseInChart } = useMouseInElement(chartDOM)\n const stopMouseWatch = watchDebounced(mouseInChart, (newVal) => {\n if (typeof newVal !== 'boolean' || (!myChart || myChart.isDisposed())) {\n return\n }\n toggleToolbox(!newVal)\n }, { debounce: 200 })\n\n // 图表选项监听\n const stopOptionsWatch = watchDebounced(\n () => chartOptions.value,\n async () => {\n await renderChart(chartOptions.value)\n },\n { debounce: 500, deep: true, immediate: true },\n )\n\n watchStopHandles.push(stopMouseWatch, stopOptionsWatch)\n }\n\n // 开始初始化流程\n async function startInitialization() {\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 检查容器是否已经有尺寸\n const { clientWidth, clientHeight } = chartDOM.value || { clientWidth: 0, clientHeight: 0 }\n if (clientWidth > 0 && clientHeight > 0) {\n // 直接初始化\n const chart = initChart()\n if (chart) {\n if (initAfter) {\n initAfter(myChart)\n }\n if (myChart && !myChart.isDisposed()) {\n useResize(myChart, chartDOM)\n }\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n // 初始化成功后清理观察器\n cleanupObservers()\n }\n else {\n // 如果没有尺寸,使用 ResizeObserver 等待\n setupResizeObserver()\n }\n }\n\n // 使用全局 IntersectionObserver 监听元素是否进入可视区域\n function setupIntersectionObserver() {\n if (!chartDOM.value) {\n return\n }\n\n // 使用全局观察器,避免重复创建\n globalIntersectionObserver.observe(chartDOM.value, () => {\n startInitialization()\n })\n }\n\n // 使用 ResizeObserver 监听容器尺寸变化\n function setupResizeObserver() {\n if (!chartDOM.value || typeof ResizeObserver === 'undefined') {\n return\n }\n\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect\n if (width > 0 && height > 0) {\n // 容器有尺寸了,可以安全初始化\n const chart = initChart()\n if (chart) {\n if (initAfter) {\n initAfter(myChart)\n }\n // 设置 resize 监听\n if (myChart && !myChart.isDisposed()) {\n useResize(myChart, chartDOM)\n }\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n // 初始化后停止观察并清理其他观察器\n resizeObserver?.disconnect()\n resizeObserver = null\n cleanupObservers()\n break\n }\n }\n })\n\n resizeObserver.observe(chartDOM.value)\n }\n\n // 安全的初始化函数\n async function safeInitChart() {\n if (!chartDOM.value) {\n return myChart\n }\n\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 如果启用了懒加载\n if (lazyLoad) {\n // 直接设置 IntersectionObserver,让它检测元素是否进入可视区域\n setupIntersectionObserver()\n return myChart\n }\n\n // 非懒加载模式,直接开始初始化流程\n await startInitialization()\n\n return myChart\n }\n\n async function renderChart(...opt: [EChartsOption, SetOptionOpts?]) {\n try {\n // 确保图表已初始化\n if (!myChart || myChart.isDisposed()) {\n await safeInitChart()\n }\n\n myChart?.showLoading()\n if (chartData.value?.data?.length) {\n if (isEmpty === true) {\n if (!opt[1]) {\n opt[1] = {}\n }\n opt[1].notMerge = true\n }\n isEmpty = false\n }\n else {\n // 数据为空时保持原有配置\n opt = await setEmpty()\n }\n myChart?.setOption(...opt)\n }\n catch (error) {\n console.log(`🚀 ~ renderChart ~ error:`, error)\n if (myChart && !myChart.isDisposed()) {\n disposeChart()\n }\n // 如果实例已被销毁,重新创建\n initChart()\n opt = await setEmpty('配置项错误')\n myChart?.setOption(...opt)\n }\n finally {\n myChart?.hideLoading()\n }\n }\n\n function setEmpty(subtext = '暂无数据'): Promise<[EChartsOption, SetOptionOpts]> {\n return new Promise((resolve) => {\n const img = new Image()\n img.src = emptyImg\n\n img.onload = () => {\n const aspectRatio = img.width / img.height\n\n const obj: EChartsOption = {\n title: [{\n text: chartData.value?.modelName,\n ...chartOptions.value.title,\n }, {\n subtext,\n top: 'center',\n left: 'center',\n text: '{a|}',\n itemGap: -20,\n subtextStyle: {\n fontSize: 14,\n },\n textStyle: {\n align: 'center',\n rich: {\n a: {\n height: 100 / aspectRatio,\n width: 100,\n backgroundColor: {\n image: emptyImg,\n },\n },\n },\n },\n }],\n }\n isEmpty = true\n resolve([obj, {\n notMerge: true,\n replaceMerge: ['xAxis', 'yAxis', 'series'],\n lazyUpdate: false,\n }])\n }\n })\n }\n\n function toggleToolbox(show: boolean) {\n // 修改条件判断,移除 isDisposed 检查\n if (myChart && !myChart.isDisposed()) {\n try {\n myChart.setOption({\n toolbox: {\n show,\n },\n })\n }\n catch (error) {\n console.warn('Error toggling toolbox:', error)\n }\n }\n }\n\n // 移除这里的 watchDebounced 调用,改为在图表初始化后调用\n\n onMounted(async () => {\n if (initBefore) {\n await initBefore()\n }\n\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 使用安全的初始化函数\n await safeInitChart()\n\n // 如果图表已经初始化(容器有尺寸),调用 initAfter 和设置 resize\n if (myChart && !myChart.isDisposed()) {\n if (initAfter) {\n initAfter(myChart)\n }\n useResize(myChart, chartDOM)\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n })\n\n onUnmounted(() => {\n // 停止所有 watch 监听器\n watchStopHandles.forEach(stop => stop())\n watchStopHandles = []\n\n // 清理 ResizeObserver\n if (resizeObserver) {\n resizeObserver.disconnect()\n resizeObserver = null\n }\n\n // 清理全局 IntersectionObserver 中的当前元素\n cleanupObservers()\n\n if (myChart && !myChart.isDisposed()) {\n try {\n // 清理所有事件监听器\n myChart.getZr()?.off('mousemove')\n myChart.getZr()?.off('mouseout')\n myChart.getZr()?.off('click')\n myChart.off('click')\n disposeChart()\n }\n catch (error) {\n console.warn('Error during chart cleanup:', error)\n }\n }\n })\n\n return {\n myChart: () => myChart,\n }\n}\n\nexport function useResize(myChart: ECharts, chartDOM: Ref<HTMLElement | null>) {\n const { width, height } = useElementSize(chartDOM)\n watchDebounced([width, height], () => {\n if (myChart && !myChart.isDisposed()) {\n try {\n myChart.resize()\n }\n catch (error) {\n console.warn('Error during chart resize:', error)\n }\n }\n })\n}\n\nexport function useDataToExcelJson(dataSource: EChartData) {\n const { desc: { colDesc = [], groupByDesc = [] } = {}, data = [] } = dataSource\n const header = [...groupByDesc.map(item => item.colDesc), ...colDesc].filter(v => v) as string[]\n const json = data.map((item) => {\n return header.map((headerItem) => {\n return item[headerItem as keyof typeof item] || ''\n })\n })\n return [header, ...json]\n}\n"],"names":["globalIntersectionObserver","constructor","__publicField","this","Map","createObserver","IntersectionObserver","entries","entry","isIntersecting","callback","callbacks","get","target","unobserve","threshold","rootMargin","observe","element","observer","set","delete","disconnect","clear","useCharts","_ref","chartDOM","chartData","chartOptions","initBefore","initAfter","lazyLoad","myChart","isEmpty","resizeObserver","watchStopHandles","dpr","window","devicePixelRatio","disposeChart","isDisposed","dispose","error","initChart","value","clientWidth","clientHeight","echarts","init","renderer","cleanupObservers","setupWatchers","length","isOutside","mouseInChart","useMouseInElement","stopMouseWatch","watchDebounced","newVal","show","setOption","toolbox","toggleToolbox","debounce","stopOptionsWatch","async","_len","arguments","opt","Array","_key","safeInitChart","showLoading","data","notMerge","setEmpty","hideLoading","renderChart","deep","immediate","push","startInitialization","nextTick","useResize","ResizeObserver","width","height","contentRect","setupResizeObserver","subtext","Promise","resolve","img","Image","src","emptyImg","onload","aspectRatio","obj","title","text","modelName","top","left","itemGap","subtextStyle","fontSize","textStyle","align","rich","a","backgroundColor","image","replaceMerge","lazyUpdate","onMounted","onUnmounted","forEach","stop","getZr","off","useElementSize","resize","useDataToExcelJson","dataSource","desc","colDesc","groupByDesc","header","map","item","filter","v","json","headerItem"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as e,computed as t,ref as a,createElementBlock as r,openBlock as l,normalizeClass as i,unref as s,createElementVNode as n,createCommentVNode as o,createTextVNode as u,Fragment as p,renderList as c,toDisplayString as d,withModifiers as f,createVNode as m}from"vue";import{useNamespace as v}from"@qxs-bns/hooks";import{QxsMessage as y}from"../../message/src/message.mjs";import{QxsAlert as h}from"../../alert/index.mjs";const g=["accept","multiple"],q=["onClick"];var x=e({name:"QxsFileUpload",__name:"file-upload",props:{action:{type:String,required:!0},headers:{type:Object,required:!1},data:{type:Object,required:!1},name:{type:String,required:!1,default:"file"},size:{type:Number,required:!1,default:20},max:{type:Number,required:!1,default:3},accept:{type:String,required:!1,default:"zip,rar"},files:{type:Array,required:!1,default:()=>[]},notip:{type:Boolean,required:!1,default:!1},ext:{type:Array,required:!1}},emits:["onSuccess"],setup(e,{emit:x}){const b=e,j=x,k=v("file-upload"),z=t(()=>b.accept.split(",")),S=a([...b.files]),C=a(!1),O=e=>{const t=e.name.split(".").at(-1)??"",a=z.value.includes(t),r=e.size/1024/1024<b.size;return a?r?!(S.value.length>=b.max)||(y.warning("文件上传超过限制"),!1):(y.error(`上传文件大小不能超过 ${b.size}MB!`),!1):(y.error(`上传文件只支持 ${z.value.join(" / ")} 格式!`),!1)},$=e=>{C.value=!1;const t=e.dataTransfer?.files;t&&Array.from(t).forEach(e=>{O(e)&&M(e)})},w=e=>{e.preventDefault(),C.value=!0},B=()=>{C.value=!1},D=e=>{const t=e.target,a=t.files;a&&(Array.from(a).forEach(e=>{O(e)&&M(e)}),t.value="")},M=e=>{const t=new FormData;t.append(b.name,e),b.data&&Object.entries(b.data).forEach(([e,a])=>{t.append(e,a)});const a=new XMLHttpRequest;a.open("POST",b.action),b.headers&&Object.entries(b.headers).forEach(([e,t])=>{a.setRequestHeader(e,t)}),a.onload=()=>{if(a.status>=200&&a.status<300){const t=JSON.parse(a.responseText);S.value.push({name:e.name,file:e}),j("onSuccess",t,e,S.value.map(e=>e.file).filter(Boolean))}else y.error("上传失败")},a.onerror=()=>{y.error("上传失败")},a.send(t)};return(e,t)=>(l(),r("div",{class:i(s(k).b())},[n("div",{class:i([s(k).e("control"),{"is-dragging":C.value}]),onDrop:$,onDragover:w,onDragleave:B,onClick:t[0]||(t[0]=t=>e.$refs.fileInput.click())},[n("input",{ref:"fileInput",type:"file",accept:e.accept,multiple:e.max>1,style:{display:"none"},onChange:D},null,40,g),n("div",{class:i(s(k).e("icon"))},t[1]||(t[1]=[n("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"48",height:"48"},[n("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"})],-1)]),2),n("div",{class:i(s(k).e("text"))},t[2]||(t[2]=[u(" 将文件拖到此处,或",-1),n("em",null,"点击上传",-1)]),2)],34),S.value.length?(l(),r("div",{key:0,class:i(s(k).e("list"))},[(l(!0),r(p,null,c(S.value,(e,t)=>(l(),r("div",{key:t,class:i(s(k).e("item"))},[n("span",null,d(e.name),1),n("button",{type:"button",class:i(s(k).e("remove")),onClick:f(e=>(e=>{S.value.splice(e,1)})(t),["stop"])}," × ",10,q)],2))),128))],2)):o("v-if",!0),e.notip?o("v-if",!0):(l(),r("div",{key:1,class:i(s(k).e("tip"))},[m(s(h),{title:`上传文件支持 ${z.value.join(" / ")} 格式,单个文件大小不超过 ${e.size}MB,且文件数量不超过 ${e.max} 个`,type:"info"},null,8,["title"])],2))],2))}});export{x as default};
|
|
2
|
-
//# sourceMappingURL=file-upload.vue2.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.vue2.mjs","sources":["../../../../../../packages/components/src/file-upload/src/file-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { computed, ref } from 'vue'\nimport { QxsMessage } from '../../message'\nimport { QxsAlert } from '../../alert'\n\ndefineOptions({\n name: 'QxsFileUpload',\n})\n\nexport interface FileUploadProps {\n action: string\n headers?: Record<string, string>\n data?: Record<string, string | Blob>\n name?: string\n size?: number\n max?: number\n accept?: string\n files?: Array<{ name: string; url?: string; file?: File }>\n notip?: boolean\n ext?: string[]\n}\n\nconst props = withDefaults(defineProps<FileUploadProps>(), {\n name: 'file',\n size: 20,\n max: 3,\n files: () => [],\n notip: false,\n accept: 'zip,rar',\n})\n\nconst emit = defineEmits<{\n onSuccess: [res: any, file: File, fileList: File[]]\n}>()\n\nconst ns = useNamespace('file-upload')\n\nconst exts = computed(() => {\n return props.accept.split(',')\n})\n\nconst internalFiles = ref<Array<{ name: string; url?: string; file?: File }>>([...props.files])\nconst isDragging = ref(false)\n\nconst beforeUpload = (file: File): boolean => {\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 QxsMessage.error(`上传文件只支持 ${exts.value.join(' / ')} 格式!`)\n return false\n }\n if (!isSizeOk) {\n QxsMessage.error(`上传文件大小不能超过 ${props.size}MB!`)\n return false\n }\n if (internalFiles.value.length >= props.max) {\n QxsMessage.warning('文件上传超过限制')\n return false\n }\n\n return true\n}\n\nconst handleDrop = (e: DragEvent) => {\n isDragging.value = false\n const files = e.dataTransfer?.files\n if (!files) return\n\n Array.from(files).forEach((file) => {\n if (beforeUpload(file)) {\n uploadFile(file)\n }\n })\n}\n\nconst handleDragOver = (e: DragEvent) => {\n e.preventDefault()\n isDragging.value = true\n}\n\nconst handleDragLeave = () => {\n isDragging.value = false\n}\n\nconst handleFileSelect = (e: Event) => {\n const target = e.target as HTMLInputElement\n const files = target.files\n if (!files) return\n\n Array.from(files).forEach((file) => {\n if (beforeUpload(file)) {\n uploadFile(file)\n }\n })\n\n target.value = ''\n}\n\nconst uploadFile = (file: File) => {\n const formData = new FormData()\n formData.append(props.name, file)\n\n if (props.data) {\n Object.entries(props.data).forEach(([key, value]) => {\n formData.append(key, value)\n })\n }\n\n const xhr = new XMLHttpRequest()\n xhr.open('POST', props.action)\n\n if (props.headers) {\n Object.entries(props.headers).forEach(([key, value]) => {\n xhr.setRequestHeader(key, value)\n })\n }\n\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n const res = JSON.parse(xhr.responseText)\n internalFiles.value.push({ name: file.name, file })\n emit('onSuccess', res, file, internalFiles.value.map((f) => f.file).filter(Boolean) as File[])\n } else {\n QxsMessage.error('上传失败')\n }\n }\n\n xhr.onerror = () => {\n QxsMessage.error('上传失败')\n }\n\n xhr.send(formData)\n}\n\nconst handleRemove = (index: number) => {\n internalFiles.value.splice(index, 1)\n}\n</script>\n\n<template>\n <div :class=\"ns.b()\">\n <div\n :class=\"[ns.e('control'), { 'is-dragging': isDragging }]\"\n @drop=\"handleDrop\"\n @dragover=\"handleDragOver\"\n @dragleave=\"handleDragLeave\"\n @click=\"($refs.fileInput as HTMLInputElement).click()\"\n >\n <input\n ref=\"fileInput\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"max > 1\"\n style=\"display: none;\"\n @change=\"handleFileSelect\"\n >\n <div :class=\"ns.e('icon')\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"48\" height=\"48\">\n <path d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\" />\n </svg>\n </div>\n <div :class=\"ns.e('text')\">\n 将文件拖到此处,或<em>点击上传</em>\n </div>\n </div>\n\n <div v-if=\"internalFiles.length\" :class=\"ns.e('list')\">\n <div v-for=\"(file, index) in internalFiles\" :key=\"index\" :class=\"ns.e('item')\">\n <span>{{ file.name }}</span>\n <button type=\"button\" :class=\"ns.e('remove')\" @click.stop=\"handleRemove(index)\">\n ×\n </button>\n </div>\n </div>\n\n <div v-if=\"!notip\" :class=\"ns.e('tip')\">\n <QxsAlert\n :title=\"`上传文件支持 ${exts.join(' / ')} 格式,单个文件大小不超过 ${size}MB,且文件数量不超过 ${max} 个`\"\n type=\"info\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.qxs-file-upload {\n width: 100%;\n}\n\n.qxs-file-upload__control {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 150px;\n padding: 24px;\n cursor: pointer;\n background: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 4px;\n transition: border-color 0.2s;\n}\n\n.qxs-file-upload__control:hover,\n.qxs-file-upload__control.is-dragging {\n border-color: #409eff;\n}\n\n.qxs-file-upload__icon {\n margin-bottom: 12px;\n color: #c0c4cc;\n}\n\n.qxs-file-upload__text {\n font-size: 14px;\n color: #909399;\n}\n\n.qxs-file-upload__text em {\n font-style: normal;\n color: #409eff;\n}\n\n.qxs-file-upload__list {\n margin-top: 12px;\n}\n\n.qxs-file-upload__item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n font-size: 14px;\n color: #606266;\n border-bottom: 1px solid #eee;\n}\n\n.qxs-file-upload__item:last-child {\n border-bottom: none;\n}\n\n.qxs-file-upload__item span {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.qxs-file-upload__remove {\n padding: 0;\n margin-left: 12px;\n font-size: 16px;\n color: #c0c4cc;\n cursor: pointer;\n background: none;\n border: none;\n transition: color 0.2s;\n}\n\n.qxs-file-upload__remove:hover {\n color: #f56c6c;\n}\n\n.qxs-file-upload__tip {\n margin-top: 12px;\n}\n</style>\n"],"names":["props","__props","emit","__emit","ns","useNamespace","exts","computed","accept","split","internalFiles","ref","files","isDragging","beforeUpload","file","fileExt","name","at","isTypeOk","value","includes","isSizeOk","size","length","max","QxsMessage","warning","error","join","handleDrop","e","dataTransfer","Array","from","forEach","uploadFile","handleDragOver","preventDefault","handleDragLeave","handleFileSelect","target","formData","FormData","append","data","Object","entries","key","xhr","XMLHttpRequest","open","action","headers","setRequestHeader","onload","status","res","JSON","parse","responseText","push","map","f","filter","Boolean","onerror","send","_createElementBlock","class","_normalizeClass","_unref","b","_createElementVNode","onDrop","onDragover","onDragleave","onClick","_cache","$event","$refs","fileInput","click","type","multiple","style","display","onChange","viewBox","fill","width","height","d","_openBlock","_Fragment","_renderList","index","_toDisplayString","_withModifiers","splice","handleRemove","_hoisted_2","notip","_createVNode","QxsAlert","title"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e from"../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var o=".qxs-file-upload[data-v-1059eba1]{width:100%}.qxs-file-upload__control[data-v-1059eba1]{align-items:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:150px;padding:24px;transition:border-color .2s}.qxs-file-upload__control.is-dragging[data-v-1059eba1],.qxs-file-upload__control[data-v-1059eba1]:hover{border-color:#409eff}.qxs-file-upload__icon[data-v-1059eba1]{color:#c0c4cc;margin-bottom:12px}.qxs-file-upload__text[data-v-1059eba1]{color:#909399;font-size:14px}.qxs-file-upload__text em[data-v-1059eba1]{color:#409eff;font-style:normal}.qxs-file-upload__list[data-v-1059eba1]{margin-top:12px}.qxs-file-upload__item[data-v-1059eba1]{align-items:center;border-bottom:1px solid #eee;color:#606266;display:flex;font-size:14px;justify-content:space-between;padding:8px 12px}.qxs-file-upload__item[data-v-1059eba1]:last-child{border-bottom:none}.qxs-file-upload__item span[data-v-1059eba1]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qxs-file-upload__remove[data-v-1059eba1]{background:none;border:none;color:#c0c4cc;cursor:pointer;font-size:16px;margin-left:12px;padding:0;transition:color .2s}.qxs-file-upload__remove[data-v-1059eba1]:hover{color:#f56c6c}.qxs-file-upload__tip[data-v-1059eba1]{margin-top:12px}";e(o);export{o as default};
|
|
2
|
-
//# sourceMappingURL=file-upload.vue3.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/fixed-action-bar/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/fixed-action-bar.vue'\n\nconst QxsFixedActionBar = withInstall(component)\n\nexport {\n QxsFixedActionBar,\n}\n\nexport default QxsFixedActionBar\n"],"names":["QxsFixedActionBar","withInstall","component"],"mappings":"+FAGA,MAAMA,EAAoBC,EAAYC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as e,ref as t,computed as a,onMounted as n,onUnmounted as i,createElementBlock as o,openBlock as r,normalizeStyle as l,createElementVNode as s,normalizeClass as d,unref as c,renderSlot as u}from"vue";import{useNamespace as p}from"@qxs-bns/hooks";import{getDeviceType as h}from"@qxs-bns/utils";import{debounce as m}from"lodash-es";var v=e({name:"QxsFixedActionBar",props:{padding:{type:Number,default:8},className:{type:String,default:""}},setup(e){const v=e,f=p("fixed-action-bar"),g=t(!1),b=t(null),x=t(null),w=t({width:0,height:0}),y=t(0),N=t(0),F={resize:null,parent:null};function R(e,t,a){const n=new ResizeObserver(e=>{e.forEach(e=>requestAnimationFrame(()=>t(e)))});return n.observe(e,a),n}function $(){if(!b.value||!x.value)return;F.resize=R(b.value,e=>{const t=function(e){const t=getComputedStyle(e);return{x:Number.parseFloat(t.paddingLeft)+Number.parseFloat(t.paddingRight),y:Number.parseFloat(t.paddingTop)+Number.parseFloat(t.paddingBottom)}}(e.target);w.value={width:e.contentRect.width+t.x,height:e.contentRect.height+t.y}},{box:"border-box"});const e=x.value.parentElement;e&&(F.parent=R(e,()=>{const t=e.getBoundingClientRect();y.value=t.width,N.value=t.left}))}const E=m(()=>{const{scrollY:e}=window,{clientHeight:t,scrollHeight:a}=document.documentElement;g.value=Math.ceil(e+t)>=a},100),k=a(()=>g.value?"":f.is("shadow")),z=a(()=>"Android"===h()?Math.max(v.padding,20):v.padding),B=a(()=>({width:`${y.value}px`,left:`${N.value}px`,...f.cssVarBlock({"actionbar-padding":`${v.padding}px`,"actionbar-padding-bottom":`${z.value}px`})}));return n(()=>{$(),window.addEventListener("scroll",E,{passive:!0})}),i(()=>{F.resize?.disconnect(),F.parent?.disconnect(),window.removeEventListener("scroll",E)}),(t,a)=>(r(),o("div",{ref_key:"placeholderRef",ref:x,style:l({width:"100%",height:`${w.value.height}px`})},[s("div",{ref_key:"actionbar",ref:b,style:l(B.value),class:d([c(f).e("actionbar"),k.value,e.className]),"data-fixed-calc-width":""},[u(t.$slots,"default")],6)],4))}});export{v as default};
|
|
2
|
-
//# sourceMappingURL=fixed-action-bar.vue.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-action-bar.vue.mjs","sources":["../../../../../../packages/components/src/fixed-action-bar/src/fixed-action-bar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { getDeviceType } from '@qxs-bns/utils'\nimport { debounce } from 'lodash-es'\nimport { computed, onMounted, onUnmounted, ref } from 'vue'\n\nconst props = defineProps({\n padding: {\n type: Number,\n default: 8,\n },\n className: {\n type: String,\n default: '',\n },\n})\n\ninterface ElementSize { width: number, height: number }\n\nconst ns = useNamespace('fixed-action-bar')\nconst isBottom = ref(false)\nconst actionbar = ref<HTMLElement | null>(null)\nconst placeholderRef = ref<HTMLElement | null>(null)\n\nconst elementSize = ref<ElementSize>({ width: 0, height: 0 })\nconst parentWidth = ref(0)\nconst elementLeft = ref(0)\n\nconst observers = {\n resize: null as ResizeObserver | null,\n parent: null as ResizeObserver | null,\n}\n\nfunction getTotalPadding(el: HTMLElement) {\n const style = getComputedStyle(el)\n return {\n x: Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight),\n y: Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom),\n }\n}\n\nfunction createResizeObserver(el: HTMLElement,\n callback: (entry: ResizeObserverEntry) => void,\n options?: ResizeObserverOptions) {\n const observer = new ResizeObserver((entries) => {\n entries.forEach(entry => requestAnimationFrame(() => callback(entry)))\n })\n observer.observe(el, options)\n return observer\n}\n\nfunction initObservers() {\n if (!actionbar.value || !placeholderRef.value) {\n return\n }\n\n // 主元素尺寸观察\n observers.resize = createResizeObserver(\n actionbar.value,\n (entry) => {\n const padding = getTotalPadding(entry.target as HTMLElement)\n elementSize.value = {\n width: entry.contentRect.width + padding.x,\n height: entry.contentRect.height + padding.y,\n }\n },\n { box: 'border-box' },\n )\n\n // 父元素观察\n const parent = placeholderRef.value.parentElement\n if (parent) {\n observers.parent = createResizeObserver(parent, () => {\n const rect = parent.getBoundingClientRect()\n parentWidth.value = rect.width\n elementLeft.value = rect.left\n })\n }\n}\n\nconst calculateScrollDetails = debounce(() => {\n const { scrollY } = window\n const { clientHeight, scrollHeight } = document.documentElement\n isBottom.value = Math.ceil(scrollY + clientHeight) >= scrollHeight\n}, 100)\n\nconst shadowClass = computed(() => (!isBottom.value ? ns.is('shadow') : ''))\n\nconst paddingBottom = computed(() =>\n getDeviceType() === 'Android' ? Math.max(props.padding, 20) : props.padding,\n)\n\nconst actionbarStyle = computed(() => ({\n width: `${parentWidth.value}px`,\n left: `${elementLeft.value}px`,\n ...ns.cssVarBlock({\n 'actionbar-padding': `${props.padding}px`,\n 'actionbar-padding-bottom': `${paddingBottom.value}px`,\n }),\n}))\n\nonMounted(() => {\n initObservers()\n window.addEventListener('scroll', calculateScrollDetails, { passive: true })\n})\n\nonUnmounted(() => {\n observers.resize?.disconnect()\n observers.parent?.disconnect()\n window.removeEventListener('scroll', calculateScrollDetails)\n})\n</script>\n\n<script lang=\"ts\">\nexport default {\n name: 'QxsFixedActionBar',\n}\n</script>\n\n<template>\n <div\n ref=\"placeholderRef\"\n :style=\"{ width: '100%', height: `${elementSize.height}px` }\"\n >\n <div\n ref=\"actionbar\"\n :style=\"actionbarStyle\"\n :class=\"[ns.e('actionbar'), shadowClass, className]\"\n data-fixed-calc-width\n >\n <slot />\n </div>\n </div>\n</template>\n"],"names":["name","props","__props","ns","useNamespace","isBottom","ref","actionbar","placeholderRef","elementSize","width","height","parentWidth","elementLeft","observers","resize","parent","createResizeObserver","el","callback","options","observer","ResizeObserver","entries","forEach","entry","requestAnimationFrame","observe","initObservers","value","padding","style","getComputedStyle","x","Number","parseFloat","paddingLeft","paddingRight","y","paddingTop","paddingBottom","getTotalPadding","target","contentRect","box","parentElement","rect","getBoundingClientRect","left","calculateScrollDetails","debounce","scrollY","window","clientHeight","scrollHeight","document","documentElement","Math","ceil","shadowClass","computed","is","getDeviceType","max","actionbarStyle","cssVarBlock","onMounted","addEventListener","passive","onUnmounted","disconnect","removeEventListener","_createElementBlock","_normalizeStyle","_createElementVNode","class","_unref","e","className","_renderSlot","_ctx","$slots"],"mappings":"0WAmHEA,KAAM,wGA7GR,MAAMC,EAAQC,EAaRC,EAAKC,EAAa,oBAClBC,EAAWC,GAAI,GACfC,EAAYD,EAAwB,MACpCE,EAAiBF,EAAwB,MAEzCG,EAAcH,EAAiB,CAAEI,MAAO,EAAGC,OAAQ,IACnDC,EAAcN,EAAI,GAClBO,EAAcP,EAAI,GAElBQ,EAAY,CAChBC,OAAQ,KACRC,OAAQ,MAWV,SAASC,EAAqBC,EAC5BC,EACAC,GACA,MAAMC,EAAW,IAAIC,eAAgBC,IACnCA,EAAQC,QAAQC,GAASC,sBAAsB,IAAMP,EAASM,OAGhE,OADAJ,EAASM,QAAQT,EAAIE,GACdC,CACT,CAEA,SAASO,IACP,IAAKrB,EAAUsB,QAAUrB,EAAeqB,MACtC,OAIFf,EAAUC,OAASE,EACjBV,EAAUsB,MACTJ,IACC,MAAMK,EA3BZ,SAAyBZ,GACvB,MAAMa,EAAQC,iBAAiBd,GAC/B,MAAO,CACLe,EAAGC,OAAOC,WAAWJ,EAAMK,aAAeF,OAAOC,WAAWJ,EAAMM,cAClEC,EAAGJ,OAAOC,WAAWJ,EAAMQ,YAAcL,OAAOC,WAAWJ,EAAMS,eAErE,CAqBsBC,CAAgBhB,EAAMiB,QACtCjC,EAAYoB,MAAQ,CAClBnB,MAAOe,EAAMkB,YAAYjC,MAAQoB,EAAQG,EACzCtB,OAAQc,EAAMkB,YAAYhC,OAASmB,EAAQQ,IAG/C,CAAEM,IAAK,eAIT,MAAM5B,EAASR,EAAeqB,MAAMgB,cAChC7B,IACFF,EAAUE,OAASC,EAAqBD,EAAQ,KAC9C,MAAM8B,EAAO9B,EAAO+B,wBACpBnC,EAAYiB,MAAQiB,EAAKpC,MACzBG,EAAYgB,MAAQiB,EAAKE,OAG/B,CAEA,MAAMC,EAAyBC,EAAS,KACtC,MAAMC,QAAEA,GAAYC,QACdC,aAAEA,EAAAC,aAAcA,GAAiBC,SAASC,gBAChDnD,EAASwB,MAAQ4B,KAAKC,KAAKP,EAAUE,IAAiBC,GACrD,KAEGK,EAAcC,EAAS,IAAQvD,EAASwB,MAA0B,GAAlB1B,EAAG0D,GAAG,WAEtDrB,EAAgBoB,EAAS,IACT,YAApBE,IAAgCL,KAAKM,IAAI9D,EAAM6B,QAAS,IAAM7B,EAAM6B,SAGhEkC,EAAiBJ,EAAS,KAAA,CAC9BlD,MAAO,GAAGE,EAAYiB,UACtBmB,KAAM,GAAGnC,EAAYgB,aAClB1B,EAAG8D,YAAY,CAChB,oBAAqB,GAAGhE,EAAM6B,YAC9B,2BAA4B,GAAGU,EAAcX,sBAIjDqC,EAAU,KACRtC,IACAwB,OAAOe,iBAAiB,SAAUlB,EAAwB,CAAEmB,SAAS,MAGvEC,EAAY,KACVvD,EAAUC,QAAQuD,aAClBxD,EAAUE,QAAQsD,aAClBlB,OAAOmB,oBAAoB,SAAUtB,iBAWrCuB,EAYM,MAAA,SAXA,iBAAJlE,IAAIE,EACHuB,MAAK0C,EAAA,CAAA/D,MAAA,OAAAC,OAAA,GAA8BF,EAAAoB,MAAYlB,eAEhD+D,EAOM,MAAA,SANA,YAAJpE,IAAIC,EACHwB,QAAOiC,EAAAnC,OACP8C,SAAQC,EAAAzE,GAAG0E,EAAC,aAAelB,EAAA9B,MAAa3B,EAAA4E,YACzC,wBAAA,KAEAC,EAAQC,EAAAC,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-action-bar.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-upload.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineComponent as e,mergeModels as a,useModel as i,ref as l,computed as t,onUnmounted as s,createElementBlock as u,openBlock as r,normalizeStyle as o,createElementVNode as n,createCommentVNode as d,Fragment as p,renderList as c,createVNode as m,unref as v,normalizeClass as g,toDisplayString as f,withModifiers as h}from"vue";import{ZoomIn as q,Delete as _,UploadImage as x}from"@qxs-bns/icons";import{QxsIcon as y}from"../../icon/index.mjs";import{QxsMessage as b}from"../../message/src/message.mjs";const k={class:"qxs-image-upload__list"},w=["src","alt"],j={key:1,class:"qxs-image-upload__placeholder"},C={key:2,class:"qxs-image-upload__progress"},L={class:"qxs-image-upload__actions"},z=["onClick"],$=["onClick"],O=["accept","multiple","disabled"],R={class:"qxs-image-upload__add-content"},S={key:0,class:"qxs-image-upload__tip"},U=["src"];var M=e({name:"QxsImageUpload",__name:"image-upload",props:a({action:{type:String,required:!0},headers:{type:Object,required:!1},data:{type:Object,required:!1},name:{type:String,required:!1,default:"file"},size:{type:Number,required:!1,default:20},width:{type:Number,required:!1,default:160},height:{type:Number,required:!1,default:90},accept:{type:String,required:!1,default:"image/jpeg,image/jpg,image/png,image/gif"},placeholder:{type:String,required:!1,default:"上传图片"},notip:{type:Boolean,required:!1,default:!1},tipText:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1},limit:{type:Number,required:!1,default:1}},{fileList:{type:Array,default:()=>[]},fileListModifiers:{}}),emits:a(["success","remove"],["update:fileList"]),setup(e,{emit:a}){const M=e,N=a,T=i(e,"fileList"),B=l(!1),E=l(0),A=l(!1),D=l(0),H=t(()=>M.accept.split(",").map(e=>e.split("/").pop())),I=t(()=>{if(M.tipText)return M.tipText;return`支持 ${H.value.join(" / ")} 格式,大小不超过 ${M.size}MB`+(M.width&&M.height?`,建议尺寸 ${M.width}×${M.height}`:"")}),W=t(()=>({"--upload-width":`${M.width}px`,"--upload-height":`${M.height}px`}));function F(e){const a=e.target,i=a.files;i&&!M.disabled&&(T.value.length+i.length>M.limit?b.warning(`最多上传 ${M.limit} 张图片`):(Array.from(i).forEach(e=>{if(!function(e){const a=e.name.split(".").pop()?.toLowerCase()??"";return H.value.some(e=>e?.toLowerCase()===a)?!(e.size/1024/1024>M.size&&(b.error(`图片大小不能超过 ${M.size}MB`),1)):(b.error(`仅支持上传 ${H.value.join(" / ")} 格式的图片`),!1)}(e))return;const a={uid:Date.now()+Math.random(),name:e.name,size:e.size,status:"uploading",url:URL.createObjectURL(e),file:e};T.value.push(a),function(e,a){const i=new FormData;i.append(M.name,e),M.data&&Object.entries(M.data).forEach(([e,a])=>{i.append(e,a)});const l=new XMLHttpRequest;l.open("POST",M.action),M.headers&&Object.entries(M.headers).forEach(([e,a])=>{l.setRequestHeader(e,a)});l.upload.onprogress=e=>{e.lengthComputable&&(E.value=Math.floor(e.loaded/e.total*100))},l.onload=()=>{if(B.value=!1,E.value=0,l.status>=200&&l.status<300){const e=JSON.parse(l.responseText);a.status="success",N("success",e,a,T.value)}else a.status="fail",b.error("上传失败")},l.onerror=()=>{B.value=!1,E.value=0,a.status="fail",b.error("上传失败")},B.value=!0,E.value=0,l.send(i)}(e,a)}),a.value=""))}function J(){A.value=!1}function P(){D.value=(D.value-1+T.value.length)%T.value.length}function Q(){D.value=(D.value+1)%T.value.length}return s(()=>{T.value.forEach(e=>{e.url?.startsWith("blob:")&&URL.revokeObjectURL(e.url)})}),(e,a)=>(r(),u("div",{class:"qxs-image-upload",style:o(W.value)},[n("div",k,[(r(!0),u(p,null,c(T.value,(a,i)=>(r(),u("div",{key:a.uid||i,class:"qxs-image-upload__item"},[a.url?(r(),u("img",{key:0,src:a.url,alt:a.name},null,8,w)):(r(),u("div",j,"无图片")),"uploading"===a.status?(r(),u("div",C,[n("div",{class:"qxs-image-upload__progress-bar",style:o({width:`${E.value}%`})},null,4)])):d("v-if",!0),n("div",L,[a.url?(r(),u("span",{key:0,class:"qxs-image-upload__action",onClick:e=>function(e){D.value=e,A.value=!0}(i)},[m(v(y),{icon:v(q),size:"14px"},null,8,["icon"])],8,z)):d("v-if",!0),n("span",{class:g(["qxs-image-upload__action",{"is-disabled":e.disabled}]),onClick:e=>function(e){if(M.disabled)return;const a=T.value[e];a.url?.startsWith("blob:")&&URL.revokeObjectURL(a.url),T.value.splice(e,1),N("remove",a)}(i)},[m(v(y),{icon:v(_),size:"14px"},null,8,["icon"])],10,$)])]))),128)),T.value.length<e.limit?(r(),u("label",{key:0,class:g(["qxs-image-upload__add",{"is-disabled":e.disabled}])},[n("input",{type:"file",accept:e.accept,multiple:e.limit>1,disabled:e.disabled,onChange:F},null,40,O),n("div",R,[m(v(y),{icon:v(x),size:"32px"},null,8,["icon"]),n("p",null,f(e.placeholder),1)])],2)):d("v-if",!0)]),e.notip?d("v-if",!0):(r(),u("div",S,f(I.value),1)),d(" Image Viewer "),A.value?(r(),u("div",{key:1,class:"qxs-image-viewer",onClick:h(J,["self"])},[n("div",{class:"qxs-image-viewer__mask",onClick:J}),n("span",{class:"qxs-image-viewer__close",onClick:J},"×"),T.value.length>1?(r(),u("span",{key:0,class:"qxs-image-viewer__prev",onClick:P},"‹")):d("v-if",!0),T.value.length>1?(r(),u("span",{key:1,class:"qxs-image-viewer__next",onClick:Q},"›")):d("v-if",!0),T.value[D.value]?.url?(r(),u("img",{key:2,src:T.value[D.value].url,class:"qxs-image-viewer__img"},null,8,U)):d("v-if",!0)])):d("v-if",!0)],4))}});export{M as default};
|
|
2
|
-
//# sourceMappingURL=image-upload.vue2.mjs.map
|