@qxs-bns/components 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/es/index.js +0 -1
  2. package/es/index.js.map +1 -1
  3. package/es/package.json.js +1 -1
  4. package/es/src/components.js +0 -1
  5. package/es/src/components.js.map +1 -1
  6. package/es/src/subject-list/src/components/subject-single.vue.js +1 -1
  7. package/es/src/subject-list/src/components/subject-single.vue.js.map +1 -1
  8. package/es/src/subject-list/src/subject-list.vue.js +32 -10
  9. package/es/src/subject-list/src/subject-list.vue.js.map +1 -1
  10. package/lib/index.js +18 -20
  11. package/lib/index.js.map +1 -1
  12. package/lib/package.json.js +1 -1
  13. package/lib/src/components.js +18 -20
  14. package/lib/src/components.js.map +1 -1
  15. package/lib/src/subject-list/src/components/subject-single.vue.js +1 -1
  16. package/lib/src/subject-list/src/components/subject-single.vue.js.map +1 -1
  17. package/lib/src/subject-list/src/subject-list.vue.js +32 -10
  18. package/lib/src/subject-list/src/subject-list.vue.js.map +1 -1
  19. package/package.json +10 -4
  20. package/types/index.d.ts +6 -0
  21. package/types/index.d.ts.map +1 -0
  22. package/types/src/base/style/css.d.ts +2 -0
  23. package/types/src/base/style/css.d.ts.map +1 -0
  24. package/types/src/base/style/index.d.ts +2 -0
  25. package/types/src/base/style/index.d.ts.map +1 -0
  26. package/types/src/components.d.ts +10 -0
  27. package/types/src/components.d.ts.map +1 -0
  28. package/types/src/data-chart/index.d.ts +4 -0
  29. package/types/src/data-chart/index.d.ts.map +1 -0
  30. package/types/src/data-chart/src/analyze.d.ts +23 -0
  31. package/types/src/data-chart/src/analyze.d.ts.map +1 -0
  32. package/types/src/data-chart/src/utils/config.d.ts +41 -0
  33. package/types/src/data-chart/src/utils/config.d.ts.map +1 -0
  34. package/types/src/data-chart/src/utils/injectionKeys.d.ts +3 -0
  35. package/types/src/data-chart/src/utils/injectionKeys.d.ts.map +1 -0
  36. package/types/src/data-chart/src/utils/useCharts.d.ts +16 -0
  37. package/types/src/data-chart/src/utils/useCharts.d.ts.map +1 -0
  38. package/types/src/data-chart/style/index.d.ts +3 -0
  39. package/types/src/data-chart/style/index.d.ts.map +1 -0
  40. package/types/src/defaults.d.ts +6 -0
  41. package/types/src/defaults.d.ts.map +1 -0
  42. package/types/src/file-upload/index.d.ts +4 -0
  43. package/types/src/file-upload/index.d.ts.map +1 -0
  44. package/types/src/file-upload/style/index.d.ts +3 -0
  45. package/types/src/file-upload/style/index.d.ts.map +1 -0
  46. package/types/src/fixed-action-bar/index.d.ts +4 -0
  47. package/types/src/fixed-action-bar/index.d.ts.map +1 -0
  48. package/types/src/fixed-action-bar/style/index.d.ts +3 -0
  49. package/types/src/fixed-action-bar/style/index.d.ts.map +1 -0
  50. package/types/src/image-upload/index.d.ts +4 -0
  51. package/types/src/image-upload/index.d.ts.map +1 -0
  52. package/types/src/image-upload/style/index.d.ts +3 -0
  53. package/types/src/image-upload/style/index.d.ts.map +1 -0
  54. package/types/src/make-installer.d.ts +9 -0
  55. package/types/src/make-installer.d.ts.map +1 -0
  56. package/types/src/photo-crop-tool/index.d.ts +4 -0
  57. package/types/src/photo-crop-tool/index.d.ts.map +1 -0
  58. package/types/src/photo-crop-tool/src/composables.d.ts +7 -0
  59. package/types/src/photo-crop-tool/src/composables.d.ts.map +1 -0
  60. package/types/src/photo-crop-tool/style/index.d.ts +3 -0
  61. package/types/src/photo-crop-tool/style/index.d.ts.map +1 -0
  62. package/types/src/subject-action/index.d.ts +4 -0
  63. package/types/src/subject-action/index.d.ts.map +1 -0
  64. package/types/src/subject-action/style/index.d.ts +3 -0
  65. package/types/src/subject-action/style/index.d.ts.map +1 -0
  66. package/types/src/subject-layout/index.d.ts +4 -0
  67. package/types/src/subject-layout/index.d.ts.map +1 -0
  68. package/types/src/subject-layout/style/index.d.ts +3 -0
  69. package/types/src/subject-layout/style/index.d.ts.map +1 -0
  70. package/types/src/subject-list/index.d.ts +4 -0
  71. package/types/src/subject-list/index.d.ts.map +1 -0
  72. package/types/src/subject-list/style/index.d.ts +3 -0
  73. package/types/src/subject-list/style/index.d.ts.map +1 -0
  74. package/types/src/subject-type/index.d.ts +4 -0
  75. package/types/src/subject-type/index.d.ts.map +1 -0
  76. package/types/src/subject-type/style/index.d.ts +3 -0
  77. package/types/src/subject-type/style/index.d.ts.map +1 -0
  78. package/types/src/tiny-mce-editor/index.d.ts +4 -0
  79. package/types/src/tiny-mce-editor/index.d.ts.map +1 -0
  80. package/types/src/tiny-mce-editor/style/index.d.ts +3 -0
  81. package/types/src/tiny-mce-editor/style/index.d.ts.map +1 -0
  82. package/types/src/withInstall.d.ts +4 -0
  83. package/types/src/withInstall.d.ts.map +1 -0
  84. package/types/tsconfig.tsbuildinfo +1 -0
  85. package/es/_virtual/_plugin-vue_export-helper.js +0 -10
  86. package/es/_virtual/_plugin-vue_export-helper.js.map +0 -1
  87. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +0 -27
  88. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  89. package/es/src/data-chart/index.js +0 -7
  90. package/es/src/data-chart/index.js.map +0 -1
  91. package/es/src/data-chart/src/data-chart.vue.js +0 -8
  92. package/es/src/data-chart/src/data-chart.vue.js.map +0 -1
  93. package/es/src/data-chart/src/data-chart.vue2.js +0 -108
  94. package/es/src/data-chart/src/data-chart.vue2.js.map +0 -1
  95. package/es/src/data-chart/src/data-chart.vue3.js +0 -7
  96. package/es/src/data-chart/src/data-chart.vue3.js.map +0 -1
  97. package/es/src/data-chart/src/utils/config.js +0 -380
  98. package/es/src/data-chart/src/utils/config.js.map +0 -1
  99. package/es/src/data-chart/src/utils/injectionKeys.js +0 -4
  100. package/es/src/data-chart/src/utils/injectionKeys.js.map +0 -1
  101. package/es/src/data-chart/src/utils/useCharts.js +0 -23
  102. package/es/src/data-chart/src/utils/useCharts.js.map +0 -1
  103. package/lib/_virtual/_plugin-vue_export-helper.js +0 -14
  104. package/lib/_virtual/_plugin-vue_export-helper.js.map +0 -1
  105. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +0 -31
  106. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  107. package/lib/src/data-chart/index.js +0 -12
  108. package/lib/src/data-chart/index.js.map +0 -1
  109. package/lib/src/data-chart/src/data-chart.vue.js +0 -12
  110. package/lib/src/data-chart/src/data-chart.vue.js.map +0 -1
  111. package/lib/src/data-chart/src/data-chart.vue2.js +0 -112
  112. package/lib/src/data-chart/src/data-chart.vue2.js.map +0 -1
  113. package/lib/src/data-chart/src/data-chart.vue3.js +0 -11
  114. package/lib/src/data-chart/src/data-chart.vue3.js.map +0 -1
  115. package/lib/src/data-chart/src/utils/config.js +0 -384
  116. package/lib/src/data-chart/src/utils/config.js.map +0 -1
  117. package/lib/src/data-chart/src/utils/injectionKeys.js +0 -6
  118. package/lib/src/data-chart/src/utils/injectionKeys.js.map +0 -1
  119. package/lib/src/data-chart/src/utils/useCharts.js +0 -25
  120. package/lib/src/data-chart/src/utils/useCharts.js.map +0 -1
