@ecan-bi/datav 1.0.88 → 1.0.89

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 (102) hide show
  1. package/dist/index.es.js +115 -38
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +114 -37
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +12 -12
  6. package/es/container/modal/Modal.js +1 -4
  7. package/es/container/modal/Modal.js.map +1 -1
  8. package/es/container/modal/index.js.map +1 -1
  9. package/es/container/modal/props.js +1 -1
  10. package/es/container/modal/props.js.map +1 -1
  11. package/es/graph/bar/Bar.js +33 -2
  12. package/es/graph/bar/Bar.js.map +1 -1
  13. package/es/graph/bar/index.js.map +1 -1
  14. package/es/graph/bar/props.js +1 -2
  15. package/es/graph/bar/props.js.map +1 -1
  16. package/es/graph/combo-graph/ComboGraph.js +44 -12
  17. package/es/graph/combo-graph/ComboGraph.js.map +1 -1
  18. package/es/graph/combo-graph/props.js +1 -1
  19. package/es/graph/combo-graph/props.js.map +1 -1
  20. package/es/graph/line/Line.js +37 -3
  21. package/es/graph/line/Line.js.map +1 -1
  22. package/es/graph/line/props.js +7 -6
  23. package/es/graph/line/props.js.map +1 -1
  24. package/es/graph/pie/Pie.js +22 -1
  25. package/es/graph/pie/Pie.js.map +1 -1
  26. package/es/graph/pie/props.js +1 -1
  27. package/es/graph/pie/props.js.map +1 -1
  28. package/es/graph/scatter/Scatter.js +10 -1
  29. package/es/graph/scatter/Scatter.js.map +1 -1
  30. package/es/graph/scatter/props.js +1 -1
  31. package/es/graph/scatter/props.js.map +1 -1
  32. package/es/hooks/useRequestData.js +1 -1
  33. package/es/hooks/useRequestData.js.map +1 -1
  34. package/es/hooks/useValueFormatter.js +2 -1
  35. package/es/hooks/useValueFormatter.js.map +1 -1
  36. package/es/hooks/useVariablesInText.js +33 -11
  37. package/es/hooks/useVariablesInText.js.map +1 -1
  38. package/es/setting/provider-config/ProviderConfig.js +3 -1
  39. package/es/setting/provider-config/ProviderConfig.js.map +1 -1
  40. package/es/table/table/Table.js +87 -28
  41. package/es/table/table/Table.js.map +1 -1
  42. package/es/table/table/index.js.map +1 -1
  43. package/es/table/table/props.js +1 -0
  44. package/es/table/table/props.js.map +1 -1
  45. package/es/text/text/Text.js +21 -1
  46. package/es/text/text/Text.js.map +1 -1
  47. package/es/text/text/props.js +4 -1
  48. package/es/text/text/props.js.map +1 -1
  49. package/lib/container/modal/Modal.js +1 -4
  50. package/lib/container/modal/Modal.js.map +1 -1
  51. package/lib/container/modal/index.js.map +1 -1
  52. package/lib/container/modal/props.js +1 -1
  53. package/lib/container/modal/props.js.map +1 -1
  54. package/lib/graph/bar/Bar.js +33 -2
  55. package/lib/graph/bar/Bar.js.map +1 -1
  56. package/lib/graph/bar/index.js.map +1 -1
  57. package/lib/graph/bar/props.js +1 -2
  58. package/lib/graph/bar/props.js.map +1 -1
  59. package/lib/graph/combo-graph/ComboGraph.js +44 -12
  60. package/lib/graph/combo-graph/ComboGraph.js.map +1 -1
  61. package/lib/graph/combo-graph/props.js +1 -1
  62. package/lib/graph/combo-graph/props.js.map +1 -1
  63. package/lib/graph/line/Line.js +37 -3
  64. package/lib/graph/line/Line.js.map +1 -1
  65. package/lib/graph/line/props.js +7 -6
  66. package/lib/graph/line/props.js.map +1 -1
  67. package/lib/graph/pie/Pie.js +22 -1
  68. package/lib/graph/pie/Pie.js.map +1 -1
  69. package/lib/graph/pie/props.js +1 -1
  70. package/lib/graph/pie/props.js.map +1 -1
  71. package/lib/graph/scatter/Scatter.js +10 -1
  72. package/lib/graph/scatter/Scatter.js.map +1 -1
  73. package/lib/graph/scatter/props.js +1 -1
  74. package/lib/graph/scatter/props.js.map +1 -1
  75. package/lib/hooks/useRequestData.js +1 -1
  76. package/lib/hooks/useRequestData.js.map +1 -1
  77. package/lib/hooks/useValueFormatter.js +2 -1
  78. package/lib/hooks/useValueFormatter.js.map +1 -1
  79. package/lib/hooks/useVariablesInText.js +33 -11
  80. package/lib/hooks/useVariablesInText.js.map +1 -1
  81. package/lib/setting/provider-config/ProviderConfig.js +3 -1
  82. package/lib/setting/provider-config/ProviderConfig.js.map +1 -1
  83. package/lib/style.css +6503 -6503
  84. package/lib/table/table/Table.js +87 -28
  85. package/lib/table/table/Table.js.map +1 -1
  86. package/lib/table/table/index.js.map +1 -1
  87. package/lib/table/table/props.js +1 -0
  88. package/lib/table/table/props.js.map +1 -1
  89. package/lib/text/text/Text.js +21 -1
  90. package/lib/text/text/Text.js.map +1 -1
  91. package/lib/text/text/props.js +4 -1
  92. package/lib/text/text/props.js.map +1 -1
  93. package/package.json +1 -1
  94. package/types/container/modal/index.d.ts +1 -1
  95. package/types/table/table/Table.vue.d.ts +44 -5
  96. package/types/table/table/index.d.ts +45 -6
  97. package/types/table/table/props.d.ts +21 -0
  98. package/types/text/text/Text.vue.d.ts +66 -0
  99. package/types/text/text/index.d.ts +66 -0
  100. package/types/text/text/props.d.ts +36 -0
  101. package/types/hooks/usePickEchartsData.d.ts +0 -2
  102. package/types/hooks/useTooltipFormatter.d.ts +0 -4
package/dist/style.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! @ecan-bi/datav@1.0.88 */
1
+ /*! @ecan-bi/datav@1.0.89 */
2
2
  x-vue-echarts{display:block;width:100%;height:100%}
3
3
  .spin-wrapper {
4
4
  position: relative;
@@ -24,10 +24,10 @@ x-vue-echarts{display:block;width:100%;height:100%}
24
24
  overflow: hidden;
25
25
  background-size: cover;
26
26
  }
