@ecan-bi/datav 1.0.88 → 1.0.90

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 (104) hide show
  1. package/dist/index.es.js +146 -48
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +145 -47
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +13 -17
  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 +32 -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/control/select/Select.vue.d.ts +1 -0
  96. package/types/control/select/index.d.ts +1 -0
  97. package/types/table/table/Table.vue.d.ts +124 -5
  98. package/types/table/table/index.d.ts +125 -6
  99. package/types/table/table/props.d.ts +63 -0
  100. package/types/text/text/Text.vue.d.ts +66 -0
  101. package/types/text/text/index.d.ts +66 -0
  102. package/types/text/text/props.d.ts +36 -0
  103. package/types/hooks/usePickEchartsData.d.ts +0 -2
  104. package/types/hooks/useTooltipFormatter.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sources":["../../../src/text/text/Text.vue"],"sourcesContent":["<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\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 })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_normalizeStyle","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sources":["../../../src/text/text/Text.vue"],"sourcesContent":["<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport {\n usePickComponentStyle,\n useRequestData,\n useOnEvent,\n useEmitEvent,\n usePageUrl,\n useVariablesInText\n} from '@/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\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 })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {\n // 空链接、空页面直接 return\n if (!props.linkPage && !props.href) return\n const linkPage = (props.linkPage || '') as string\n const pageUrl = usePageUrl(unref(pageMode), linkPage)\n // 优先使用外部链接,再使用url\n const href = props.href as string\n let url = href || pageUrl\n url = useVariablesInText(url)\n const target = props.target\n if (target == null || target === '') return\n if (target !== 'event') {\n window.open(url, '_' + (target as string))\n } else {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n })\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_normalizeStyle","_createVNode"],"mappings":"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"}
@@ -18,7 +18,10 @@ const textProps = {
18
18
  variableFontSize: "14px",
19
19
  data: {},
20
20
  variableDefaultValue: "0",
21
- format: ""
21
+ format: "",
22
+ target: "self",
23
+ href: "",
24
+ linkPage: ""
22
25
  };
23
26
  const textComponentProps = transformToComponentProps(textProps);
24
27
  const textEvents = ["refreshData", "click"];
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../src/text/text/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n"],"names":[],"mappings":";AAqBO,MAAM,YAAsB;AAAA,EACjC,GAAG;AAAA,EACH,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,MAAM,CAAC;AAAA,EACP,sBAAsB;AAAA,EACtB,QAAQ;AACV;AAGa,MAAA,qBAAqB,0BAA0B,SAAS;AAExD,MAAA,aAAa,CAAC,eAAe,OAAO;"}
1
+ {"version":3,"file":"props.js","sources":["../../../src/text/text/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n"],"names":[],"mappings":";AAwBO,MAAM,YAAsB;AAAA,EACjC,GAAG;AAAA,EACH,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,MAAM,CAAC;AAAA,EACP,sBAAsB;AAAA,EACtB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AACZ;AAGa,MAAA,qBAAqB,0BAA0B,SAAS;AAExD,MAAA,aAAa,CAAC,eAAe,OAAO;"}
@@ -121,9 +121,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
121
121
  width: _ctx.isFullModal || _ctx.isFullWidth ? "100%" : _ctx.modalWith,
122
122
  destroyOnClose: _ctx.destroyOnClose,
123
123
  style: vue.normalizeStyle(_ctx.modalStyle),
124
- bodyStyle: {
125
- background: "red"
126
- },
127
124
  onOk: _ctx.onOk,
128
125
  onCancel: _ctx.onCancel
129
126
  }, vue.createSlots({
@@ -162,6 +159,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
162
159
  } : void 0
163
160
  ]), 1032, ["getContainer", "wrapClassName", "visible", "width", "destroyOnClose", "style", "onOk", "onCancel"]);
164
161
  }
165
- const Modal = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-24c6a724"]]);
162
+ const Modal = /* @__PURE__ */ pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-780a06e1"]]);
166
163
  exports.default = Modal;
167
164
  //# sourceMappingURL=Modal.js.map
@@ -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":["defineComponent","AModal","modalComponentProps","props","computed","unref","usePickComponentStyle","useImagePath","ref","inject","REQUEST_MODEL","nextTick","useOnEvent","_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":["defineComponent","AModal","modalComponentProps","props","computed","unref","usePickComponentStyle","useImagePath","ref","inject","REQUEST_MODEL","nextTick","useOnEvent","_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":["withInstall","Modal"],"mappings":";;;;;AAEa,MAAA,YAAYA,wBAAYC,MAAK,OAAA;;;;;;"}
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":["withInstall","Modal"],"mappings":";;;;;AAEa,MAAA,YAAYA,wBAAYC,MAAK,OAAA;;;;;;"}
@@ -17,7 +17,7 @@ const modalProps = {
17
17
  keyName: "\u5F39\u7A97",
18
18
  componentList: [],
19
19
  fullModal: false,
20
- destroyOnClose: false,
20
+ destroyOnClose: true,
21
21
  position: "default"
22
22
  };