@@ -1,23 +0,0 @@
1
- import '@vueuse/core';
2
- import 'echarts';
3
- import 'vue';
4
-
5
- function useDataToExcelJson(dataSource) {
6
- const {
7
- desc: {
8
- colDesc = [],
9
- groupByDesc = []
10
- } = {},
11
- data = []
12
- } = dataSource;
13
- const header = [...groupByDesc.map(item => item.colDesc), ...colDesc].filter(v => v);
14
- const json = data.map(item => {
15
- return header.map(headerItem => {
16
- return item[headerItem] || "";
17
- });
18
- });
19
- return [header, ...json];
20
- }
21
-
22
- export { useDataToExcelJson };
23
- //# sourceMappingURL=useCharts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCharts.js","sources":["../../../../../../../packages/components/src/data-chart/src/utils/useCharts.ts"],"sourcesContent":["import type { ECharts, SetOptionOpts } from 'echarts'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { EChartData, EChartsOption, IFormatPublicData } from '../types'\nimport { useElementSize, useMouseInElement, watchDebounced } from '@vueuse/core'\nimport * as echarts from 'echarts'\nimport { onMounted, onUnmounted, ref } from 'vue'\n\n// 使用别名路径导入 SVG\nimport emptyImg from '../components/empty.svg'\n\nexport function useCharts({ chartDOM, chartData, chartOptions, mountedBefore, initAfter, callback }: {\n chartDOM: Ref<HTMLElement | null>\n chartData: ComputedRef<IFormatPublicData>\n chartOptions: ComputedRef<EChartsOption>\n mountedBefore?: () => void\n initAfter?: () => void\n callback?: (e: ECharts) => void\n}) {\n let myChart: ECharts | null = null\n const initChartSuccess = ref(false)\n\n // 获取设备像素比\n const dpr = window.devicePixelRatio || 1\n\n function disposeChart() {\n if (myChart && !myChart.isDisposed()) {\n myChart.dispose()\n myChart = null\n }\n }\n\n function initChart(...opt: [EChartsOption, SetOptionOpts]) {\n if (!myChart || !initChartSuccess.value || !chartDOM.value) {\n return\n }\n\n myChart.showLoading()\n try {\n if (myChart.isDisposed()) {\n // 如果实例已被销毁,重新创建\n myChart = echarts.init(chartDOM.value, null, {\n devicePixelRatio: dpr,\n renderer: 'svg',\n })\n }\n myChart.setOption(...opt)\n }\n catch (error) {\n console.log('error: ', error)\n disposeChart()\n if (chartDOM.value) {\n myChart = echarts.init(chartDOM.value, null, {\n devicePixelRatio: dpr,\n renderer: 'svg',\n })\n setEmpty('配置项错误')\n }\n }\n finally {\n myChart?.hideLoading()\n }\n }\n\n const { isOutside: mouseInChart } = useMouseInElement(chartDOM)\n watchDebounced(mouseInChart, (newVal) => {\n if (typeof newVal !== 'boolean') {\n return\n }\n toggleToolbox(!newVal)\n }, { debounce: 200 })\n\n function setEmpty(subtext = '暂无数据') {\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 textStyle: {\n align: 'center',\n rich: {\n a: {\n color: '#000',\n fontSize: '16',\n height: 80,\n width: 160,\n backgroundColor: {\n image: emptyImg,\n },\n },\n },\n },\n subtextStyle: {\n fontSize: 16,\n },\n }],\n }\n initChart(obj, {\n notMerge: true,\n replaceMerge: ['xAxis', 'yAxis', 'series'],\n lazyUpdate: false,\n })\n }\n\n function toggleToolbox(show: boolean) {\n if (!myChart?.isDisposed()) {\n myChart?.setOption({\n toolbox: {\n show,\n },\n })\n }\n }\n\n onMounted(async () => {\n if (mountedBefore) {\n await mountedBefore()\n }\n if (!chartDOM.value) {\n return\n }\n disposeChart() // 确保旧实例被清理\n myChart = echarts.init(chartDOM.value, null, {\n devicePixelRatio: dpr,\n renderer: 'svg',\n })\n if (callback) {\n callback(myChart)\n }\n if (initAfter) {\n await initAfter()\n }\n\n useResize(myChart, chartDOM)\n\n initChartSuccess.value = true\n\n if (chartData.value?.data?.length) {\n initChart(chartOptions.value, {})\n }\n else {\n setEmpty()\n }\n })\n\n onUnmounted(() => {\n if (myChart) {\n myChart.getZr()?.off('mousemove')\n myChart.getZr()?.off('mouseout')\n disposeChart()\n }\n })\n\n return {\n 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) {\n myChart.resize()\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":["useDataToExcelJson","dataSource","desc","colDesc","groupByDesc","data","header","map","item","filter","v","json","headerItem"],"mappings":";;;;AA2KO,SAASA,mBAAmBC,UAAwB,EAAA;EACzD,MAAM;AAAEC,IAAAA,IAAA,EAAM;AAAEC,MAAAA,OAAA,GAAU,EAAI;AAAAC,MAAAA,WAAA,GAAc;QAAO,EAAC;AAAGC,IAAAA,IAAO,GAAA;AAAG,GAAI,GAAAJ,UAAA;EACrE,MAAMK,MAAS,GAAA,CAAC,GAAGF,WAAA,CAAYG,IAAYC,IAAA,IAAAA,IAAA,CAAKL,OAAO,CAAA,EAAG,GAAGA,OAAO,CAAE,CAAAM,MAAA,MAAYC,CAAC,CAAA;AACnF,EAAA,MAAMC,IAAO,GAAAN,IAAA,CAAKE,GAAI,CAACC,IAAS,IAAA;AACvB,IAAA,OAAAF,MAAA,CAAOC,GAAI,CAACK,UAAe,IAAA;AACzB,MAAA,OAAAJ,IAAA,CAAKI,UAA+B,CAAK,IAAA,EAAA;AAClD,KAAC,CAAA;AACH,GAAC,CAAA;AACM,EAAA,OAAA,CAACN,MAAQ,EAAA,GAAGK,IAAI,CAAA;AACzB;;;;"}
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _export_sfc = (sfc, props) => {
6
- const target = sfc.__vccOpts || sfc;
7
- for (const [key, val] of props) {
8
- target[key] = val;
9
- }
10
- return target;
11
- };
12
-
13
- exports.default = _export_sfc;
14
- //# sourceMappingURL=_plugin-vue_export-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_plugin-vue_export-helper.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function styleInject(css, ref) {
6
- if (ref === void 0) ref = {};
7
- var insertAt = ref.insertAt;
8
- if (typeof document === 'undefined') {
9
- return;
10
- }
11
- var head = document.head || document.getElementsByTagName('head')[0];
12
- var style = document.createElement('style');
13
- style.type = 'text/css';
14
- if (insertAt === 'top') {
15
- if (head.firstChild) {
16
- head.insertBefore(style, head.firstChild);
17
- } else {
18
- head.appendChild(style);
19
- }
20
- } else {
21
- head.appendChild(style);
22
- }
23
- if (style.styleSheet) {
24
- style.styleSheet.cssText = css;
25
- } else {
26
- style.appendChild(document.createTextNode(css));
27
- }
28
- }
29
-
30
- exports.default = styleInject;
31
- //# sourceMappingURL=style-inject.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style-inject.es.js","sources":["../../../../../../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":";;;;AAAA,SAASA,WAAWA,CAACC,GAAG,EAAEC,GAAG,EAAE;EAC7B,IAAKA,GAAG,KAAK,MAAM,EAAGA,GAAG,GAAG,EAAE;AAC9B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;AAE3B,EAAA,IAAY,OAAOC,QAAQ,KAAK,WAAW,EAAE;AAAE,IAAA;AAAQ;AAEvD,EAAA,IAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAACE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,EAAA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;EAC3CD,KAAK,CAACE,IAAI,GAAG,UAAU;EAEvB,IAAIN,QAAQ,KAAK,KAAK,EAAE;IACtB,IAAIE,IAAI,CAACK,UAAU,EAAE;MACnBL,IAAI,CAACM,YAAY,CAACJ,KAAK,EAAEF,IAAI,CAACK,UAAU,CAAC;AAC3C,KAAC,MAAM;AACLL,MAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;AACF,GAAC,MAAM;AACLF,IAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB;EAEA,IAAIA,KAAK,CAACM,UAAU,EAAE;AACpBN,IAAAA,KAAK,CAACM,UAAU,CAACC,OAAO,GAAGb,GAAG;AAChC,GAAC,MAAM;IACLM,KAAK,CAACK,WAAW,CAACR,QAAQ,CAACW,cAAc,CAACd,GAAG,CAAC,CAAC;AACjD;AACF;;;;","x_google_ignoreList":[0]}
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var withInstall = require('../withInstall.js');
6
- var dataChart = require('./src/data-chart.vue.js');
7
-
8
- const QxsDataChart = withInstall.withInstall(dataChart.default);
9
-
10
- exports.QxsDataChart = QxsDataChart;
11
- exports.default = QxsDataChart;
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/src/data-chart/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/data-chart.vue'\n\nconst QxsDataChart = withInstall(component)\n\nexport {\n QxsDataChart,\n}\nexport default QxsDataChart\n"],"names":["QxsDataChart","withInstall","component"],"mappings":";;;;;;;AAGA,MAAMA,YAAA,GAAeC,wBAAYC,iBAAS;;;;;"}
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var dataChart_vue_vue_type_script_setup_true_lang = require('./data-chart.vue2.js');
6
- require('./data-chart.vue3.js');
7
- var _pluginVue_exportHelper = require('../../../_virtual/_plugin-vue_export-helper.js');
8
-
9
- var component = /* @__PURE__ */ _pluginVue_exportHelper.default(dataChart_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-28590d9c"]]);
10
-
11
- exports.default = component;
12
- //# sourceMappingURL=data-chart.vue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-chart.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,112 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var vue = require('vue');
6
- var utils = require('@qxs-bns/utils');
7
- var lodashEs = require('lodash-es');
8
- var config = require('./utils/config.js');
9
- var injectionKeys = require('./utils/injectionKeys.js');
10
- var useCharts = require('./utils/useCharts.js');
11
-
12
- var _sfc_main = /* @__PURE__ */ vue.defineComponent({
13
- ...{
14
- name: "QxsDataChart"
15
- },
16
- __name: "data-chart",
17
- props: {
18
- modelName: { type: String, required: false, default: "" },
19
- showTypeName: { type: String, required: false, default: "table" },
20
- subShowType: { type: String, required: false },
21
- data: { type: Object, required: false, default: () => ({
22
- data: [],
23
- desc: {
24
- colDesc: [],
25
- showDesc: {
26
- showType: 0,
27
- chartOptions: "{}",
28
- jsCodeSnippet: ""
29
- },
30
- groupByDesc: []
31
- }
32
- }) },
33
- chartOptions: { type: null, required: false, default: () => ({}) },
34
- jsCodeSnippet: { type: String, required: false, default: "" }
35
- },
36
- setup(__props, { expose: __expose }) {
37
- const coms = {};
38
- const defaultChartOptionCopy = vue.computed(() => {
39
- return lodashEs.cloneDeep(config.defaultChartOption[__props.showTypeName]);
40
- });
41
- const formatPublicData = vue.computed(() => {
42
- const { desc: { colDesc = [], groupByDesc = [] } = {}, data = [] } = __props.data;
43
- let xValue = [];
44
- let xGroupByDesc = null;
45
- xValue = groupByDesc?.map((groupByDescItem) => {
46
- if (groupByDescItem.xAxis) {
47
- xGroupByDesc = groupByDescItem;
48
- }
49
- return groupByDescItem;
50
- });
51
- const dataValue = xGroupByDesc ? data.filter((item) => item && item[xGroupByDesc.colDesc]) : data;
52
- return {
53
- colDesc,
54
- modelName: __props.modelName,
55
- subShowType: __props.subShowType,
56
- xGroupByDesc: xGroupByDesc || {
57
- groupByDesc: null,
58
- groupByValues: null,
59
- colDesc: null,
60
- xAxis: false
61
- },
62
- groupByDesc: xValue,
63
- data: dataValue
64
- };
65
- });
66
- function exportExal() {
67
- if (__props.data.data.length === 0) {
68
- console.log("\u6682\u65E0\u6570\u636E");
69
- return;
70
- }
71
- const arr = useCharts.useDataToExcelJson(__props.data);
72
- utils.JsonToExcel(__props.modelName, arr);
73
- }
74
- function merge(config, defaultConfig) {
75
- const mergeOpt = lodashEs.merge({}, defaultChartOptionCopy.value, config, defaultConfig);
76
- let conf = mergeOpt || {};
77
- if (__props.jsCodeSnippet) {
78
- try {
79
- const dynamicFunction = new Function(
80
- "config",
81
- `"use strict"; ${__props.jsCodeSnippet}; return config;`
82
- );
83
- conf = dynamicFunction(conf);
84
- } catch (error) {
85
- console.error("\u4EE3\u7801\u6267\u884C\u5931\u8D25:", error);
86
- }
87
- }
88
- return conf;
89
- }
90
- vue.watchEffect(() => {
91
- if (coms[__props.showTypeName]) {
92
- return;
93
- }
94
- coms[__props.showTypeName] = vue.defineAsyncComponent(() => import(`./components/${__props.showTypeName}.vue`));
95
- });
96
- __expose({
97
- exportExal
98
- });
99
- vue.provide(injectionKeys.InjectionChartMerge, merge);
100
- return (_ctx, _cache) => {
101
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(coms[_ctx.showTypeName]), {
102
- class: "data-chart",
103
- "sub-show-type": _ctx.subShowType,
104
- "chart-data": formatPublicData.value,
105
- "chart-options": _ctx.chartOptions
106
- }, null, 8, ["sub-show-type", "chart-data", "chart-options"]);
107
- };
108
- }
109
- });
110
-
111
- exports.default = _sfc_main;
112
- //# sourceMappingURL=data-chart.vue2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-chart.vue2.js","sources":["../../../../../../packages/components/src/data-chart/src/data-chart.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartData, EChartsOption, IFormatPublicData } from './types'\nimport type { IconRow } from './types/index'\nimport { JsonToExcel } from '@qxs-bns/utils'\nimport { cloneDeep, merge as lodashMerge } from 'lodash-es'\nimport { computed, defineAsyncComponent, provide, watchEffect } from 'vue'\nimport { defaultChartOption } from './utils/config'\nimport { InjectionChartMerge } from './utils/injectionKeys'\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} = defineProps<{\n modelName?: string\n showTypeName?: IconRow['showTypeName']\n subShowType?: string\n data?: EChartData\n chartOptions?: EChartsOption\n jsCodeSnippet?: string\n}>()\n\nconst coms: {\n [key: string]: any\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 = []\n\n let xGroupByDesc: EChartData['desc']['groupByDesc'][0] | null = null\n xValue = groupByDesc?.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 const dataValue = xGroupByDesc ? data.filter(item => item && item[xGroupByDesc!.colDesc!]) : 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 return {\n colDesc,\n modelName,\n subShowType,\n xGroupByDesc: (xGroupByDesc || {\n groupByDesc: null,\n groupByValues: null,\n colDesc: null,\n xAxis: false,\n }),\n groupByDesc: xValue,\n data: dataValue,\n }\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 if (jsCodeSnippet) {\n try {\n // 用 Function 构造函数替代 eval\n const dynamicFunction = new Function(\n 'config',\n `\"use strict\"; ${jsCodeSnippet}; return config;`\n );\n \n // 执行动态函数并传递 conf 参数\n conf = dynamicFunction(conf);\n } catch (error) {\n console.error(\"代码执行失败:\", error);\n }\n }\n return conf\n}\n\nwatchEffect(() => {\n if (coms[showTypeName]) {\n return\n }\n coms[showTypeName] = defineAsyncComponent(() => import(`./components/${showTypeName}.vue`))\n})\n\ndefineExpose({\n exportExal,\n})\nprovide(InjectionChartMerge, merge)\n</script>\n\n<template>\n <component\n :is=\"coms[showTypeName]\"\n class=\"data-chart\"\n :sub-show-type=\"subShowType\"\n :chart-data=\"formatPublicData\"\n :chart-options=\"chartOptions\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart {\n height: 100%;\n}\n</style>\n"],"names":["computed","cloneDeep","defaultChartOption","useDataToExcelJson","JsonToExcel","lodashMerge","watchEffect","defineAsyncComponent","provide","InjectionChartMerge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAA,MAAM,OAEF,EAAC;AAEL,IAAM,MAAA,sBAAA,GAAyBA,aAAS,MAAM;AAC5C,MAAA,OAAOC,kBAAU,CAAAC,yBAAA,CAAmB,oBAAY,CAAC,CAAA;AAAA,KAClD,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmBF,aAA4B,MAAM;AACzD,MAAA,MAAM,EAAE,IAAM,EAAA,EAAE,OAAU,GAAA,IAAI,WAAc,GAAA,EAAG,EAAA,GAAI,EAAI,EAAA,IAAA,GAAO,EAAC,KAAM,OAAA,CAAA,IAAA;AAGrE,MAAA,IAAI,SAAS,EAAC;AAEd,MAAA,IAAI,YAA4D,GAAA,IAAA;AAChE,MAAS,MAAA,GAAA,WAAA,EAAa,GAAI,CAAA,CAAC,eAAoB,KAAA;AAQ7C,QAAA,IAAI,gBAAgB,KAAO,EAAA;AACzB,UAAe,YAAA,GAAA,eAAA;AAAA;AAEjB,QAAO,OAAA,eAAA;AAAA,OACR,CAAA;AAED,MAAM,MAAA,SAAA,GAAY,YAAe,GAAA,IAAA,CAAK,MAAO,CAAA,CAAA,IAAA,KAAQ,QAAQ,IAAK,CAAA,YAAA,CAAc,OAAQ,CAAC,CAAI,GAAA,IAAA;AAa7F,MAAO,OAAA;AAAA,QACL,OAAA;AAAA,QACA,WAAS,OAAA,CAAA,SAAA;AAAA,QACT,aAAW,OAAA,CAAA,WAAA;AAAA,QACX,cAAe,YAAgB,IAAA;AAAA,UAC7B,WAAa,EAAA,IAAA;AAAA,UACb,aAAe,EAAA,IAAA;AAAA,UACf,OAAS,EAAA,IAAA;AAAA,UACT,KAAO,EAAA;AAAA,SACT;AAAA,QACA,WAAa,EAAA,MAAA;AAAA,QACb,IAAM,EAAA;AAAA,OACR;AAAA,KACD,CAAA;AAGD,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,IAAI,aAAS,IAAK,CAAA,MAAA,KAAW,CAAG,EAAA;AAE9B,QAAA,OAAA,CAAQ,IAAI,0BAAM,CAAA;AAClB,QAAA;AAAA;AAEF,MAAM,MAAA,GAAA,GAAMG,4BAAmB,CAAA,OAAA,CAAQ,IAAA,CAAA;AACvC,MAAYC,iBAAA,CAAA,OAAA,CAAA,WAAW,GAAG,CAAA;AAAA;AAE5B,IAAS,SAAA,KAAA,CAAM,QAAuB,aAA8B,EAAA;AAClE,MAAA,MAAM,WAAWC,cAAY,CAAA,IAAI,sBAAuB,CAAA,KAAA,EAAO,QAAQ,aAAa,CAAA;AACpF,MAAI,IAAA,IAAA,GAAO,YAAY,EAAC;AACxB,MAAA,IAAI,QAAA,aAAe,EAAA;AACjB,QAAI,IAAA;AAEF,UAAA,MAAM,kBAAkB,IAAI,QAAA;AAAA,YAC1B,QAAA;AAAA,YACA,CAAA,cAAA,EAAiB,QAAA,aAAa,CAAA,gBAAA;AAAA,WAChC;AAGA,UAAA,IAAA,GAAO,gBAAgB,IAAI,CAAA;AAAA,iBACpB,KAAO,EAAA;AACd,UAAQ,OAAA,CAAA,KAAA,CAAM,yCAAW,KAAK,CAAA;AAAA;AAChC;AAEF,MAAO,OAAA,IAAA;AAAA;AAGT,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAI,IAAA,IAAA,CAAK,OAAY,CAAA,YAAA,CAAG,EAAA;AACtB,QAAA;AAAA;AAEF,MAAK,IAAA,CAAA,OAAA,CAAA,YAAY,CAAI,GAAAC,wBAAA,CAAqB,MAAM,OAAO,CAAA,aAAA,EAAgB,OAAY,CAAA,YAAA,CAAO,IAAA,CAAA,CAAA,CAAA;AAAA,KAC3F,CAAA;AAED,IAAa,QAAA,CAAA;AAAA,MACX;AAAA,KACD,CAAA;AACD,IAAAC,WAAA,CAAQC,mCAAqB,KAAK,CAAA;;;;;;;;;;;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var styleInject_es = require('../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
6
-
7
- var css_248z = ".data-chart[data-v-28590d9c] {\n height: 100%;\n}";
8
- styleInject_es.default(css_248z);
9
-
10
- exports.default = css_248z;
11
- //# sourceMappingURL=data-chart.vue3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-chart.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,384 +0,0 @@
1
- 'use strict';
2
-
3
- var lodashEs = require('lodash-es');
4
-
5
- const iconList = {
6
- data: [{
7
- showTypeName: "table",
8
- label: "\u8868\u683C",
9
- coverImg: "table.png",
10
- disabled: () => false,
11
- subTypeList: [],
12
- showType: 0,
13
- baseConfig: {}
14
- }, {
15
- showTypeName: "line",
16
- label: "\u6298\u7EBF\u56FE",
17
- coverImg: "line-stack.png",
18
- showType: 1,
19
- subTypeList: [{
20
- value: "line-simple",
21
- icon: "line-smooth",
22
- tooltipContent: "\u6298\u7EBF\u56FE"
23
- }, {
24
- value: "area-basic",
25
- icon: "chart-line-area",
26
- tooltipContent: "\u6298\u7EBF\u9762\u79EF\u56FE"
27
- }],
28
- baseConfig: {
29
- tooltip: {
30
- confine: false,
31
- trigger: "axis",
32
- axisPointer: {
33
- type: "line"
34
- }
35
- },
36
- toolbox: {
37
- show: false,
38
- showTitle: false,
39
- feature: {
40
- // dataView: { readOnly: true },
41
- // restore: {},
42
- saveAsImage: {}
43
- }
44
- },
45
- legend: {
46
- type: "scroll",
47
- top: "25px"
48
- },
49
- grid: {
50
- left: "0",
51
- bottom: "10px",
52
- containLabel: true
53
- },
54
- xAxis: {
55
- type: "category",
56
- boundaryGap: false
57
- },
58
- yAxis: {
59
- type: "value"
60
- },
61
- dataZoom: [{
62
- type: "inside"
63
- }]
64
- },
65
- disabled: (_, groupByInfos) => {
66
- const groupByInfosLenght = groupByInfos?.length;
67
- if (groupByInfosLenght >= 1 && groupByInfosLenght < 2) {
68
- return false;
69
- }
70
- return true;
71
- }
72
- }, {
73
- showTypeName: "bar",
74
- label: "\u67F1\u72B6\u56FE",
75
- coverImg: "bar-tick-align.png",
76
- showType: 2,
77
- baseConfig: {
78
- legend: {
79
- type: "scroll",
80
- top: "25px"
81
- },
82
- tooltip: {
83
- confine: false,
84
- trigger: "axis",
85
- axisPointer: {
86
- type: "shadow"
87
- }
88
- },
89
- toolbox: {
90
- show: false,
91
- showTitle: false,
92
- feature: {
93
- // dataView: { readOnly: true },
94
- // restore: {},
95
- saveAsImage: {}
96
- // myFull: { // 全屏
97
- // show: true,
98
- // title: '全屏',
99
- // icon: 'path://...',
100
- // }
101
- }
102
- },
103
- grid: {
104
- left: "0",
105
- bottom: "20px",
106
- containLabel: true
107
- },
108
- xAxis: {
109
- axisLabel: {
110
- showMaxLabel: true
111
- },
112
- axisTick: {
113
- alignWithLabel: true
114
- }
115
- },
116
- yAxis: {},
117
- dataZoom: [{
118
- type: "inside"
119
- }]
120
- },
121
- subTypeList: [{
122
- value: "bar-simple",
123
- icon: "bar-simple",
124
- tooltipContent: "\u5782\u76F4\u6761\u5F62\u56FE"
125
- }, {
126
- value: "bar-y-category",
127
- icon: "bar-y-category",
128
- tooltipContent: "\u6C34\u5E73\u6761\u5F62\u56FE"
129
- }],
130
- disabled: (_, groupByInfos) => {
131
- const groupByInfosLenght = groupByInfos?.length;
132
- if (groupByInfosLenght >= 1) {
133
- return false;
134
- }
135
- return true;
136
- }
137
- }, {
138
- showTypeName: "pie",
139
- label: "\u997C\u56FE",
140
- coverImg: "pie-simple.png",
141
- showType: 4,
142
- subTypeList: [{
143
- value: "pie-simple",
144
- icon: "pie-simple",
145
- tooltipContent: "\u997C\u56FE"
146
- }, {
147
- value: "pie-borderRadius",
148
- icon: "pie-borderRadius",
149
- tooltipContent: "\u73AF\u5F62\u56FE"
150
- }],
151
- baseConfig: {
152
- tooltip: {
153
- confine: true,
154
- formatter: "{a}<br>{b}: {c}({d}%)",
155
- trigger: "item"
156
- },
157
- toolbox: {
158
- show: false,
159
- showTitle: false,
160
- feature: {
161
- // dataView: { readOnly: true },
162
- // restore: {},
163
- saveAsImage: {}
164
- }
165
- },
166
- legend: {
167
- type: "scroll",
168
- top: "25px"
169
- }
170
- },
171
- disabled: (selectInfos, groupByInfos) => {
172
- const groupByInfosLenght = groupByInfos?.length;
173
- const selectInfosLength = selectInfos?.length;
174
- if (selectInfosLength <= 4 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {
175
- return false;
176
- }
177
- return true;
178
- }
179
- }, {
180
- showTypeName: "area",
181
- label: "\u5730\u56FE",
182
- coverImg: "area.png",
183
- showType: 5,
184
- subTypeList: [],
185
- baseConfig: {
186
- tooltip: {
187
- confine: true,
188
- trigger: "item"
189
- },
190
- toolbox: {
191
- show: false,
192
- showTitle: false,
193
- feature: {
194
- // dataView: { readOnly: true },
195
- // restore: {},
196
- saveAsImage: {}
197
- }
198
- },
199
- visualMap: {
200
- text: ["\u9AD8", "\u4F4E"],
201
- realtime: false,
202
- calculable: true,
203
- inRange: {
204
- color: ["lightskyblue", "yellow", "orangered"]
205
- }
206
- }
207
- },
208
- disabled: (_, groupByInfos) => {
209
- const groupByInfosLenght = groupByInfos?.length;
210
- const flag = groupByInfos?.some(_ref => {
211
- let {
212
- colDesc
213
- } = _ref;
214
- return colDesc.includes("\u7701") || colDesc.includes("\u5E02");
215
- });
216
- if (flag && groupByInfosLenght > 0) {
217
- return false;
218
- }
219
- return true;
220
- }
221
- }, {
222
- showTypeName: "funnel",
223
- label: "\u6F0F\u6597\u56FE",
224
- coverImg: "funnel.png",
225
- showType: 6,
226
- subTypeList: [],
227
- baseConfig: {
228
- tooltip: {
229
- confine: true,
230
- trigger: "item",
231
- formatter: "{a} <br/>{b} : {c}"
232
- },
233
- toolbox: {
234
- show: false,
235
- showTitle: false,
236
- feature: {
237
- // dataView: { readOnly: true },
238
- // restore: {},
239
- saveAsImage: {}
240
- }
241
- },
242
- legend: {
243
- type: "scroll",
244
- top: 20
245
- }
246
- },
247
- disabled: (selectInfos, groupByInfos) => {
248
- const groupByInfosLenght = groupByInfos?.length;
249
- const selectInfosLength = selectInfos?.length;
250
- if (selectInfosLength <= 5 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {
251
- return false;
252
- }
253
- return true;
254
- }
255
- },
256
- // { label: 'scatter', value: 7 },
257
- {
258
- showTypeName: "card",
259
- label: "\u5361\u7247",
260
- coverImg: "card.png",
261
- showType: 9,
262
- subTypeList: [],
263
- baseConfig: {},
264
- disabled: (selectInfos, groupByInfos) => {
265
- const groupByInfosLenght = groupByInfos?.length;
266
- const selectInfosLength = selectInfos?.length;
267
- if (selectInfosLength > 0 && groupByInfosLenght <= 1) {
268
- return false;
269
- }
270
- return true;
271
- }
272
- }, {
273
- showTypeName: "radar",
274
- label: "\u96F7\u8FBE\u56FE",
275
- coverImg: "radar.png",
276
- showType: 10,
277
- subTypeList: [],
278
- baseConfig: {
279
- legend: {
280
- type: "scroll",
281
- orient: "vertical",
282
- left: "left",
283
- top: "25px"
284
- },
285
- tooltip: {
286
- confine: true,
287
- trigger: "item"
288
- },
289
- toolbox: {
290
- show: false,
291
- showTitle: false,
292
- feature: {
293
- // dataView: { readOnly: true },
294
- // restore: {},
295
- saveAsImage: {}
296
- }
297
- },
298
- radar: {
299
- // shape: 'circle',
300
- center: ["50%", "55%"]
301
- }
302
- },
303
- disabled: (selectInfos, groupByInfos) => {
304
- const groupByInfosLenght = groupByInfos?.length;
305
- if (groupByInfosLenght === 1 && selectInfos.length === 1) {
306
- return false;
307
- }
308
- return true;
309
- }
310
- }, {
311
- showTypeName: "scatter-simple",
312
- label: "\u6563\u70B9\u56FE",
313
- coverImg: "",
314
- showType: 11,
315
- subTypeList: [],
316
- disabled: () => false,
317
- baseConfig: {
318
- grid: {
319
- left: "0",
320
- bottom: "10px",
321
- containLabel: true
322
- },
323
- tooltip: {
324
- showDelay: 0,
325
- axisPointer: {
326
- show: true,
327
- type: "cross",
328
- lineStyle: {
329
- type: "dashed",
330
- width: 1
331
- }
332
- }
333
- },
334
- toolbox: {
335
- show: false,
336
- showTitle: false,
337
- feature: {
338
- // dataView: { readOnly: true },
339
- // restore: {},
340
- saveAsImage: {}
341
- }
342
- },
343
- legend: {
344
- type: "scroll",
345
- top: "25px"
346
- },
347
- xAxis: {
348
- splitLine: {
349
- lineStyle: {
350
- type: "dashed"
351
- }
352
- }
353
- },
354
- yAxis: {
355
- splitLine: {
356
- lineStyle: {
357
- type: "dashed"
358
- }
359
- }
360
- }
361
- }
362
- }]
363
- };
364
- function setDefaultChartOption(option, changeConfig) {
365
- const obj = {};
366
- option.forEach(item => {
367
- obj[item.showTypeName] = lodashEs.merge(item.baseConfig, changeConfig);
368
- });
369
- return obj;
370
- }
371
- const defaultChartOption = setDefaultChartOption(iconList.data, {
372
- backgroundColor: "transparent",
373
- title: {
374
- textStyle: {
375
- fontSize: 14,
376
- lineHeight: 16
377
- }
378
- }
379
- });
380
-
381
- exports.defaultChartOption = defaultChartOption;
382
- exports.iconList = iconList;
383
- exports.setDefaultChartOption = setDefaultChartOption;
384
- //# sourceMappingURL=config.js.map