27
- .skeleton-wrapper[data-v-1b461e28] {
27
+ .skeleton-wrapper[data-v-604c9a14] {
28
28
  overflow: hidden;
29
29
  }
30
- .ecan-text[data-v-1b461e28] {
30
+ .ecan-text[data-v-604c9a14] {
31
31
  overflow: hidden;
32
32
  display: flex;
33
33
  }
@@ -606,11 +606,11 @@ x-vue-echarts{display:block;width:100%;height:100%}
606
606
  .left-title .title span[data-v-4d96083e] {
607
607
  writing-mode: vertical-lr;
608
608
  }
609
- .contain[data-v-24c6a724] {
609
+ .contain[data-v-780a06e1] {
610
610
  position: relative;
611
611
  overflow: hidden;
612
612
  }
613
- .content[data-v-24c6a724] {
613
+ .content[data-v-780a06e1] {
614
614
  transform-origin: left top;
615
615
  z-index: 999;
616
616
  }
@@ -685,16 +685,16 @@ x-vue-echarts{display:block;width:100%;height:100%}
685
685
  width: 100%;
686
686
  overflow: hidden;
687
687
  }
688
- .table[data-v-0963bd5a] {
688
+ .table[data-v-48569fe8] {
689
689
  width: 100%;
690
690
  }
691
- .goUp[data-v-0963bd5a] {
691
+ .goUp[data-v-48569fe8] {
692
692
  color: #FF512E;
693
693
  display: flex;
694
694
  align-items: center;
695
695
  justify-content: center;
696
696
  }
697
- .goUp[data-v-0963bd5a]:before {
697
+ .goUp[data-v-48569fe8]:before {
698
698
  content: '';
699
699
  display: block;
700
700
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=");
@@ -704,13 +704,13 @@ x-vue-echarts{display:block;width:100%;height:100%}
704
704
  background-size: cover;
705
705
  margin-right: 2px;
706
706
  }
707
- .goDown[data-v-0963bd5a] {
707
+ .goDown[data-v-48569fe8] {
708
708
  color: #39cf93;
709
709
  display: flex;
710
710
  align-items: center;
711
711
  justify-content: center;
712
712
  }
713
- .goDown[data-v-0963bd5a]:before {
713
+ .goDown[data-v-48569fe8]:before {
714
714
  content: '';
715
715
  display: block;
716
716
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA3LTIyVDA5OjM1OjE5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHN0RXZ0OndoZW49IjIwMjItMDctMjJUMDk6MzU6MTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6VDI+BAAABUUlEQVRIia3WPyhGURgG8B8pi0xisStKMioZLQaLiaQMBoxiVBImCwaLf6MssloUk8Gmb7GgJFKSUvIZ7qe+bvd89+A+03uf989z3nPPPe+tK5fLqtF3tSESzRjFAJ4vemams4IaYqulCq9gEo34QGco+LcCg9hHaxW3jpsiBIZxmMp5kXQTRH1k8S4cZCxoE6//FaiXbEtThm87JjkPI+jN4E9xW4TAQoA/isjNFehCT8B3VoTAUID/xHURAn0B/g5fRQh0B/j7mOJkf2gTaKvY7YG8FsxXPe/hIVbgCTs5C+vAasU+xlooMGuLTrCVI/CDR0zVCgi9gzmUIgQmBbYmT+AdY5LjGMKWpNuaqHWKLrEY8JUkXeYi75iu4DzFfUi6ey9C4AvjeKviliTdRSHmsrvBbMU+lzNg0oidaLvox7LIK+IHdem/iqIROzL/jG+NrT1BRsXKNQAAAABJRU5ErkJggg==");
@@ -720,11 +720,11 @@ x-vue-echarts{display:block;width:100%;height:100%}
720
720
  background-size: cover;
721
721
  margin-right: 2px;
722
722
  }
723
- .action-list[data-v-0963bd5a] {
723
+ .action-list[data-v-48569fe8] {
724
724
  display: flex;
725
725
  width: 100%;
726
726
  }
727
- .action[data-v-0963bd5a] {
727
+ .action[data-v-48569fe8] {
728
728
  flex: 1;
729
729
  }
730
730
  .ecan-table *::-webkit-scrollbar {
@@ -119,9 +119,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
119
119
  width: _ctx.isFullModal || _ctx.isFullWidth ? "100%" : _ctx.modalWith,
120
120
  destroyOnClose: _ctx.destroyOnClose,
121
121
  style: normalizeStyle(_ctx.modalStyle),
122
- bodyStyle: {
123
- background: "red"
124
- },
125
122
  onOk: _ctx.onOk,
126
123
  onCancel: _ctx.onCancel
127
124
  }, createSlots({
@@ -160,7 +157,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
160
157
  } : void 0
161
158
  ]), 1032, ["getContainer", "wrapClassName", "visible", "width", "destroyOnClose", "style", "onOk", "onCancel"]);
162
159
  }
163
- const Modal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-24c6a724"]]);
160
+ const Modal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-780a06e1"]]);
164
161
  export {
165
162
  Modal as default
166
163
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/container/modal/Modal.vue"],"sourcesContent":["<template>\n <!-- centered + style 中的 verticalAlign 调整弹窗位置 -->\n <a-modal\n :getContainer=\"getContainer\"\n :wrapClassName=\"wrapClassName\"\n centered\n :visible=\"visible\"\n :footer=\"null\"\n :width=\"isFullModal || isFullWidth ? '100%' : modalWith\"\n :destroyOnClose=\"destroyOnClose\"\n :style=\"modalStyle\"\n :bodyStyle=\"{\n background: 'red'\n }\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/hooks'\nimport { REQUEST_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanModal',\n components: {\n AModal\n },\n props: {\n ...modalComponentProps\n },\n setup (props) {\n const getContainer = () => document.getElementById('ProviderConfig') || document.body\n const modalStyle = computed(() => {\n const position = props.position as ModalPosition\n const map = {\n default: '',\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n return {\n verticalAlign: map[position]\n }\n })\n const width = props.width as string\n const height = props.height as string\n const originalWidth = props.originalWidth as string\n const originalHeight = props.originalHeight as string\n const scaleWidth = computed(() => parseFloat(width) / parseFloat(originalWidth))\n const scaleHeight = computed(() => parseFloat(height) / parseFloat(originalHeight))\n // 弹窗适配\n const modalWith = computed(() => `${unref(scaleWidth) * 100}%`)\n // const modalHeight = computed(() => `${scaleHeight.value * 100}%`)\n const screenWidth = computed(() => document.body.offsetWidth)\n const screenHeight = computed(() => document.body.offsetHeight)\n const containWidth = computed(() => unref(screenWidth) * unref(scaleWidth))\n const containHeight = computed(() => unref(screenHeight) * unref(scaleHeight))\n const containStyle = computed(() => ({\n width: `${unref(containWidth)}px`,\n height: `${unref(containHeight)}px`\n }))\n const style = usePickComponentStyle(props)\n const contentStyle = computed(() => ({\n ...unref(style),\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n transform: `scale(${unref(containWidth) / parseFloat(width)},${unref(containHeight) / parseFloat(height)})`\n }))\n const isFullWidth = computed(() => unref(scaleWidth) >= 1)\n const isFullModal = computed(() => props.fullModal)\n const wrapClassName = computed(() => {\n let className = 'ecan-modal'\n if (unref(isFullWidth)) className += ' ecan-full-width-modal'\n if (unref(isFullModal)) className += ' ecan-full-modal'\n return className\n })\n const visible = ref(false)\n const contain = ref<HTMLElement>()\n const { touchRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n touchRequest: () => void 0\n })\n const showModal = () => {\n visible.value = true\n nextTick(() => {\n touchRequest()\n })\n }\n const hideModal = () => {\n visible.value = false\n }\n const onOk = () => {\n hideModal()\n }\n const onCancel = () => {\n hideModal()\n }\n // 注册\n useOnEvent(props, {\n showModal\n })\n\n return {\n contain,\n containStyle,\n contentStyle,\n getContainer,\n modalStyle,\n modalWith,\n isFullModal,\n style,\n visible,\n showModal,\n onOk,\n onCancel,\n isFullWidth,\n wrapClassName\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.contain {\n position: relative;\n overflow: hidden;\n}\n.content {\n transform-origin: left top;\n z-index: 999;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-modal {\n .ant-modal-body {\n padding: 0;\n }\n .ant-modal-header {\n padding: 0;\n border-bottom: none;\n background: none;\n }\n}\n\n.ecan-full-width-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n.ecan-full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-modal {\n .anticon-close > svg > path {\n fill: #fff;\n }\n}\n</style>\n"],"names":["AModal","_createBlock","_normalizeStyle","_createSlots","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","_resolveDynamicComponent","_mergeProps","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/container/modal/Modal.vue"],"sourcesContent":["<template>\n <!-- centered + style 中的 verticalAlign 调整弹窗位置 -->\n <a-modal\n :getContainer=\"getContainer\"\n :wrapClassName=\"wrapClassName\"\n centered\n :visible=\"visible\"\n :footer=\"null\"\n :width=\"isFullModal || isFullWidth ? '100%' : modalWith\"\n :destroyOnClose=\"destroyOnClose\"\n :style=\"modalStyle\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/hooks'\nimport { REQUEST_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanModal',\n components: {\n AModal\n },\n props: {\n ...modalComponentProps\n },\n setup (props) {\n const getContainer = () => document.getElementById('ProviderConfig') || document.body\n const modalStyle = computed(() => {\n const position = props.position as ModalPosition\n const map = {\n default: '',\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n return {\n verticalAlign: map[position]\n }\n })\n const width = props.width as string\n const height = props.height as string\n const originalWidth = props.originalWidth as string\n const originalHeight = props.originalHeight as string\n const scaleWidth = computed(() => parseFloat(width) / parseFloat(originalWidth))\n const scaleHeight = computed(() => parseFloat(height) / parseFloat(originalHeight))\n // 弹窗适配\n const modalWith = computed(() => `${unref(scaleWidth) * 100}%`)\n // const modalHeight = computed(() => `${scaleHeight.value * 100}%`)\n const screenWidth = computed(() => document.body.offsetWidth)\n const screenHeight = computed(() => document.body.offsetHeight)\n const containWidth = computed(() => unref(screenWidth) * unref(scaleWidth))\n const containHeight = computed(() => unref(screenHeight) * unref(scaleHeight))\n const containStyle = computed(() => ({\n width: `${unref(containWidth)}px`,\n height: `${unref(containHeight)}px`\n }))\n const style = usePickComponentStyle(props)\n const contentStyle = computed(() => ({\n ...unref(style),\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n transform: `scale(${unref(containWidth) / parseFloat(width)},${unref(containHeight) / parseFloat(height)})`\n }))\n const isFullWidth = computed(() => unref(scaleWidth) >= 1)\n const isFullModal = computed(() => props.fullModal)\n const wrapClassName = computed(() => {\n let className = 'ecan-modal'\n if (unref(isFullWidth)) className += ' ecan-full-width-modal'\n if (unref(isFullModal)) className += ' ecan-full-modal'\n return className\n })\n const visible = ref(false)\n const contain = ref<HTMLElement>()\n const { touchRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n touchRequest: () => void 0\n })\n const showModal = () => {\n visible.value = true\n nextTick(() => {\n touchRequest()\n })\n }\n const hideModal = () => {\n visible.value = false\n }\n const onOk = () => {\n hideModal()\n }\n const onCancel = () => {\n hideModal()\n }\n // 注册\n useOnEvent(props, {\n showModal\n })\n\n return {\n contain,\n containStyle,\n contentStyle,\n getContainer,\n modalStyle,\n modalWith,\n isFullModal,\n style,\n visible,\n showModal,\n onOk,\n onCancel,\n isFullWidth,\n wrapClassName\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.contain {\n position: relative;\n overflow: hidden;\n}\n.content {\n transform-origin: left top;\n z-index: 999;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-modal {\n .ant-modal-body {\n padding: 0;\n }\n .ant-modal-header {\n padding: 0;\n border-bottom: none;\n background: none;\n }\n}\n\n.ecan-full-width-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n.ecan-full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-modal {\n .anticon-close > svg > path {\n fill: #fff;\n }\n}\n</style>\n"],"names":["AModal","_createBlock","_normalizeStyle","_createSlots","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","_resolveDynamicComponent","_mergeProps","_withCtx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/container/modal/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n"],"names":[],"mappings":";;;AAEa,MAAA,YAAY,YAAY,KAAK;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/container/modal/index.ts"],"sourcesContent":["import { withInstall } from '@/utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n"],"names":[],"mappings":";;;AAEa,MAAA,YAAY,YAAY,KAAK;"}
@@ -15,7 +15,7 @@ const modalProps = {
15
15
  keyName: "\u5F39\u7A97",
16
16
  componentList: [],
17
17
  fullModal: false,
18
- destroyOnClose: false,
18
+ destroyOnClose: true,
19
19
  position: "default"
20
20
  };
21
21
  const modalComponentProps = transformToComponentProps(modalProps);
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../src/container/modal/props.ts"],"sourcesContent":["import { transformToComponentProps } from '@/utils/props'\n\nexport type ModalPosition = 'default' | 'top' | 'center' | 'bottom'\n\nexport interface ModalProps {\n id: string\n type: string\n width: string\n height: string\n title: string\n titleFontSize: string\n titleColor: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n keyName: string\n componentList: { [key: string]: any } []\n fullModal: boolean // 是否充满全屏\n originalWidth: string // 设计稿宽\n originalHeight: string // 设计稿长\n destroyOnClose: boolean\n position: ModalPosition\n}\n\nexport const modalProps: ModalProps = {\n id: '',\n type: 'ecanModal',\n title: '',\n titleFontSize: '14px',\n titleColor: '',\n width: '1000px',\n height: '800px',\n originalWidth: '1920px',\n originalHeight: '1080px',\n backgroundColor: '#fff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n keyName: '弹窗',\n componentList: [],\n fullModal: false,\n destroyOnClose: false,\n position: 'default'\n}\n\nexport const modalComponentProps = transformToComponentProps(modalProps)\n\nexport const modalEvents = ['showModal']\n"],"names":[],"mappings":";AAwBO,MAAM,aAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,eAAe,CAAC;AAAA,EAChB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,UAAU;AACZ;AAEa,MAAA,sBAAsB,0BAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,WAAW;"}
1
+ {"version":3,"file":"props.js","sources":["../../../src/container/modal/props.ts"],"sourcesContent":["import { transformToComponentProps } from '@/utils/props'\n\nexport type ModalPosition = 'default' | 'top' | 'center' | 'bottom'\n\nexport interface ModalProps {\n id: string\n type: string\n width: string\n height: string\n title: string\n titleFontSize: string\n titleColor: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n keyName: string\n componentList: { [key: string]: any } []\n fullModal: boolean // 是否充满全屏\n originalWidth: string // 设计稿宽\n originalHeight: string // 设计稿长\n destroyOnClose: boolean\n position: ModalPosition\n}\n\nexport const modalProps: ModalProps = {\n id: '',\n type: 'ecanModal',\n title: '',\n titleFontSize: '14px',\n titleColor: '',\n width: '1000px',\n height: '800px',\n originalWidth: '1920px',\n originalHeight: '1080px',\n backgroundColor: '#fff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n keyName: '弹窗',\n componentList: [],\n fullModal: false,\n destroyOnClose: true,\n position: 'default'\n}\n\nexport const modalComponentProps = transformToComponentProps(modalProps)\n\nexport const modalEvents = ['showModal']\n"],"names":[],"mappings":";AAwBO,MAAM,aAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,eAAe,CAAC;AAAA,EAChB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,UAAU;AACZ;AAEa,MAAA,sBAAsB,0BAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,WAAW;"}
@@ -6,6 +6,7 @@ import { useTransformChartDataByAttrValue } from "../../hooks/useTransformChartD
6
6
  import { useRequestData } from "../../hooks/useRequestData.js";
7
7
  import { useTransformChartDataByAttrKey } from "../../hooks/useTransformChartDataByAttrKey.js";
8
8
  import { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from "../../utils/constant.js";
9
+ import { useVariablesInText } from "../../hooks/useVariablesInText.js";
9
10
  import "../../utils/request.js";
10
11
  import { Modal } from "ant-design-vue";
11
12
  import { useValueFormatter } from "../../hooks/useValueFormatter.js";
@@ -14,7 +15,6 @@ import "lodash-es";
14
15
  import Echarts from "../../common/echarts/Echarts.js";
15
16
  import { barComponentProps } from "./props.js";
16
17
  import Spin from "../../common/spin/Spin.js";
17
- import { handleFormatter } from "../../utils/util.js";
18
18
  import { useDownloadFile } from "../../hooks/useDownloadFile.js";
19
19
  import "./Bar.vue_vue_type_style_index_0_lang.js";
20
20
  import _export_sfc from "../../_virtual/plugin-vue_export-helper.js";
@@ -128,7 +128,38 @@ const _sfc_main = defineComponent({
128
128
  tooltip: {
129
129
  trigger: "axis",
130
130
  show: props.tooltipShow,
131
- formatter: handleFormatter(props.tooltipFormatter),
131
+ formatter: (params) => {
132
+ const len = params.length;
133
+ let formatter = "";
134
+ let tooltipFormatter = props.tooltipFormatter;
135
+ if (tooltipFormatter === "") {
136
+ tooltipFormatter = "{marker} {a} {c}";
137
+ }
138
+ for (let i = 0; i < len; i++) {
139
+ const { marker, seriesName, name, value, data } = params[i] || {};
140
+ if (i === 0) {
141
+ formatter += `${name}<br/>`;
142
+ }
143
+ formatter += useVariablesInText(
144
+ tooltipFormatter,
145
+ {
146
+ marker,
147
+ name,
148
+ value,
149
+ a: seriesName,
150
+ b: name,
151
+ c: value,
152
+ ...data
153
+ },
154
+ {
155
+ useNewline: true,
156
+ useSpace: true
157
+ }
158
+ );
159
+ formatter += "<br/>";
160
+ }
161
+ return formatter;
162
+ },
132
163
  textStyle: {
133
164
  color: props.tooltipTextStyleColor
134
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.js","sources":["../../../src/graph/bar/Bar.vue"],"sourcesContent":["<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter\n} from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Data } from '@/utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\nimport { handleFormatter } from '@/utils/util'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nuse([\n CanvasRenderer,\n BarChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanBar',\n props: {\n ...barComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const dataSource = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const series = computed(() => {\n const ds = unref(dataSource)\n const len = ds.length\n const series = []\n for (let i = 0; i < len; i++) {\n const item = {\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n } as { [key:string]: any }\n if (props.isStack) {\n item.stack = 'stack'\n item.label = {\n show: true\n }\n }\n series.push(item)\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => {\n // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const yAxisLabelFormatter = props.yAxisLabelFormatter as string\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n return {\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: handleFormatter(props.tooltipFormatter as string),\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\n interval: 0,\n rotate: props.xAxisLabelRotate,\n width: props.xAxisLabelWidth,\n overflow: props.xAxisLabelOverflow,\n formatter (value: string) {\n return useValueFormatter(xAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n // if (props.isUseHorizontalAxis) return value\n return useValueFormatter(yAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n series: unref(series)\n }\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: Data = [], useDataFieldNames: boolean = false) => {\n let chartData = {} as { [key:string]: any }\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n const { columns = [], rows = [] } = res?.data?.data ?? {}\n let fieldNames\n if (columns.length > 0) {\n fieldNames = {\n name: columns[0],\n types: columns.slice(1).map(column => {\n return {\n label: column,\n value: column\n }\n })\n }\n }\n handleIndicatorDataset(rows, fieldNames, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'indicator':\n handleIndicatorData()\n break\n case 'request':\n handleRequestData()\n break\n }\n }\n\n expose({\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n"],"names":["CanvasRenderer","BarChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","AModal","series","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,IAAI;AAAA,EACFA;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACF,CAAC;AACD,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,GAAG;AAAA,EACL;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IAAA,QACAC;AAAAA,EACF;AAAA,EACA,MAAO,OAAO,EAAE,UAAU;AAClB,UAAA,QAAQ,sBAAsB,KAAK;AACnC,UAAA,aAAa,IAA8B,CAAA,CAAE;AAC7C,UAAA,UAAU,IAAI,KAAK;AACzB,UAAM,YAAY,MAAM;AACtB,cAAQ,QAAQ;AAAA,IAAA;AAEZ,UAAA,SAAS,SAAS,MAAM;AACtB,YAAA,KAAK,MAAM,UAAU;AAC3B,YAAM,MAAM,GAAG;AACf,YAAMC,UAAS,CAAA;AACf,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAM,OAAO;AAAA,UACX,GAAG,GAAG;AAAA,UACN,MAAM;AAAA,UACN,UAAU,MAAM;AAAA,QAAA;AAElB,YAAI,MAAM,SAAS;AACjB,eAAK,QAAQ;AACb,eAAK,QAAQ;AAAA,YACX,MAAM;AAAA,UAAA;AAAA,QAEV;AACA,gBAAO,KAAK,IAAI;AAAA,MAClB;AACOA,aAAAA;AAAAA,IAAA,CACR;AACK,UAAA,aAAa,IAA8B,CAAA,CAAE;AAC7C,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,SAAS,SAAS,MAAM;AAG5B,YAAM,sBAAsB,MAAM;AAClC,YAAM,sBAAsB,MAAM;AAC3B,aAAA;AAAA,QACL,SAAS;AAAA,UACP,MAAM,MAAM;AAAA,UACZ,MAAM,MAAM;AAAA,UACZ,KAAK,MAAM;AAAA,UACX,UAAU,MAAM;AAAA,UAChB,SAAS,MAAM;AAAA,UACf,SAAS;AAAA,YACP,YAAY;AAAA,cACV,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,UAAW;AACT,gCAAgB,MAAM,kBAA4B;AAAA,cACpD;AAAA,YACF;AAAA,YACA,YAAY;AAAA,cACV,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,UAAW;AACT,wBAAQ,QAAQ;AAAA,cAClB;AAAA,YACF;AAAA,YACA,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,UAAW;AACTD,sBAAO,KAAK;AAAA,kBACV,OAAO;AAAA,kBACP,SAAU,MAAM;AAAA,gBAAA,CACjB;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,MAAM,MAAM;AAAA,UACZ,SAAS,MAAM;AAAA,UACf,MAAM;AAAA,QACR;AAAA,QACA,MAAM;AAAA,UACJ,KAAK,MAAM;AAAA,UACX,QAAQ,MAAM;AAAA,UACd,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,cAAc,MAAM;AAAA,QACtB;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS;AAAA,UACP,SAAS;AAAA,UACT,MAAM,MAAM;AAAA,UACZ,WAAW,gBAAgB,MAAM,gBAA0B;AAAA,UAC3D,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,UACf;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,UACN,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM;AAAA,UACd,KAAK,MAAM;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,UACf;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,MAAM,MAAM,sBAAsB,UAAU;AAAA,UAC5C,MAAM,MAAM,sBAAsB,OAAO,MAAM,UAAU;AAAA,UACzD,SAAS,MAAM,sBAAsB,QAAQ,MAAM;AAAA,UACnD,WAAW;AAAA,YACT,MAAM,MAAM;AAAA,YACZ,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,YACb,UAAU;AAAA,YACV,QAAQ,MAAM;AAAA,YACd,OAAO,MAAM;AAAA,YACb,UAAU,MAAM;AAAA,YAChB,UAAW,OAAe;AACjB,qBAAA,kBAAkB,qBAAqB,KAAK;AAAA,YACrD;AAAA,UACF;AAAA,UACA,UAAU;AAAA,YACR,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,UACA,UAAU;AAAA,YACR,MAAM,MAAM;AAAA,UACd;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,MAAM,MAAM,sBAAsB,aAAa;AAAA,UAC/C,MAAM,MAAM,sBAAsB,MAAM,UAAU,IAAI;AAAA,UACtD,SAAS,MAAM,sBAAsB,MAAM,cAAc;AAAA,UACzD,WAAW;AAAA,YACT,MAAM,MAAM;AAAA,YACZ,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,YACb,UAAW,OAAe;AAEjB,qBAAA,kBAAkB,qBAAqB,KAAK;AAAA,YACrD;AAAA,UACF;AAAA,UACA,UAAU;AAAA,YACR,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,QACF;AAAA,QACA,QAAQ,MAAM,MAAM;AAAA,MAAA;AAAA,IACtB,CACD;AACD,UAAM,EAAE,SAAA,IAAa,OAAO,eAAe;AAAA,MACzC,UAAU;AAAA,IAAA,CACX;AAED,UAAM,gBAAgB,CAAC,OAAa,CAAA,GAAI,oBAA6B,UAAU;AAC7E,UAAI,YAAY,CAAA;AACZ,UAAA,MAAM,wBAAwB,OAAO;AACjC,cAAA,iBAAiB,oBAAoB,MAAM,wBAAiD;AACtF,oBAAA,+BAA+B,MAAM,cAAc;AAAA,MAAA,WACtD,MAAM,wBAAwB,SAAS;AAC1C,cAAA,iBAAiB,oBAAoB,MAAM,0BAAqD;AAC1F,oBAAA,iCAAiC,MAAM,cAAc;AAAA,MACnE;AACA,iBAAW,QAAQ,UAAU;AAC7B,iBAAW,QAAQ,UAAU;AAAA,IAAA;AAG/B,UAAM,yBAAyB,CAAC,OAAY,CAAI,GAAA,uBAA8C,oBAA6B,UAAU;AAC7H,YAAA,iBAAiB,oBAAoB,wBAAwB;AAC7D,YAAA,YAAY,+BAA+B,MAAM,cAAc;AACrE,iBAAW,QAAQ,UAAU;AAC7B,iBAAW,QAAQ,UAAU;AAAA,IAAA;AAI/B,UAAM,MAAM,MAAM,MAAM,CAAC,UAAe;AACtC,UAAI,MAAM,aAAa,YAAY,MAAM,QAAQ,MAAM,UAAU;AAC/D,sBAAc,KAAK;AAAA,MACrB;AAAA,IAAA,GACC;AAAA,MACD,WAAW;AAAA,MACX,MAAM;AAAA,IAAA,CACP;AAEK,UAAA,cAAc,eAAe,KAAK;AAExC,UAAM,oBAAoB,YAAY;;AAChC,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AAClB,uBAAc,sCAAK,SAAL,mBAAW,SAAX,mBAAiB,MAAM,IAAI;AAAA,eAClC;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAII,UAAA,gBAAgB,iBAAiB,KAAK;AAC5C,UAAM,sBAAsB,YAAY;;AAClC,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AACZ,cAAA,EAAE,UAAU,CAAI,GAAA,OAAO,CAAA,EAAO,KAAA,sCAAK,SAAL,mBAAW,SAAX,YAAmB;AACnD,YAAA;AACA,YAAA,QAAQ,SAAS,GAAG;AACT,uBAAA;AAAA,YACX,MAAM,QAAQ;AAAA,YACd,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAU,WAAA;AAC7B,qBAAA;AAAA,gBACL,OAAO;AAAA,gBACP,OAAO;AAAA,cAAA;AAAA,YACT,CACD;AAAA,UAAA;AAAA,QAEL;AACuB,+BAAA,MAAM,YAAY,IAAI;AAAA,eACtC;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGF,UAAM,cAAc,MAAM;AACpB,UAAA,MAAM,QAAQ,MAAM;AAAU;AAClC,cAAQ,MAAM;AAAA,aACP;AACiB;AACpB;AAAA,aACG;AACe;AAClB;AAAA;AAAA,IAAA;AAIC,WAAA;AAAA,MACL;AAAA,IAAA,CACD;AAEK,UAAA,YAAY,aAAa,KAAK;AAEpC,UAAM,EAAE,gBAAgB,mBAAmB,OAAO,cAAc;AAAA,MAG9D,gBAAgB,CAAC,QAAgB;AAAA,MAGjC,gBAAgB,CAAC,KAAa,UAAe;AAAA,IAAA,CAC9C;AACD,UAAM,QAAQ,UAAU,SAAS,CAAC,MAAM;AAEtC,YAAM,KAAK,MAAM;AACX,YAAA,QAAQ,eAAe,EAAE;AAE/B,qBAAe,IAAI,EAAE,GAAG,OAAO,QAAQ,EAAE,MAAM;AAAA,IAAA,CAChD;AAED,UAAM,EAAE,WAAA,IAAe,OAAO,eAAe;AAAA,MAG3C,YAAY,CAAC,WAAqB,YAAoB;AAAA,IAAA,CACvD;AAEU,eAAA,aAAa,MAAM,WAAqB;AAEnD,eAAW,OAAO;AAAA,MAChB;AAAA,MACA;AAAA,IAAA,CACY;AAEP,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;;;sBA1WCE,mBAwBM,OAAA;AAAA,IAxBD,OAAM;AAAA,IAAY,OAAKC,eAAE,KAAK,KAAA;AAAA,EAAA,GAAA;AAAA,IACjCC,YAOO,iBAAA,EAPA,UAAU,KAAO,QAAA,GAAA;AAAA,MAAA,SAAAC,QACtB,MAKE;AAAA,QALFD,YAKE,oBAAA;AAAA,UAJC,QAAQ,KAAA;AAAA,UACR,kBAAgB,EAAA,UAAA,KAAA;AAAA,UACjB,YAAA;AAAA,UACC,SAAO,KAAA;AAAA,QAAA,GAAA,MAAA,GAAA,CAAA,UAAA,SAAA,CAAA;AAAA;;;IAGZA,YAcU,oBAAA;AAAA,MAbR,mBAAgB;AAAA,MAChB,OAAM;AAAA,MACL,SAAS,KAAA;AAAA,MACT,QAAQ;AAAA,MACR,UAAQ,KAAA;AAAA,IAAA,GAAA;AAAA,uBAET,MAMO;AAAA,QANPA,YAMO,iBANA,EAAA,UAAU,KAAO,QAAA,GAAA;AAAA,UAAA,SAAAC,QACtB,MAIE;AAAA,YAJFD,YAIE,oBAAA;AAAA,cAHC,QAAQ,KAAA;AAAA,cACR,kBAAgB,EAAA,UAAA,KAAA;AAAA,cACjB,YAAA;AAAA,YAAA,GAAA,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"Bar.js","sources":["../../../src/graph/bar/Bar.vue"],"sourcesContent":["<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter,\n useVariablesInText\n} from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Data } from '@/utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\n// import { handleFormatter } from '@/utils/util'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nuse([\n CanvasRenderer,\n BarChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanBar',\n props: {\n ...barComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const dataSource = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const series = computed(() => {\n const ds = unref(dataSource)\n const len = ds.length\n const series = []\n for (let i = 0; i < len; i++) {\n const item = {\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n } as { [key:string]: any }\n if (props.isStack) {\n item.stack = 'stack'\n item.label = {\n show: true\n }\n }\n series.push(item)\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => {\n // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const yAxisLabelFormatter = props.yAxisLabelFormatter as string\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n return {\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: (params) => {\n const len = params.length\n let formatter = ''\n let tooltipFormatter = props.tooltipFormatter as string\n if (tooltipFormatter === '') {\n tooltipFormatter = '{marker} {a} {c}'\n }\n for (let i = 0; i < len; i++) {\n const { marker, seriesName, name, value, data } = params[i] || {}\n if (i === 0) {\n formatter += `${name}<br/>`\n }\n formatter += useVariablesInText(\n tooltipFormatter,\n {\n marker,\n name,\n value,\n a: seriesName,\n b: name,\n c: value,\n ...data\n },\n {\n useNewline: true,\n useSpace: true\n })\n formatter += '<br/>'\n }\n return formatter\n },\n // valueFormatter: (value) => {\n // return useVariablesInText(props.tooltipValueFormatter as string, { value })\n // },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\n interval: 0,\n rotate: props.xAxisLabelRotate,\n width: props.xAxisLabelWidth,\n overflow: props.xAxisLabelOverflow,\n formatter (value: string) {\n return useValueFormatter(xAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(yAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n series: unref(series)\n }\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: Data = [], useDataFieldNames: boolean = false) => {\n let chartData = {} as { [key:string]: any }\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n const { columns = [], rows = [] } = res?.data?.data ?? {}\n let fieldNames\n if (columns.length > 0) {\n fieldNames = {\n name: columns[0],\n types: columns.slice(1).map(column => {\n return {\n label: column,\n value: column\n }\n })\n }\n }\n handleIndicatorDataset(rows, fieldNames, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'indicator':\n handleIndicatorData()\n break\n case 'request':\n handleRequestData()\n break\n }\n }\n\n expose({\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n"],"names":["CanvasRenderer","BarChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","AModal","series","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/graph/bar/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n"],"names":[],"mappings":";;;AAEa,MAAA,UAAU,YAAY,GAAG;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/graph/bar/index.ts"],"sourcesContent":["import { withInstall } from '@/utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n"],"names":[],"mappings":";;;AAEa,MAAA,UAAU,YAAY,GAAG;"}
@@ -39,8 +39,7 @@ const barProps = {
39
39
  legendLeft: "center",
40
40
  tooltipShow: true,
41
41
  tooltipTextStyleColor: "",
42
- tooltipTrigger: "item",
43
- tooltipFormatter: "",
42
+ tooltipFormatter: "{marker} {a} {c}",
44
43
  xAxisSplitLineShow: true,
45
44
  xAxisSplitLineStyleColor: "#333",
46
45
  xAxisLabelColor: "#333",
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../src/graph/bar/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps,\n Data,\n KeyTypeDataFieldNames,\n ValueTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface BarProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n isStack: boolean\n}\n\nexport const barProps: BarProps = {\n ...props,\n id: '',\n name: '柱状图',\n keyName: '柱状图',\n type: 'ecanBar',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n xAxisLabelFormatter: '{value}',\n yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false,\n isStack: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n"],"names":[],"mappings":";AA0EO,MAAM,WAAqB;AAAA,EAChC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC1G,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,yBAAyB,EAAE,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO;AAAA,EACtE,uBAAuB,EAAE,MAAM,QAAQ,OAAO,CAAA,EAAG;AAAA,EACjD,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,SAAS;AACX;AAGa,MAAA,oBAAoB,0BAA0B,QAAQ;AAOtD,MAAA,YAAoC,CAAC,eAAe,OAAO;"}
1
+ {"version":3,"file":"props.js","sources":["../../../src/graph/bar/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps,\n Data,\n KeyTypeDataFieldNames,\n ValueTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface BarProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n isStack: boolean\n}\n\nexport const barProps: BarProps = {\n ...props,\n id: '',\n name: '柱状图',\n keyName: '柱状图',\n type: 'ecanBar',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n xAxisLabelFormatter: '{value}',\n yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{marker} {a} {c}',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false,\n isStack: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n"],"names":[],"mappings":";AAyEO,MAAM,WAAqB;AAAA,EAChC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC1G,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,yBAAyB,EAAE,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO;AAAA,EACtE,uBAAuB,EAAE,MAAM,QAAQ,OAAO,CAAA,EAAG;AAAA,EACjD,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,SAAS;AACX;AAGa,MAAA,oBAAoB,0BAA0B,QAAQ;AAOtD,MAAA,YAAoC,CAAC,eAAe,OAAO;"}
@@ -6,6 +6,7 @@ import { useTransformChartDataByAttrValue } from "../../hooks/useTransformChartD
6
6
  import { useRequestData } from "../../hooks/useRequestData.js";
7
7
  import { useTransformChartDataByAttrKey } from "../../hooks/useTransformChartDataByAttrKey.js";
8
8
  import { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from "../../utils/constant.js";
9
+ import { useVariablesInText } from "../../hooks/useVariablesInText.js";
9
10
  import { useRequestDiagramData } from "../../hooks/useRequestDiagramData.js";
10
11
  import { useValueFormatter } from "../../hooks/useValueFormatter.js";
11
12
  import "../../utils/request.js";
@@ -103,13 +104,6 @@ const _sfc_main = defineComponent({
103
104
  containLabel: props.gridContainLabel
104
105
  },
105
106
  color: props.colors,
106
- tooltip: {
107
- trigger: "axis",
108
- show: props.tooltipShow,
109
- textStyle: {
110
- color: props.tooltipTextStyleColor
111
- }
112
- },
113
107
  legend: {
114
108
  show: props.legendShow,
115
109
  orient: props.legendOrient,
@@ -119,6 +113,49 @@ const _sfc_main = defineComponent({
119
113
  color: props.legendTextStyleColor
120
114
  }
121
115
  },
116
+ tooltip: {
117
+ trigger: "axis",
118
+ show: props.tooltipShow,
119
+ formatter: (params) => {
120
+ const len = params.length;
121
+ let formatter = "";
122
+ let tooltipFormatter = props.tooltipFormatter;
123
+ if (tooltipFormatter === "") {
124
+ tooltipFormatter = "{marker} {a} {c}";
125
+ }
126
+ for (let i = 0; i < len; i++) {
127
+ const { marker, seriesName, name, value, data } = params[i] || {};
128
+ if (i === 0) {
129
+ formatter += `${name}<br/>`;
130
+ }
131
+ formatter += useVariablesInText(
132
+ tooltipFormatter,
133
+ {
134
+ marker,
135
+ name,
136
+ value,
137
+ seriesName,
138
+ a: seriesName,
139
+ b: name,
140
+ c: value,
141
+ ...data
142
+ },
143
+ {
144
+ useNewline: true,
145
+ useSpace: true
146
+ }
147
+ );
148
+ formatter += "<br/>";
149
+ }
150
+ return formatter;
151
+ },
152
+ valueFormatter(value) {
153
+ return useValueFormatter(props == null ? void 0 : props.tooltipFormatter, value);
154
+ },
155
+ textStyle: {
156
+ color: props.tooltipTextStyleColor
157
+ }
158
+ },
122
159
  xAxis: {
123
160
  type: "category",
124
161
  data: unref(dimensions),
@@ -166,11 +203,6 @@ const _sfc_main = defineComponent({
166
203
  let series2 = {
167
204
  type,
168
205
  yAxisIndex: axisIndex,
169
- tooltip: {
170
- valueFormatter(value) {
171
- return useValueFormatter(props == null ? void 0 : props.tooltipFormatter, value);
172
- }
173
- },
174
206
  ...dataset[i]
175
207
  };
176
208
  if (type === "line") {
@@ -1 +1 @@
1
- {"version":3,"file":"ComboGraph.js","sources":["../../../src/graph/combo-graph/ComboGraph.vue"],"sourcesContent":["<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData, useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue,\n useValueFormatter,\n useRequestDiagramData\n // useTooltipFormatter\n} from '@/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n // formatter: ,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { type, axisIndex } = seriesType || {}\n let series = {\n type: type,\n yAxisIndex: axisIndex,\n tooltip: {\n valueFormatter (value: string) {\n return useValueFormatter(props?.tooltipFormatter, value)\n }\n },\n ...dataset[i]\n } as { [key:string]: any }\n if (type === 'line') {\n series = {\n ...series,\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n }\n }\n if (type === 'bar') {\n series = {\n ...series,\n barWidth: props.barWidth\n }\n }\n temp.push(series)\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n ...dataset[i]\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.seriesTypes, props.symbolSize, props.smooth, props.areaStyleOpacity, props.lineStyleWidth, props.barWidth], ([value]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const yAxis = computed(() => {\n const yAxis = props.yAxis as { [key: string]: any } []\n return yAxis?.map((axis) => {\n return {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(axis.axisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n }\n })\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n"],"names":["CanvasRenderer","BarChart","LineChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","AModal","series","yAxis","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,IAAI;AAAA,EACFA;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACF,CAAC;AACD,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,GAAG;AAAA,EACL;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IAAA,QACAC;AAAAA,EACF;AAAA,EACA,MAAO,OAAO;AACN,UAAA,QAAQ,sBAAsB,KAAK;AACnC,UAAA,SAAS,IAA8B,CAAA,CAAE;AACzC,UAAA,aAAa,IAA8B,CAAA,CAAE;AAC7C,UAAA,UAAU,IAAI,KAAK;AACzB,UAAM,YAAY,MAAM;AACtB,cAAQ,QAAQ;AAAA,IAAA;AAEZ,UAAA,SAAS,SAAS,OAAO;AAAA,MAC7B,OAAO;AAAA,QACL,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,SAAS;AAAA,QACP,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ,KAAK,MAAM;AAAA,QACX,UAAU,MAAM;AAAA,QAChB,SAAS,MAAM;AAAA,QACf,SAAS;AAAA,UACP,YAAY;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAW;AACT,8BAAgB,MAAM,kBAA4B;AAAA,YACpD;AAAA,UACF;AAAA,UACA,YAAY;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAW;AACT,sBAAQ,QAAQ;AAAA,YAClB;AAAA,UACF;AAAA,UACA,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAW;AACTA,oBAAO,KAAK;AAAA,gBACV,OAAO;AAAA,gBACP,SAAU,MAAM;AAAA,cAAA,CACjB;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACJ,KAAK,MAAM;AAAA,QACX,QAAQ,MAAM;AAAA,QACd,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,cAAc,MAAM;AAAA,MACtB;AAAA,MACA,OAAO,MAAM;AAAA,MACb,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM,MAAM;AAAA,QAEZ,WAAW;AAAA,UACT,OAAO,MAAM;AAAA,QACf;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM;AAAA,QACd,KAAK,MAAM;AAAA,QACX,MAAM,MAAM;AAAA,QACZ,WAAW;AAAA,UACT,OAAO,MAAM;AAAA,QACf;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM,MAAM,UAAU;AAAA,QACtB,WAAW;AAAA,UACT,MAAM,MAAM;AAAA,UACZ,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,UACf;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT,OAAO,MAAM;AAAA,QACf;AAAA,QACA,UAAU;AAAA,UACR,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,UACf;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,MAAM,MAAM;AAAA,QACd;AAAA,MACF;AAAA,MACA,OAAO,MAAM,KAAK;AAAA,MAClB,QAAQ,MAAM,MAAM;AAAA,IACpB,EAAA;AAEF,UAAM,EAAE,SAAA,IAAa,OAAO,eAAe;AAAA,MACzC,UAAU;AAAA,IAAA,CACX;AAED,UAAM,gBAAgB,CAAC,OAAY,CAAA,GAAI,oBAA6B,UAAU;AAExE,UAAA;AACA,UAAA,MAAM,wBAAwB,OAAO;AACjC,cAAA,iBAAiB,oBAAoB,MAAM,wBAAiD;AACtF,oBAAA,+BAA+B,MAAM,cAAc;AAAA,MAAA,WACtD,MAAM,wBAAwB,SAAS;AAC1C,cAAA,iBAAiB,oBAAoB,MAAM,0BAAqD;AAC1F,oBAAA,iCAAiC,MAAM,cAAc;AAAA,MACnE;AAEA,iBAAW,QAAQ,UAAU;AAC7B,YAAM,UAAU,UAAU;AAC1B,YAAM,OAAO,CAAA;AACb,YAAM,MAAM,QAAQ;AACpB,YAAM,cAAc,MAAM;AAC1B,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAM,aAAa,YAAY;AAC/B,cAAM,EAAE,MAAM,cAAc,cAAc,CAAA;AAC1C,YAAIC,UAAS;AAAA,UACX;AAAA,UACA,YAAY;AAAA,UACZ,SAAS;AAAA,YACP,eAAgB,OAAe;AACtB,qBAAA,kBAAkB,+BAAO,kBAAkB,KAAK;AAAA,YACzD;AAAA,UACF;AAAA,UACA,GAAG,QAAQ;AAAA,QAAA;AAEb,YAAI,SAAS,QAAQ;AACV,oBAAA;AAAA,YACP,GAAGA;AAAAA,YACH,YAAY,MAAM;AAAA,YAClB,QAAQ,MAAM;AAAA,YACd,WAAW;AAAA,cACT,SAAS,MAAM;AAAA,YACjB;AAAA,YACA,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UAAA;AAAA,QAEJ;AACA,YAAI,SAAS,OAAO;AACT,oBAAA;AAAA,YACP,GAAGA;AAAAA,YACH,UAAU,MAAM;AAAA,UAAA;AAAA,QAEpB;AACA,aAAK,KAAKA,OAAM;AAAA,MAClB;AACA,aAAO,QAAQ;AAAA,IAAA;AAGjB,UAAM,yBAAyB,CAAC,OAAY,CAAI,GAAA,uBAA8C,oBAA6B,UAAU;AAC7H,YAAA,iBAAiB,oBAAoB,wBAAwB;AAC7D,YAAA,YAAY,+BAA+B,MAAM,cAAc;AAErE,iBAAW,QAAQ,UAAU;AAC7B,YAAM,UAAU,UAAU;AAC1B,YAAM,OAAO,CAAA;AACb,YAAM,MAAM,QAAQ;AACpB,YAAM,cAAc,MAAM;AAC1B,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAM,aAAa,YAAY;AAC/B,aAAK,KAAK;AAAA,UACR,MAAM,yCAAY;AAAA,UAClB,YAAY,yCAAY;AAAA,UACxB,GAAG,QAAQ;AAAA,QAAA,CACZ;AAAA,MACH;AACA,aAAO,QAAQ;AAAA,IAAA;AAIX,UAAA,MAAM,CAAC,MAAM,MAAM,MAAM,aAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,kBAAkB,MAAM,gBAAgB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,MAAM;AACtJ,UAAI,MAAM,aAAa,YAAY,MAAM,QAAQ,MAAM,UAAU;AAC/D,sBAAc,KAAK;AAAA,MACrB;AAAA,IAAA,GACC;AAAA,MACD,WAAW;AAAA,MACX,MAAM;AAAA,IAAA,CACP;AAEK,UAAA,QAAQ,SAAS,MAAM;AAC3B,YAAMC,SAAQ,MAAM;AACbA,aAAAA,iCAAO,IAAI,CAAC,SAAS;AACnB,eAAA;AAAA,UACL,MAAM;AAAA,UACN,WAAW;AAAA,YACT,MAAM,MAAM;AAAA,YACZ,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,OAAO,MAAM;AAAA,YACb,UAAW,OAAe;AACjB,qBAAA,kBAAkB,KAAK,oBAA8B,KAAK;AAAA,YACnE;AAAA,UACF;AAAA,UACA,UAAU;AAAA,YACR,WAAW;AAAA,cACT,OAAO,MAAM;AAAA,YACf;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IACD,CACF;AAEK,UAAA,UAAU,IAAI,KAAK;AAEnB,UAAA,cAAc,eAAe,KAAK;AAGxC,UAAM,oBAAoB,YAAY;;AACpC,UAAI,MAAM,aAAa,aAAa,MAAM,QAAQ,MAAM;AAAU;AAC9D,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AAClB,uBAAc,sCAAK,SAAL,mBAAW,SAAX,mBAAiB,MAAM,IAAI;AAAA,eAClC;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAII,UAAA,iBAAiB,sBAAsB,KAAK;AAClD,UAAM,sBAAsB,YAAY;;AACtC,UAAI,MAAM,aAAa,eAAe,MAAM,QAAQ,MAAM;AAAU;AAChE,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AACd,YAAA;AACJ,cAAI,4CAAK,SAAL,mBAAW,SAAX,mBAAiB,YAAjB,mBAA0B,UAAS,GAAG;AACpC,cAAA;AAAA,YACF,MAAM,IAAI,KAAK,KAAK,QAAQ;AAAA,YAC5B,OAAO,IAAI,KAAK,KAAK,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAM,OAAA;AAC9C,qBAAO,EAAE,OAAO,IAAI,OAAO,GAAG;AAAA,YAAA,CAC/B;AAAA,UAAA;AAAA,QAEL;AACA,gCAAuB,sCAAK,SAAL,mBAAW,SAAX,mBAAiB,MAAM,GAAG,IAAI;AAAA,eAC9C;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGF,UAAM,yBAAyB,MAAM;AAC/B,UAAA,MAAM,QAAQ,MAAM;AAAU;AACd;AACF;IAAA;AAGpB,UAAM,cAAc,MAAM;AACD;IAAA;AAGnB,UAAA,YAAY,aAAa,KAAK;AAEpC,UAAM,EAAE,gBAAgB,mBAAmB,OAAO,cAAc;AAAA,MAG9D,gBAAgB,CAAC,QAAgB;AAAA,MAGjC,gBAAgB,CAAC,KAAa,UAAe;AAAA,IAAA,CAC9C;AACD,UAAM,QAAQ,UAAU,SAAS,CAAC,MAAM;AAEtC,YAAM,KAAK,MAAM;AACX,YAAA,QAAQ,eAAe,EAAE;AAE/B,qBAAe,IAAI,EAAE,GAAG,OAAO,QAAQ,uBAAG,MAAM;AAAA,IAAA,CACjD;AAED,UAAM,EAAE,WAAA,IAAe,OAAO,eAAe;AAAA,MAG3C,YAAY,CAAC,WAAqB,YAAoB;AAAA,IAAA,CACvD;AACU,eAAA,wBAAwB,MAAM,WAAqB;AAE9D,eAAW,OAAO;AAAA,MAChB;AAAA,MACA;AAAA,IAAA,CACY;AAEP,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;;;sBAvXCC,mBAwBM,OAAA;AAAA,IAxBA,OAAKC,eAAE,KAAK,KAAA;AAAA,EAAA,GAAA;AAAA,IAChBC,YAOO,iBAAA,EAPA,UAAU,KAAO,QAAA,GAAA;AAAA,MAAA,SAAAC,QACtB,MAKE;AAAA,QALFD,YAKE,oBAAA;AAAA,UAJC,QAAQ,KAAA;AAAA,UACR,kBAAgB,EAAA,UAAA,KAAA;AAAA,UACjB,YAAA;AAAA,UACC,SAAO,KAAA;AAAA,QAAA,GAAA,MAAA,GAAA,CAAA,UAAA,SAAA,CAAA;AAAA;;;IAGZA,YAcU,oBAAA;AAAA,MAbR,mBAAgB;AAAA,MAChB,OAAM;AAAA,MACL,SAAS,KAAA;AAAA,MACT,QAAQ;AAAA,MACR,UAAQ,KAAA;AAAA,IAAA,GAAA;AAAA,uBACP,MAOO;AAAA,QAPPA,YAOO,iBAPA,EAAA,UAAU,KAAO,QAAA,GAAA;AAAA,UAAA,SAAAC,QACtB,MAKE;AAAA,YALFD,YAKE,oBAAA;AAAA,cAJC,QAAQ,KAAA;AAAA,cACR,kBAAgB,EAAA,UAAA,KAAA;AAAA,cACjB,YAAA;AAAA,cACC,SAAO,KAAA;AAAA,YAAA,GAAA,MAAA,GAAA,CAAA,UAAA,SAAA,CAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"ComboGraph.js","sources":["../../../src/graph/combo-graph/ComboGraph.vue"],"sourcesContent":["<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData, useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue,\n useValueFormatter,\n useRequestDiagramData, useVariablesInText\n // useTooltipFormatter\n} from '@/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: (params) => {\n const len = params.length\n let formatter = ''\n let tooltipFormatter = props.tooltipFormatter as string\n if (tooltipFormatter === '') {\n tooltipFormatter = '{marker} {a} {c}'\n }\n for (let i = 0; i < len; i++) {\n const { marker, seriesName, name, value, data } = params[i] || {}\n if (i === 0) {\n formatter += `${name}<br/>`\n }\n formatter += useVariablesInText(\n tooltipFormatter,\n {\n marker,\n name,\n value,\n seriesName,\n a: seriesName,\n b: name,\n c: value,\n ...data\n },\n {\n useNewline: true,\n useSpace: true\n })\n formatter += '<br/>'\n }\n return formatter\n },\n valueFormatter (value: string) {\n return useValueFormatter(props?.tooltipFormatter, value)\n },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { type, axisIndex } = seriesType || {}\n let series = {\n type: type,\n yAxisIndex: axisIndex,\n ...dataset[i]\n } as { [key:string]: any }\n if (type === 'line') {\n series = {\n ...series,\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n }\n }\n if (type === 'bar') {\n series = {\n ...series,\n barWidth: props.barWidth\n }\n }\n temp.push(series)\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n ...dataset[i]\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.seriesTypes, props.symbolSize, props.smooth, props.areaStyleOpacity, props.lineStyleWidth, props.barWidth], ([value]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const yAxis = computed(() => {\n const yAxis = props.yAxis as { [key: string]: any } []\n return yAxis?.map((axis) => {\n return {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(axis.axisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n }\n })\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n"],"names":["CanvasRenderer","BarChart","LineChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","AModal","series","yAxis","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":"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"}
@@ -50,7 +50,7 @@ const comboGraphProps = {
50
50
  tooltipShow: true,
51
51
  tooltipTextStyleColor: "",
52
52
  tooltipTrigger: "item",
53
- tooltipFormatter: "",
53
+ tooltipFormatter: "{marker} {a} {c}",
54
54
  xAxisSplitLineShow: true,
55
55
  xAxisSplitLineStyleColor: "#333",
56
56
  xAxisLabelColor: "#333",