23
23
  const modalComponentProps = props.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":["transformToComponentProps"],"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,sBAAsBA,gCAA0B,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":["transformToComponentProps"],"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,sBAAsBA,gCAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,WAAW;;;;"}
@@ -8,6 +8,7 @@ const useTransformChartDataByAttrValue = require("../../hooks/useTransformChartD
8
8
  const useRequestData = require("../../hooks/useRequestData.js");
9
9
  const useTransformChartDataByAttrKey = require("../../hooks/useTransformChartDataByAttrKey.js");
10
10
  const constant = require("../../utils/constant.js");
11
+ const useVariablesInText = require("../../hooks/useVariablesInText.js");
11
12
  require("../../utils/request.js");
12
13
  const antDesignVue = require("ant-design-vue");
13
14
  const useValueFormatter = require("../../hooks/useValueFormatter.js");
@@ -16,7 +17,6 @@ require("lodash-es");
16
17
  const Echarts = require("../../common/echarts/Echarts.js");
17
18
  const props = require("./props.js");
18
19
  const Spin = require("../../common/spin/Spin.js");
19
- const util = require("../../utils/util.js");
20
20
  const useDownloadFile = require("../../hooks/useDownloadFile.js");
21
21
  require("./Bar.vue_vue_type_style_index_0_lang.js");
22
22
  const pluginVue_exportHelper = require("../../_virtual/plugin-vue_export-helper.js");
@@ -130,7 +130,38 @@ const _sfc_main = vue.defineComponent({
130
130
  tooltip: {
131
131
  trigger: "axis",
132
132
  show: props2.tooltipShow,
133
- formatter: util.handleFormatter(props2.tooltipFormatter),
133
+ formatter: (params) => {
134
+ const len = params.length;
135
+ let formatter = "";
136
+ let tooltipFormatter = props2.tooltipFormatter;
137
+ if (tooltipFormatter === "") {
138
+ tooltipFormatter = "{marker} {a} {c}";
139
+ }
140
+ for (let i = 0; i < len; i++) {
141
+ const { marker, seriesName, name, value, data } = params[i] || {};
142
+ if (i === 0) {
143
+ formatter += `${name}<br/>`;
144
+ }
145
+ formatter += useVariablesInText.useVariablesInText(
146
+ tooltipFormatter,
147
+ {
148
+ marker,
149
+ name,
150
+ value,
151
+ a: seriesName,
152
+ b: name,
153
+ c: value,
154
+ ...data
155
+ },
156
+ {
157
+ useNewline: true,
158
+ useSpace: true
159
+ }
160
+ );
161
+ formatter += "<br/>";
162
+ }
163
+ return formatter;
164
+ },
134
165
  textStyle: {
135
166
  color: props2.tooltipTextStyleColor
136
167
  }
@@ -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":["use","CanvasRenderer","BarChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","defineComponent","barComponentProps","Spin","Echarts","AModal","props","usePickComponentStyle","ref","computed","unref","series","useDownloadFile","handleFormatter","useValueFormatter","inject","GLOBAL_CONFIG","useTransformChartDataByAttrKey","useTransformChartDataByAttrValue","watch","useRequestData","useIndicatorData","useEmitEvent","GLOBAL_MODEL","REQUEST_MODEL","useOnEvent","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":"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"}
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":["use","CanvasRenderer","BarChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","defineComponent","barComponentProps","Spin","Echarts","AModal","props","usePickComponentStyle","ref","computed","unref","series","useDownloadFile","useVariablesInText","useValueFormatter","inject","GLOBAL_CONFIG","useTransformChartDataByAttrKey","useTransformChartDataByAttrValue","watch","useRequestData","useIndicatorData","useEmitEvent","GLOBAL_MODEL","REQUEST_MODEL","useOnEvent","_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":["withInstall","Bar"],"mappings":";;;;;AAEa,MAAA,UAAUA,wBAAYC,IAAG,OAAA;;;;;;"}
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":["withInstall","Bar"],"mappings":";;;;;AAEa,MAAA,UAAUA,wBAAYC,IAAG,OAAA;;;;;;"}
@@ -41,8 +41,7 @@ const barProps = {
41
41
  legendLeft: "center",
42
42
  tooltipShow: true,
43
43
  tooltipTextStyleColor: "",
44
- tooltipTrigger: "item",
45
- tooltipFormatter: "",
44
+ tooltipFormatter: "{marker} {a} {c}",
46
45
  xAxisSplitLineShow: true,
47
46
  xAxisSplitLineStyleColor: "#333",
48
47
  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":["props","transformToComponentProps"],"mappings":";;;AA0EO,MAAM,WAAqB;AAAA,EAChC,GAAGA,MAAA;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,oBAAoBC,gCAA0B,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":["props","transformToComponentProps"],"mappings":";;;AAyEO,MAAM,WAAqB;AAAA,EAChC,GAAGA,MAAA;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,oBAAoBC,gCAA0B,QAAQ;AAOtD,MAAA,YAAoC,CAAC,eAAe,OAAO;;;;"}
@@ -8,6 +8,7 @@ const useTransformChartDataByAttrValue = require("../../hooks/useTransformChartD
8
8
  const useRequestData = require("../../hooks/useRequestData.js");
9
9
  const useTransformChartDataByAttrKey = require("../../hooks/useTransformChartDataByAttrKey.js");
10
10
  const constant = require("../../utils/constant.js");
11
+ const useVariablesInText = require("../../hooks/useVariablesInText.js");
11
12
  const useRequestDiagramData = require("../../hooks/useRequestDiagramData.js");
12
13
  const useValueFormatter = require("../../hooks/useValueFormatter.js");
13
14
  require("../../utils/request.js");
@@ -105,13 +106,6 @@ const _sfc_main = vue.defineComponent({
105
106
  containLabel: props2.gridContainLabel
106
107
  },
107
108
  color: props2.colors,
108
- tooltip: {
109
- trigger: "axis",
110
- show: props2.tooltipShow,
111
- textStyle: {
112
- color: props2.tooltipTextStyleColor
113
- }
114
- },
115
109
  legend: {
116
110
  show: props2.legendShow,
117
111
  orient: props2.legendOrient,
@@ -121,6 +115,49 @@ const _sfc_main = vue.defineComponent({
121
115
  color: props2.legendTextStyleColor
122
116
  }
123
117
  },
118
+ tooltip: {
119
+ trigger: "axis",
120
+ show: props2.tooltipShow,
121
+ formatter: (params) => {
122
+ const len = params.length;
123
+ let formatter = "";
124
+ let tooltipFormatter = props2.tooltipFormatter;
125
+ if (tooltipFormatter === "") {
126
+ tooltipFormatter = "{marker} {a} {c}";
127
+ }
128
+ for (let i = 0; i < len; i++) {
129
+ const { marker, seriesName, name, value, data } = params[i] || {};
130
+ if (i === 0) {
131
+ formatter += `${name}<br/>`;
132
+ }
133
+ formatter += useVariablesInText.useVariablesInText(
134
+ tooltipFormatter,
135
+ {
136
+ marker,
137
+ name,
138
+ value,
139
+ seriesName,
140
+ a: seriesName,
141
+ b: name,
142
+ c: value,
143
+ ...data
144
+ },
145
+ {
146
+ useNewline: true,
147
+ useSpace: true
148
+ }
149
+ );
150
+ formatter += "<br/>";
151
+ }
152
+ return formatter;
153
+ },
154
+ valueFormatter(value) {
155
+ return useValueFormatter.useValueFormatter(props2 == null ? void 0 : props2.tooltipFormatter, value);
156
+ },
157
+ textStyle: {
158
+ color: props2.tooltipTextStyleColor
159
+ }
160
+ },
124
161
  xAxis: {
125
162
  type: "category",
126
163
  data: vue.unref(dimensions),
@@ -168,11 +205,6 @@ const _sfc_main = vue.defineComponent({
168
205
  let series2 = {
169
206
  type,
170
207
  yAxisIndex: axisIndex,
171
- tooltip: {
172
- valueFormatter(value) {
173
- return useValueFormatter.useValueFormatter(props2 == null ? void 0 : props2.tooltipFormatter, value);
174
- }
175
- },
176
208
  ...dataset[i]
177
209
  };
178
210
  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":["use","CanvasRenderer","BarChart","LineChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","defineComponent","comboGraphComponentProps","Spin","Echarts","AModal","props","usePickComponentStyle","ref","computed","useDownloadFile","unref","inject","GLOBAL_CONFIG","useTransformChartDataByAttrKey","useTransformChartDataByAttrValue","series","useValueFormatter","watch","yAxis","useRequestData","useRequestDiagramData","useEmitEvent","GLOBAL_MODEL","REQUEST_MODEL","useOnEvent","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":"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"}
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":["use","CanvasRenderer","BarChart","LineChart","TitleComponent","LegendComponent","DatasetComponent","ToolboxComponent","defineComponent","comboGraphComponentProps","Spin","Echarts","AModal","props","usePickComponentStyle","ref","computed","useDownloadFile","useVariablesInText","useValueFormatter","unref","inject","GLOBAL_CONFIG","useTransformChartDataByAttrKey","useTransformChartDataByAttrValue","series","watch","yAxis","useRequestData","useRequestDiagramData","useEmitEvent","GLOBAL_MODEL","REQUEST_MODEL","useOnEvent","_createElementBlock","_normalizeStyle","_createVNode","_withCtx"],"mappings":"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"}
@@ -52,7 +52,7 @@ const comboGraphProps = {
52
52
  tooltipShow: true,
53
53
  tooltipTextStyleColor: "",
54
54
  tooltipTrigger: "item",
55
- tooltipFormatter: "",
55
+ tooltipFormatter: "{marker} {a} {c}",
56
56
  xAxisSplitLineShow: true,
57
57
  xAxisSplitLineStyleColor: "#333",
58
58
  xAxisLabelColor: "#333",