@ecan-bi/datav 1.1.24 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +1305 -1279
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +6 -6
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +2 -3
- package/package.json +2 -2
- package/types/container/modal/Modal.vue.d.ts +5 -180
- package/types/container/modal/index.d.ts +5 -180
- package/es/_virtual/_plugin-vue_export-helper.js +0 -11
- package/es/_virtual/_plugin-vue_export-helper.js.map +0 -1
- package/es/assets/border-title-decoration-left.png.js +0 -5
- package/es/assets/border-title-decoration-left.png.js.map +0 -1
- package/es/assets/border-title-decoration-right.png.js +0 -5
- package/es/assets/border-title-decoration-right.png.js.map +0 -1
- package/es/assets/go-down.png.js +0 -5
- package/es/assets/go-down.png.js.map +0 -1
- package/es/assets/go-up.png.js +0 -5
- package/es/assets/go-up.png.js.map +0 -1
- package/es/common/echarts/Echarts.js +0 -200
- package/es/common/echarts/Echarts.js.map +0 -1
- package/es/common/echarts/composables/api.js +0 -43
- package/es/common/echarts/composables/api.js.map +0 -1
- package/es/common/echarts/composables/autoresize.js +0 -27
- package/es/common/echarts/composables/autoresize.js.map +0 -1
- package/es/common/echarts/composables/loading.js +0 -30
- package/es/common/echarts/composables/loading.js.map +0 -1
- package/es/common/echarts/index.js +0 -5
- package/es/common/echarts/index.js.map +0 -1
- package/es/common/echarts/style.css.js +0 -5
- package/es/common/echarts/style.css.js.map +0 -1
- package/es/common/echarts/utils.js +0 -16
- package/es/common/echarts/utils.js.map +0 -1
- package/es/common/skeleton/Skeleton.vue.js +0 -20
- package/es/common/skeleton/Skeleton.vue.js.map +0 -1
- package/es/common/skeleton/Skeleton.vue2.js +0 -20
- package/es/common/skeleton/Skeleton.vue2.js.map +0 -1
- package/es/common/skeleton/index.js +0 -5
- package/es/common/skeleton/index.js.map +0 -1
- package/es/common/spin/Spin.vue.js +0 -32
- package/es/common/spin/Spin.vue.js.map +0 -1
- package/es/common/spin/Spin.vue2.js +0 -5
- package/es/common/spin/Spin.vue2.js.map +0 -1
- package/es/common/spin/Spin.vue3.js +0 -22
- package/es/common/spin/Spin.vue3.js.map +0 -1
- package/es/common/spin/index.js +0 -5
- package/es/common/spin/index.js.map +0 -1
- package/es/components.js +0 -153
- package/es/components.js.map +0 -1
- package/es/container/border/Border.vue.js +0 -78
- package/es/container/border/Border.vue.js.map +0 -1
- package/es/container/border/Border.vue2.js +0 -65
- package/es/container/border/Border.vue2.js.map +0 -1
- package/es/container/border/Border.vue3.js +0 -5
- package/es/container/border/Border.vue3.js.map +0 -1
- package/es/container/border/index.js +0 -12
- package/es/container/border/index.js.map +0 -1
- package/es/container/border/props.js +0 -31
- package/es/container/border/props.js.map +0 -1
- package/es/container/modal/Modal.vue.js +0 -59
- package/es/container/modal/Modal.vue.js.map +0 -1
- package/es/container/modal/Modal.vue2.js +0 -113
- package/es/container/modal/Modal.vue2.js.map +0 -1
- package/es/container/modal/Modal.vue3.js +0 -5
- package/es/container/modal/Modal.vue3.js.map +0 -1
- package/es/container/modal/Modal.vue4.js +0 -5
- package/es/container/modal/Modal.vue4.js.map +0 -1
- package/es/container/modal/index.js +0 -12
- package/es/container/modal/index.js.map +0 -1
- package/es/container/modal/props.js +0 -28
- package/es/container/modal/props.js.map +0 -1
- package/es/container/tabs/Tabs.vue.js +0 -49
- package/es/container/tabs/Tabs.vue.js.map +0 -1
- package/es/container/tabs/Tabs.vue2.js +0 -72
- package/es/container/tabs/Tabs.vue2.js.map +0 -1
- package/es/container/tabs/Tabs.vue3.js +0 -5
- package/es/container/tabs/Tabs.vue3.js.map +0 -1
- package/es/container/tabs/index.js +0 -12
- package/es/container/tabs/index.js.map +0 -1
- package/es/container/tabs/props.js +0 -43
- package/es/container/tabs/props.js.map +0 -1
- package/es/control/button/Button.vue.js +0 -36
- package/es/control/button/Button.vue.js.map +0 -1
- package/es/control/button/Button.vue2.js +0 -59
- package/es/control/button/Button.vue2.js.map +0 -1
- package/es/control/button/Button.vue3.js +0 -5
- package/es/control/button/Button.vue3.js.map +0 -1
- package/es/control/button/index.js +0 -12
- package/es/control/button/index.js.map +0 -1
- package/es/control/button/props.js +0 -24
- package/es/control/button/props.js.map +0 -1
- package/es/control/checkbox/Checkbox.vue.js +0 -23
- package/es/control/checkbox/Checkbox.vue.js.map +0 -1
- package/es/control/checkbox/Checkbox.vue2.js +0 -97
- package/es/control/checkbox/Checkbox.vue2.js.map +0 -1
- package/es/control/checkbox/Checkbox.vue3.js +0 -5
- package/es/control/checkbox/Checkbox.vue3.js.map +0 -1
- package/es/control/checkbox/index.js +0 -12
- package/es/control/checkbox/index.js.map +0 -1
- package/es/control/checkbox/props.js +0 -26
- package/es/control/checkbox/props.js.map +0 -1
- package/es/control/date-picker/DatePicker.vue.js +0 -29
- package/es/control/date-picker/DatePicker.vue.js.map +0 -1
- package/es/control/date-picker/DatePicker.vue2.js +0 -68
- package/es/control/date-picker/DatePicker.vue2.js.map +0 -1
- package/es/control/date-picker/DatePicker.vue3.js +0 -5
- package/es/control/date-picker/DatePicker.vue3.js.map +0 -1
- package/es/control/date-picker/index.js +0 -12
- package/es/control/date-picker/index.js.map +0 -1
- package/es/control/date-picker/props.js +0 -26
- package/es/control/date-picker/props.js.map +0 -1
- package/es/control/input/Input.vue.js +0 -25
- package/es/control/input/Input.vue.js.map +0 -1
- package/es/control/input/Input.vue2.js +0 -63
- package/es/control/input/Input.vue2.js.map +0 -1
- package/es/control/input/Input.vue3.js +0 -5
- package/es/control/input/Input.vue3.js.map +0 -1
- package/es/control/input/index.js +0 -12
- package/es/control/input/index.js.map +0 -1
- package/es/control/input/props.js +0 -22
- package/es/control/input/props.js.map +0 -1
- package/es/control/range-picker/RangePicker.vue.js +0 -29
- package/es/control/range-picker/RangePicker.vue.js.map +0 -1
- package/es/control/range-picker/RangePicker.vue2.js +0 -77
- package/es/control/range-picker/RangePicker.vue2.js.map +0 -1
- package/es/control/range-picker/RangePicker.vue3.js +0 -5
- package/es/control/range-picker/RangePicker.vue3.js.map +0 -1
- package/es/control/range-picker/RangePicker.vue4.js +0 -5
- package/es/control/range-picker/RangePicker.vue4.js.map +0 -1
- package/es/control/range-picker/index.js +0 -12
- package/es/control/range-picker/index.js.map +0 -1
- package/es/control/range-picker/props.js +0 -25
- package/es/control/range-picker/props.js.map +0 -1
- package/es/control/select/Select.vue.js +0 -32
- package/es/control/select/Select.vue.js.map +0 -1
- package/es/control/select/Select.vue2.js +0 -109
- package/es/control/select/Select.vue2.js.map +0 -1
- package/es/control/select/Select.vue3.js +0 -5
- package/es/control/select/Select.vue3.js.map +0 -1
- package/es/control/select/Select.vue4.js +0 -5
- package/es/control/select/Select.vue4.js.map +0 -1
- package/es/control/select/index.js +0 -12
- package/es/control/select/index.js.map +0 -1
- package/es/control/select/props.js +0 -26
- package/es/control/select/props.js.map +0 -1
- package/es/graph/bar/Bar.vue.js +0 -51
- package/es/graph/bar/Bar.vue.js.map +0 -1
- package/es/graph/bar/Bar.vue2.js +0 -368
- package/es/graph/bar/Bar.vue2.js.map +0 -1
- package/es/graph/bar/Bar.vue3.js +0 -5
- package/es/graph/bar/Bar.vue3.js.map +0 -1
- package/es/graph/bar/index.js +0 -12
- package/es/graph/bar/index.js.map +0 -1
- package/es/graph/bar/props.js +0 -101
- package/es/graph/bar/props.js.map +0 -1
- package/es/graph/combo-graph/ComboGraph.vue.js +0 -51
- package/es/graph/combo-graph/ComboGraph.vue.js.map +0 -1
- package/es/graph/combo-graph/ComboGraph.vue2.js +0 -376
- package/es/graph/combo-graph/ComboGraph.vue2.js.map +0 -1
- package/es/graph/combo-graph/ComboGraph.vue3.js +0 -5
- package/es/graph/combo-graph/ComboGraph.vue3.js.map +0 -1
- package/es/graph/combo-graph/index.js +0 -12
- package/es/graph/combo-graph/index.js.map +0 -1
- package/es/graph/combo-graph/props.js +0 -112
- package/es/graph/combo-graph/props.js.map +0 -1
- package/es/graph/custom-graph/CustomGraph.vue.js +0 -20
- package/es/graph/custom-graph/CustomGraph.vue.js.map +0 -1
- package/es/graph/custom-graph/CustomGraph.vue2.js +0 -42
- package/es/graph/custom-graph/CustomGraph.vue2.js.map +0 -1
- package/es/graph/custom-graph/index.js +0 -11
- package/es/graph/custom-graph/index.js.map +0 -1
- package/es/graph/custom-graph/props.js +0 -18
- package/es/graph/custom-graph/props.js.map +0 -1
- package/es/graph/line/Line.vue.js +0 -49
- package/es/graph/line/Line.vue.js.map +0 -1
- package/es/graph/line/Line.vue2.js +0 -362
- package/es/graph/line/Line.vue2.js.map +0 -1
- package/es/graph/line/Line.vue3.js +0 -5
- package/es/graph/line/Line.vue3.js.map +0 -1
- package/es/graph/line/index.js +0 -12
- package/es/graph/line/index.js.map +0 -1
- package/es/graph/line/props.js +0 -71
- package/es/graph/line/props.js.map +0 -1
- package/es/graph/pie/Pie.vue.js +0 -49
- package/es/graph/pie/Pie.vue.js.map +0 -1
- package/es/graph/pie/Pie.vue2.js +0 -303
- package/es/graph/pie/Pie.vue2.js.map +0 -1
- package/es/graph/pie/Pie.vue3.js +0 -5
- package/es/graph/pie/Pie.vue3.js.map +0 -1
- package/es/graph/pie/index.js +0 -12
- package/es/graph/pie/index.js.map +0 -1
- package/es/graph/pie/props.js +0 -71
- package/es/graph/pie/props.js.map +0 -1
- package/es/graph/scatter/Scatter.vue.js +0 -49
- package/es/graph/scatter/Scatter.vue.js.map +0 -1
- package/es/graph/scatter/Scatter.vue2.js +0 -256
- package/es/graph/scatter/Scatter.vue2.js.map +0 -1
- package/es/graph/scatter/Scatter.vue3.js +0 -5
- package/es/graph/scatter/Scatter.vue3.js.map +0 -1
- package/es/graph/scatter/index.js +0 -12
- package/es/graph/scatter/index.js.map +0 -1
- package/es/graph/scatter/props.js +0 -64
- package/es/graph/scatter/props.js.map +0 -1
- package/es/hooks/useDownloadFile.js +0 -24
- package/es/hooks/useDownloadFile.js.map +0 -1
- package/es/hooks/useEmitEvent.js +0 -39
- package/es/hooks/useEmitEvent.js.map +0 -1
- package/es/hooks/useHrefParamsToGlobalVariables.js +0 -21
- package/es/hooks/useHrefParamsToGlobalVariables.js.map +0 -1
- package/es/hooks/useImagePath.js +0 -20
- package/es/hooks/useImagePath.js.map +0 -1
- package/es/hooks/useIndicatorData.js +0 -213
- package/es/hooks/useIndicatorData.js.map +0 -1
- package/es/hooks/useOnEvent.js +0 -24
- package/es/hooks/useOnEvent.js.map +0 -1
- package/es/hooks/usePageUrl.js +0 -11
- package/es/hooks/usePageUrl.js.map +0 -1
- package/es/hooks/usePickComponentStyle.js +0 -38
- package/es/hooks/usePickComponentStyle.js.map +0 -1
- package/es/hooks/useRequestData.js +0 -115
- package/es/hooks/useRequestData.js.map +0 -1
- package/es/hooks/useRequestDiagramData.js +0 -346
- package/es/hooks/useRequestDiagramData.js.map +0 -1
- package/es/hooks/useTransformChartDataByAttrKey.js +0 -56
- package/es/hooks/useTransformChartDataByAttrKey.js.map +0 -1
- package/es/hooks/useTransformChartDataByAttrValue.js +0 -41
- package/es/hooks/useTransformChartDataByAttrValue.js.map +0 -1
- package/es/hooks/useValueFormatter.js +0 -33
- package/es/hooks/useValueFormatter.js.map +0 -1
- package/es/hooks/useVariablesInText.js +0 -40
- package/es/hooks/useVariablesInText.js.map +0 -1
- package/es/index.js +0 -162
- package/es/index.js.map +0 -1
- package/es/map/map/Map.vue.js +0 -30
- package/es/map/map/Map.vue.js.map +0 -1
- package/es/map/map/Map.vue2.js +0 -171
- package/es/map/map/Map.vue2.js.map +0 -1
- package/es/map/map/Map.vue3.js +0 -5
- package/es/map/map/Map.vue3.js.map +0 -1
- package/es/map/map/index.js +0 -11
- package/es/map/map/index.js.map +0 -1
- package/es/map/map/props.js +0 -49
- package/es/map/map/props.js.map +0 -1
- package/es/media/iframe/Iframe.vue.js +0 -21
- package/es/media/iframe/Iframe.vue.js.map +0 -1
- package/es/media/iframe/Iframe.vue2.js +0 -43
- package/es/media/iframe/Iframe.vue2.js.map +0 -1
- package/es/media/iframe/Iframe.vue3.js +0 -5
- package/es/media/iframe/Iframe.vue3.js.map +0 -1
- package/es/media/iframe/index.js +0 -11
- package/es/media/iframe/index.js.map +0 -1
- package/es/media/iframe/props.js +0 -17
- package/es/media/iframe/props.js.map +0 -1
- package/es/media/image/Image.vue.js +0 -22
- package/es/media/image/Image.vue.js.map +0 -1
- package/es/media/image/Image.vue2.js +0 -53
- package/es/media/image/Image.vue2.js.map +0 -1
- package/es/media/image/Image.vue3.js +0 -5
- package/es/media/image/Image.vue3.js.map +0 -1
- package/es/media/image/index.js +0 -11
- package/es/media/image/index.js.map +0 -1
- package/es/media/image/props.js +0 -19
- package/es/media/image/props.js.map +0 -1
- package/es/node_modules/@ant-design/colors/dist/index.esm.js +0 -176
- package/es/node_modules/@ant-design/colors/dist/index.esm.js.map +0 -1
- package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +0 -6
- package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +0 -166
- package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js +0 -114
- package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +0 -80
- package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +0 -39
- package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/insert-css.js +0 -45
- package/es/node_modules/@ant-design/icons-vue/es/insert-css.js.map +0 -1
- package/es/node_modules/@ant-design/icons-vue/es/utils.js +0 -86
- package/es/node_modules/@ant-design/icons-vue/es/utils.js.map +0 -1
- package/es/node_modules/@babel/runtime/helpers/esm/extends.js +0 -18
- package/es/node_modules/@babel/runtime/helpers/esm/extends.js.map +0 -1
- package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js +0 -116
- package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +0 -1
- package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +0 -154
- package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js.map +0 -1
- package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js +0 -149
- package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +0 -1
- package/es/node_modules/@ctrl/tinycolor/dist/module/util.js +0 -50
- package/es/node_modules/@ctrl/tinycolor/dist/module/util.js.map +0 -1
- package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -3
- package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/button/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/button/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/checkbox/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/checkbox/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +0 -24
- package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/date-picker/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/date-picker/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/dropdown/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/dropdown/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/empty/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/empty/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/input/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/input/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/modal/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/modal/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/pagination/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/pagination/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/progress/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/progress/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/radio/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/radio/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/select/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/select/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/skeleton/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/skeleton/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/spin/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/spin/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/style/default.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/style/default.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/table/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/table/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/tag/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/tag/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +0 -9
- package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/tooltip/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/tooltip/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/tree/style/index.less.js +0 -5
- package/es/node_modules/ant-design-vue/es/tree/style/index.less.js.map +0 -1
- package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +0 -33
- package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +0 -1
- package/es/node_modules/echarts/lib/action/roamHelper.js +0 -38
- package/es/node_modules/echarts/lib/action/roamHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/animation/basicTrasition.js +0 -149
- package/es/node_modules/echarts/lib/animation/basicTrasition.js.map +0 -1
- package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +0 -92
- package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +0 -1
- package/es/node_modules/echarts/lib/animation/customGraphicTransition.js +0 -389
- package/es/node_modules/echarts/lib/animation/customGraphicTransition.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/bar/BarSeries.js +0 -68
- package/es/node_modules/echarts/lib/chart/bar/BarSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/bar/BarView.js +0 -784
- package/es/node_modules/echarts/lib/chart/bar/BarView.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +0 -57
- package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/bar/install.js +0 -31
- package/es/node_modules/echarts/lib/chart/bar/install.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +0 -255
- package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/Symbol.js +0 -252
- package/es/node_modules/echarts/lib/chart/helper/Symbol.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js +0 -158
- package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +0 -102
- package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +0 -17
- package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js +0 -118
- package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +0 -19
- package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/labelHelper.js +0 -35
- package/es/node_modules/echarts/lib/chart/helper/labelHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/helper/pieHelper.js +0 -23
- package/es/node_modules/echarts/lib/chart/helper/pieHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/LineSeries.js +0 -116
- package/es/node_modules/echarts/lib/chart/line/LineSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/LineView.js +0 -977
- package/es/node_modules/echarts/lib/chart/line/LineView.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/helper.js +0 -81
- package/es/node_modules/echarts/lib/chart/line/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/install.js +0 -25
- package/es/node_modules/echarts/lib/chart/line/install.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +0 -113
- package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/line/poly.js +0 -304
- package/es/node_modules/echarts/lib/chart/line/poly.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/map/MapSeries.js +0 -185
- package/es/node_modules/echarts/lib/chart/map/MapSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/map/MapView.js +0 -121
- package/es/node_modules/echarts/lib/chart/map/MapView.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/map/install.js +0 -19
- package/es/node_modules/echarts/lib/chart/map/install.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js +0 -62
- package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +0 -43
- package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/pie/PieSeries.js +0 -153
- package/es/node_modules/echarts/lib/chart/pie/PieSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/pie/PieView.js +0 -230
- package/es/node_modules/echarts/lib/chart/pie/PieView.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/pie/install.js +0 -19
- package/es/node_modules/echarts/lib/chart/pie/install.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/pie/labelLayout.js +0 -391
- package/es/node_modules/echarts/lib/chart/pie/labelLayout.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/pie/pieLayout.js +0 -133
- package/es/node_modules/echarts/lib/chart/pie/pieLayout.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +0 -79
- package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js +0 -93
- package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +0 -1
- package/es/node_modules/echarts/lib/chart/scatter/install.js +0 -15
- package/es/node_modules/echarts/lib/chart/scatter/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js +0 -490
- package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axis/AxisView.js +0 -61
- package/es/node_modules/echarts/lib/component/axis/AxisView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js +0 -193
- package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js +0 -83
- package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +0 -75
- package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +0 -41
- package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +0 -288
- package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +0 -107
- package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +0 -293
- package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +0 -53
- package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js +0 -87
- package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/install.js +0 -33
- package/es/node_modules/echarts/lib/component/axisPointer/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js +0 -202
- package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js +0 -144
- package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +0 -211
- package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +0 -301
- package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +0 -25
- package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +0 -20
- package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +0 -20
- package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +0 -19
- package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +0 -66
- package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/helper.js +0 -65
- package/es/node_modules/echarts/lib/component/dataZoom/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/history.js +0 -68
- package/es/node_modules/echarts/lib/component/dataZoom/history.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js +0 -18
- package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +0 -12
- package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +0 -1
- package/es/node_modules/echarts/lib/component/dataset/install.js +0 -58
- package/es/node_modules/echarts/lib/component/dataset/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/geo/GeoView.js +0 -73
- package/es/node_modules/echarts/lib/component/geo/GeoView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/geo/install.js +0 -90
- package/es/node_modules/echarts/lib/component/geo/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js +0 -169
- package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/graphic/GraphicView.js +0 -317
- package/es/node_modules/echarts/lib/component/graphic/GraphicView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/graphic/install.js +0 -27
- package/es/node_modules/echarts/lib/component/graphic/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/grid/installSimple.js +0 -59
- package/es/node_modules/echarts/lib/component/grid/installSimple.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/BrushController.js +0 -656
- package/es/node_modules/echarts/lib/component/helper/BrushController.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js +0 -270
- package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/MapDraw.js +0 -515
- package/es/node_modules/echarts/lib/component/helper/MapDraw.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/RoamController.js +0 -165
- package/es/node_modules/echarts/lib/component/helper/RoamController.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/brushHelper.js +0 -33
- package/es/node_modules/echarts/lib/component/helper/brushHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/cursorHelper.js +0 -14
- package/es/node_modules/echarts/lib/component/helper/cursorHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/interactionMutex.js +0 -31
- package/es/node_modules/echarts/lib/component/helper/interactionMutex.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/listComponent.js +0 -37
- package/es/node_modules/echarts/lib/component/helper/listComponent.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/roamHelper.js +0 -29
- package/es/node_modules/echarts/lib/component/helper/roamHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/helper/sliderMove.js +0 -48
- package/es/node_modules/echarts/lib/component/helper/sliderMove.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/LegendModel.js +0 -256
- package/es/node_modules/echarts/lib/component/legend/LegendModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/LegendView.js +0 -402
- package/es/node_modules/echarts/lib/component/legend/LegendView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +0 -61
- package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +0 -312
- package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/install.js +0 -11
- package/es/node_modules/echarts/lib/component/legend/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js +0 -17
- package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js +0 -15
- package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/legendAction.js +0 -46
- package/es/node_modules/echarts/lib/component/legend/legendAction.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/legendFilter.js +0 -19
- package/es/node_modules/echarts/lib/component/legend/legendFilter.js.map +0 -1
- package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +0 -16
- package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +0 -1
- package/es/node_modules/echarts/lib/component/title/install.js +0 -184
- package/es/node_modules/echarts/lib/component/title/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +0 -72
- package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js +0 -224
- package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js +0 -369
- package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +0 -206
- package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +0 -163
- package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js +0 -42
- package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +0 -97
- package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/featureManager.js +0 -21
- package/es/node_modules/echarts/lib/component/toolbox/featureManager.js.map +0 -1
- package/es/node_modules/echarts/lib/component/toolbox/install.js +0 -24
- package/es/node_modules/echarts/lib/component/toolbox/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +0 -291
- package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js +0 -88
- package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +0 -153
- package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js +0 -684
- package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/helper.js +0 -40
- package/es/node_modules/echarts/lib/component/tooltip/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/install.js +0 -24
- package/es/node_modules/echarts/lib/component/tooltip/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +0 -95
- package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +0 -1
- package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +0 -245
- package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +0 -178
- package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js +0 -590
- package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +0 -335
- package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +0 -172
- package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +0 -269
- package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js +0 -103
- package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/helper.js +0 -40
- package/es/node_modules/echarts/lib/component/visualMap/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/install.js +0 -11
- package/es/node_modules/echarts/lib/component/visualMap/install.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/installCommon.js +0 -23
- package/es/node_modules/echarts/lib/component/visualMap/installCommon.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +0 -12
- package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +0 -12
- package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js +0 -37
- package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js +0 -66
- package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +0 -1
- package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js +0 -19
- package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/Axis.js +0 -176
- package/es/node_modules/echarts/lib/coord/Axis.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/CoordinateSystem.js +0 -7
- package/es/node_modules/echarts/lib/coord/CoordinateSystem.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/View.js +0 -166
- package/es/node_modules/echarts/lib/coord/View.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisAlignTicks.js +0 -87
- package/es/node_modules/echarts/lib/coord/axisAlignTicks.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisCommonTypes.js +0 -10
- package/es/node_modules/echarts/lib/coord/axisCommonTypes.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisDefault.js +0 -163
- package/es/node_modules/echarts/lib/coord/axisDefault.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisHelper.js +0 -233
- package/es/node_modules/echarts/lib/coord/axisHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js +0 -19
- package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisModelCreator.js +0 -63
- package/es/node_modules/echarts/lib/coord/axisModelCreator.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +0 -225
- package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js +0 -42
- package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js +0 -25
- package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js +0 -37
- package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +0 -116
- package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/Grid.js +0 -384
- package/es/node_modules/echarts/lib/coord/cartesian/Grid.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js +0 -36
- package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +0 -73
- package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/Geo.js +0 -151
- package/es/node_modules/echarts/lib/coord/geo/Geo.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +0 -93
- package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/GeoModel.js +0 -164
- package/es/node_modules/echarts/lib/coord/geo/GeoModel.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +0 -174
- package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/Region.js +0 -237
- package/es/node_modules/echarts/lib/coord/geo/Region.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +0 -13
- package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js +0 -32
- package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js +0 -24
- package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/geoCreator.js +0 -177
- package/es/node_modules/echarts/lib/coord/geo/geoCreator.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js +0 -76
- package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js +0 -95
- package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +0 -1
- package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +0 -140
- package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +0 -1
- package/es/node_modules/echarts/lib/core/CoordinateSystem.js +0 -38
- package/es/node_modules/echarts/lib/core/CoordinateSystem.js.map +0 -1
- package/es/node_modules/echarts/lib/core/ExtensionAPI.js +0 -37
- package/es/node_modules/echarts/lib/core/ExtensionAPI.js.map +0 -1
- package/es/node_modules/echarts/lib/core/Scheduler.js +0 -358
- package/es/node_modules/echarts/lib/core/Scheduler.js.map +0 -1
- package/es/node_modules/echarts/lib/core/echarts.js +0 -1784
- package/es/node_modules/echarts/lib/core/echarts.js.map +0 -1
- package/es/node_modules/echarts/lib/core/impl.js +0 -23
- package/es/node_modules/echarts/lib/core/impl.js.map +0 -1
- package/es/node_modules/echarts/lib/core/lifecycle.js +0 -7
- package/es/node_modules/echarts/lib/core/lifecycle.js.map +0 -1
- package/es/node_modules/echarts/lib/core/locale.js +0 -50
- package/es/node_modules/echarts/lib/core/locale.js.map +0 -1
- package/es/node_modules/echarts/lib/core/task.js +0 -184
- package/es/node_modules/echarts/lib/core/task.js.map +0 -1
- package/es/node_modules/echarts/lib/data/DataDiffer.js +0 -155
- package/es/node_modules/echarts/lib/data/DataDiffer.js.map +0 -1
- package/es/node_modules/echarts/lib/data/DataStore.js +0 -788
- package/es/node_modules/echarts/lib/data/DataStore.js.map +0 -1
- package/es/node_modules/echarts/lib/data/OrdinalMeta.js +0 -67
- package/es/node_modules/echarts/lib/data/OrdinalMeta.js.map +0 -1
- package/es/node_modules/echarts/lib/data/SeriesData.js +0 -666
- package/es/node_modules/echarts/lib/data/SeriesData.js.map +0 -1
- package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js +0 -18
- package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +0 -1
- package/es/node_modules/echarts/lib/data/Source.js +0 -220
- package/es/node_modules/echarts/lib/data/Source.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +0 -145
- package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/createDimensions.js +0 -213
- package/es/node_modules/echarts/lib/data/helper/createDimensions.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/dataProvider.js +0 -257
- package/es/node_modules/echarts/lib/data/helper/dataProvider.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js +0 -108
- package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js +0 -65
- package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js +0 -104
- package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/sourceHelper.js +0 -243
- package/es/node_modules/echarts/lib/data/helper/sourceHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/sourceManager.js +0 -236
- package/es/node_modules/echarts/lib/data/helper/sourceManager.js.map +0 -1
- package/es/node_modules/echarts/lib/data/helper/transform.js +0 -296
- package/es/node_modules/echarts/lib/data/helper/transform.js.map +0 -1
- package/es/node_modules/echarts/lib/extension.js +0 -70
- package/es/node_modules/echarts/lib/extension.js.map +0 -1
- package/es/node_modules/echarts/lib/i18n/langEN.js +0 -113
- package/es/node_modules/echarts/lib/i18n/langEN.js.map +0 -1
- package/es/node_modules/echarts/lib/i18n/langZH.js +0 -113
- package/es/node_modules/echarts/lib/i18n/langZH.js.map +0 -1
- package/es/node_modules/echarts/lib/label/labelGuideHelper.js +0 -218
- package/es/node_modules/echarts/lib/label/labelGuideHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/label/labelLayoutHelper.js +0 -222
- package/es/node_modules/echarts/lib/label/labelLayoutHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/label/labelStyle.js +0 -352
- package/es/node_modules/echarts/lib/label/labelStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/label/sectorLabel.js +0 -153
- package/es/node_modules/echarts/lib/label/sectorLabel.js.map +0 -1
- package/es/node_modules/echarts/lib/layout/barGrid.js +0 -368
- package/es/node_modules/echarts/lib/layout/barGrid.js.map +0 -1
- package/es/node_modules/echarts/lib/layout/points.js +0 -63
- package/es/node_modules/echarts/lib/layout/points.js.map +0 -1
- package/es/node_modules/echarts/lib/legacy/dataSelectAction.js +0 -76
- package/es/node_modules/echarts/lib/legacy/dataSelectAction.js.map +0 -1
- package/es/node_modules/echarts/lib/loading/default.js +0 -109
- package/es/node_modules/echarts/lib/loading/default.js.map +0 -1
- package/es/node_modules/echarts/lib/model/Component.js +0 -120
- package/es/node_modules/echarts/lib/model/Component.js.map +0 -1
- package/es/node_modules/echarts/lib/model/Global.js +0 -572
- package/es/node_modules/echarts/lib/model/Global.js.map +0 -1
- package/es/node_modules/echarts/lib/model/Model.js +0 -104
- package/es/node_modules/echarts/lib/model/Model.js.map +0 -1
- package/es/node_modules/echarts/lib/model/OptionManager.js +0 -191
- package/es/node_modules/echarts/lib/model/OptionManager.js.map +0 -1
- package/es/node_modules/echarts/lib/model/Series.js +0 -380
- package/es/node_modules/echarts/lib/model/Series.js.map +0 -1
- package/es/node_modules/echarts/lib/model/globalDefault.js +0 -90
- package/es/node_modules/echarts/lib/model/globalDefault.js.map +0 -1
- package/es/node_modules/echarts/lib/model/internalComponentCreator.js +0 -28
- package/es/node_modules/echarts/lib/model/internalComponentCreator.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/areaStyle.js +0 -28
- package/es/node_modules/echarts/lib/model/mixin/areaStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/dataFormat.js +0 -119
- package/es/node_modules/echarts/lib/model/mixin/dataFormat.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/itemStyle.js +0 -35
- package/es/node_modules/echarts/lib/model/mixin/itemStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/lineStyle.js +0 -34
- package/es/node_modules/echarts/lib/model/mixin/lineStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +0 -27
- package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/palette.js +0 -56
- package/es/node_modules/echarts/lib/model/mixin/palette.js.map +0 -1
- package/es/node_modules/echarts/lib/model/mixin/textStyle.js +0 -42
- package/es/node_modules/echarts/lib/model/mixin/textStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/model/referHelper.js +0 -112
- package/es/node_modules/echarts/lib/model/referHelper.js.map +0 -1
- package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js +0 -213
- package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +0 -1
- package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +0 -269
- package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +0 -1
- package/es/node_modules/echarts/lib/processor/dataFilter.js +0 -27
- package/es/node_modules/echarts/lib/processor/dataFilter.js.map +0 -1
- package/es/node_modules/echarts/lib/processor/dataSample.js +0 -82
- package/es/node_modules/echarts/lib/processor/dataSample.js.map +0 -1
- package/es/node_modules/echarts/lib/processor/dataStack.js +0 -74
- package/es/node_modules/echarts/lib/processor/dataStack.js.map +0 -1
- package/es/node_modules/echarts/lib/processor/negativeDataFilter.js +0 -21
- package/es/node_modules/echarts/lib/processor/negativeDataFilter.js.map +0 -1
- package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js +0 -8
- package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/Interval.js +0 -193
- package/es/node_modules/echarts/lib/scale/Interval.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/Log.js +0 -122
- package/es/node_modules/echarts/lib/scale/Log.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/Ordinal.js +0 -126
- package/es/node_modules/echarts/lib/scale/Ordinal.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/Scale.js +0 -49
- package/es/node_modules/echarts/lib/scale/Scale.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/Time.js +0 -380
- package/es/node_modules/echarts/lib/scale/Time.js.map +0 -1
- package/es/node_modules/echarts/lib/scale/helper.js +0 -77
- package/es/node_modules/echarts/lib/scale/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/theme/dark.js +0 -183
- package/es/node_modules/echarts/lib/theme/dark.js.map +0 -1
- package/es/node_modules/echarts/lib/theme/light.js +0 -9
- package/es/node_modules/echarts/lib/theme/light.js.map +0 -1
- package/es/node_modules/echarts/lib/util/ECEventProcessor.js +0 -80
- package/es/node_modules/echarts/lib/util/ECEventProcessor.js.map +0 -1
- package/es/node_modules/echarts/lib/util/clazz.js +0 -165
- package/es/node_modules/echarts/lib/util/clazz.js.map +0 -1
- package/es/node_modules/echarts/lib/util/component.js +0 -117
- package/es/node_modules/echarts/lib/util/component.js.map +0 -1
- package/es/node_modules/echarts/lib/util/decal.js +0 -292
- package/es/node_modules/echarts/lib/util/decal.js.map +0 -1
- package/es/node_modules/echarts/lib/util/event.js +0 -17
- package/es/node_modules/echarts/lib/util/event.js.map +0 -1
- package/es/node_modules/echarts/lib/util/format.js +0 -140
- package/es/node_modules/echarts/lib/util/format.js.map +0 -1
- package/es/node_modules/echarts/lib/util/graphic.js +0 -376
- package/es/node_modules/echarts/lib/util/graphic.js.map +0 -1
- package/es/node_modules/echarts/lib/util/innerStore.js +0 -23
- package/es/node_modules/echarts/lib/util/innerStore.js.map +0 -1
- package/es/node_modules/echarts/lib/util/layout.js +0 -249
- package/es/node_modules/echarts/lib/util/layout.js.map +0 -1
- package/es/node_modules/echarts/lib/util/log.js +0 -81
- package/es/node_modules/echarts/lib/util/log.js.map +0 -1
- package/es/node_modules/echarts/lib/util/model.js +0 -464
- package/es/node_modules/echarts/lib/util/model.js.map +0 -1
- package/es/node_modules/echarts/lib/util/number.js +0 -306
- package/es/node_modules/echarts/lib/util/number.js.map +0 -1
- package/es/node_modules/echarts/lib/util/shape/sausage.js +0 -69
- package/es/node_modules/echarts/lib/util/shape/sausage.js.map +0 -1
- package/es/node_modules/echarts/lib/util/states.js +0 -598
- package/es/node_modules/echarts/lib/util/states.js.map +0 -1
- package/es/node_modules/echarts/lib/util/styleCompat.js +0 -78
- package/es/node_modules/echarts/lib/util/styleCompat.js.map +0 -1
- package/es/node_modules/echarts/lib/util/symbol.js +0 -267
- package/es/node_modules/echarts/lib/util/symbol.js.map +0 -1
- package/es/node_modules/echarts/lib/util/throttle.js +0 -85
- package/es/node_modules/echarts/lib/util/throttle.js.map +0 -1
- package/es/node_modules/echarts/lib/util/time.js +0 -253
- package/es/node_modules/echarts/lib/util/time.js.map +0 -1
- package/es/node_modules/echarts/lib/util/types.js +0 -22
- package/es/node_modules/echarts/lib/util/types.js.map +0 -1
- package/es/node_modules/echarts/lib/util/vendor.js +0 -13
- package/es/node_modules/echarts/lib/util/vendor.js.map +0 -1
- package/es/node_modules/echarts/lib/view/Chart.js +0 -139
- package/es/node_modules/echarts/lib/view/Chart.js.map +0 -1
- package/es/node_modules/echarts/lib/view/Component.js +0 -40
- package/es/node_modules/echarts/lib/view/Component.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js +0 -31
- package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/VisualMapping.js +0 -369
- package/es/node_modules/echarts/lib/visual/VisualMapping.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/decal.js +0 -27
- package/es/node_modules/echarts/lib/visual/decal.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/helper.js +0 -61
- package/es/node_modules/echarts/lib/visual/helper.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/style.js +0 -160
- package/es/node_modules/echarts/lib/visual/style.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/symbol.js +0 -82
- package/es/node_modules/echarts/lib/visual/symbol.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/visualDefault.js +0 -49
- package/es/node_modules/echarts/lib/visual/visualDefault.js.map +0 -1
- package/es/node_modules/echarts/lib/visual/visualSolution.js +0 -101
- package/es/node_modules/echarts/lib/visual/visualSolution.js.map +0 -1
- package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js +0 -37
- package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +0 -1
- package/es/node_modules/zrender/lib/Element.js +0 -994
- package/es/node_modules/zrender/lib/Element.js.map +0 -1
- package/es/node_modules/zrender/lib/Handler.js +0 -257
- package/es/node_modules/zrender/lib/Handler.js.map +0 -1
- package/es/node_modules/zrender/lib/Storage.js +0 -158
- package/es/node_modules/zrender/lib/Storage.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/Animation.js +0 -148
- package/es/node_modules/zrender/lib/animation/Animation.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/Animator.js +0 -702
- package/es/node_modules/zrender/lib/animation/Animator.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/Clip.js +0 -65
- package/es/node_modules/zrender/lib/animation/Clip.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/cubicEasing.js +0 -24
- package/es/node_modules/zrender/lib/animation/cubicEasing.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/easing.js +0 -189
- package/es/node_modules/zrender/lib/animation/easing.js.map +0 -1
- package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js +0 -10
- package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +0 -1
- package/es/node_modules/zrender/lib/canvas/Layer.js +0 -283
- package/es/node_modules/zrender/lib/canvas/Layer.js.map +0 -1
- package/es/node_modules/zrender/lib/canvas/Painter.js +0 -618
- package/es/node_modules/zrender/lib/canvas/Painter.js.map +0 -1
- package/es/node_modules/zrender/lib/canvas/dashStyle.js +0 -27
- package/es/node_modules/zrender/lib/canvas/dashStyle.js.map +0 -1
- package/es/node_modules/zrender/lib/canvas/graphic.js +0 -522
- package/es/node_modules/zrender/lib/canvas/graphic.js.map +0 -1
- package/es/node_modules/zrender/lib/canvas/helper.js +0 -83
- package/es/node_modules/zrender/lib/canvas/helper.js.map +0 -1
- package/es/node_modules/zrender/lib/config.js +0 -18
- package/es/node_modules/zrender/lib/config.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/arc.js +0 -37
- package/es/node_modules/zrender/lib/contain/arc.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/cubic.js +0 -16
- package/es/node_modules/zrender/lib/contain/cubic.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/line.js +0 -24
- package/es/node_modules/zrender/lib/contain/line.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/path.js +0 -290
- package/es/node_modules/zrender/lib/contain/path.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/polygon.js +0 -26
- package/es/node_modules/zrender/lib/contain/polygon.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/quadratic.js +0 -16
- package/es/node_modules/zrender/lib/contain/quadratic.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/text.js +0 -174
- package/es/node_modules/zrender/lib/contain/text.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/util.js +0 -12
- package/es/node_modules/zrender/lib/contain/util.js.map +0 -1
- package/es/node_modules/zrender/lib/contain/windingLine.js +0 -19
- package/es/node_modules/zrender/lib/contain/windingLine.js.map +0 -1
- package/es/node_modules/zrender/lib/core/BoundingRect.js +0 -205
- package/es/node_modules/zrender/lib/core/BoundingRect.js.map +0 -1
- package/es/node_modules/zrender/lib/core/Eventful.js +0 -155
- package/es/node_modules/zrender/lib/core/Eventful.js.map +0 -1
- package/es/node_modules/zrender/lib/core/GestureMgr.js +0 -82
- package/es/node_modules/zrender/lib/core/GestureMgr.js.map +0 -1
- package/es/node_modules/zrender/lib/core/LRU.js +0 -110
- package/es/node_modules/zrender/lib/core/LRU.js.map +0 -1
- package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js +0 -121
- package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +0 -1
- package/es/node_modules/zrender/lib/core/PathProxy.js +0 -697
- package/es/node_modules/zrender/lib/core/PathProxy.js.map +0 -1
- package/es/node_modules/zrender/lib/core/Point.js +0 -133
- package/es/node_modules/zrender/lib/core/Point.js.map +0 -1
- package/es/node_modules/zrender/lib/core/Transformable.js +0 -233
- package/es/node_modules/zrender/lib/core/Transformable.js.map +0 -1
- package/es/node_modules/zrender/lib/core/WeakMap.js +0 -45
- package/es/node_modules/zrender/lib/core/WeakMap.js.map +0 -1
- package/es/node_modules/zrender/lib/core/bbox.js +0 -109
- package/es/node_modules/zrender/lib/core/bbox.js.map +0 -1
- package/es/node_modules/zrender/lib/core/curve.js +0 -345
- package/es/node_modules/zrender/lib/core/curve.js.map +0 -1
- package/es/node_modules/zrender/lib/core/dom.js +0 -79
- package/es/node_modules/zrender/lib/core/dom.js.map +0 -1
- package/es/node_modules/zrender/lib/core/env.js +0 -73
- package/es/node_modules/zrender/lib/core/env.js.map +0 -1
- package/es/node_modules/zrender/lib/core/event.js +0 -101
- package/es/node_modules/zrender/lib/core/event.js.map +0 -1
- package/es/node_modules/zrender/lib/core/fourPointsTransform.js +0 -60
- package/es/node_modules/zrender/lib/core/fourPointsTransform.js.map +0 -1
- package/es/node_modules/zrender/lib/core/matrix.js +0 -104
- package/es/node_modules/zrender/lib/core/matrix.js.map +0 -1
- package/es/node_modules/zrender/lib/core/platform.js +0 -70
- package/es/node_modules/zrender/lib/core/platform.js.map +0 -1
- package/es/node_modules/zrender/lib/core/timsort.js +0 -512
- package/es/node_modules/zrender/lib/core/timsort.js.map +0 -1
- package/es/node_modules/zrender/lib/core/util.js +0 -508
- package/es/node_modules/zrender/lib/core/util.js.map +0 -1
- package/es/node_modules/zrender/lib/core/vector.js +0 -99
- package/es/node_modules/zrender/lib/core/vector.js.map +0 -1
- package/es/node_modules/zrender/lib/dom/HandlerProxy.js +0 -302
- package/es/node_modules/zrender/lib/dom/HandlerProxy.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/CompoundPath.js +0 -53
- package/es/node_modules/zrender/lib/graphic/CompoundPath.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Displayable.js +0 -316
- package/es/node_modules/zrender/lib/graphic/Displayable.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Gradient.js +0 -17
- package/es/node_modules/zrender/lib/graphic/Gradient.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Group.js +0 -181
- package/es/node_modules/zrender/lib/graphic/Group.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Image.js +0 -75
- package/es/node_modules/zrender/lib/graphic/Image.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +0 -115
- package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/LinearGradient.js +0 -21
- package/es/node_modules/zrender/lib/graphic/LinearGradient.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Path.js +0 -395
- package/es/node_modules/zrender/lib/graphic/Path.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/RadialGradient.js +0 -20
- package/es/node_modules/zrender/lib/graphic/RadialGradient.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/TSpan.js +0 -68
- package/es/node_modules/zrender/lib/graphic/TSpan.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/Text.js +0 -506
- package/es/node_modules/zrender/lib/graphic/Text.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/constants.js +0 -9
- package/es/node_modules/zrender/lib/graphic/constants.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/image.js +0 -56
- package/es/node_modules/zrender/lib/graphic/helper/image.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/parseText.js +0 -447
- package/es/node_modules/zrender/lib/graphic/helper/parseText.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/poly.js +0 -28
- package/es/node_modules/zrender/lib/graphic/helper/poly.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/roundRect.js +0 -74
- package/es/node_modules/zrender/lib/graphic/helper/roundRect.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/roundSector.js +0 -219
- package/es/node_modules/zrender/lib/graphic/helper/roundSector.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js +0 -65
- package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js +0 -60
- package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Arc.js +0 -48
- package/es/node_modules/zrender/lib/graphic/shape/Arc.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js +0 -100
- package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Circle.js +0 -31
- package/es/node_modules/zrender/lib/graphic/shape/Circle.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js +0 -43
- package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Line.js +0 -72
- package/es/node_modules/zrender/lib/graphic/shape/Line.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Polygon.js +0 -31
- package/es/node_modules/zrender/lib/graphic/shape/Polygon.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Polyline.js +0 -38
- package/es/node_modules/zrender/lib/graphic/shape/Polyline.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Rect.js +0 -59
- package/es/node_modules/zrender/lib/graphic/shape/Rect.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Ring.js +0 -37
- package/es/node_modules/zrender/lib/graphic/shape/Ring.js.map +0 -1
- package/es/node_modules/zrender/lib/graphic/shape/Sector.js +0 -39
- package/es/node_modules/zrender/lib/graphic/shape/Sector.js.map +0 -1
- package/es/node_modules/zrender/lib/mixin/Draggable.js +0 -70
- package/es/node_modules/zrender/lib/mixin/Draggable.js.map +0 -1
- package/es/node_modules/zrender/lib/svg/helper.js +0 -31
- package/es/node_modules/zrender/lib/svg/helper.js.map +0 -1
- package/es/node_modules/zrender/lib/tool/color.js +0 -459
- package/es/node_modules/zrender/lib/tool/color.js.map +0 -1
- package/es/node_modules/zrender/lib/tool/parseSVG.js +0 -633
- package/es/node_modules/zrender/lib/tool/parseSVG.js.map +0 -1
- package/es/node_modules/zrender/lib/tool/parseXML.js +0 -19
- package/es/node_modules/zrender/lib/tool/parseXML.js.map +0 -1
- package/es/node_modules/zrender/lib/tool/path.js +0 -339
- package/es/node_modules/zrender/lib/tool/path.js.map +0 -1
- package/es/node_modules/zrender/lib/tool/transformPath.js +0 -85
- package/es/node_modules/zrender/lib/tool/transformPath.js.map +0 -1
- package/es/node_modules/zrender/lib/zrender.js +0 -238
- package/es/node_modules/zrender/lib/zrender.js.map +0 -1
- package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js +0 -37
- package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +0 -1
- package/es/setting/page-config/PageConfig.vue.js +0 -24
- package/es/setting/page-config/PageConfig.vue.js.map +0 -1
- package/es/setting/page-config/PageConfig.vue2.js +0 -109
- package/es/setting/page-config/PageConfig.vue2.js.map +0 -1
- package/es/setting/page-config/PageConfig.vue3.js +0 -5
- package/es/setting/page-config/PageConfig.vue3.js.map +0 -1
- package/es/setting/page-config/index.js +0 -11
- package/es/setting/page-config/index.js.map +0 -1
- package/es/setting/page-config/props.js +0 -16
- package/es/setting/page-config/props.js.map +0 -1
- package/es/setting/provider-config/ProviderConfig.vue.js +0 -17
- package/es/setting/provider-config/ProviderConfig.vue.js.map +0 -1
- package/es/setting/provider-config/ProviderConfig.vue2.js +0 -177
- package/es/setting/provider-config/ProviderConfig.vue2.js.map +0 -1
- package/es/setting/provider-config/index.js +0 -11
- package/es/setting/provider-config/index.js.map +0 -1
- package/es/setting/provider-config/props.js +0 -13
- package/es/setting/provider-config/props.js.map +0 -1
- package/es/table/table/Table.vue.js +0 -164
- package/es/table/table/Table.vue.js.map +0 -1
- package/es/table/table/Table.vue2.js +0 -547
- package/es/table/table/Table.vue2.js.map +0 -1
- package/es/table/table/Table.vue3.js +0 -5
- package/es/table/table/Table.vue3.js.map +0 -1
- package/es/table/table/Table.vue4.js +0 -5
- package/es/table/table/Table.vue4.js.map +0 -1
- package/es/table/table/index.js +0 -12
- package/es/table/table/index.js.map +0 -1
- package/es/table/table/props.js +0 -78
- package/es/table/table/props.js.map +0 -1
- package/es/text/list/List.vue.js +0 -112
- package/es/text/list/List.vue.js.map +0 -1
- package/es/text/list/List.vue2.js +0 -107
- package/es/text/list/List.vue2.js.map +0 -1
- package/es/text/list/List.vue3.js +0 -5
- package/es/text/list/List.vue3.js.map +0 -1
- package/es/text/list/List.vue4.js +0 -5
- package/es/text/list/List.vue4.js.map +0 -1
- package/es/text/list/index.js +0 -12
- package/es/text/list/index.js.map +0 -1
- package/es/text/list/props.js +0 -43
- package/es/text/list/props.js.map +0 -1
- package/es/text/proportion/Proportion.vue.js +0 -48
- package/es/text/proportion/Proportion.vue.js.map +0 -1
- package/es/text/proportion/Proportion.vue2.js +0 -163
- package/es/text/proportion/Proportion.vue2.js.map +0 -1
- package/es/text/proportion/Proportion.vue3.js +0 -5
- package/es/text/proportion/Proportion.vue3.js.map +0 -1
- package/es/text/proportion/index.js +0 -12
- package/es/text/proportion/index.js.map +0 -1
- package/es/text/proportion/props.js +0 -33
- package/es/text/proportion/props.js.map +0 -1
- package/es/text/scroll-text/ScrollText.vue.js +0 -13
- package/es/text/scroll-text/ScrollText.vue.js.map +0 -1
- package/es/text/scroll-text/ScrollText.vue2.js +0 -14
- package/es/text/scroll-text/ScrollText.vue2.js.map +0 -1
- package/es/text/scroll-text/ScrollText.vue3.js +0 -5
- package/es/text/scroll-text/ScrollText.vue3.js.map +0 -1
- package/es/text/scroll-text/index.js +0 -8
- package/es/text/scroll-text/index.js.map +0 -1
- package/es/text/text/Text.vue.js +0 -26
- package/es/text/text/Text.vue.js.map +0 -1
- package/es/text/text/Text.vue2.js +0 -153
- package/es/text/text/Text.vue2.js.map +0 -1
- package/es/text/text/Text.vue3.js +0 -5
- package/es/text/text/Text.vue3.js.map +0 -1
- package/es/text/text/index.js +0 -12
- package/es/text/text/index.js.map +0 -1
- package/es/text/text/props.js +0 -33
- package/es/text/text/props.js.map +0 -1
- package/es/text/time-display/TimeDisplay.vue.js +0 -15
- package/es/text/time-display/TimeDisplay.vue.js.map +0 -1
- package/es/text/time-display/TimeDisplay.vue2.js +0 -46
- package/es/text/time-display/TimeDisplay.vue2.js.map +0 -1
- package/es/text/time-display/TimeDisplay.vue3.js +0 -5
- package/es/text/time-display/TimeDisplay.vue3.js.map +0 -1
- package/es/text/time-display/index.js +0 -11
- package/es/text/time-display/index.js.map +0 -1
- package/es/text/time-display/props.js +0 -23
- package/es/text/time-display/props.js.map +0 -1
- package/es/utils/constant.js +0 -23
- package/es/utils/constant.js.map +0 -1
- package/es/utils/props.js +0 -40
- package/es/utils/props.js.map +0 -1
- package/es/utils/request.js +0 -47
- package/es/utils/request.js.map +0 -1
- package/es/utils/util.js +0 -31
- package/es/utils/util.js.map +0 -1
- package/es/utils/withInstall.js +0 -19
- package/es/utils/withInstall.js.map +0 -1
- package/lib/_virtual/_plugin-vue_export-helper.js +0 -11
- package/lib/_virtual/_plugin-vue_export-helper.js.map +0 -1
- package/lib/assets/border-title-decoration-left.png.js +0 -5
- package/lib/assets/border-title-decoration-left.png.js.map +0 -1
- package/lib/assets/border-title-decoration-right.png.js +0 -5
- package/lib/assets/border-title-decoration-right.png.js.map +0 -1
- package/lib/assets/go-down.png.js +0 -5
- package/lib/assets/go-down.png.js.map +0 -1
- package/lib/assets/go-up.png.js +0 -5
- package/lib/assets/go-up.png.js.map +0 -1
- package/lib/common/echarts/Echarts.js +0 -199
- package/lib/common/echarts/Echarts.js.map +0 -1
- package/lib/common/echarts/composables/api.js +0 -43
- package/lib/common/echarts/composables/api.js.map +0 -1
- package/lib/common/echarts/composables/autoresize.js +0 -27
- package/lib/common/echarts/composables/autoresize.js.map +0 -1
- package/lib/common/echarts/composables/loading.js +0 -30
- package/lib/common/echarts/composables/loading.js.map +0 -1
- package/lib/common/echarts/index.js +0 -5
- package/lib/common/echarts/index.js.map +0 -1
- package/lib/common/echarts/style.css.js +0 -5
- package/lib/common/echarts/style.css.js.map +0 -1
- package/lib/common/echarts/utils.js +0 -16
- package/lib/common/echarts/utils.js.map +0 -1
- package/lib/common/skeleton/Skeleton.vue.js +0 -20
- package/lib/common/skeleton/Skeleton.vue.js.map +0 -1
- package/lib/common/skeleton/Skeleton.vue2.js +0 -20
- package/lib/common/skeleton/Skeleton.vue2.js.map +0 -1
- package/lib/common/skeleton/index.js +0 -5
- package/lib/common/skeleton/index.js.map +0 -1
- package/lib/common/spin/Spin.vue.js +0 -32
- package/lib/common/spin/Spin.vue.js.map +0 -1
- package/lib/common/spin/Spin.vue2.js +0 -5
- package/lib/common/spin/Spin.vue2.js.map +0 -1
- package/lib/common/spin/Spin.vue3.js +0 -22
- package/lib/common/spin/Spin.vue3.js.map +0 -1
- package/lib/common/spin/index.js +0 -5
- package/lib/common/spin/index.js.map +0 -1
- package/lib/components.js +0 -153
- package/lib/components.js.map +0 -1
- package/lib/container/border/Border.vue.js +0 -78
- package/lib/container/border/Border.vue.js.map +0 -1
- package/lib/container/border/Border.vue2.js +0 -65
- package/lib/container/border/Border.vue2.js.map +0 -1
- package/lib/container/border/Border.vue3.js +0 -5
- package/lib/container/border/Border.vue3.js.map +0 -1
- package/lib/container/border/index.js +0 -12
- package/lib/container/border/index.js.map +0 -1
- package/lib/container/border/props.js +0 -31
- package/lib/container/border/props.js.map +0 -1
- package/lib/container/modal/Modal.vue.js +0 -59
- package/lib/container/modal/Modal.vue.js.map +0 -1
- package/lib/container/modal/Modal.vue2.js +0 -113
- package/lib/container/modal/Modal.vue2.js.map +0 -1
- package/lib/container/modal/Modal.vue3.js +0 -5
- package/lib/container/modal/Modal.vue3.js.map +0 -1
- package/lib/container/modal/Modal.vue4.js +0 -5
- package/lib/container/modal/Modal.vue4.js.map +0 -1
- package/lib/container/modal/index.js +0 -12
- package/lib/container/modal/index.js.map +0 -1
- package/lib/container/modal/props.js +0 -28
- package/lib/container/modal/props.js.map +0 -1
- package/lib/container/tabs/Tabs.vue.js +0 -49
- package/lib/container/tabs/Tabs.vue.js.map +0 -1
- package/lib/container/tabs/Tabs.vue2.js +0 -72
- package/lib/container/tabs/Tabs.vue2.js.map +0 -1
- package/lib/container/tabs/Tabs.vue3.js +0 -5
- package/lib/container/tabs/Tabs.vue3.js.map +0 -1
- package/lib/container/tabs/index.js +0 -12
- package/lib/container/tabs/index.js.map +0 -1
- package/lib/container/tabs/props.js +0 -43
- package/lib/container/tabs/props.js.map +0 -1
- package/lib/control/button/Button.vue.js +0 -36
- package/lib/control/button/Button.vue.js.map +0 -1
- package/lib/control/button/Button.vue2.js +0 -59
- package/lib/control/button/Button.vue2.js.map +0 -1
- package/lib/control/button/Button.vue3.js +0 -5
- package/lib/control/button/Button.vue3.js.map +0 -1
- package/lib/control/button/index.js +0 -12
- package/lib/control/button/index.js.map +0 -1
- package/lib/control/button/props.js +0 -24
- package/lib/control/button/props.js.map +0 -1
- package/lib/control/checkbox/Checkbox.vue.js +0 -23
- package/lib/control/checkbox/Checkbox.vue.js.map +0 -1
- package/lib/control/checkbox/Checkbox.vue2.js +0 -97
- package/lib/control/checkbox/Checkbox.vue2.js.map +0 -1
- package/lib/control/checkbox/Checkbox.vue3.js +0 -5
- package/lib/control/checkbox/Checkbox.vue3.js.map +0 -1
- package/lib/control/checkbox/index.js +0 -12
- package/lib/control/checkbox/index.js.map +0 -1
- package/lib/control/checkbox/props.js +0 -26
- package/lib/control/checkbox/props.js.map +0 -1
- package/lib/control/date-picker/DatePicker.vue.js +0 -29
- package/lib/control/date-picker/DatePicker.vue.js.map +0 -1
- package/lib/control/date-picker/DatePicker.vue2.js +0 -68
- package/lib/control/date-picker/DatePicker.vue2.js.map +0 -1
- package/lib/control/date-picker/DatePicker.vue3.js +0 -5
- package/lib/control/date-picker/DatePicker.vue3.js.map +0 -1
- package/lib/control/date-picker/index.js +0 -12
- package/lib/control/date-picker/index.js.map +0 -1
- package/lib/control/date-picker/props.js +0 -26
- package/lib/control/date-picker/props.js.map +0 -1
- package/lib/control/input/Input.vue.js +0 -25
- package/lib/control/input/Input.vue.js.map +0 -1
- package/lib/control/input/Input.vue2.js +0 -63
- package/lib/control/input/Input.vue2.js.map +0 -1
- package/lib/control/input/Input.vue3.js +0 -5
- package/lib/control/input/Input.vue3.js.map +0 -1
- package/lib/control/input/index.js +0 -12
- package/lib/control/input/index.js.map +0 -1
- package/lib/control/input/props.js +0 -22
- package/lib/control/input/props.js.map +0 -1
- package/lib/control/range-picker/RangePicker.vue.js +0 -29
- package/lib/control/range-picker/RangePicker.vue.js.map +0 -1
- package/lib/control/range-picker/RangePicker.vue2.js +0 -77
- package/lib/control/range-picker/RangePicker.vue2.js.map +0 -1
- package/lib/control/range-picker/RangePicker.vue3.js +0 -5
- package/lib/control/range-picker/RangePicker.vue3.js.map +0 -1
- package/lib/control/range-picker/RangePicker.vue4.js +0 -5
- package/lib/control/range-picker/RangePicker.vue4.js.map +0 -1
- package/lib/control/range-picker/index.js +0 -12
- package/lib/control/range-picker/index.js.map +0 -1
- package/lib/control/range-picker/props.js +0 -25
- package/lib/control/range-picker/props.js.map +0 -1
- package/lib/control/select/Select.vue.js +0 -32
- package/lib/control/select/Select.vue.js.map +0 -1
- package/lib/control/select/Select.vue2.js +0 -109
- package/lib/control/select/Select.vue2.js.map +0 -1
- package/lib/control/select/Select.vue3.js +0 -5
- package/lib/control/select/Select.vue3.js.map +0 -1
- package/lib/control/select/Select.vue4.js +0 -5
- package/lib/control/select/Select.vue4.js.map +0 -1
- package/lib/control/select/index.js +0 -12
- package/lib/control/select/index.js.map +0 -1
- package/lib/control/select/props.js +0 -26
- package/lib/control/select/props.js.map +0 -1
- package/lib/graph/bar/Bar.vue.js +0 -51
- package/lib/graph/bar/Bar.vue.js.map +0 -1
- package/lib/graph/bar/Bar.vue2.js +0 -368
- package/lib/graph/bar/Bar.vue2.js.map +0 -1
- package/lib/graph/bar/Bar.vue3.js +0 -5
- package/lib/graph/bar/Bar.vue3.js.map +0 -1
- package/lib/graph/bar/index.js +0 -12
- package/lib/graph/bar/index.js.map +0 -1
- package/lib/graph/bar/props.js +0 -101
- package/lib/graph/bar/props.js.map +0 -1
- package/lib/graph/combo-graph/ComboGraph.vue.js +0 -51
- package/lib/graph/combo-graph/ComboGraph.vue.js.map +0 -1
- package/lib/graph/combo-graph/ComboGraph.vue2.js +0 -376
- package/lib/graph/combo-graph/ComboGraph.vue2.js.map +0 -1
- package/lib/graph/combo-graph/ComboGraph.vue3.js +0 -5
- package/lib/graph/combo-graph/ComboGraph.vue3.js.map +0 -1
- package/lib/graph/combo-graph/index.js +0 -12
- package/lib/graph/combo-graph/index.js.map +0 -1
- package/lib/graph/combo-graph/props.js +0 -112
- package/lib/graph/combo-graph/props.js.map +0 -1
- package/lib/graph/custom-graph/CustomGraph.vue.js +0 -20
- package/lib/graph/custom-graph/CustomGraph.vue.js.map +0 -1
- package/lib/graph/custom-graph/CustomGraph.vue2.js +0 -59
- package/lib/graph/custom-graph/CustomGraph.vue2.js.map +0 -1
- package/lib/graph/custom-graph/index.js +0 -11
- package/lib/graph/custom-graph/index.js.map +0 -1
- package/lib/graph/custom-graph/props.js +0 -18
- package/lib/graph/custom-graph/props.js.map +0 -1
- package/lib/graph/line/Line.vue.js +0 -49
- package/lib/graph/line/Line.vue.js.map +0 -1
- package/lib/graph/line/Line.vue2.js +0 -362
- package/lib/graph/line/Line.vue2.js.map +0 -1
- package/lib/graph/line/Line.vue3.js +0 -5
- package/lib/graph/line/Line.vue3.js.map +0 -1
- package/lib/graph/line/index.js +0 -12
- package/lib/graph/line/index.js.map +0 -1
- package/lib/graph/line/props.js +0 -71
- package/lib/graph/line/props.js.map +0 -1
- package/lib/graph/pie/Pie.vue.js +0 -49
- package/lib/graph/pie/Pie.vue.js.map +0 -1
- package/lib/graph/pie/Pie.vue2.js +0 -303
- package/lib/graph/pie/Pie.vue2.js.map +0 -1
- package/lib/graph/pie/Pie.vue3.js +0 -5
- package/lib/graph/pie/Pie.vue3.js.map +0 -1
- package/lib/graph/pie/index.js +0 -12
- package/lib/graph/pie/index.js.map +0 -1
- package/lib/graph/pie/props.js +0 -71
- package/lib/graph/pie/props.js.map +0 -1
- package/lib/graph/scatter/Scatter.vue.js +0 -49
- package/lib/graph/scatter/Scatter.vue.js.map +0 -1
- package/lib/graph/scatter/Scatter.vue2.js +0 -256
- package/lib/graph/scatter/Scatter.vue2.js.map +0 -1
- package/lib/graph/scatter/Scatter.vue3.js +0 -5
- package/lib/graph/scatter/Scatter.vue3.js.map +0 -1
- package/lib/graph/scatter/index.js +0 -12
- package/lib/graph/scatter/index.js.map +0 -1
- package/lib/graph/scatter/props.js +0 -64
- package/lib/graph/scatter/props.js.map +0 -1
- package/lib/hooks/useDownloadFile.js +0 -24
- package/lib/hooks/useDownloadFile.js.map +0 -1
- package/lib/hooks/useEmitEvent.js +0 -39
- package/lib/hooks/useEmitEvent.js.map +0 -1
- package/lib/hooks/useHrefParamsToGlobalVariables.js +0 -21
- package/lib/hooks/useHrefParamsToGlobalVariables.js.map +0 -1
- package/lib/hooks/useImagePath.js +0 -20
- package/lib/hooks/useImagePath.js.map +0 -1
- package/lib/hooks/useIndicatorData.js +0 -213
- package/lib/hooks/useIndicatorData.js.map +0 -1
- package/lib/hooks/useOnEvent.js +0 -24
- package/lib/hooks/useOnEvent.js.map +0 -1
- package/lib/hooks/usePageUrl.js +0 -11
- package/lib/hooks/usePageUrl.js.map +0 -1
- package/lib/hooks/usePickComponentStyle.js +0 -38
- package/lib/hooks/usePickComponentStyle.js.map +0 -1
- package/lib/hooks/useRequestData.js +0 -115
- package/lib/hooks/useRequestData.js.map +0 -1
- package/lib/hooks/useRequestDiagramData.js +0 -346
- package/lib/hooks/useRequestDiagramData.js.map +0 -1
- package/lib/hooks/useTransformChartDataByAttrKey.js +0 -56
- package/lib/hooks/useTransformChartDataByAttrKey.js.map +0 -1
- package/lib/hooks/useTransformChartDataByAttrValue.js +0 -41
- package/lib/hooks/useTransformChartDataByAttrValue.js.map +0 -1
- package/lib/hooks/useValueFormatter.js +0 -33
- package/lib/hooks/useValueFormatter.js.map +0 -1
- package/lib/hooks/useVariablesInText.js +0 -40
- package/lib/hooks/useVariablesInText.js.map +0 -1
- package/lib/index.js +0 -162
- package/lib/index.js.map +0 -1
- package/lib/map/map/Map.vue.js +0 -30
- package/lib/map/map/Map.vue.js.map +0 -1
- package/lib/map/map/Map.vue2.js +0 -171
- package/lib/map/map/Map.vue2.js.map +0 -1
- package/lib/map/map/Map.vue3.js +0 -5
- package/lib/map/map/Map.vue3.js.map +0 -1
- package/lib/map/map/index.js +0 -11
- package/lib/map/map/index.js.map +0 -1
- package/lib/map/map/props.js +0 -49
- package/lib/map/map/props.js.map +0 -1
- package/lib/media/iframe/Iframe.vue.js +0 -21
- package/lib/media/iframe/Iframe.vue.js.map +0 -1
- package/lib/media/iframe/Iframe.vue2.js +0 -43
- package/lib/media/iframe/Iframe.vue2.js.map +0 -1
- package/lib/media/iframe/Iframe.vue3.js +0 -5
- package/lib/media/iframe/Iframe.vue3.js.map +0 -1
- package/lib/media/iframe/index.js +0 -11
- package/lib/media/iframe/index.js.map +0 -1
- package/lib/media/iframe/props.js +0 -17
- package/lib/media/iframe/props.js.map +0 -1
- package/lib/media/image/Image.vue.js +0 -22
- package/lib/media/image/Image.vue.js.map +0 -1
- package/lib/media/image/Image.vue2.js +0 -53
- package/lib/media/image/Image.vue2.js.map +0 -1
- package/lib/media/image/Image.vue3.js +0 -5
- package/lib/media/image/Image.vue3.js.map +0 -1
- package/lib/media/image/index.js +0 -11
- package/lib/media/image/index.js.map +0 -1
- package/lib/media/image/props.js +0 -19
- package/lib/media/image/props.js.map +0 -1
- package/lib/node_modules/@ant-design/colors/dist/index.esm.js +0 -176
- package/lib/node_modules/@ant-design/colors/dist/index.esm.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +0 -6
- package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +0 -166
- package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js +0 -114
- package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +0 -80
- package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +0 -39
- package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js +0 -45
- package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js.map +0 -1
- package/lib/node_modules/@ant-design/icons-vue/es/utils.js +0 -86
- package/lib/node_modules/@ant-design/icons-vue/es/utils.js.map +0 -1
- package/lib/node_modules/@babel/runtime/helpers/esm/extends.js +0 -18
- package/lib/node_modules/@babel/runtime/helpers/esm/extends.js.map +0 -1
- package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js +0 -116
- package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +0 -1
- package/lib/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +0 -154
- package/lib/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js.map +0 -1
- package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js +0 -149
- package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +0 -1
- package/lib/node_modules/@ctrl/tinycolor/dist/module/util.js +0 -50
- package/lib/node_modules/@ctrl/tinycolor/dist/module/util.js.map +0 -1
- package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -4
- package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/button/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/button/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/checkbox/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/checkbox/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +0 -24
- package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/date-picker/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/date-picker/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/dropdown/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/dropdown/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/empty/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/empty/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/input/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/input/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/modal/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/modal/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/pagination/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/pagination/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/progress/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/progress/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/radio/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/radio/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/select/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/select/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/skeleton/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/skeleton/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/spin/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/spin/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/style/default.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/style/default.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/table/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/table/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/tag/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/tag/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +0 -9
- package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/tooltip/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/tooltip/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/tree/style/index.less.js +0 -5
- package/lib/node_modules/ant-design-vue/es/tree/style/index.less.js.map +0 -1
- package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +0 -33
- package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +0 -1
- package/lib/node_modules/echarts/lib/action/roamHelper.js +0 -38
- package/lib/node_modules/echarts/lib/action/roamHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/animation/basicTrasition.js +0 -149
- package/lib/node_modules/echarts/lib/animation/basicTrasition.js.map +0 -1
- package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +0 -92
- package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +0 -1
- package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js +0 -389
- package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js +0 -68
- package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/bar/BarView.js +0 -784
- package/lib/node_modules/echarts/lib/chart/bar/BarView.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +0 -57
- package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/bar/install.js +0 -31
- package/lib/node_modules/echarts/lib/chart/bar/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +0 -255
- package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/Symbol.js +0 -252
- package/lib/node_modules/echarts/lib/chart/helper/Symbol.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js +0 -158
- package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +0 -102
- package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +0 -17
- package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js +0 -118
- package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +0 -19
- package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js +0 -35
- package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js +0 -23
- package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/LineSeries.js +0 -116
- package/lib/node_modules/echarts/lib/chart/line/LineSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/LineView.js +0 -977
- package/lib/node_modules/echarts/lib/chart/line/LineView.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/helper.js +0 -81
- package/lib/node_modules/echarts/lib/chart/line/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/install.js +0 -25
- package/lib/node_modules/echarts/lib/chart/line/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +0 -113
- package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/line/poly.js +0 -304
- package/lib/node_modules/echarts/lib/chart/line/poly.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/map/MapSeries.js +0 -185
- package/lib/node_modules/echarts/lib/chart/map/MapSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/map/MapView.js +0 -121
- package/lib/node_modules/echarts/lib/chart/map/MapView.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/map/install.js +0 -19
- package/lib/node_modules/echarts/lib/chart/map/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js +0 -62
- package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +0 -43
- package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js +0 -153
- package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/pie/PieView.js +0 -230
- package/lib/node_modules/echarts/lib/chart/pie/PieView.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/pie/install.js +0 -19
- package/lib/node_modules/echarts/lib/chart/pie/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js +0 -391
- package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js +0 -133
- package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +0 -79
- package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js +0 -93
- package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +0 -1
- package/lib/node_modules/echarts/lib/chart/scatter/install.js +0 -15
- package/lib/node_modules/echarts/lib/chart/scatter/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js +0 -490
- package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axis/AxisView.js +0 -61
- package/lib/node_modules/echarts/lib/component/axis/AxisView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js +0 -193
- package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js +0 -83
- package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +0 -75
- package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +0 -41
- package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +0 -287
- package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +0 -107
- package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +0 -293
- package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +0 -53
- package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js +0 -87
- package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/install.js +0 -33
- package/lib/node_modules/echarts/lib/component/axisPointer/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js +0 -202
- package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js +0 -144
- package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +0 -211
- package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +0 -301
- package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +0 -25
- package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +0 -20
- package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +0 -20
- package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +0 -19
- package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +0 -66
- package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/helper.js +0 -65
- package/lib/node_modules/echarts/lib/component/dataZoom/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/history.js +0 -68
- package/lib/node_modules/echarts/lib/component/dataZoom/history.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js +0 -18
- package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +0 -12
- package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/dataset/install.js +0 -58
- package/lib/node_modules/echarts/lib/component/dataset/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/geo/GeoView.js +0 -73
- package/lib/node_modules/echarts/lib/component/geo/GeoView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/geo/install.js +0 -90
- package/lib/node_modules/echarts/lib/component/geo/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js +0 -169
- package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js +0 -317
- package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/graphic/install.js +0 -27
- package/lib/node_modules/echarts/lib/component/graphic/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/grid/installSimple.js +0 -59
- package/lib/node_modules/echarts/lib/component/grid/installSimple.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/BrushController.js +0 -656
- package/lib/node_modules/echarts/lib/component/helper/BrushController.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js +0 -270
- package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/MapDraw.js +0 -515
- package/lib/node_modules/echarts/lib/component/helper/MapDraw.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/RoamController.js +0 -165
- package/lib/node_modules/echarts/lib/component/helper/RoamController.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/brushHelper.js +0 -33
- package/lib/node_modules/echarts/lib/component/helper/brushHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/cursorHelper.js +0 -14
- package/lib/node_modules/echarts/lib/component/helper/cursorHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js +0 -31
- package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/listComponent.js +0 -37
- package/lib/node_modules/echarts/lib/component/helper/listComponent.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/roamHelper.js +0 -29
- package/lib/node_modules/echarts/lib/component/helper/roamHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/helper/sliderMove.js +0 -48
- package/lib/node_modules/echarts/lib/component/helper/sliderMove.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/LegendModel.js +0 -256
- package/lib/node_modules/echarts/lib/component/legend/LegendModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/LegendView.js +0 -402
- package/lib/node_modules/echarts/lib/component/legend/LegendView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +0 -61
- package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +0 -312
- package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/install.js +0 -11
- package/lib/node_modules/echarts/lib/component/legend/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js +0 -17
- package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js +0 -15
- package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/legendAction.js +0 -46
- package/lib/node_modules/echarts/lib/component/legend/legendAction.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/legendFilter.js +0 -19
- package/lib/node_modules/echarts/lib/component/legend/legendFilter.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +0 -16
- package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/title/install.js +0 -184
- package/lib/node_modules/echarts/lib/component/title/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +0 -72
- package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js +0 -224
- package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js +0 -369
- package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +0 -206
- package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +0 -163
- package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js +0 -42
- package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +0 -97
- package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/featureManager.js +0 -21
- package/lib/node_modules/echarts/lib/component/toolbox/featureManager.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/toolbox/install.js +0 -24
- package/lib/node_modules/echarts/lib/component/toolbox/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +0 -291
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js +0 -88
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +0 -153
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js +0 -684
- package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/helper.js +0 -40
- package/lib/node_modules/echarts/lib/component/tooltip/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/install.js +0 -24
- package/lib/node_modules/echarts/lib/component/tooltip/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +0 -95
- package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +0 -245
- package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +0 -178
- package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js +0 -590
- package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +0 -335
- package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +0 -172
- package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +0 -269
- package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js +0 -103
- package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/helper.js +0 -40
- package/lib/node_modules/echarts/lib/component/visualMap/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/install.js +0 -11
- package/lib/node_modules/echarts/lib/component/visualMap/install.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js +0 -23
- package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +0 -12
- package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +0 -12
- package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js +0 -37
- package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js +0 -66
- package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +0 -1
- package/lib/node_modules/echarts/lib/component/visualMap/visualMapAction.js +0 -19
- package/lib/node_modules/echarts/lib/component/visualMap/visualMapAction.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/Axis.js +0 -176
- package/lib/node_modules/echarts/lib/coord/Axis.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/CoordinateSystem.js +0 -7
- package/lib/node_modules/echarts/lib/coord/CoordinateSystem.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/View.js +0 -166
- package/lib/node_modules/echarts/lib/coord/View.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js +0 -87
- package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisCommonTypes.js +0 -10
- package/lib/node_modules/echarts/lib/coord/axisCommonTypes.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisDefault.js +0 -163
- package/lib/node_modules/echarts/lib/coord/axisDefault.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisHelper.js +0 -233
- package/lib/node_modules/echarts/lib/coord/axisHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisModelCommonMixin.js +0 -19
- package/lib/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisModelCreator.js +0 -63
- package/lib/node_modules/echarts/lib/coord/axisModelCreator.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +0 -225
- package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js +0 -42
- package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js +0 -25
- package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js +0 -37
- package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +0 -116
- package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js +0 -384
- package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js +0 -36
- package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +0 -73
- package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/Geo.js +0 -151
- package/lib/node_modules/echarts/lib/coord/geo/Geo.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +0 -93
- package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js +0 -164
- package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +0 -174
- package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/Region.js +0 -237
- package/lib/node_modules/echarts/lib/coord/geo/Region.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +0 -13
- package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js +0 -32
- package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js +0 -24
- package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js +0 -177
- package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js +0 -76
- package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js +0 -95
- package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +0 -1
- package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +0 -140
- package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/CoordinateSystem.js +0 -38
- package/lib/node_modules/echarts/lib/core/CoordinateSystem.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/ExtensionAPI.js +0 -37
- package/lib/node_modules/echarts/lib/core/ExtensionAPI.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/Scheduler.js +0 -358
- package/lib/node_modules/echarts/lib/core/Scheduler.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/echarts.js +0 -1783
- package/lib/node_modules/echarts/lib/core/echarts.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/impl.js +0 -23
- package/lib/node_modules/echarts/lib/core/impl.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/lifecycle.js +0 -7
- package/lib/node_modules/echarts/lib/core/lifecycle.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/locale.js +0 -50
- package/lib/node_modules/echarts/lib/core/locale.js.map +0 -1
- package/lib/node_modules/echarts/lib/core/task.js +0 -184
- package/lib/node_modules/echarts/lib/core/task.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/DataDiffer.js +0 -155
- package/lib/node_modules/echarts/lib/data/DataDiffer.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/DataStore.js +0 -788
- package/lib/node_modules/echarts/lib/data/DataStore.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/OrdinalMeta.js +0 -67
- package/lib/node_modules/echarts/lib/data/OrdinalMeta.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/SeriesData.js +0 -666
- package/lib/node_modules/echarts/lib/data/SeriesData.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js +0 -18
- package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/Source.js +0 -220
- package/lib/node_modules/echarts/lib/data/Source.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +0 -145
- package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/createDimensions.js +0 -213
- package/lib/node_modules/echarts/lib/data/helper/createDimensions.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/dataProvider.js +0 -257
- package/lib/node_modules/echarts/lib/data/helper/dataProvider.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js +0 -108
- package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js +0 -65
- package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js +0 -104
- package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js +0 -243
- package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/sourceManager.js +0 -236
- package/lib/node_modules/echarts/lib/data/helper/sourceManager.js.map +0 -1
- package/lib/node_modules/echarts/lib/data/helper/transform.js +0 -296
- package/lib/node_modules/echarts/lib/data/helper/transform.js.map +0 -1
- package/lib/node_modules/echarts/lib/extension.js +0 -70
- package/lib/node_modules/echarts/lib/extension.js.map +0 -1
- package/lib/node_modules/echarts/lib/i18n/langEN.js +0 -113
- package/lib/node_modules/echarts/lib/i18n/langEN.js.map +0 -1
- package/lib/node_modules/echarts/lib/i18n/langZH.js +0 -113
- package/lib/node_modules/echarts/lib/i18n/langZH.js.map +0 -1
- package/lib/node_modules/echarts/lib/label/labelGuideHelper.js +0 -218
- package/lib/node_modules/echarts/lib/label/labelGuideHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js +0 -222
- package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/label/labelStyle.js +0 -352
- package/lib/node_modules/echarts/lib/label/labelStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/label/sectorLabel.js +0 -153
- package/lib/node_modules/echarts/lib/label/sectorLabel.js.map +0 -1
- package/lib/node_modules/echarts/lib/layout/barGrid.js +0 -368
- package/lib/node_modules/echarts/lib/layout/barGrid.js.map +0 -1
- package/lib/node_modules/echarts/lib/layout/points.js +0 -63
- package/lib/node_modules/echarts/lib/layout/points.js.map +0 -1
- package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js +0 -76
- package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js.map +0 -1
- package/lib/node_modules/echarts/lib/loading/default.js +0 -109
- package/lib/node_modules/echarts/lib/loading/default.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/Component.js +0 -120
- package/lib/node_modules/echarts/lib/model/Component.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/Global.js +0 -572
- package/lib/node_modules/echarts/lib/model/Global.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/Model.js +0 -104
- package/lib/node_modules/echarts/lib/model/Model.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/OptionManager.js +0 -191
- package/lib/node_modules/echarts/lib/model/OptionManager.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/Series.js +0 -380
- package/lib/node_modules/echarts/lib/model/Series.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/globalDefault.js +0 -90
- package/lib/node_modules/echarts/lib/model/globalDefault.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/internalComponentCreator.js +0 -28
- package/lib/node_modules/echarts/lib/model/internalComponentCreator.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js +0 -28
- package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js +0 -119
- package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js +0 -35
- package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js +0 -34
- package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +0 -27
- package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/palette.js +0 -56
- package/lib/node_modules/echarts/lib/model/mixin/palette.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/mixin/textStyle.js +0 -42
- package/lib/node_modules/echarts/lib/model/mixin/textStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/model/referHelper.js +0 -112
- package/lib/node_modules/echarts/lib/model/referHelper.js.map +0 -1
- package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js +0 -213
- package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +0 -1
- package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +0 -269
- package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +0 -1
- package/lib/node_modules/echarts/lib/processor/dataFilter.js +0 -27
- package/lib/node_modules/echarts/lib/processor/dataFilter.js.map +0 -1
- package/lib/node_modules/echarts/lib/processor/dataSample.js +0 -82
- package/lib/node_modules/echarts/lib/processor/dataSample.js.map +0 -1
- package/lib/node_modules/echarts/lib/processor/dataStack.js +0 -74
- package/lib/node_modules/echarts/lib/processor/dataStack.js.map +0 -1
- package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js +0 -21
- package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js.map +0 -1
- package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js +0 -8
- package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/Interval.js +0 -193
- package/lib/node_modules/echarts/lib/scale/Interval.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/Log.js +0 -122
- package/lib/node_modules/echarts/lib/scale/Log.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/Ordinal.js +0 -126
- package/lib/node_modules/echarts/lib/scale/Ordinal.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/Scale.js +0 -49
- package/lib/node_modules/echarts/lib/scale/Scale.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/Time.js +0 -380
- package/lib/node_modules/echarts/lib/scale/Time.js.map +0 -1
- package/lib/node_modules/echarts/lib/scale/helper.js +0 -77
- package/lib/node_modules/echarts/lib/scale/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/theme/dark.js +0 -183
- package/lib/node_modules/echarts/lib/theme/dark.js.map +0 -1
- package/lib/node_modules/echarts/lib/theme/light.js +0 -9
- package/lib/node_modules/echarts/lib/theme/light.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/ECEventProcessor.js +0 -80
- package/lib/node_modules/echarts/lib/util/ECEventProcessor.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/clazz.js +0 -165
- package/lib/node_modules/echarts/lib/util/clazz.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/component.js +0 -117
- package/lib/node_modules/echarts/lib/util/component.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/decal.js +0 -292
- package/lib/node_modules/echarts/lib/util/decal.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/event.js +0 -17
- package/lib/node_modules/echarts/lib/util/event.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/format.js +0 -140
- package/lib/node_modules/echarts/lib/util/format.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/graphic.js +0 -375
- package/lib/node_modules/echarts/lib/util/graphic.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/innerStore.js +0 -23
- package/lib/node_modules/echarts/lib/util/innerStore.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/layout.js +0 -249
- package/lib/node_modules/echarts/lib/util/layout.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/log.js +0 -81
- package/lib/node_modules/echarts/lib/util/log.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/model.js +0 -464
- package/lib/node_modules/echarts/lib/util/model.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/number.js +0 -306
- package/lib/node_modules/echarts/lib/util/number.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/shape/sausage.js +0 -69
- package/lib/node_modules/echarts/lib/util/shape/sausage.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/states.js +0 -598
- package/lib/node_modules/echarts/lib/util/states.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/styleCompat.js +0 -78
- package/lib/node_modules/echarts/lib/util/styleCompat.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/symbol.js +0 -267
- package/lib/node_modules/echarts/lib/util/symbol.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/throttle.js +0 -85
- package/lib/node_modules/echarts/lib/util/throttle.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/time.js +0 -253
- package/lib/node_modules/echarts/lib/util/time.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/types.js +0 -22
- package/lib/node_modules/echarts/lib/util/types.js.map +0 -1
- package/lib/node_modules/echarts/lib/util/vendor.js +0 -13
- package/lib/node_modules/echarts/lib/util/vendor.js.map +0 -1
- package/lib/node_modules/echarts/lib/view/Chart.js +0 -139
- package/lib/node_modules/echarts/lib/view/Chart.js.map +0 -1
- package/lib/node_modules/echarts/lib/view/Component.js +0 -40
- package/lib/node_modules/echarts/lib/view/Component.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js +0 -31
- package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/VisualMapping.js +0 -369
- package/lib/node_modules/echarts/lib/visual/VisualMapping.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/decal.js +0 -27
- package/lib/node_modules/echarts/lib/visual/decal.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/helper.js +0 -61
- package/lib/node_modules/echarts/lib/visual/helper.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/style.js +0 -160
- package/lib/node_modules/echarts/lib/visual/style.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/symbol.js +0 -82
- package/lib/node_modules/echarts/lib/visual/symbol.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/visualDefault.js +0 -49
- package/lib/node_modules/echarts/lib/visual/visualDefault.js.map +0 -1
- package/lib/node_modules/echarts/lib/visual/visualSolution.js +0 -101
- package/lib/node_modules/echarts/lib/visual/visualSolution.js.map +0 -1
- package/lib/node_modules/echarts/node_modules/tslib/tslib.es6.js +0 -37
- package/lib/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +0 -1
- package/lib/node_modules/zrender/lib/Element.js +0 -994
- package/lib/node_modules/zrender/lib/Element.js.map +0 -1
- package/lib/node_modules/zrender/lib/Handler.js +0 -257
- package/lib/node_modules/zrender/lib/Handler.js.map +0 -1
- package/lib/node_modules/zrender/lib/Storage.js +0 -158
- package/lib/node_modules/zrender/lib/Storage.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/Animation.js +0 -148
- package/lib/node_modules/zrender/lib/animation/Animation.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/Animator.js +0 -702
- package/lib/node_modules/zrender/lib/animation/Animator.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/Clip.js +0 -65
- package/lib/node_modules/zrender/lib/animation/Clip.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/cubicEasing.js +0 -24
- package/lib/node_modules/zrender/lib/animation/cubicEasing.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/easing.js +0 -189
- package/lib/node_modules/zrender/lib/animation/easing.js.map +0 -1
- package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js +0 -10
- package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +0 -1
- package/lib/node_modules/zrender/lib/canvas/Layer.js +0 -283
- package/lib/node_modules/zrender/lib/canvas/Layer.js.map +0 -1
- package/lib/node_modules/zrender/lib/canvas/Painter.js +0 -618
- package/lib/node_modules/zrender/lib/canvas/Painter.js.map +0 -1
- package/lib/node_modules/zrender/lib/canvas/dashStyle.js +0 -27
- package/lib/node_modules/zrender/lib/canvas/dashStyle.js.map +0 -1
- package/lib/node_modules/zrender/lib/canvas/graphic.js +0 -522
- package/lib/node_modules/zrender/lib/canvas/graphic.js.map +0 -1
- package/lib/node_modules/zrender/lib/canvas/helper.js +0 -83
- package/lib/node_modules/zrender/lib/canvas/helper.js.map +0 -1
- package/lib/node_modules/zrender/lib/config.js +0 -18
- package/lib/node_modules/zrender/lib/config.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/arc.js +0 -37
- package/lib/node_modules/zrender/lib/contain/arc.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/cubic.js +0 -16
- package/lib/node_modules/zrender/lib/contain/cubic.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/line.js +0 -24
- package/lib/node_modules/zrender/lib/contain/line.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/path.js +0 -290
- package/lib/node_modules/zrender/lib/contain/path.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/polygon.js +0 -26
- package/lib/node_modules/zrender/lib/contain/polygon.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/quadratic.js +0 -16
- package/lib/node_modules/zrender/lib/contain/quadratic.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/text.js +0 -174
- package/lib/node_modules/zrender/lib/contain/text.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/util.js +0 -12
- package/lib/node_modules/zrender/lib/contain/util.js.map +0 -1
- package/lib/node_modules/zrender/lib/contain/windingLine.js +0 -19
- package/lib/node_modules/zrender/lib/contain/windingLine.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/BoundingRect.js +0 -205
- package/lib/node_modules/zrender/lib/core/BoundingRect.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/Eventful.js +0 -155
- package/lib/node_modules/zrender/lib/core/Eventful.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/GestureMgr.js +0 -82
- package/lib/node_modules/zrender/lib/core/GestureMgr.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/LRU.js +0 -110
- package/lib/node_modules/zrender/lib/core/LRU.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js +0 -121
- package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/PathProxy.js +0 -697
- package/lib/node_modules/zrender/lib/core/PathProxy.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/Point.js +0 -133
- package/lib/node_modules/zrender/lib/core/Point.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/Transformable.js +0 -233
- package/lib/node_modules/zrender/lib/core/Transformable.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/WeakMap.js +0 -45
- package/lib/node_modules/zrender/lib/core/WeakMap.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/bbox.js +0 -109
- package/lib/node_modules/zrender/lib/core/bbox.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/curve.js +0 -345
- package/lib/node_modules/zrender/lib/core/curve.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/dom.js +0 -79
- package/lib/node_modules/zrender/lib/core/dom.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/env.js +0 -73
- package/lib/node_modules/zrender/lib/core/env.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/event.js +0 -101
- package/lib/node_modules/zrender/lib/core/event.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/fourPointsTransform.js +0 -60
- package/lib/node_modules/zrender/lib/core/fourPointsTransform.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/matrix.js +0 -104
- package/lib/node_modules/zrender/lib/core/matrix.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/platform.js +0 -70
- package/lib/node_modules/zrender/lib/core/platform.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/timsort.js +0 -512
- package/lib/node_modules/zrender/lib/core/timsort.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/util.js +0 -508
- package/lib/node_modules/zrender/lib/core/util.js.map +0 -1
- package/lib/node_modules/zrender/lib/core/vector.js +0 -99
- package/lib/node_modules/zrender/lib/core/vector.js.map +0 -1
- package/lib/node_modules/zrender/lib/dom/HandlerProxy.js +0 -302
- package/lib/node_modules/zrender/lib/dom/HandlerProxy.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/CompoundPath.js +0 -53
- package/lib/node_modules/zrender/lib/graphic/CompoundPath.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Displayable.js +0 -316
- package/lib/node_modules/zrender/lib/graphic/Displayable.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Gradient.js +0 -17
- package/lib/node_modules/zrender/lib/graphic/Gradient.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Group.js +0 -181
- package/lib/node_modules/zrender/lib/graphic/Group.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Image.js +0 -75
- package/lib/node_modules/zrender/lib/graphic/Image.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +0 -115
- package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/LinearGradient.js +0 -21
- package/lib/node_modules/zrender/lib/graphic/LinearGradient.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Path.js +0 -395
- package/lib/node_modules/zrender/lib/graphic/Path.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/RadialGradient.js +0 -20
- package/lib/node_modules/zrender/lib/graphic/RadialGradient.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/TSpan.js +0 -68
- package/lib/node_modules/zrender/lib/graphic/TSpan.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/Text.js +0 -506
- package/lib/node_modules/zrender/lib/graphic/Text.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/constants.js +0 -9
- package/lib/node_modules/zrender/lib/graphic/constants.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/image.js +0 -56
- package/lib/node_modules/zrender/lib/graphic/helper/image.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/parseText.js +0 -447
- package/lib/node_modules/zrender/lib/graphic/helper/parseText.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/poly.js +0 -28
- package/lib/node_modules/zrender/lib/graphic/helper/poly.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/roundRect.js +0 -74
- package/lib/node_modules/zrender/lib/graphic/helper/roundRect.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js +0 -219
- package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js +0 -65
- package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js +0 -60
- package/lib/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Arc.js +0 -48
- package/lib/node_modules/zrender/lib/graphic/shape/Arc.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js +0 -100
- package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Circle.js +0 -31
- package/lib/node_modules/zrender/lib/graphic/shape/Circle.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js +0 -43
- package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Line.js +0 -72
- package/lib/node_modules/zrender/lib/graphic/shape/Line.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js +0 -31
- package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js +0 -38
- package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Rect.js +0 -59
- package/lib/node_modules/zrender/lib/graphic/shape/Rect.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Ring.js +0 -37
- package/lib/node_modules/zrender/lib/graphic/shape/Ring.js.map +0 -1
- package/lib/node_modules/zrender/lib/graphic/shape/Sector.js +0 -39
- package/lib/node_modules/zrender/lib/graphic/shape/Sector.js.map +0 -1
- package/lib/node_modules/zrender/lib/mixin/Draggable.js +0 -70
- package/lib/node_modules/zrender/lib/mixin/Draggable.js.map +0 -1
- package/lib/node_modules/zrender/lib/svg/helper.js +0 -31
- package/lib/node_modules/zrender/lib/svg/helper.js.map +0 -1
- package/lib/node_modules/zrender/lib/tool/color.js +0 -459
- package/lib/node_modules/zrender/lib/tool/color.js.map +0 -1
- package/lib/node_modules/zrender/lib/tool/parseSVG.js +0 -633
- package/lib/node_modules/zrender/lib/tool/parseSVG.js.map +0 -1
- package/lib/node_modules/zrender/lib/tool/parseXML.js +0 -19
- package/lib/node_modules/zrender/lib/tool/parseXML.js.map +0 -1
- package/lib/node_modules/zrender/lib/tool/path.js +0 -339
- package/lib/node_modules/zrender/lib/tool/path.js.map +0 -1
- package/lib/node_modules/zrender/lib/tool/transformPath.js +0 -85
- package/lib/node_modules/zrender/lib/tool/transformPath.js.map +0 -1
- package/lib/node_modules/zrender/lib/zrender.js +0 -238
- package/lib/node_modules/zrender/lib/zrender.js.map +0 -1
- package/lib/node_modules/zrender/node_modules/tslib/tslib.es6.js +0 -37
- package/lib/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +0 -1
- package/lib/setting/page-config/PageConfig.vue.js +0 -24
- package/lib/setting/page-config/PageConfig.vue.js.map +0 -1
- package/lib/setting/page-config/PageConfig.vue2.js +0 -109
- package/lib/setting/page-config/PageConfig.vue2.js.map +0 -1
- package/lib/setting/page-config/PageConfig.vue3.js +0 -5
- package/lib/setting/page-config/PageConfig.vue3.js.map +0 -1
- package/lib/setting/page-config/index.js +0 -11
- package/lib/setting/page-config/index.js.map +0 -1
- package/lib/setting/page-config/props.js +0 -16
- package/lib/setting/page-config/props.js.map +0 -1
- package/lib/setting/provider-config/ProviderConfig.vue.js +0 -17
- package/lib/setting/provider-config/ProviderConfig.vue.js.map +0 -1
- package/lib/setting/provider-config/ProviderConfig.vue2.js +0 -177
- package/lib/setting/provider-config/ProviderConfig.vue2.js.map +0 -1
- package/lib/setting/provider-config/index.js +0 -11
- package/lib/setting/provider-config/index.js.map +0 -1
- package/lib/setting/provider-config/props.js +0 -13
- package/lib/setting/provider-config/props.js.map +0 -1
- package/lib/style.css +0 -11218
- package/lib/table/table/Table.vue.js +0 -164
- package/lib/table/table/Table.vue.js.map +0 -1
- package/lib/table/table/Table.vue2.js +0 -547
- package/lib/table/table/Table.vue2.js.map +0 -1
- package/lib/table/table/Table.vue3.js +0 -5
- package/lib/table/table/Table.vue3.js.map +0 -1
- package/lib/table/table/Table.vue4.js +0 -5
- package/lib/table/table/Table.vue4.js.map +0 -1
- package/lib/table/table/index.js +0 -12
- package/lib/table/table/index.js.map +0 -1
- package/lib/table/table/props.js +0 -78
- package/lib/table/table/props.js.map +0 -1
- package/lib/text/list/List.vue.js +0 -112
- package/lib/text/list/List.vue.js.map +0 -1
- package/lib/text/list/List.vue2.js +0 -107
- package/lib/text/list/List.vue2.js.map +0 -1
- package/lib/text/list/List.vue3.js +0 -5
- package/lib/text/list/List.vue3.js.map +0 -1
- package/lib/text/list/List.vue4.js +0 -5
- package/lib/text/list/List.vue4.js.map +0 -1
- package/lib/text/list/index.js +0 -12
- package/lib/text/list/index.js.map +0 -1
- package/lib/text/list/props.js +0 -43
- package/lib/text/list/props.js.map +0 -1
- package/lib/text/proportion/Proportion.vue.js +0 -48
- package/lib/text/proportion/Proportion.vue.js.map +0 -1
- package/lib/text/proportion/Proportion.vue2.js +0 -163
- package/lib/text/proportion/Proportion.vue2.js.map +0 -1
- package/lib/text/proportion/Proportion.vue3.js +0 -5
- package/lib/text/proportion/Proportion.vue3.js.map +0 -1
- package/lib/text/proportion/index.js +0 -12
- package/lib/text/proportion/index.js.map +0 -1
- package/lib/text/proportion/props.js +0 -33
- package/lib/text/proportion/props.js.map +0 -1
- package/lib/text/scroll-text/ScrollText.vue.js +0 -13
- package/lib/text/scroll-text/ScrollText.vue.js.map +0 -1
- package/lib/text/scroll-text/ScrollText.vue2.js +0 -14
- package/lib/text/scroll-text/ScrollText.vue2.js.map +0 -1
- package/lib/text/scroll-text/ScrollText.vue3.js +0 -5
- package/lib/text/scroll-text/ScrollText.vue3.js.map +0 -1
- package/lib/text/scroll-text/index.js +0 -8
- package/lib/text/scroll-text/index.js.map +0 -1
- package/lib/text/text/Text.vue.js +0 -26
- package/lib/text/text/Text.vue.js.map +0 -1
- package/lib/text/text/Text.vue2.js +0 -153
- package/lib/text/text/Text.vue2.js.map +0 -1
- package/lib/text/text/Text.vue3.js +0 -5
- package/lib/text/text/Text.vue3.js.map +0 -1
- package/lib/text/text/index.js +0 -12
- package/lib/text/text/index.js.map +0 -1
- package/lib/text/text/props.js +0 -33
- package/lib/text/text/props.js.map +0 -1
- package/lib/text/time-display/TimeDisplay.vue.js +0 -15
- package/lib/text/time-display/TimeDisplay.vue.js.map +0 -1
- package/lib/text/time-display/TimeDisplay.vue2.js +0 -46
- package/lib/text/time-display/TimeDisplay.vue2.js.map +0 -1
- package/lib/text/time-display/TimeDisplay.vue3.js +0 -5
- package/lib/text/time-display/TimeDisplay.vue3.js.map +0 -1
- package/lib/text/time-display/index.js +0 -11
- package/lib/text/time-display/index.js.map +0 -1
- package/lib/text/time-display/props.js +0 -23
- package/lib/text/time-display/props.js.map +0 -1
- package/lib/utils/constant.js +0 -23
- package/lib/utils/constant.js.map +0 -1
- package/lib/utils/props.js +0 -40
- package/lib/utils/props.js.map +0 -1
- package/lib/utils/request.js +0 -47
- package/lib/utils/request.js.map +0 -1
- package/lib/utils/util.js +0 -31
- package/lib/utils/util.js.map +0 -1
- package/lib/utils/withInstall.js +0 -19
- package/lib/utils/withInstall.js.map +0 -1
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/common/echarts/composables/api.ts","../src/common/echarts/composables/autoresize.ts","../src/common/echarts/composables/loading.ts","../src/common/echarts/utils.ts","../src/common/echarts/Echarts.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-vue/es/insert-css.js","../node_modules/@ant-design/icons-vue/es/utils.js","../node_modules/@ant-design/icons-vue/es/components/IconBase.js","../node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons-vue/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../src/common/spin/Spin.vue","../src/common/skeleton/Skeleton.vue","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../src/utils/withInstall.ts","../src/utils/props.ts","../src/setting/page-config/props.ts","../src/hooks/usePickComponentStyle.ts","../src/utils/constant.ts","../src/hooks/useOnEvent.ts","../src/hooks/useEmitEvent.ts","../src/hooks/useTransformChartDataByAttrValue.ts","../src/utils/util.ts","../src/hooks/useVariablesInText.ts","../src/hooks/useRequestData.ts","../src/hooks/useTransformChartDataByAttrKey.ts","../src/hooks/useImagePath.ts","../src/hooks/usePageUrl.ts","../src/utils/request.ts","../src/hooks/useRequestDiagramData.ts","../src/hooks/useValueFormatter.ts","../src/hooks/useIndicatorData.ts","../src/hooks/useHrefParamsToGlobalVariables.ts","../src/setting/page-config/PageConfig.vue","../src/setting/page-config/index.ts","../src/setting/provider-config/props.ts","../src/setting/provider-config/ProviderConfig.vue","../src/setting/provider-config/index.ts","../src/text/text/props.ts","../src/assets/go-up.png","../src/assets/go-down.png","../src/text/text/Text.vue","../src/text/text/index.ts","../src/text/scroll-text/ScrollText.vue","../src/text/scroll-text/index.ts","../src/text/time-display/props.ts","../src/text/time-display/TimeDisplay.vue","../src/text/time-display/index.ts","../src/text/list/props.ts","../src/text/list/List.vue","../src/text/list/index.ts","../src/text/proportion/props.ts","../src/text/proportion/Proportion.vue","../src/text/proportion/index.ts","../src/control/input/props.ts","../src/control/input/Input.vue","../src/control/input/index.ts","../src/control/date-picker/props.ts","../src/control/date-picker/DatePicker.vue","../src/control/date-picker/index.ts","../src/control/select/props.ts","../src/control/select/Select.vue","../src/control/select/index.ts","../src/control/range-picker/props.ts","../src/control/range-picker/RangePicker.vue","../src/control/range-picker/index.ts","../src/control/button/props.ts","../src/control/button/Button.vue","../src/control/button/index.ts","../src/control/checkbox/props.ts","../src/control/checkbox/Checkbox.vue","../src/control/checkbox/index.ts","../src/graph/pie/props.ts","../src/hooks/useDownloadFile.ts","../src/graph/pie/Pie.vue","../src/graph/pie/index.ts","../src/graph/line/props.ts","../src/graph/line/Line.vue","../src/graph/line/index.ts","../src/graph/bar/props.ts","../src/graph/bar/Bar.vue","../src/graph/bar/index.ts","../src/graph/scatter/props.ts","../src/graph/scatter/Scatter.vue","../src/graph/scatter/index.ts","../src/graph/custom-graph/props.ts","../src/graph/custom-graph/CustomGraph.vue","../src/graph/custom-graph/index.ts","../src/graph/combo-graph/props.ts","../src/graph/combo-graph/ComboGraph.vue","../src/graph/combo-graph/index.ts","../src/container/border/props.ts","../src/container/border/Border.vue","../src/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/index.ts","../src/container/modal/props.ts","../src/container/modal/Modal.vue","../src/container/modal/index.ts","../src/container/tabs/props.ts","../src/container/tabs/Tabs.vue","../src/container/tabs/index.ts","../src/media/image/props.ts","../src/media/image/Image.vue","../src/media/image/index.ts","../src/media/iframe/props.ts","../src/media/iframe/Iframe.vue","../src/media/iframe/index.ts","../src/table/table/props.ts","../src/table/table/Table.vue","../src/table/table/index.ts","../src/map/map/props.ts","../src/map/map/Map.vue","../src/map/map/index.ts","../src/index.ts"],"sourcesContent":["import { Ref } from 'vue'\nimport { EChartsType, Option } from '../types'\n\nconst METHOD_NAMES = [\n 'getWidth',\n 'getHeight',\n 'getDom',\n 'getOption',\n 'resize',\n 'dispatchAction',\n 'convertToPixel',\n 'convertFromPixel',\n 'containPixel',\n 'getDataURL',\n 'getConnectedDataURL',\n 'appendData',\n 'clear',\n 'isDisposed',\n 'dispose'\n] as const\ntype MethodName = typeof METHOD_NAMES[number];\n\ntype PublicMethods = Pick<EChartsType, MethodName>;\n\nexport function usePublicAPI (\n chart: Ref<EChartsType | undefined>,\n init: (option?: Option) => void\n): PublicMethods {\n function makePublicMethod<T extends MethodName> (\n name: T\n ): (...args: Parameters<EChartsType[T]>) => ReturnType<EChartsType[T]> {\n return (...args) => {\n if (!chart.value) {\n init()\n }\n\n if (!chart.value) {\n throw new Error('ECharts is not initialized yet.')\n }\n return (chart.value[name] as any).apply(chart.value, args)\n }\n }\n\n function makePublicMethods (): PublicMethods {\n const methods = Object.create(null)\n METHOD_NAMES.forEach(name => {\n methods[name] = makePublicMethod(name)\n })\n\n return methods as PublicMethods\n }\n\n return makePublicMethods()\n}\n","import { Ref, watch } from 'vue'\nimport { throttle } from 'echarts/core'\nimport { addListener, removeListener, ResizeCallback } from 'resize-detector'\nimport { EChartsType } from '../types'\n\nexport function useAutoresize (\n chart: Ref<EChartsType | undefined>,\n autoresize: Ref<boolean>,\n root: Ref<HTMLElement | undefined>\n): void {\n let resizeListener: ResizeCallback | null = null\n\n watch([root, chart, autoresize], ([root, chart, autoresize], _, cleanup) => {\n if (root && chart && autoresize) {\n resizeListener = throttle(() => {\n chart.resize()\n }, 100)\n\n addListener(root, resizeListener)\n }\n\n cleanup(() => {\n if (resizeListener && root) {\n removeListener(root, resizeListener)\n }\n })\n })\n}\n\nexport const autoresizeProps = {\n autoresize: Boolean\n}\n","import { inject, unref, computed, Ref, watchEffect } from 'vue'\nimport { EChartsType } from '../types'\n\nexport const LOADING_OPTIONS_KEY = 'ecLoadingOptions'\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport function useLoading (\n chart: Ref<EChartsType | undefined>,\n loading: Ref<boolean>,\n loadingOptions: Ref<UnknownRecord | undefined>\n): void {\n const defaultLoadingOptions = inject(LOADING_OPTIONS_KEY, {}) as\n | UnknownRecord\n | Ref<UnknownRecord>\n const realLoadingOptions = computed(() => ({\n ...unref(defaultLoadingOptions),\n ...loadingOptions?.value\n }))\n\n watchEffect(() => {\n const instance = chart.value\n if (!instance) {\n return\n }\n\n if (loading.value) {\n instance.showLoading(realLoadingOptions.value)\n } else {\n instance.hideLoading()\n }\n })\n}\n\nexport const loadingProps = {\n loading: Boolean,\n loadingOptions: Object\n}\n","type Attrs = {\n [key: string]: any\n}\n\n// Copied from\n// https://github.com/vuejs/vue-next/blob/5a7a1b8293822219283d6e267496bec02234b0bc/packages/shared/src/index.ts#L40-L41\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string): boolean => onRE.test(key)\n\nexport function omitOn (attrs: Attrs): Attrs {\n const result: Attrs = {}\n for (const key in attrs) {\n if (!isOn(key)) {\n result[key] = attrs[key]\n }\n }\n\n return result\n}\n","// 此组件为 vue-echarts\n// 文档:https://github.com/ecomfe/vue-echarts/blob/main/README.zh-Hans.md\nimport {\n defineComponent,\n unref,\n shallowRef,\n toRefs,\n watch,\n computed,\n inject,\n onMounted,\n onUnmounted,\n h,\n nextTick,\n PropType,\n watchEffect\n} from 'vue'\nimport { init as initChart } from 'echarts/core'\nimport {\n EChartsType,\n Option,\n Theme,\n ThemeInjection,\n InitOptions,\n InitOptionsInjection,\n UpdateOptions,\n UpdateOptionsInjection\n} from './types'\nimport {\n usePublicAPI,\n useAutoresize,\n autoresizeProps,\n useLoading,\n loadingProps\n} from './composables'\nimport './style.css'\nimport { omitOn } from './utils'\n\nconst TAG_NAME = 'x-vue-echarts'\nexport const THEME_KEY = 'ecTheme'\nexport const INIT_OPTIONS_KEY = 'ecInitOptions'\nexport const UPDATE_OPTIONS_KEY = 'ecUpdateOptions'\nexport { LOADING_OPTIONS_KEY } from './composables'\n\n// @ts-ignore\nexport default defineComponent({\n name: 'echarts',\n props: {\n option: Object as PropType<Option>,\n theme: {\n type: [Object, String] as PropType<Theme>\n },\n initOptions: Object as PropType<InitOptions>,\n updateOptions: Object as PropType<UpdateOptions>,\n group: String,\n manualUpdate: Boolean,\n ...autoresizeProps,\n ...loadingProps\n },\n inheritAttrs: false,\n // @ts-expect-error listeners for Vue 2 compatibility\n setup (props, { attrs, listeners }) {\n const root = shallowRef<HTMLElement>()\n const chart = shallowRef<EChartsType>()\n const manualOption = shallowRef<Option>()\n const defaultTheme = inject(THEME_KEY, null) as ThemeInjection\n const defaultInitOptions = inject(\n INIT_OPTIONS_KEY,\n null\n ) as InitOptionsInjection\n const defaultUpdateOptions = inject(\n UPDATE_OPTIONS_KEY,\n null\n ) as UpdateOptionsInjection\n\n const { autoresize, manualUpdate, loading, loadingOptions } = toRefs(props)\n\n const realOption = computed(\n () => manualOption.value || props.option || Object.create(null)\n )\n const realTheme = computed(() => props.theme || unref(defaultTheme) || {})\n const realInitOptions = computed(\n () => props.initOptions || unref(defaultInitOptions) || {}\n )\n const realUpdateOptions = computed(\n () => props.updateOptions || unref(defaultUpdateOptions) || {}\n )\n const nonEventAttrs = computed(() => omitOn(attrs))\n\n function init (option?: Option) {\n if (chart.value || !root.value) {\n return\n }\n\n const instance = (chart.value = initChart(\n root.value,\n realTheme.value,\n realInitOptions.value\n ))\n\n if (props.group) {\n instance.group = props.group\n }\n\n let realListeners = listeners\n if (!realListeners) {\n realListeners = {}\n\n Object.keys(attrs)\n .filter(key => key.indexOf('on') === 0 && key.length > 2)\n .forEach(key => {\n // onClick -> c + lick\n // onZr:click -> z + r:click\n const event = key.charAt(2).toLowerCase() + key.slice(3)\n realListeners[event] = attrs[key]\n })\n }\n\n Object.keys(realListeners).forEach(key => {\n const handler = realListeners[key] as any\n\n if (!handler) {\n return\n }\n\n if (key.indexOf('zr:') === 0) {\n instance.getZr().on(key.slice(3).toLowerCase(), handler)\n } else {\n instance.on(key.toLowerCase(), handler)\n }\n })\n\n function resize () {\n if (instance && !instance.isDisposed()) {\n // temporarily suppress errors caused by https://github.com/apache/echarts/issues/14846\n try {\n instance.resize()\n } catch (e) {\n if (e.message === \"Cannot read property 'get' of undefined\") {\n return\n }\n\n throw e\n }\n }\n }\n\n function commit () {\n instance.setOption(option || realOption.value, realUpdateOptions.value)\n }\n\n if (autoresize.value) {\n // Try to make chart fit to container in case container size\n // is changed synchronously or in already queued microtasks\n nextTick(() => {\n resize()\n commit()\n })\n } else {\n commit()\n }\n }\n\n function setOption (option: Option, updateOptions?: UpdateOptions) {\n if (props.manualUpdate) {\n manualOption.value = option\n }\n\n if (!chart.value) {\n init(option)\n } else {\n chart.value.setOption(option, updateOptions || {})\n }\n }\n\n function cleanup () {\n if (chart.value) {\n chart.value.dispose()\n chart.value = undefined\n }\n }\n\n let unwatchOption: (() => void) | null = null\n watch(\n manualUpdate,\n manualUpdate => {\n if (typeof unwatchOption === 'function') {\n unwatchOption()\n unwatchOption = null\n }\n\n if (!manualUpdate) {\n unwatchOption = watch(\n () => props.option,\n option => {\n if (!option) {\n return\n }\n if (!chart.value) {\n init()\n } else {\n chart.value.setOption(option, realUpdateOptions.value)\n }\n },\n { deep: true }\n )\n }\n },\n {\n immediate: true\n }\n )\n\n watch(\n [realTheme, realInitOptions],\n () => {\n cleanup()\n init()\n },\n {\n deep: true\n }\n )\n\n watchEffect(() => {\n if (props.group && chart.value) {\n chart.value.group = props.group\n }\n })\n\n const publicApi = usePublicAPI(chart, init)\n\n useLoading(chart, loading, loadingOptions)\n\n useAutoresize(chart, autoresize, root)\n\n onMounted(() => {\n if (props.option) {\n init()\n }\n })\n\n onUnmounted(cleanup)\n\n return {\n chart,\n root,\n setOption,\n nonEventAttrs,\n ...publicApi\n }\n },\n render () {\n const attrs = { ...this.nonEventAttrs }\n attrs.ref = 'root'\n attrs.class = attrs.class ? ['echarts'].concat(attrs.class) : 'echarts'\n return h(TAG_NAME, attrs)\n }\n})\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","// https://github.com/substack/insert-css\nvar containers = []; // will store container HTMLElement references\n\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries\n\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n } // try to get the correponding container + position styleElement, create it otherwise\n\n\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n } // strip potential UTF-8 BOM if css was read from a file\n\n\n if (css.charCodeAt(0) === 0xfeff) {\n css = css.substr(1, css.length);\n } // actually add the stylesheet\n\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css;\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n}\n\nexport default insertCss;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { nextTick, h } from 'vue';\nimport { generate as generateColor } from '@ant-design/colors';\nimport insertCss from './insert-css';\nexport function warn(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons-vue] \".concat(message));\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, _objectSpread({\n key: key\n }, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return h(node.tag, _objectSpread({\n key: key\n }, rootProps, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n nextTick(function () {\n if (!cssInjectedFlag) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n insertCss(styleStr, {\n prepend: true\n });\n }\n\n cssInjectedFlag = true;\n }\n });\n};","var _excluded = [\"icon\", \"primaryColor\", \"secondaryColor\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props, context) {\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n icon = _props$context$attrs.icon,\n primaryColor = _props$context$attrs.primaryColor,\n secondaryColor = _props$context$attrs.secondaryColor,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({}, restProps, {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n })); // },\n};\n\nIconBase.props = {\n icon: Object,\n primaryColor: String,\n secondaryColor: String,\n focusable: String\n};\nIconBase.inheritAttrs = false;\nIconBase.displayName = 'IconBase';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport VueIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","var _excluded = [\"class\", \"icon\", \"spin\", \"rotate\", \"tabindex\", \"twoToneColor\", \"onClick\"];\nimport { createVNode as _createVNode } from \"vue\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport VueIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n\nsetTwoToneColor('#1890ff');\n\nvar Icon = function Icon(props, context) {\n var _classObj;\n\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n cls = _props$context$attrs[\"class\"],\n icon = _props$context$attrs.icon,\n spin = _props$context$attrs.spin,\n rotate = _props$context$attrs.rotate,\n tabindex = _props$context$attrs.tabindex,\n twoToneColor = _props$context$attrs.twoToneColor,\n onClick = _props$context$attrs.onClick,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var classObj = (_classObj = {\n anticon: true\n }, _defineProperty(_classObj, \"anticon-\".concat(icon.name), Boolean(icon.name)), _defineProperty(_classObj, cls, cls), _classObj);\n var svgClassString = spin === '' || !!spin || icon.name === 'loading' ? 'anticon-spin' : '';\n var iconTabIndex = tabindex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n restProps.tabindex = iconTabIndex;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _createVNode(\"span\", _objectSpread({\n \"role\": \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n \"onClick\": onClick,\n \"class\": classObj\n }), [_createVNode(VueIcon, {\n \"class\": svgClassString,\n \"icon\": icon,\n \"primaryColor\": primaryColor,\n \"secondaryColor\": secondaryColor,\n \"style\": svgStyle\n }, null)]);\n};\n\nIcon.props = {\n spin: Boolean,\n rotate: Number,\n icon: Object,\n twoToneColor: String\n};\nIcon.displayName = 'AntdIcon';\nIcon.inheritAttrs = false;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","<template>\n <div class=\"spin-wrapper\">\n <a-spin\n class=\"spin\"\n :spinning=\"spinning\"\n v-if=\"spinning\"\n :indicator=\"indicator\"\n tip=\"加载中...\"\n >\n </a-spin>\n <slot v-else></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Spin as ASpin } from 'ant-design-vue'\nimport { LoadingOutlined } from '@ant-design/icons-vue'\nimport { defineComponent, h } from 'vue'\nimport 'ant-design-vue/es/spin/style'\nexport default defineComponent({\n props: {\n spinning: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASpin\n },\n setup () {\n const indicator = h(LoadingOutlined, {\n style: {\n fontSize: '24px',\n color: '#1890ff'\n },\n spin: true\n })\n return {\n indicator\n }\n }\n})\n</script>\n\n<style>\n.spin-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.spin {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n</style>\n","<template>\n <a-skeleton active :loading=\"loading\">\n <slot></slot>\n </a-skeleton>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { Skeleton as ASkeleton } from 'ant-design-vue'\nimport 'ant-design-vue/es/skeleton/style'\nexport default defineComponent({\n name: 'Skeleton',\n props: {\n loading: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASkeleton\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(',');\r\n for (let i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n [1 /* TEXT */]: `TEXT`,\r\n [2 /* CLASS */]: `CLASS`,\r\n [4 /* STYLE */]: `STYLE`,\r\n [8 /* PROPS */]: `PROPS`,\r\n [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n [-1 /* HOISTED */]: `HOISTED`,\r\n [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n [1 /* STABLE */]: 'STABLE',\r\n [2 /* DYNAMIC */]: 'DYNAMIC',\r\n [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n // Split the content into individual lines but capture the newline sequence\r\n // that separated each line. This is important because the actual sequence is\r\n // needed to properly take into account the full line length for offset\r\n // comparison\r\n let lines = source.split(/(\\r?\\n)/);\r\n // Separate the lines and newline sequences into separate arrays for easier referencing\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count +=\r\n lines[i].length +\r\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n `loop,open,required,reversed,scoped,seamless,` +\r\n `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\r\n */\r\nfunction includeBooleanAttr(value) {\r\n return !!value || value === '';\r\n}\r\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\r\nconst attrValidationCache = {};\r\nfunction isSSRSafeAttrName(name) {\r\n if (attrValidationCache.hasOwnProperty(name)) {\r\n return attrValidationCache[name];\r\n }\r\n const isUnsafe = unsafeAttrCharRE.test(name);\r\n if (isUnsafe) {\r\n console.error(`unsafe attribute name: ${name}`);\r\n }\r\n return (attrValidationCache[name] = !isUnsafe);\r\n}\r\nconst propsToAttrMap = {\r\n acceptCharset: 'accept-charset',\r\n className: 'class',\r\n htmlFor: 'for',\r\n httpEquiv: 'http-equiv'\r\n};\r\n/**\r\n * CSS properties that accept plain numbers\r\n */\r\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\r\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\r\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\r\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\r\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\r\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\r\n // SVG\r\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width`);\r\n/**\r\n * Known attributes, this is used for stringification of runtime static nodes\r\n * so that we don't stringify bindings that cannot be set from HTML.\r\n * Don't also forget to allow `data-*` and `aria-*`!\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\r\n */\r\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\r\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\r\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\r\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\r\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\r\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\r\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\r\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\r\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\r\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\r\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\r\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\r\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\r\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\r\n `value,width,wrap`);\r\n/**\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\r\n */\r\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\r\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\r\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\r\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\r\n `color-interpolation-filters,color-profile,color-rendering,` +\r\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\r\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\r\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\r\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\r\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\r\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\r\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\r\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\r\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\r\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\r\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\r\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\r\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\r\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\r\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\r\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\r\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\r\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\r\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\r\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\r\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\r\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\r\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\r\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\r\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\r\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\r\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\r\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\r\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\r\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\r\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\r\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\r\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\r\n if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item)\r\n ? parseStringStyle(item)\r\n : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n else if (isString(value)) {\r\n return value;\r\n }\r\n else if (isObject(value)) {\r\n return value;\r\n }\r\n}\r\nconst listDelimiterRE = /;(?![^(]*\\))/g;\r\nconst propertyDelimiterRE = /:(.+)/;\r\nfunction parseStringStyle(cssText) {\r\n const ret = {};\r\n cssText.split(listDelimiterRE).forEach(item => {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiterRE);\r\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return ret;\r\n}\r\nfunction stringifyStyle(styles) {\r\n let ret = '';\r\n if (!styles || isString(styles)) {\r\n return ret;\r\n }\r\n for (const key in styles) {\r\n const value = styles[key];\r\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\r\n if (isString(value) ||\r\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\r\n // only render valid values\r\n ret += `${normalizedKey}:${value};`;\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction normalizeClass(value) {\r\n let res = '';\r\n if (isString(value)) {\r\n res = value;\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + ' ';\r\n }\r\n }\r\n }\r\n else if (isObject(value)) {\r\n for (const name in value) {\r\n if (value[name]) {\r\n res += name + ' ';\r\n }\r\n }\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\r\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\r\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\r\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\r\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\r\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\r\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\r\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\r\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\r\n 'option,output,progress,select,textarea,details,dialog,menu,' +\r\n 'summary,template,blockquote,iframe,tfoot';\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\r\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\r\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\r\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\r\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\r\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\r\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\r\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\r\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\r\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\r\n 'text,textPath,title,tspan,unknown,use,view';\r\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\r\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\r\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\r\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\r\nfunction escapeHtml(string) {\r\n const str = '' + string;\r\n const match = escapeRE.exec(str);\r\n if (!match) {\r\n return str;\r\n }\r\n let html = '';\r\n let escaped;\r\n let index;\r\n let lastIndex = 0;\r\n for (index = match.index; index < str.length; index++) {\r\n switch (str.charCodeAt(index)) {\r\n case 34: // \"\r\n escaped = '"';\r\n break;\r\n case 38: // &\r\n escaped = '&';\r\n break;\r\n case 39: // '\r\n escaped = ''';\r\n break;\r\n case 60: // <\r\n escaped = '<';\r\n break;\r\n case 62: // >\r\n escaped = '>';\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (lastIndex !== index) {\r\n html += str.slice(lastIndex, index);\r\n }\r\n lastIndex = index + 1;\r\n html += escaped;\r\n }\r\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\r\n}\r\n// https://www.w3.org/TR/html52/syntax.html#comments\r\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\r\nfunction escapeHtmlComment(src) {\r\n return src.replace(commentStripRE, '');\r\n}\n\nfunction looseCompareArrays(a, b) {\r\n if (a.length !== b.length)\r\n return false;\r\n let equal = true;\r\n for (let i = 0; equal && i < a.length; i++) {\r\n equal = looseEqual(a[i], b[i]);\r\n }\r\n return equal;\r\n}\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n let aValidType = isDate(a);\r\n let bValidType = isDate(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\r\n }\r\n aValidType = isArray(a);\r\n bValidType = isArray(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\r\n }\r\n aValidType = isObject(a);\r\n bValidType = isObject(b);\r\n if (aValidType || bValidType) {\r\n /* istanbul ignore if: this if will probably never be called */\r\n if (!aValidType || !bValidType) {\r\n return false;\r\n }\r\n const aKeysCount = Object.keys(a).length;\r\n const bKeysCount = Object.keys(b).length;\r\n if (aKeysCount !== bKeysCount) {\r\n return false;\r\n }\r\n for (const key in a) {\r\n const aHasKey = a.hasOwnProperty(key);\r\n const bHasKey = b.hasOwnProperty(key);\r\n if ((aHasKey && !bHasKey) ||\r\n (!aHasKey && bHasKey) ||\r\n !looseEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return String(a) === String(b);\r\n}\r\nfunction looseIndexOf(arr, val) {\r\n return arr.findIndex(item => looseEqual(item, val));\r\n}\n\n/**\r\n * For converting {{ interpolation }} values to displayed strings.\r\n * @private\r\n */\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) ||\r\n (isObject(val) &&\r\n (val.toString === objectToString || !isFunction(val.toString)))\r\n ? JSON.stringify(val, replacer, 2)\r\n : String(val);\r\n};\r\nconst replacer = (_key, val) => {\r\n // can't use isRef here since @vue/shared has no deps\r\n if (val && val.__v_isRef) {\r\n return replacer(_key, val.value);\r\n }\r\n else if (isMap(val)) {\r\n return {\r\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\r\n entries[`${key} =>`] = val;\r\n return entries;\r\n }, {})\r\n };\r\n }\r\n else if (isSet(val)) {\r\n return {\r\n [`Set(${val.size})`]: [...val.values()]\r\n };\r\n }\r\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\r\n return String(val);\r\n }\r\n return val;\r\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\n/**\r\n * Always return false.\r\n */\r\nconst NO = () => false;\r\nconst onRE = /^on[^a-z]/;\r\nconst isOn = (key) => onRE.test(key);\r\nconst isModelListener = (key) => key.startsWith('onUpdate:');\r\nconst extend = Object.assign;\r\nconst remove = (arr, el) => {\r\n const i = arr.indexOf(el);\r\n if (i > -1) {\r\n arr.splice(i, 1);\r\n }\r\n};\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isArray = Array.isArray;\r\nconst isMap = (val) => toTypeString(val) === '[object Map]';\r\nconst isSet = (val) => toTypeString(val) === '[object Set]';\r\nconst isDate = (val) => val instanceof Date;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst toRawType = (value) => {\r\n // extract \"RawType\" from strings like \"[object RawType]\"\r\n return toTypeString(value).slice(8, -1);\r\n};\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\nconst isIntegerKey = (key) => isString(key) &&\r\n key !== 'NaN' &&\r\n key[0] !== '-' &&\r\n '' + parseInt(key, 10) === key;\r\nconst isReservedProp = /*#__PURE__*/ makeMap(\r\n// the leading comma is intentional so empty string \"\" is also included\r\n',key,ref,ref_for,ref_key,' +\r\n 'onVnodeBeforeMount,onVnodeMounted,' +\r\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\r\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\r\nconst cacheStringFunction = (fn) => {\r\n const cache = Object.create(null);\r\n return ((str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n });\r\n};\r\nconst camelizeRE = /-(\\w)/g;\r\n/**\r\n * @private\r\n */\r\nconst camelize = cacheStringFunction((str) => {\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n});\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\n/**\r\n * @private\r\n */\r\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\r\n/**\r\n * @private\r\n */\r\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\r\n/**\r\n * @private\r\n */\r\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\r\n// compare whether a value has changed, accounting for NaN.\r\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\r\nconst invokeArrayFns = (fns, arg) => {\r\n for (let i = 0; i < fns.length; i++) {\r\n fns[i](arg);\r\n }\r\n};\r\nconst def = (obj, key, value) => {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n enumerable: false,\r\n value\r\n });\r\n};\r\nconst toNumber = (val) => {\r\n const n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n};\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { NOOP } from '@vue/shared'\nimport { Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport const withInstall = <T, E extends Record<string, any>>(\n main: T,\n extra?: E\n) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app) => {\n app.config.globalProperties[name] = fn\n }\n\n return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n (component as SFCWithInstall<T>).install = NOOP\n\n return component as SFCWithInstall<T>\n}\n","import { mapValues } from 'lodash-es'\n\ninterface Event {\n // 当前组件触发什么事件类型后执行\n on: string\n // 被触发的组件id\n target: string\n // 被触发的组件:想要触发事件的类型\n emit: string\n}\n\nexport type Events = Event []\n\nexport type RequestMethod = 'get' | 'post' | 'put' | 'delete' | 'head'\n\nexport interface RequestParam {\n key: string,\n value: any\n}\n\nexport type RequestParams = RequestParam []\n\nexport interface Props {\n id: string // 组件Id,使用UUID\n name: string // 组件名称\n keyName: string // 控件\n type: string // 组件类型\n width: string // 组件宽度\n height: string // 组件高度\n position: string // 定位\n top: string // 组件左上定点x轴位置(相对于画布)\n left: string // 组件左上定点y轴位置(相对于画布)\n zIndex: number // 组件层级\n rotate: string // 旋转角度\n isShow: boolean // 是否展示\n isRender: boolean // 是否渲染\n events: Events\n requestUrl: string // 请求地址\n requestMethod: RequestMethod // 请求方式\n requestHeaders: { [key: string]: any } // 请求头部\n isOpenRequestTimer: boolean // 开启请求定时器\n requestInterval: number // 请求间隔\n requestParams: RequestParams // 请求参数\n requestSort: number, // 请求初始化优先级,越大越优先\n dataType: 'static' | 'request' | 'indicator'\n}\n\nexport const props: Props = {\n id: '',\n name: '',\n keyName: '',\n type: '',\n width: '100px',\n height: '40px',\n position: 'absolute',\n top: '0px',\n left: '0px',\n zIndex: 1,\n rotate: '0deg',\n isShow: true,\n isRender: true,\n requestUrl: '',\n requestMethod: 'get',\n requestHeaders: {},\n isOpenRequestTimer: false,\n requestInterval: 1,\n requestSort: 0,\n requestParams: [{ key: null, value: { } }],\n events: [],\n dataType: 'static'\n}\n\nexport const transformToComponentProps = <T extends {}>(props: T) => {\n // mapValues方法: 第一参数是要遍历的对象, 第二个参数是每次迭代时调用的函数\n return mapValues(props, (value) => {\n if (value == null) return {}\n return {\n type: (value as any).constructor,\n default: value\n }\n })\n}\n\nexport interface EventsProp {\n events: Events\n}\n\ninterface DataItem {\n name: string | number\n value: string | number\n type?: string\n}\n\nexport type Data = DataItem []\n\n// 数据转化映射格式\n\nexport interface KeyTypeDataFieldNames {\n name: string\n types: {\n label: string\n value: string\n } []\n}\n\nexport interface ValueTypeDataFieldNames {\n name: string\n value: string\n type: string\n}\n","import { transformToComponentProps } from '@/utils/props'\n\nexport interface PageConfig{\n width: string\n height: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n contextRequestUrl: string\n mode: 'normal' | 'preview'\n}\n\n// 页面组件默认配置\nexport const pageConfig:PageConfig = {\n width: '1920px',\n height: '1080px',\n backgroundColor: '#ffffff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n contextRequestUrl: '',\n mode: 'normal'\n}\n\n// 转化默认属性\nexport const pageConfigComponentProps = transformToComponentProps(pageConfig)\n","import { computed, HTMLAttributes } from 'vue'\nimport { pick, without } from 'lodash-es'\n// 需要添加组件的 style 属性\nconst styleList = [\n 'width',\n 'height',\n 'color',\n 'position',\n 'top',\n 'left',\n 'rotate',\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'textDecoration',\n 'textAlign',\n 'verticalAlign',\n 'overflow',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundSize',\n 'borderWidth',\n 'borderStyle',\n 'borderRadius',\n 'borderColor',\n 'textShadow',\n 'justifyContent',\n 'alignItems',\n 'zIndex'\n]\n/**\n * 过滤不是 style 属性的组件属性\n * @param props 组件属性\n * @param excludeStyleList 剔除组件的属性\n * @returns style属性\n */\nexport const usePickComponentStyle = <T>(props: Readonly<Partial<T>>, excludeStyleList: string [] = []) => {\n // 再选择需要的组件属性\n const finalStyleList = without(styleList, ...excludeStyleList)\n return computed<HTMLAttributes>(() => pick(props, finalStyleList))\n}\n\nexport default usePickComponentStyle\n","export const EVENT_BUS = 'EVENT_BUS'\nexport const GLOBAL_CONFIG = 'GLOBAL_CONFIG'\nexport const GLOBAL_MODEL = 'GLOBAL_MODEL'\nexport const REQUEST_MODEL = 'REQUEST_MODEL'\nexport const GLOBAL_TOKEN = 'GLOBAL_TOKEN'\nexport const REFRESH_PAGE = 'REFRESH_PAGE'\n// @ts-ignore\nexport const INDICATOR_URL = window?.config?.indicatorURL\n// @ts-ignore\nexport const UPLOAD_PATH = window?.config?.uploadPath || '/api'\n// @ts-ignore\nexport const BASE_URL = window?.config?.routerBaseURL || './'\n// @ts-ignore\nexport const ERD_URL = window?.config?.erdURL || ''\n","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '@/utils/constant'\nexport const useOnEvent = <T extends { [id: string]: any}>(props: Readonly<Partial<T>>, events: { [key: string]: any }) => {\n watch(() => props.id, (id, oldId) => {\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n onEvent: (i: string, e: { [key: string]: any }) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n offEvent: (i: string) => void 0\n })\n if (id != null && id !== '') {\n eventBus.onEvent(id, events)\n }\n }, {\n immediate: true\n })\n}\n\nexport default useOnEvent\n","import { inject, ref } from 'vue'\nimport { Events } from '@/utils/props'\nimport { EVENT_BUS, GLOBAL_CONFIG } from '@/utils/constant'\n/**\n * 触发事件\n * @param props 事件数据\n */\nexport const useEmitEvent = (props: { [key:string]: any }) => {\n const events = props.events as Events\n const id = props.id\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n emitEvent: (id:string, type: string) => void 0\n })\n\n const { touchEventId } = inject(GLOBAL_CONFIG, {\n touchEventId: ref('')\n })\n /**\n * @param on 触发事件\n * @param callback 回调函数\n */\n return (on: string, callback: Function = () => {}) => {\n return function () {\n // 透传\n callback.call(this, ...arguments)\n if (eventBus) {\n const { emitEvent } = eventBus\n events.forEach(event => {\n if (on === event.on) {\n try {\n touchEventId.value = id\n emitEvent(event.target, event.emit)\n } catch (e) {\n console.error(e)\n }\n }\n })\n }\n }\n }\n}\n\nexport default useEmitEvent\n","import { Data, ValueTypeDataFieldNames } from '@/utils/props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrValue = (data: Data, dataFieldNames?: ValueTypeDataFieldNames) => {\n let { name = 'name', value = 'value', type = 'type' } = dataFieldNames || {}\n // 处去字符串\n name = name?.trim()\n value = value?.trim()\n type = type?.trim()\n const set = new Set()\n const map = new Map()\n const len = data.length\n for (let i = 0; i < len; i++) {\n const item = data[i]\n // x轴\n const x = item[name] || ''\n // y轴\n const y = item[value] || ''\n // 系列(类型)\n const t = item[type] || ''\n set.add(x)\n if (map.has(t)) {\n const arr = map.get(t)\n arr.push({ name: x, value: y, ...item })\n map.set(t, arr)\n } else {\n map.set(t, [{ name: x, value: y, ...item }])\n }\n }\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\nexport default useTransformChartDataByAttrValue\n","export const handleAxisLabelFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n/**\n * 处理图表format, 目前只做 \\\\n => \\n 转化\n * @param formatter 格式化字符串\n */\nexport const handleFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n\n/**\n * 格式化金额\n * @param value 数值\n * @param decimalPlaces 格式化位数\n */\nexport const formatMoney = (value: string | number, decimalPlaces:number = 2) => {\n const _value = parseFloat(value + '')\n if (isNaN(_value) || _value < 0) return value\n return _value.toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n}\n\nexport const formatPercentage = (value: string | number, decimalPlaces:number = 2) => {\n const strValue = value + ''\n if (strValue.includes('%')) return value\n const _value = parseFloat(strValue)\n if (isNaN(_value)) return value\n return `${(_value * 100).toFixed(decimalPlaces)}%`\n}\n\n/**\n * 字符串1 中是否包含 字符串2 (会全部转成小写)\n * @param v1 字符串1\n * @param v2 字符串2\n * @constructor\n */\nexport const lowerCaseIncludes = (v1:any, v2:any): boolean => {\n if (typeof v1 === 'string' && typeof v2 === 'string') {\n return v1.toLocaleLowerCase().includes(v2.toLocaleLowerCase())\n }\n return false\n}\n","export const useVariablesInText = (\n formatter: string = '',\n data: { [key: string]:any } = {},\n { useNewline = false, useSpace = false } = {}\n) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (formatter).match(/\\{(.+?)\\}/g)\n if (variables == null || variables.length === 0) {\n return formatter\n }\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, -1)\n const reg = /[\\u4e00-\\u9fa5a-z-_A-Z]+[0-9]*/g\n const textVariables = statement.match(reg)\n for (let j = 0; j < textVariables.length; j++) {\n const textVariable = textVariables[j]\n const usedVariable = data[textVariable]\n if (usedVariable != null) {\n // 使用的变量\n statement = statement.replace(textVariable, usedVariable)\n }\n // else {\n // 过滤未使用的变量\n // statement = statement.replace(textVariable, '')\n // }\n }\n try {\n // 匹配加减乘除\n // eslint-disable-next-line no-eval\n const eval2 = eval\n statement = eval2(statement)\n } catch (e) {\n console.error(e)\n }\n formatter = formatter.replace(variable, statement)\n }\n // 替换换行\n if (useNewline) {\n formatter = formatter?.replace(/\\n|\\\\n/g, '<br/>')\n }\n // 替换空格\n if (useSpace) {\n formatter = formatter?.replace(/\\s{2,}?/g, ' ')\n }\n return formatter\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const url = useVariablesInText(requestUrl)\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey, operate } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 如果传入响应式数据优取响应式\n let v = null\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n if (isNeedFormat) {\n // 操作时间\n const { value, type, mode } = operate || {}\n if (value && type && mode) {\n switch (type) {\n case 'add':\n v = unref(p).add(value, mode)\n break\n case 'minus':\n v = unref(p).subtract(value, mode)\n break\n }\n }\n if (v == null) {\n v = unref(p)\n }\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n // 格式化时间\n v = v?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref\n // 判断他是不是对象\n if (Object.prototype.toString.call(p) === '[object Object]') {\n v = p[propKey || 'value']\n } else {\n v = p\n }\n // v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.config.requestParams, ...params, ..._params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n","import { Data, KeyTypeDataFieldNames } from '@/utils/props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrKey = (data: Data = [], dataFieldNames: KeyTypeDataFieldNames) => {\n let { name = 'name', types = [] } = dataFieldNames || {}\n name = name?.trim() || name\n const set = new Set()\n const map = new Map<string, any []>()\n const dataLen = data.length\n const typesLen = types.length\n // 只有一条记录\n if (dataLen === 1) {\n const vs = []\n // data 为一个值取第一个\n for (let i = 0; i < typesLen; i++) {\n const type = types[i]\n const { label, value } = type\n const v = { ...data[0], value: data[0][value] }\n set.add(label)\n // 值列表\n vs.push(v)\n }\n const n = data[0][name] || ''\n map.set(n, vs)\n } else {\n for (let i = 0; i < dataLen; i++) {\n const item = data[i]\n const x = item[name]\n set.add(x)\n for (let j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = { ...item, value: item[value] }\n if (map.has(label)) {\n const m = map.get(label)\n m.push(v)\n map.set(label, m)\n } else {\n map.set(label, [v])\n }\n }\n }\n }\n\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\n\nexport default useTransformChartDataByAttrKey\n","export const useImagePath = (path:string, isFormat: boolean = false) => {\n if (!path) return path\n let imagePath: string = ''\n if (path?.includes('://')) {\n imagePath = path\n } else {\n // @ts-ignore\n imagePath = window?.config?.uploadPath + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '@/utils/constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `${BASE_URL}/preview?pageId=${pageId}`\n const proPageUrl = `${BASE_URL}/${pageId}`\n return pageMode === 'preview' ? envPageUrl : proPageUrl\n}\n\nexport default usePageUrl\n","import axios from 'axios'\nimport { message } from 'ant-design-vue'\n\nexport const request = axios.create({\n // timeout: 1000 * 15\n})\nrequest.interceptors.request.use((config) => {\n return config\n}, (error) => {\n return Promise.reject(error)\n})\n\nrequest.interceptors.response.use((config) => {\n if (+config?.data?.code === 500) {\n message.error({\n content: config?.data?.msg || config?.data?.message || '服务器异常',\n key: 'SERVER_ERROR'\n })\n }\n return config\n}, (error) => {\n if (error.message.includes('timeout')) {\n message.error({\n content: '网络连接超时,请重试!',\n key: 'TIMEOUT'\n })\n } else {\n const { status } = error.response\n if (status >= 400 && status < 500) {\n message.error({\n content: '请求异常',\n key: 'REQUEST_ERROR'\n })\n }\n\n if (status >= 500) {\n message.error({\n content: '服务器异常',\n key: 'REQUEST_ERROR'\n })\n }\n }\n return Promise.reject(error)\n})\n\nexport default request\n","import { INDICATOR_URL, GLOBAL_MODEL } from '@/utils/constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '@/utils/request'\r\nimport { message } from 'ant-design-vue'\r\n\r\n/**\r\n * 请求图表数据接口\r\n * @returns {{requestDiagram: () => Promise<AxiosResponse<any>>}}\r\n */\r\nexport const useRequestDiagramData = (props) => {\r\n // 获取到组件数据\r\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\r\n // @ts-ignore\r\n // eslint-disable-next-line no-void\r\n getGlobalModel: (key: string) => void 0\r\n })\r\n const getIndicatorList = (graphicConfig) => {\r\n const indicatorList = []\r\n // 左值轴、指标\r\n graphicConfig?.leftAxisList.forEach(leftAxis => {\r\n if (leftAxis) {\r\n let show = false\r\n if (graphicConfig.leftAxis.includes(leftAxis.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: leftAxis.name,\r\n columnName: leftAxis.label,\r\n aggregate: leftAxis.calcValue ? leftAxis.calcValue : 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = leftAxis.indexCode\r\n }\r\n indicator = getCalculationAxis(leftAxis, indicator)\r\n indicatorList.push(indicator)\r\n }\r\n })\r\n // 右值轴\r\n graphicConfig.rightAxisList.forEach(it => {\r\n let show = false\r\n if (graphicConfig.rightAxis.includes(it.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: it.name,\r\n columnName: it.label,\r\n aggregate: 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n indicator = getCalculationAxis(it, indicator)\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = it.indexCode\r\n }\r\n indicatorList.push(indicator)\r\n })\r\n\r\n return indicatorList\r\n }\r\n\r\n /**\r\n * 获取计算指标\r\n * @param item\r\n * @param indicator\r\n */\r\n const getCalculationAxis = <T> (item, indicator: T): T => {\r\n const newIndicator: any = { ...indicator }\r\n if (item.calcMethod) { // 来源:新增计算指标\r\n if (item.calcMethod === 'FORMULA') { // 公式\r\n if (item.formulafuc) {\r\n newIndicator.formula = item.formulafuc\r\n }\r\n newIndicator.calcType = 'FORMULA'\r\n } else {\r\n newIndicator.builtInFormula = item.calculmethod\r\n newIndicator.calcType = 'BUILT_IN'\r\n if (item.comeFrom) {\r\n newIndicator.builtInValueSource = item.comeFrom\r\n }\r\n if (item.accessPrinciple) {\r\n newIndicator.builtInCalcWay = item.accessPrinciple\r\n }\r\n }\r\n } else { // 来源:视图拖拽\r\n // @ts-ignore\r\n newIndicator.calcType = 'COLUMN'\r\n }\r\n\r\n return newIndicator\r\n }\r\n\r\n /**\r\n * 获取查询条件\r\n * TODO 检查除日期外的特殊逻辑\r\n * @param relativeList\r\n * @returns {any[]}\r\n */\r\n const getSqlCondition = (relativeList = []) => {\r\n // 关联\r\n const list = []\r\n for (let i = 0; i < relativeList.length; i++) {\r\n const { keyName, searchName, searchType, variateName, id } = relativeList[i]\r\n const item: any = {\r\n alias: keyName,\r\n fieldName: searchName,\r\n rule: searchType || 'NONE',\r\n fieldValue: '',\r\n valueType: '',\r\n variateName\r\n }\r\n const watchItem = getGlobalModel(id) || {}\r\n if (searchName === 'the_date') {\r\n item.valueType = 'DATE'\r\n } else if (['hbdwbh', 'hbdwbh_name'].includes(searchName)) {\r\n item.valueType = 'TEXT'\r\n }\r\n if (watchItem.type === 'ecanDatePicker') {\r\n item.dateFormat = watchItem.format\r\n const formatter = unref(watchItem)?.value.format\r\n if (typeof formatter === 'function') {\r\n item.fieldValue = formatter(watchItem?.format)\r\n }\r\n }\r\n list.push(item)\r\n }\r\n return list\r\n }\r\n\r\n const getSortParams = (classification, list) => {\r\n // 分类项中的排序\r\n const classifyItem = list.find(item => {\r\n return item.name === classification.label\r\n })\r\n if (classifyItem.sort.type) {\r\n if (classifyItem.sort.type !== 'CUSTOM') {\r\n classification.sort = {\r\n label: classifyItem.sort.label,\r\n columnName: classifyItem.sort.columnName,\r\n type: 'NORMAL',\r\n order: classifyItem.sort.type\r\n }\r\n } else {\r\n classification.sort = {\r\n label: classifyItem.label,\r\n columnName: classifyItem.columnName,\r\n type: 'CUSTOM',\r\n customOrderColumns: classifyItem.sort.customOrderColumns\r\n }\r\n }\r\n }\r\n if (classifyItem.customGroup) {\r\n if (classifyItem.customGroup.groupList.length > 1) { // 0或1表示未分组\r\n classification.customGroup = {\r\n groupInfoMap: {},\r\n otherGroupName: ''\r\n }\r\n classifyItem.customGroup.groupList.forEach((row, rowIndex) => {\r\n if (rowIndex !== 0) {\r\n classification.customGroup.groupInfoMap[row.key] = row.value\r\n }\r\n })\r\n classification.customGroup.otherGroupName = classifyItem.customGroup.otherName || ''\r\n }\r\n }\r\n classification.rangeIndexTypeGuid = classifyItem.typeGuid\r\n classification.customFilterSqlPart = classifyItem.filterSql || ''\r\n }\r\n\r\n const handlerFilterParam = (parent, conditions) => {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n if (parent.children[i].children.length > 0) {\r\n let join = ''\r\n if (parent.type === 'and') {\r\n join = '&&'\r\n } else {\r\n join = '||'\r\n }\r\n conditions.push({ conditions: [], join: join })\r\n handlerFilterParam(parent.children[i], conditions[conditions.length - 1].conditions)\r\n } else {\r\n if (parent.children[i].fieldName) {\r\n let fieldValue = ''\r\n const item: any = {\r\n fieldName: parent.children[i].fieldName,\r\n fieldType: parent.children[i].itemType,\r\n rule: parent.children[i].rule,\r\n fieldValue: '',\r\n label: parent.children[i].label,\r\n version: parent.children[i].version ? parent.children[i].version : 100, // 兼容图形化配置时传显示的label,之前的传字段就是100的,label版本为101\r\n targetSource: parent.children[i].targetSource ? parent.children[i].targetSource : ''\r\n }\r\n fieldValue = JSON.parse(JSON.stringify(parent.children[i].fieldValue))\r\n if (parent.children[i].itemType === 'DATE') {\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n if (parent.children[i].selectType === 'time') { // 自定义时间\r\n if (parent.children[i].absoluteBool) { // 相对时间\r\n fieldValue = '#######'\r\n item.calcWays = parent.children[i].calcWays\r\n } else { // 取配置值\r\n // TODO\r\n // fieldValue = moment(fieldValue).format(parent.children[i].format)\r\n }\r\n } else if (parent.children[i].selectType === 'component') { // 关联控件\r\n fieldValue = '${' + parent.children[i].relateCompent + '}'\r\n }\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n } else {\r\n if (Object.prototype.toString.call(fieldValue) === '[object Array]') { // 选中后台查询值\r\n const fieldList: any = []\r\n for (let n = 0; n < fieldValue.length; n++) {\r\n if (fieldValue[n] !== '全选') {\r\n fieldList.push(fieldValue[n])\r\n }\r\n }\r\n fieldValue = fieldList.join(',')\r\n }\r\n }\r\n item.fieldValue = fieldValue\r\n if (parent.children.length > 1 && i !== parent.children.length - 1) {\r\n if (parent.type === 'and') {\r\n item.join = '&&'\r\n } else {\r\n item.join = '||'\r\n }\r\n }\r\n conditions.push(item)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 筛选变量处理\r\n const getFilterParams = (type, list, graphicConfig) => {\r\n if (!type) {\r\n return\r\n }\r\n const classifyItem = graphicConfig[list].find(item => {\r\n return item.name === type.label\r\n })\r\n if (!classifyItem) {\r\n return\r\n }\r\n const conditions = []\r\n const filterList = classifyItem.filterList\r\n if (filterList) {\r\n for (let i = 0; i < filterList.length; i++) {\r\n if (filterList[i].children.length > 0) {\r\n handlerFilterParam(filterList[i], conditions)\r\n }\r\n }\r\n }\r\n return conditions\r\n }\r\n\r\n return async function () {\r\n const componentType = props.type\r\n let graphicConfig = props.graphicConfig\r\n if (!graphicConfig || Object.keys(graphicConfig).length === 0) {\r\n graphicConfig = {\r\n classify: [],\r\n classifyList: [],\r\n series: [],\r\n seriesList: [],\r\n leftAxis: [],\r\n leftAxisList: [],\r\n rightAxis: [],\r\n rightAxisList: [],\r\n relativeList: []\r\n }\r\n }\r\n const xAxisValue = graphicConfig.classify\r\n const yAxisValue = [...graphicConfig.leftAxis, ...graphicConfig.rightAxis]\r\n if (yAxisValue.length === 0) {\r\n message.error('当前y轴无配置信息')\r\n return\r\n }\r\n\r\n // 获取值轴参数\r\n const indicatorList = getIndicatorList(graphicConfig)\r\n // 获取系列值\r\n let series\r\n if (Array.isArray(graphicConfig.series) && graphicConfig.series.length > 0) {\r\n const seriesItem = graphicConfig.seriesList?.find(item => {\r\n const firstSeries = graphicConfig.series[0]\r\n return item.name === firstSeries || item.nameBak === firstSeries\r\n })\r\n if (seriesItem != null) {\r\n series = {\r\n label: seriesItem.name,\r\n columnName: seriesItem.label\r\n }\r\n }\r\n }\r\n // 获取分类\r\n let classification\r\n if (xAxisValue.length > 0) {\r\n classification = {\r\n label: xAxisValue[0],\r\n columnName: xAxisValue[0]\r\n }\r\n const classify = graphicConfig.classifyList?.find(item => {\r\n return item?.name === xAxisValue[0] || item?.nameBak === xAxisValue[0]\r\n }) || {}\r\n classification.columnName = classify.label\r\n // 获取排序信息\r\n getSortParams(classification, graphicConfig.classifyList)\r\n classification.conditions = getFilterParams(classification, 'classifyList', graphicConfig) || []\r\n }\r\n if (series) {\r\n // 获取排序信息\r\n getSortParams(series, graphicConfig.seriesList)\r\n series.conditions = getFilterParams(series, 'seriesList', graphicConfig) || []\r\n }\r\n\r\n for (let t = 0; t < indicatorList.length; t++) {\r\n if (indicatorList[t].location === 'RIGHT') {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'rightAxisList', graphicConfig)\r\n } else {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'leftAxisList', graphicConfig)\r\n }\r\n }\r\n\r\n let sqlConditions\r\n if (graphicConfig?.pageMode === 'design') {\r\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\r\n sqlConditions = graphicConfig.sqlConditions ?? []\r\n } else {\r\n sqlConditions = getSqlCondition(graphicConfig?.relativeList)\r\n }\r\n let source = 'SQL_VIEW'\r\n let fixedDimSql = ''\r\n let dataSourceId = ''\r\n let idxLibMode = ''\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n source = 'INDICATOR_LIB'\r\n fixedDimSql = graphicConfig.fixedDimSql\r\n dataSourceId = graphicConfig.dataSourceId\r\n idxLibMode = graphicConfig.idxLibMode\r\n }\r\n\r\n const map = {\r\n ecanBar: 'bar',\r\n ecanLine: 'line',\r\n ecanPie: 'pie',\r\n ecanScatter: 'scatter'\r\n }\r\n\r\n try {\r\n const res = await request.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\r\n headers: {\r\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\r\n current_context: 'ygt'\r\n }\r\n })\r\n\r\n return request.post(`${INDICATOR_URL}/diagram`, {\r\n dataViewId: graphicConfig.dataViewId,\r\n plugin: '1',\r\n layer: '2',\r\n chartType: map[componentType],\r\n classification,\r\n indicatorList,\r\n series,\r\n sqlConditions,\r\n source,\r\n fixedDimSql,\r\n dataSourceId,\r\n idxLibMode\r\n }, {\r\n headers: { Authentication: res.data.data.token }\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n}\r\n\r\nexport default useRequestDiagramData\r\n","export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) {\n return value\n }\n const len = variables.length\n for (let i = 0; i < len; i++) {\n const variable = variables[i]\n if (variable == null || variable === '') break\n let statement = variable.slice(1, -1)\n statement = statement?.replace(/value/g, value)\n try {\n // 匹配加减乘除\n let result = statement\n if ((/[+\\-*/%]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n result = eval2(statement)\n }\n formatter = formatter.replace(variable, result)\n } catch (e) {\n formatter = formatter.replace(variable, statement)\n console.warn(e)\n }\n }\n return formatter\n}\n\nexport default useValueFormatter\n","import { GLOBAL_MODEL, INDICATOR_URL, GLOBAL_TOKEN } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport request from '@/utils/request'\nimport { inject, unref } from 'vue'\n\nexport const useIndicatorData = (props: { [key:string]: any } = {}) => {\n const { requestToken } = inject(GLOBAL_TOKEN, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n requestToken: () => void 0\n })\n // 指标库模式才会发\n if (props.dataType === 'indicator') {\n // 只要调用,计数 + 1,计数大于0才会请求\n requestToken()\n }\n\n const handleQueryColumn = (queryColumn: { [key:string]: any } = {}) => {\n const { label, name, location, show, indexCode } = queryColumn\n return {\n label,\n columnName: name,\n location,\n show,\n calcType: 'COLUMN',\n hrpIndexCode: indexCode\n }\n }\n\n const handleIndicator = (indicator: { [key:string]: any } = {}) => {\n const {\n label,\n name,\n location,\n show,\n indexCode,\n calcType = 'COLUMN',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n } = indicator\n return {\n label,\n columnName: name,\n location,\n show,\n calcType,\n hrpIndexCode: indexCode,\n aggregate: 'SUM',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n }\n }\n\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const handleSqlConditions = (controlList: { [key:string]: any } [] = []) => {\n const len = controlList.length\n const sqlConditions = [] as { [key:string]: any } []\n for (let i = 0; i < len; i++) {\n const control = controlList[i]\n const {\n id,\n conditionLabel,\n conditionKey,\n conditionValueType\n } = control\n const sqlCondition: { [key:string]: any } = {\n rule: 'NONE',\n label: conditionLabel,\n fieldName: conditionKey,\n fieldValue: '', // 在关联控件中取\n valueType: conditionValueType\n }\n // 获取组件属性\n const model = getGlobalModel(id) || {}\n if (lowerCaseIncludes(model.type, 'date')) {\n const { value, format } = model || {}\n sqlCondition.fieldValue = unref(value)?.format(format)\n sqlCondition.dateFormat = format\n }\n sqlConditions.push(sqlCondition)\n }\n return sqlConditions\n }\n return async () => {\n const { graphicConfig } = props\n const {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classificationList = [],\n seriesList = [],\n leftAxisList = [],\n rightAxisList = [],\n queryColumnList = [],\n indicators = [],\n controlList = [],\n dataSourceId,\n idxLibMode,\n preview = false\n } = graphicConfig || {}\n // console.log('classificationList', classificationList)\n // console.log('seriesList', seriesList)\n // console.log('leftAxisList', leftAxisList)\n // console.log('rightAxisList', rightAxisList)\n // console.log('indicators', indicators)\n // console.log('controlList', controlList)\n // 重点处理 classificationList、seriesList、leftAxisList、rightAxisList、indicators\n // classificationList (取第一项) => classification\n let classification\n if (Array.isArray(classificationList) && classificationList.length > 0) {\n const len = classificationList.length\n for (let i = 0; i < len; i++) {\n const item = classificationList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 classification,停止遍历\n if (show || len === 1) {\n classification = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // seriesList (取第一项) => series\n let series\n if (Array.isArray(seriesList) && seriesList.length > 0) {\n const len = seriesList.length\n for (let i = 0; i < len; i++) {\n const item = seriesList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 seriesList,停止遍历\n if (show || len === 1) {\n series = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // queryColumnList => queryColumns\n const queryColumns = []\n queryColumnList?.forEach((queryColumn: { [key:string]: any }) => {\n queryColumns.push(handleQueryColumn(queryColumn))\n })\n\n // leftAxisList + rightAxisList + indicators => indicatorList\n const indicatorList = []\n leftAxisList?.forEach((leftAxis: { [key:string]: any }) => {\n leftAxis.location = 'LEFT'\n indicatorList.push(handleIndicator(leftAxis))\n })\n rightAxisList?.forEach((rightAxis: { [key:string]: any }) => {\n rightAxis.location = 'RIGHT'\n indicatorList.push(handleIndicator(rightAxis))\n })\n indicators?.forEach((indicator: { [key:string]: any }) => {\n indicator.location = 'LEFT'\n indicatorList.push(handleIndicator(indicator))\n })\n if (layer === '1' && queryColumns.length === 0) {\n return\n } else if (layer === '2' && indicatorList.length === 0) {\n return\n }\n let sqlConditions\n if (graphicConfig?.pageMode === 'design') {\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\n sqlConditions = graphicConfig.sqlConditions ?? []\n } else {\n sqlConditions = handleSqlConditions(controlList)\n }\n try {\n const res = await request.post(`${INDICATOR_URL}/diagram`, {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classification,\n series,\n indicatorList,\n queryColumns,\n pageFlag: true,\n sqlConditions,\n // fixedDimSql: '',\n dataSourceId,\n idxLibMode,\n preview\n },\n {\n headers: {\n // @ts-ignore\n Authentication: window?.config?.indicatorToken,\n operateContext: 'ygt'\n }\n })\n return res\n } catch (e) {\n console.error(e)\n }\n }\n}\n\nexport default useIndicatorData\n","export const useHrefParamsToGlobalVariables = () => {\n const search = window.location.search\n const params = search.slice(1).split('&')\n const len = params.length\n for (let i = 0; i < len; i++) {\n const param = params[i]\n if (param == null || param === '') continue\n const keyAndValue = param.split('=')\n if (Array.isArray(keyAndValue)) {\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\n }\n }\n}\n\nexport default useHrefParamsToGlobalVariables\n","<template>\n <div id=\"container\" ref=\"container\">\n <template v-if=\"ready\">\n <div\n class=\"page-config\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, nextTick, computed, ref, onMounted, onUnmounted } from 'vue'\nimport { debounce } from 'lodash-es'\nimport { pageConfigComponentProps } from './props'\nimport { useImagePath } from '@/hooks'\nexport default defineComponent({\n name: 'EcanPageConfig',\n inheritAttrs: false,\n props: {\n ...pageConfigComponentProps\n },\n setup (props) {\n // 大屏设计容器\n const style = computed(() => ({\n width: props.width,\n height: props.height,\n backgroundColor: props.backgroundColor,\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n backgroundSize: props.backgroundSize\n }))\n const width = ref(0)\n const height = ref(0)\n const originalWidth = ref(0)\n const originalHeight = ref(0)\n const ready = ref(false)\n const container = ref()\n let observer: MutationObserver | null\n const initSize = () => {\n return new Promise<void>((resolve) => {\n nextTick(() => {\n // 获取大屏的真实尺寸\n if (props.width && props.height) {\n width.value = parseFloat(props.width)\n height.value = parseFloat(props.height)\n } else {\n width.value = container.value.clientWidth\n height.value = container.value.clientHeight\n }\n // 获取画布尺寸\n if (!originalWidth.value || !originalHeight.value) {\n originalWidth.value = window.screen.width\n originalHeight.value = window.screen.height\n }\n resolve()\n })\n })\n }\n const updateSize = () => {\n if (width.value && height.value) {\n container.value.style.width = `${width.value}px`\n container.value.style.height = `${height.value}px`\n } else {\n container.value.style.width = `${originalWidth.value}px`\n container.value.style.height = `${originalHeight.value}px`\n }\n }\n const updateScale = () => {\n // 获取真实的视口尺寸\n const currentWidth = document.body.clientWidth\n const currentHeight = document.body.clientHeight\n // 获取大屏最终的宽高\n const realWidth = width.value || originalWidth.value\n const realHeight = height.value || originalHeight.value\n const widthScale = currentWidth / realWidth\n const heightScale = currentHeight / realHeight\n container.value && (container.value.style.transform = `scale(${widthScale}, ${heightScale})`)\n }\n const onResize = async () => {\n await initSize()\n updateScale()\n }\n const initMutationObserver = () => {\n const MutationObserver = window.MutationObserver\n observer = new MutationObserver(onResize)\n observer.observe(container.value, {\n attributes: true,\n attributeFilter: ['style'],\n attributeOldValue: true\n })\n }\n const removeMutationObserver = () => {\n if (observer) {\n observer.disconnect()\n observer.takeRecords()\n observer = null\n }\n }\n onMounted(async () => {\n ready.value = false\n await initSize()\n updateSize()\n updateScale()\n window.addEventListener('resize', debounce(onResize, 100))\n initMutationObserver()\n ready.value = true\n })\n onUnmounted(() => {\n window.removeEventListener('resize', onResize)\n removeMutationObserver()\n })\n return {\n style,\n container,\n ready\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n#container {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport PageConfig from './PageConfig.vue'\nexport const EcanPageConfig = withInstall(PageConfig)\nexport default EcanPageConfig\nexport * from './props'\n","import { transformToComponentProps } from '@/utils/props'\n\nexport interface ProviderConfig {\n contextRequestUrl: string // 请求头\n pageMode: 'normal' | 'preview' | 'design' // 普通、预览、设计模式\n theme: 'light' | 'darkBlue'\n containerMap: { [key:string]: any }\n}\n\nexport const providerConfig: ProviderConfig = {\n contextRequestUrl: '',\n pageMode: 'normal',\n theme: 'light',\n containerMap: {}\n}\n\n// 转化默认属性\nexport const providerConfigComponentProps = transformToComponentProps(providerConfig)\n","<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, ref, onMounted, watch, computed, unref, onBeforeUnmount } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/hooks'\nimport axios from 'axios'\nimport { RequestModalParam } from '@/utils/types'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => {\n return useVariablesInText(props.contextRequestUrl as string)\n })\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const eventBusKeySet = new Set()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n if (eventBusKeySet.has(key)) {\n eventBus.off(key)\n }\n eventBus.on(key, (k: string) => {\n eventBusKeySet.add(key)\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onBeforeUnmount(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const requestMap = new Map()\n const setRequest = ({ requestFn = () => {}, sortNum = 0, id = '' }: RequestModalParam) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n requestMap.set(id, requestFn)\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async (id: undefined | string) => {\n // 传空默认触发全部\n if (!id) {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n } else if (typeof id === 'string') {\n const requestFn = requestMap.get(id)\n if (typeof requestFn === 'function') {\n requestFn()\n }\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n onBeforeUnmount(() => {\n requestModel?.clear()\n requestMap?.clear()\n })\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport ProviderConfig from './ProviderConfig.vue'\nexport const EcanProviderConfig = withInstall(ProviderConfig)\nexport default EcanProviderConfig\nexport * from './props'\n","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","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA3LTIyVDA5OjM1OjE5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHN0RXZ0OndoZW49IjIwMjItMDctMjJUMDk6MzU6MTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6VDI+BAAABUUlEQVRIia3WPyhGURgG8B8pi0xisStKMioZLQaLiaQMBoxiVBImCwaLf6MssloUk8Gmb7GgJFKSUvIZ7qe+bvd89+A+03uf989z3nPPPe+tK5fLqtF3tSESzRjFAJ4vemams4IaYqulCq9gEo34QGco+LcCg9hHaxW3jpsiBIZxmMp5kXQTRH1k8S4cZCxoE6//FaiXbEtThm87JjkPI+jN4E9xW4TAQoA/isjNFehCT8B3VoTAUID/xHURAn0B/g5fRQh0B/j7mOJkf2gTaKvY7YG8FsxXPe/hIVbgCTs5C+vAasU+xlooMGuLTrCVI/CDR0zVCgi9gzmUIgQmBbYmT+AdY5LjGMKWpNuaqHWKLrEY8JUkXeYi75iu4DzFfUi6ey9C4AvjeKviliTdRSHmsrvBbMU+lzNg0oidaLvox7LIK+IHdem/iqIROzL/jG+NrT1BRsXKNQAAAABJRU5ErkJggg==\"","<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'\nimport { RequestModalParam } from '@/utils/types'\nimport { formatMoney } from '@/utils/util'\n\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, ' ')\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 const format = props.format\n if (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 (format === 'percent') {\n // 百分数\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = formatMoney(usedVariable)\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: 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@import \"./style\";\n//.skeleton-wrapper {\n// overflow: hidden;\n//}\n//\n//.ecan-text {\n// overflow: hidden;\n// display: flex;\n//}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Text from './Text.vue'\nexport const EcanText = withInstall(Text)\nexport default EcanText\nexport * from './props'\n","<template>\n <div class=\"red\">\n {{ text }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue'\nexport default defineComponent({\n name: 'EcanScrollText',\n setup () {\n const text = ref('基础文本')\n return {\n text\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.red {\n color: red;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport ScrollText from './ScrollText.vue'\nexport const EcanScrollText = withInstall(ScrollText)\nexport default EcanScrollText\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TimeDisplayProps extends Props {\n color: string\n format: string\n fontSize: string\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n textShadow: string // 文字阴影\n textAlign: string // 水平\n verticalAlign: string // 垂直\n}\n\nexport const timeDisplayProps: TimeDisplayProps = {\n ...props,\n name: '时间展示',\n keyName: '时间展示',\n type: 'ecanTimeDisplay',\n format: 'YYYY-MM-DD dddd HH:mm:ss',\n fontSize: '16px',\n color: '#333',\n width: '240px',\n height: '40px',\n textAlign: 'center',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n verticalAlign: 'middle'\n}\n\nexport const timeDisplayComponentProps = transformToComponentProps(timeDisplayProps)\n","<template>\n <div class=\"time-display\" :style=\"style\">\n {{ time }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, onMounted, onUnmounted, ref } from 'vue'\nimport { timeDisplayComponentProps } from './props'\nimport dayjs from 'dayjs'\nimport { usePickComponentStyle } from '../../hooks'\nexport default defineComponent({\n name: 'EcanTimeDisplay',\n props: {\n ...timeDisplayComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const time = ref(dayjs().format(props.format as string))\n let timer = null\n const clearTimer = () => {\n clearInterval(timer)\n timer = null\n }\n const setTimer = () => {\n if (timer) {\n clearTimer()\n }\n timer = setInterval(() => {\n time.value = dayjs().add(1, 's').format(props.format as string)\n }, 1000)\n }\n onMounted(() => {\n setTimer()\n })\n onUnmounted(() => {\n clearTimer()\n })\n return {\n style,\n time\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.time-display {\n overflow: hidden;\n display: table-cell;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport TimeDisplay from './TimeDisplay.vue'\nexport const EcanTimeDisplay = withInstall(TimeDisplay)\nexport default EcanTimeDisplay\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ListProps extends Props {\n data: { [key: string]: any } []\n columns: { [key: string]: any } []\n sliceCount: number,\n backgroundColor: string\n useRanking: boolean\n useTitle: boolean\n columnCount: number\n itemHeight: string\n itemColSpan: string\n itemRowSpan: string\n}\n\nexport const listProps:ListProps = {\n ...props,\n type: 'ecanList',\n name: '列表',\n keyName: '列表',\n width: '330px',\n height: '80px',\n backgroundColor: '#0d215e',\n itemColSpan: '10px',\n itemRowSpan: '10px',\n useRanking: true,\n useTitle: false,\n sliceCount: 6,\n columnCount: 1,\n itemHeight: '32px',\n data: [\n {\n name: 'a',\n age: 12\n },\n {\n name: 'b',\n age: 14\n }\n ],\n columns: [\n {\n key: 'name'\n },\n {\n key: 'age'\n }\n ]\n}\n\nexport const listComponentProps = transformToComponentProps(listProps)\n\nexport interface ListEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const listEvents: Array<keyof ListEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-list\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <div\n class=\"title\"\n v-if=\"useTitle\"\n >\n <div\n class=\"title-inner\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1}/ ${columnCount})`,\n marginRight: count % columnCount !== 0 ? itemColSpan : ''\n }\"\n v-for=\"count in columnCount\"\n :key=\"count\"\n >\n <div class=\"ranking\" v-if=\"useRanking\" />\n <div\n class=\"column\"\n v-for=\"(column, i) in columns\"\n :key=\"column.key || i\"\n :style=\"{\n color: column.titleColor,\n ...columnStyle\n }\"\n >\n {{ column.title }}\n </div>\n </div>\n </div>\n <div class=\"ecan-list-content\" v-if=\"dataSource.length > 0\">\n <div\n class=\"title-placeholder\"\n :style=\"{\n marginBottom: itemRowSpan\n }\"\n v-if=\"useTitle\"\n />\n <div\n class=\"item\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1} / ${columnCount})`,\n marginRight: (i + 1) % columnCount !== 0 ? itemColSpan : '',\n marginBottom: itemRowSpan\n }\"\n v-for=\"(item, i) in dataSource.slice(0, sliceCount)\"\n :key=\"item.id || i\"\n @click=\"click\"\n >\n <div class=\"ranking\" v-if=\"useRanking\">\n <div class=\"icon\"/>\n <div class=\"sort\">\n Top {{ i + 1 }}\n </div>\n </div>\n <div\n :class=\"['column', contrastClass(item[column.key], column.format)]\"\n v-for=\"column in columns\"\n :key=\"column.key\"\n :style=\"{\n fontSize: column.fontSize,\n color: contrastClass(item[column.key], column.format) === '' ? column.color : '',\n fontWeight: column.fontWeight,\n ...columnStyle\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(item[column.key], column.format) }}\n </div>\n </div>\n </div>\n <div class=\"empty\" v-else>\n 暂无数据\n </div>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref } from 'vue'\nimport { listComponentProps, ListEvents } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nimport Skeleton from '@/common/skeleton'\nexport default defineComponent({\n name: 'EcanList',\n components: { Skeleton },\n props: {\n ...listComponentProps\n },\n setup (props) {\n const dataSource = ref<{[key:string]: any} []>(props.data as {[key:string]: any} [])\n const style = usePickComponentStyle(props, ['backgroundColor'])\n const columnStyle = computed(() => {\n if (props.useRanking) {\n return {\n textAlign: 'center'\n }\n } else {\n return {\n textAlign: 'left'\n }\n }\n })\n type Format = 'money' | 'percentage' | 'contrast' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n\n try {\n loading.value = true\n const res = await requestData()\n dataSource.value = res?.data?.data.rows || []\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n handleRequestData()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n useOnEvent(props, {\n refreshData\n } as ListEvents)\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n style,\n formatFn,\n columnStyle,\n contrastClass,\n dataSource,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n .ecan-list {\n overflow: hidden;\n }\n .ecan-list-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n align-content: flex-start;\n flex-wrap: wrap;\n }\n .title {\n position: absolute;\n z-index: 9;\n display: flex;\n align-items: center;\n height: 32px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .title-inner {\n padding-left: 28px;\n padding-right: 20px;\n flex: 1;\n display: flex;\n height: 100%;\n }\n .title-placeholder {\n width: 100%;\n height: 32px;\n }\n .item {\n display: flex;\n align-items: center;\n height: 32px;\n padding-left: 28px;\n padding-right: 20px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .column {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .ranking {\n flex: 1;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .icon {\n width: 12px;\n height: 8px;\n background: #21BEF7;\n margin-right: 17px;\n opacity: .6;\n }\n .item:nth-child(2) .icon {\n opacity: .8;\n }\n .item:first-child .icon{\n opacity: 1;\n }\n .sort {\n font-weight: 600;\n }\n .goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n\n .goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n .empty {\n text-align: center;\n margin-top: 15%;\n }\n</style>\n\n<style lang=\"less\">\n.ecan-list {\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n *::-webkit-scrollbar-thumb {\n border-radius: 6px;\n -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);\n background-color: #c8c9ca;\n }\n}\n[datav-theme='darkBlue'] {\n .ecan-list {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n *::-webkit-scrollbar-track{\n background-color: #192c70;\n }\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .empty {\n color: #ffffff;\n }\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport List from './List.vue'\nexport const EcanList = withInstall(List)\nexport default EcanList\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ProportionProps extends Props {\n strokeColor: string // 进度条的色彩\n strokeLinecap: 'round' | 'square' // 进度条的样式\n trailColor: string // 未完成的分段的颜色\n strokeType: 'circle' | 'dashboard',\n data: { [key:string]: any }\n text: string\n fontSize: string\n color: string\n strokeWidth: number\n fontWeight: number\n strokeTextWidth: string\n lineHeight: string\n decimalFormat: boolean\n variableDefaultValue: string\n}\n\nexport const proportionProps: ProportionProps = {\n ...props,\n name: '占比图',\n keyName: '占比图',\n type: 'ecanProportion',\n strokeType: 'circle',\n width: '200px',\n height: '200px',\n strokeColor: '#4091f7',\n strokeLinecap: 'round',\n trailColor: '#f5f5f5',\n data: {\n percent: 0.30\n },\n text: '{percent}%',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: '0'\n}\n\nexport const proportionComponentProps = transformToComponentProps(proportionProps)\n\nexport const proportionEvents = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-proportion\" :style=\"style\">\n <a-progress\n class=\"progress\"\n :percent=\"myValue\"\n :width=\"myWidth\"\n :type=\"strokeType\"\n :strokeColor=\"strokeColor\"\n :strokeLinecap=\"strokeLinecap\"\n :trailColor=\"trailColor\"\n :strokeWidth=\"strokeWidth\"\n :gapDegree=\"strokeType === 'dashboard' ? 75 : 0\"\n @click=\"click\"\n >\n <template #format>\n <skeleton v-if=\"loading\" :loading=\"loading\"/>\n <div\n v-else\n class=\"format\"\n :style=\"{\n width: strokeTextWidth,\n fontSize,\n color,\n fontWeight,\n lineHeight\n }\">\n {{ text }}\n </div>\n </template>\n </a-progress>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport 'ant-design-vue/es/progress/style'\nimport { Progress as AProgress } from 'ant-design-vue'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '../../common/skeleton'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanProportion',\n components: {\n AProgress,\n Skeleton\n },\n props: {\n ...proportionComponentProps\n },\n setup (props) {\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const style = usePickComponentStyle(props)\n const myWidth = computed(() => {\n const width = props.width as string\n return parseFloat(width)\n })\n const myData = ref<{ [key:string]: any }>({})\n watch(() => props.data, () => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n myData.value = props.data as { [key:string]: any }\n }\n }, {\n immediate: true,\n deep: true\n })\n const myValue = computed(() => {\n const data = unref(myData)\n const defaultValue = +(props.variableDefaultValue)\n if (data == null) {\n if (!isNaN(defaultValue)) {\n return defaultValue\n } else {\n return 0\n }\n }\n const variables = (props.text as string).match(/\\{.+\\}/g) || []\n let value\n const valueSet = new Set(Object.keys(data))\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const key = variable.slice(1, variable.length - 1)\n if (valueSet.has(key)) {\n value = data[key]\n break\n }\n }\n\n if (typeof value === 'number') {\n value = value * 100\n } else if (typeof value === 'string' && !isNaN(+value)) {\n value = (+value) * 100\n } else if (!isNaN(defaultValue)) {\n value = defaultValue * 100\n } else {\n value = 0\n }\n\n if (props.decimalFormat) {\n value = +value.toFixed(2)\n }\n return value\n })\n const text = computed(() => {\n let text = props.text as string\n if (text === '') return unref(myValue)\n const defaultValue = props.variableDefaultValue as string // 变量默认值\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, variable.length - 1) // { a - b} => a - b\n const textVariables = statement.match(/.*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]?.trim()\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, defaultValue)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/\\w+[+\\-*/%]+\\w+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n usedVariable = eval2(statement)\n }\n } catch (e) {\n console.error(e)\n }\n if (typeof usedVariable === 'number' || !isNaN(+usedVariable)) {\n usedVariable = (+usedVariable * 100)\n if (props.decimalFormat) {\n usedVariable = usedVariable.toFixed(2)\n }\n }\n text = text.replace(variable, usedVariable + '')\n }\n return text\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\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 myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n handleRequestData()\n }\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n\n return {\n style,\n myWidth,\n text,\n myValue,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-proportion {\n overflow: hidden;\n}\n\n.progress {\n width: 100%;\n height: 100%;\n}\n\n.format {\n margin: 0 auto;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Proportion from './Proportion.vue'\nexport const EcanProportion = withInstall(Proportion)\nexport default EcanProportion\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface InputProps extends Props {\n value: string,\n placeholder: string\n}\n\nexport const inputProps: InputProps = {\n ...props,\n width: '200px',\n id: '',\n left: '0px',\n top: '0px',\n name: '输入框',\n keyName: '输入框',\n rotate: '',\n type: 'ecanInput',\n value: '',\n placeholder: '请输入文字'\n}\n\n// 转化默认属性\nexport const inputComponentProps = transformToComponentProps(inputProps)\n\nexport const inputEvents = ['inputChange', 'inputBlur']\n","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n v-model:value=\"myValue\"\n :placeholder=\"placeholder\"\n @change=\"inputChange\"\n @blur=\"inputBlur\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, watch } from 'vue'\nimport { useEmitEvent, usePickComponentStyle } from '@/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nimport { debounce } from 'lodash-es'\nexport default defineComponent({\n name: 'EcanInput',\n components: {\n AInput\n },\n props: {\n ...inputComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myValue = ref<string>('')\n watch(() => props.value, (value: string) => {\n myValue.value = value\n }, {\n immediate: true\n })\n const id = props.id as string\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n const handleSetGlobalModel = () => {\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n }\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const inputChange = debounce(emitEvent('inputChange', () => {\n handleSetGlobalModel()\n }), 300)\n const inputBlur = emitEvent('inputBlur', () => {\n })\n return {\n style,\n myValue,\n inputBlur,\n inputChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-input {\n .ant-input {\n width: 100%;\n height: 100%;\n }\n}\n\n[datav-theme='light'] .ecan-input {\n .ant-input{\n color: rgba(0, 0, 0, 0.65);\n background-color: #ffffff;\n border: 1px solid #d9d9d9;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-input {\n .ant-input{\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Input from './Input.vue'\nexport const EcanInput = withInstall(Input)\nexport default EcanInput\nexport * from './props'\n","import {\n Props,\n EventsProp,\n props,\n transformToComponentProps\n} from '@/utils/props'\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: boolean // 增加时间选择功能\n useCurrentTime: boolean\n}\n\nexport const datePickerProps: DatePickerProps = {\n ...props,\n height: '33px',\n width: '130px',\n id: '',\n left: '0px',\n top: '0px',\n name: '日期选择器',\n keyName: '日期选择器',\n rotate: '',\n type: 'ecanDatePicker',\n value: '',\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false,\n useCurrentTime: true\n}\nexport const datePickerComponentProps = transformToComponentProps(datePickerProps)\n\nexport const datePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-date-picker\"\n :style=\"style\"\n >\n <!-- 宽度style有效,class无效 -->\n <a-date-picker\n class=\"date-picker\"\n dropdownClassName=\"ecan-date-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :showTime=\"showTime\"\n :locale=\"locale\"\n @change=\"dateChange\"\n :getPopupContainer=\"getPopupContainer\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, watch } from 'vue'\nimport { datePickerComponentProps } from './props'\nimport { DatePicker as ADatePicker } from 'ant-design-vue'\nimport 'ant-design-vue/es/date-picker/style'\nimport { usePickComponentStyle, useOnEvent, useEmitEvent } from '@/hooks'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanDatePicker',\n props: {\n ...datePickerComponentProps\n },\n components: {\n ADatePicker\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<Dayjs | null>(null)\n watch(() => [props.value, props.useCurrentTime], ([value, useCurrentTime]: [string, boolean]) => {\n let _value: Dayjs = null\n if (value) {\n _value = dayjs(value)\n } else if (useCurrentTime) {\n _value = dayjs()\n }\n myValue.value = _value\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n myValue,\n locale,\n dateChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-date-picker {\n .date-picker {\n width: 100%;\n height: 100%\n }\n}\n[datav-theme='light'] .ecan-date-picker {\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner, .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #1890ff;\n color: #ffffff;\n }\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {\n color: #69befa;\n }\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover {\n background: #1890ff;\n color: #ffffff;\n }\n\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {\n background: #1890ff;\n color: #ffffff;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport DatePicker from './DatePicker.vue'\nexport const EcanDatePicker = withInstall(DatePicker)\nexport default EcanDatePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface SelectOption {\n value: any\n label: string\n disabled?: boolean\n key?: string\n title?: string\n}\n\nexport type SelectOptions = SelectOption []\n\nexport interface SelectProps extends Props {\n data: SelectOptions // 同 options\n value: string,\n dataFieldNames: { label: string, value: string }\n mode: 'multiple' | 'tags' | 'combobox' | undefined\n maxTagCount: number | undefined\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n mode: undefined,\n data: [\n { label: '选项一', value: '1' },\n { label: '选项二', value: '2' },\n { label: '选项三', value: '3' }\n ],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' },\n maxTagCount: undefined\n}\n\nexport const selectComponentProps = transformToComponentProps(selectProps)\n\nexport const selectEvents = ['selectChange']\n","<template>\n <div\n class=\"ecan-select\"\n :style=\"style\"\n >\n <a-select\n class=\"select\"\n v-model:value=\"myValue\"\n :options=\"options\"\n :mode=\"mode\"\n :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n :maxTagCount=\"maxTagCount\"\n show-search\n :filter-option=\"filterOption\"\n @change=\"selectChange\"\n :loading=\"loading\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref } from 'vue'\nimport { Select as ASelect } from 'ant-design-vue'\nimport 'ant-design-vue/es/select/style'\nimport { selectComponentProps, SelectOptions } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanSelect',\n components: {\n ASelect\n },\n props: {\n ...selectComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 挂在在 ProviderConfig 或者 body 下\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const options = ref(props.data as SelectOptions)\n const myValue = ref(props.value || props.data[0])\n const dataFieldNames = props.dataFieldNames as { label:string, value:string }\n const filterOption = (input: string, option: any) => {\n const labelKey = dataFieldNames.label\n const valueKey = dataFieldNames.value\n let value: string | undefined\n // 没有 label 值才用 value\n // ant-select 组件如果没有传 label 值会使用 value 作为值\n const labelValue = option[labelKey]\n const valueValue = option[valueKey]\n if (labelValue != null) {\n value = labelValue\n } else if (valueValue != null) {\n value = valueValue\n }\n return !!(value?.toLowerCase().indexOf(input?.toLowerCase()) >= 0)\n }\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n options.value = res?.data?.data?.rows || []\n const firstOption = unref(options)[0]\n if (props.value === '' && firstOption != null) {\n myValue.value = firstOption[dataFieldNames.value]\n }\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const selectChange = emitEvent('selectChange', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n selectChange\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options,\n filterOption,\n loading\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-select {\n .ant-select {\n height: 100% !important;\n width: 100% !important;\n }\n .ant-select-selector {\n height: 100% !important;\n width: 100% !important;\n display: flex;\n align-items: center;\n input {\n height: 100% !important;\n }\n }\n}\n\n[datav-theme='light'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #d9d9d9;\n }\n .ant-select-dropdown {\n color: rgba(0, 0, 0, 0.85);\n background: #ffffff;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n }\n .ant-empty-img-simple-g {\n stroke: #d9d9d9;\n }\n .ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n }\n .ant-empty-img-simple-path {\n fill: #f5f5f5;\n stroke: #d9d9d9;\n }\n .ant-empty-description {\n color: rgba(0, 0, 0, 0.25);\n }\n .anticon-down {\n color: #333;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n .ant-select-dropdown {\n box-shadow: inset 0 0 10px #005efe;\n color: #fff;\n background-color: #05164c;\n }\n .ant-empty-img-simple-g {\n stroke: #69befa;\n }\n .ant-empty-img-simple-ellipse {\n fill-opacity: 0;\n }\n .ant-empty-img-simple-path {\n fill: #69befa;\n stroke: #69befa;\n }\n .ant-empty-description {\n color: #69befa;\n }\n .anticon-down {\n color: #ffffff;\n }\n .ant-select-item {\n color: #ffffff;\n }\n .ant-select-item-option-active {\n background: #1f63a3;\n }\n .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n background: #1f63a3;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Select from './Select.vue'\nexport const EcanSelect = withInstall(Select)\nexport default EcanSelect\nexport * from './props'\n","import { Props, props, transformToComponentProps } from '@/utils/props'\nimport { ManipulateType } from 'dayjs'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\n useCurrentTime: boolean\n interval: number\n intervalUnit: ManipulateType\n}\n\nexport const rangePickerProps: RangePickerProps = {\n ...props,\n name: '范围选择器',\n keyName: '范围选择器',\n type: 'ecanRangePicker',\n width: '250px',\n height: '35px',\n picker: 'date',\n format: 'YYYY-MM-DD',\n startTime: '',\n endTime: '',\n useCurrentTime: true,\n interval: 1,\n intervalUnit: 'year'\n}\n\nexport const rangePickerComponentProps = transformToComponentProps(rangePickerProps)\n\nexport const rangePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-range-picker\"\n :style=\"style\"\n >\n <a-range-picker\n class=\"range-picker\"\n dropdownClassName=\"ecan-range-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :locale=\"locale\"\n :getPopupContainer=\"getPopupContainer\"\n @change=\"dateChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref, watch, ref } from 'vue'\nimport { rangePickerComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/hooks'\nimport { RangePicker as ARangePicker } from 'ant-design-vue'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\n// antdv 中 range-picker 组件与 date-picker 共用一个样式\nimport 'ant-design-vue/es/date-picker/style'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nimport dayjs, { Dayjs, ManipulateType } from 'dayjs'\nexport default defineComponent({\n name: 'EcanRangePicker',\n components: {\n ARangePicker\n },\n props: {\n ...rangePickerComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<[Dayjs, Dayjs]>([null, null])\n watch(() => [props.startTime, props.endTime, props.useCurrentTime, props.interval, props.intervalUnit], ([startTime, endTime, useCurrentTime, interval, intervalUnit]: [string, string, boolean, number, ManipulateType]) => {\n let _startTime: Dayjs = null\n let _endTime: Dayjs = null\n if (useCurrentTime) {\n _startTime = dayjs().subtract(interval, intervalUnit)\n _endTime = dayjs()\n }\n if (startTime) {\n _startTime = dayjs(startTime)\n }\n if (endTime) {\n _endTime = dayjs(endTime)\n }\n myValue.value = [_startTime, _endTime]\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const myStartTime = computed(() => unref(myValue)[0])\n const myEndTime = computed(() => unref(myValue)[1])\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n startTime: myStartTime,\n endTime: myEndTime\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {})\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n locale,\n dateChange,\n myValue\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.range-picker {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-range-picker{\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n .ant-picker-separator .anticon {\n color:#333;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-separator .anticon {\n color:#fff;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell-disabled .ant-picker-cell-inner {\n color: #999;\n }\n .ant-picker-cell-disabled::before {\n background: #333;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport RangePicker from './RangePicker.vue'\nexport const EcanRangePicker = withInstall(RangePicker)\nexport default EcanRangePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ButtonProps extends Props {\n text: string\n mode: 'primary' | 'dashed' | 'link' | 'text' | 'default'\n danger: boolean\n shape: 'default' | 'circle' | 'round'\n href: string\n target: 'self' | 'blank' | 'event'\n fontSize: string\n fontWeight: number\n}\n\nexport const buttonProps: ButtonProps = {\n ...props,\n width: '200px',\n name: '按钮',\n keyName: '按钮',\n type: 'ecanButton',\n text: '按钮',\n mode: 'default',\n danger: false,\n shape: 'default',\n href: '',\n target: 'self',\n fontSize: '14px',\n fontWeight: 400\n}\n\n// 转化默认属性\nexport const buttonComponentProps = transformToComponentProps(buttonProps)\n\nexport const buttonEvents = ['click']\n","<template>\n <div\n class=\"ecan-button\"\n :style=\"style\"\n >\n <a-button\n block\n @click=\"click\"\n :type=\"mode\"\n :danger=\"danger\"\n :shape=\"shape\"\n :href=\"myHref\"\n :target=\"myTarget\"\n >\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ myText }}\n </span>\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref } from 'vue'\nimport { usePickComponentStyle, useEmitEvent, useVariablesInText } from '@/hooks'\nimport { Button as AButton } from 'ant-design-vue'\nimport 'ant-design-vue/es/button/style'\nimport { buttonComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanButton',\n components: {\n AButton\n },\n props: {\n ...buttonComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 拦截触发事件\n const emitEvent = useEmitEvent(props)\n // click 是 event 名称\n const click = emitEvent('click', () => {\n // 打开链接\n const url = unref(myHref)\n if (url && props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // 空字符串会刷新页面\n const myHref = computed(() => useVariablesInText(props.href as string) || null)\n const myTarget = computed(() => {\n const target = props.target as 'self' | 'blank' | 'event'\n if (target === 'event' || unref(myHref) == null) {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n })\n return {\n style,\n click,\n myText,\n myHref,\n myTarget\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-button {\n .ant-btn {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Button from './Button.vue'\nexport const EcanButton = withInstall(Button)\nexport default EcanButton\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport type CheckboxOptions = {\n label: string\n value: string\n disabled?: boolean\n checked?: boolean\n indeterminate?: boolean\n} []\n\nexport interface CheckboxProps extends Props {\n value: string | string []\n data: CheckboxOptions\n}\n\nexport const checkboxProps: CheckboxProps = {\n ...props,\n width: '240px',\n id: '',\n left: '0px',\n top: '0px',\n name: '复选框',\n keyName: '复选框',\n rotate: '',\n type: 'ecanCheckbox',\n value: [],\n data: [\n { label: '选项一', value: '1', checked: true },\n { label: '选项二', value: '2', checked: true },\n { label: '选项三', value: '3' }\n ]\n}\n\n// 转化默认属性\nexport const checkboxComponentProps = transformToComponentProps(checkboxProps)\n\nexport const checkboxEvents = ['checkboxChange']\n","<template>\n <div class=\"ecan-checkbox\" :style=\"style\">\n <a-checkbox-group\n :options=\"myOption\"\n v-model:value=\"myValue\"\n @change=\"checkboxChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { CheckboxGroup as ACheckboxGroup } from 'ant-design-vue'\nimport 'ant-design-vue/es/checkbox/style'\nimport { checkboxComponentProps, CheckboxOptions } from './props'\nimport { useEmitEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanCheckbox',\n components: {\n ACheckboxGroup\n },\n props: {\n ...checkboxComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref<CheckboxOptions>([])\n const myValue = ref<string []>([])\n const handleDataAndOption = (data) => {\n const value = props.value\n let _value = [] as string []\n data.forEach((item) => {\n if (item.checked) {\n _value.push(item.value)\n }\n })\n if (typeof value === 'string' && value !== '') {\n _value = _value.concat(value.split(','))\n } else if (Array.isArray(value)) {\n _value = _value.concat(value)\n }\n myOption.value = data\n myValue.value = _value\n }\n watch(() => [props.data, props.value], ([data]: [CheckboxOptions, string | string []]) => {\n handleDataAndOption(data)\n }, {\n immediate: true,\n deep: true\n })\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n const res = await requestData()\n const data = res?.data?.data?.rows || []\n handleDataAndOption(data)\n }\n const id = props.id as string\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const checkboxChange = emitEvent('checkboxChange', () => {\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n myOption,\n style,\n myValue,\n checkboxChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-checkbox {\n .ant-checkbox-group {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-between;\n align-content: space-between;\n flex-wrap: wrap;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Checkbox from './Checkbox.vue'\nexport const EcanCheckbox = withInstall(Checkbox)\nexport default EcanCheckbox\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface PieProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n backgroundColor: string\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n legendTextStyleColor: string\n innerRadius: string\n outerRadius: string\n centerLeft: string\n centerTop: string\n labelShow: boolean\n labelFormatter: string\n labelFontSize: number\n labelPosition: 'outside' | 'inside' | 'center'\n labelLineShow: boolean\n labelColor: string\n isUseLabelColors: boolean\n labelLineLength: number\n labelLineLength2: number\n roseType: '' | 'radius' | 'area'\n valueTypeDataFieldNames: ValueTypeDataFieldNames,\n dataFieldConfigType: 'key' | 'value',\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\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}\n\nexport const pieProps: PieProps = {\n ...props,\n id: '',\n name: '饼图',\n keyName: '饼图',\n type: 'ecanPie',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n backgroundColor: '',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {b} {c} ({d}%)',\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'vertical',\n legendTop: 'top',\n legendLeft: 'left',\n innerRadius: '0%',\n outerRadius: '60%',\n centerLeft: '50%',\n centerTop: '50%',\n labelShow: true,\n labelColor: '#333',\n isUseLabelColors: false,\n labelFontSize: 12,\n labelPosition: 'outside',\n labelFormatter: '{b}\\\\n{d}%',\n labelLineShow: true,\n labelLineLength: 10,\n labelLineLength2: 15,\n roseType: '',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n dataFieldConfigType: 'value',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\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}\n// 转化默认属性\nexport const pieComponentProps = transformToComponentProps(pieProps)\n\nexport const pieEvents: Array<string> = ['click', 'refreshData', 'resetRecord']\n","import request from '@/utils/request'\nexport const useDownloadFile = async (downloadFileUrl: string) => {\n const res = await request.post(downloadFileUrl, {}, {\n responseType: 'blob'\n }) as any\n const { data, headers } = res\n const fileName = headers['content-disposition'].replace(/\\w+;filename=(.*)/, '$1')\n const blob = new Blob([data])\n const dom = document.createElement('a')\n const url = window.URL.createObjectURL(blob)\n dom.href = url\n dom.download = decodeURI(fileName)\n dom.style.display = 'none'\n document.body.appendChild(dom)\n dom.click()\n dom.parentNode?.removeChild(dom)\n window.URL.revokeObjectURL(url)\n}\nexport default useDownloadFile\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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, watch, inject, ref, unref } from 'vue'\nimport {\n useEmitEvent,\n usePickComponentStyle,\n useRequestData,\n useTransformChartDataByAttrValue,\n useOnEvent,\n useRequestDiagramData,\n useVariablesInText\n} from '@/hooks'\nimport Echarts from '@/common/echarts'\nimport { pieComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { PieChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { handleFormatter } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { ValueTypeDataFieldNames } from '@/utils/props'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { RequestModalParam } from '@/utils/types'\nuse([\n CanvasRenderer,\n PieChart,\n TitleComponent,\n ToolboxComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanPie',\n props: {\n ...pieComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n let { data = [] } = unref(dataset)[0] || {}\n if (Array.isArray(props.colors)) {\n const isUseLabelColors = props.isUseLabelColors\n const colors = props.colors\n data = data.map((item, index) => ({\n label: isUseLabelColors ? { color: colors[index] } : {},\n ...item\n }))\n }\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 // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: (params) => {\n const { marker, seriesName, name, value, percent, data } = params || {}\n return useVariablesInText(\n props.tooltipFormatter as string,\n {\n marker,\n name,\n value,\n percent,\n a: seriesName,\n b: name,\n c: value,\n d: percent,\n ...data\n },\n {\n useNewline: true,\n useSpace: true\n }\n )\n },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\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 color: props.colors,\n series: [\n {\n data,\n type: 'pie',\n radius: [props.innerRadius, props.outerRadius],\n center: [props.centerLeft, props.centerTop],\n roseType: props.roseType,\n avoidLabelOverlap: false,\n // data: data.value,\n // data: props.data,\n // dimensions: ['name', 'count'],\n label: {\n show: props.labelPosition !== 'center' && props.labelShow,\n color: props.labelColor,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n formatter: handleFormatter(props.labelFormatter as string)\n },\n labelLine: {\n show: props.labelLineShow,\n length: props.labelLineLength,\n length2: props.labelLineLength2\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n // show: props.labelPosition === 'center'\n }\n }\n }\n ]\n }\n })\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\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const { dataset: d } = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = d\n }\n\n const handleIndicatorDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = chartData.dataset\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 loading = ref(false)\n const requestData = useRequestData(props)\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, props.valueTypeDataFieldNames as ValueTypeDataFieldNames)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\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 newArr = []\n if (res?.data?.data?.columns?.length > 0) {\n const name = res.data.data.columns[0]\n const value = res.data.data.columns[1]\n newArr = res?.data?.data?.rows?.map(item => {\n return {\n name: item[name],\n value: item[value]\n }\n })\n }\n handleIndicatorDataset(newArr)\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 resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Pie from './Pie.vue'\nexport const EcanPie = withInstall(Pie)\nexport default EcanPie\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface LineProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n legendShow: boolean,\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal' // 标记点大小\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string // 格式化\n yAxisSplitLineShow: boolean // y轴展示分割线\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 gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n tooltipFormatter: string\n tooltipShow: boolean\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 areaStyleOpacity: number\n}\n\nexport const lineProps: LineProps = {\n ...props,\n id: '',\n name: '折线图',\n keyName: '折线图',\n type: 'ecanLine',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 235, type: '类型一' },\n { name: '名称二', value: 280, type: '类型一' },\n { name: '名称三', value: 230, type: '类型一' },\n { name: '名称四', value: 335, type: '类型一' }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n legendShow: true,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisLabelFormatter: '{value}', // 格式化\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n tooltipShow: true,\n tooltipFormatter: '{marker} {a} {c}',\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 areaStyleOpacity: 0\n}\n\n// 转化默认属性\nexport const lineComponentProps = transformToComponentProps(lineProps)\n\nexport const lineEvents = ['click', 'refreshData', 'resetRecord']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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 { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent, useOnEvent,\n usePickComponentStyle,\n useRequestData, useRequestDiagramData,\n useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue, useVariablesInText\n} from '@/hooks'\nimport Echarts from '@/common/echarts'\nimport { lineComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { LineChart } from 'echarts/charts'\nimport { TitleComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nimport { RequestModalParam } from '@/utils/types'\nuse([\n CanvasRenderer,\n LineChart,\n ToolboxComponent,\n TitleComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanLine',\n props: {\n ...lineComponentProps\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 // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n const yAxisLabelFormatter = props.yAxisLabelFormatter 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 },\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 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: '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(yAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: unref(series)\n }\n })\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\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 dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n // color: {\n // type: 'linear',\n // x: 0,\n // y: 0,\n // x2: 0,\n // y2: 1,\n // colorStops: [{\n // offset: 0, color: props.colors[i] // 0% 处的颜色\n // }, {\n // offset: 1, color: '#fff' // 100% 处的颜色\n // }],\n // global: false // 缺省为 false\n // },\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\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 dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.symbolSize, props.smooth, props.lineStyleWidth, props.areaStyleOpacity], ([data]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(data as { [key: string]: any }[])\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\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 const emitEvent = useEmitEvent(props)\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 // 指标库\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 resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n refreshData,\n resetRecord,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Line from './Line.vue'\nexport const EcanLine = withInstall(Line)\nexport default EcanLine\nexport * from './props'\n","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 yAxisLabelWidth: number | undefined // y轴名称宽度\n yAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // y轴名称溢出操作\n yAxisLabelRotate: number // y轴名称旋转\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 xAxisInverse: boolean\n yAxisInverse: boolean\n isStack: boolean\n labelShow: boolean\n labelFontSize: string\n labelPosition: 'inside' | 'top' | 'bottom' | 'right' | 'left'\n labelColor: string\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 yAxisLabelWidth: undefined,\n yAxisLabelRotate: 0,\n yAxisLabelOverflow: 'none',\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 xAxisInverse: false,\n yAxisInverse: false,\n isStack: false,\n labelShow: false,\n labelFontSize: '12px',\n labelPosition: 'inside',\n labelColor: ''\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport const barEvents: string [] = ['refreshData', 'click', 'resetRecord']\n","<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 } 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 { RequestModalParam } from '@/utils/types'\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 }\n item.label = {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n color: props.labelColor\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 ? props.xAxisInverse : 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 : props.yAxisInverse,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n rotate: props.yAxisLabelRotate,\n width: props.yAxisLabelWidth,\n overflow: props.yAxisLabelOverflow,\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: props.requestSort as number\n })\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n refreshData,\n click,\n resetRecord\n })\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","import { withInstall } from '@/utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data\n} from '@/utils/props'\n\nexport interface ScatterProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean,\n tooltipShow: boolean,\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipFormatter: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n symbolSize: number // 标记点大小\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // 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 gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n dataFieldNames: { name: string, value: string }\n graphicConfig?: any\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}\n\nexport const scatterProps: ScatterProps = {\n ...props,\n id: '',\n name: '散点图',\n keyName: '散点图',\n type: 'ecanScatter',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: 233, value: 335 },\n { name: 556, value: 310 },\n { name: 56, value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n tooltipShow: true,\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {b} {c}',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 10,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisLabelFormatter: '{value}',\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n dataFieldNames: { name: 'name', value: 'value' },\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: undefined,\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}\n\n// 转化默认属性\nexport const scatterComponentProps = transformToComponentProps(scatterProps)\n\nexport const scatterEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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 useValueFormatter,\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData,\n useVariablesInText\n} from '@/hooks'\nimport { RequestModalParam } from '@/utils/types'\nimport Echarts from '@/common/echarts'\nimport { scatterComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { ScatterChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nuse([\n CanvasRenderer,\n ScatterChart,\n ToolboxComponent,\n TitleComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanScatter',\n props: {\n ...scatterComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n const yAxisLabelFormatter = props.yAxisLabelFormatter 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 xAxis: {\n // type: 'value'\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\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 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 // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: function (params) {\n const { marker, seriesName } = params\n const record = params?.data?.record ?? {}\n const { name, value } = record\n return useVariablesInText(props.tooltipFormatter as string, {\n marker,\n seriesName,\n a: seriesName,\n b: name,\n c: value,\n ...record\n })\n },\n axisPointer: {\n type: 'cross'\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: [\n {\n data: unref(dataset),\n type: 'scatter',\n symbolSize: props.symbolSize\n }\n ]\n }\n })\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\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: { name: string, value:string }) => {\n const { name: x = 'name', value: y = 'value' } = dataFieldNames || {}\n dataset.value = data.map(item => ({ value: [item[x], item[y]], record: item }))\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 loading = ref(false)\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.dataFieldNames as { name: string, value:string })\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const refreshData = () => {\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Scatter from './Scatter.vue'\nexport const EcanScatter = withInstall(Scatter)\nexport default EcanScatter\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface CustomGraphProps extends Props {\n option: { [key:string]: any }\n optionCode: string\n}\n\nexport const customGraphProps: CustomGraphProps = {\n ...props,\n id: '',\n name: '自定义图表',\n keyName: '自定义图表',\n type: 'ecanCustomGraph',\n width: '400px',\n height: '400px',\n option: {},\n optionCode: ''\n}\n\n// 转化默认属性\nexport const customGraphComponentProps = transformToComponentProps(customGraphProps)\n","<template>\n <div :style=\"style\">\n <echarts\n :option=\"myOption\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, ref } from 'vue'\nimport Echarts from '../../common/echarts'\nimport { customGraphComponentProps } from './props'\nimport { usePickComponentStyle } from '../../hooks'\nimport * as echarts from 'echarts'\n// import 'echarts/components'\nexport default defineComponent({\n name: 'EcanCustomGraph',\n props: {\n ...customGraphComponentProps\n },\n components: {\n Echarts\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref()\n watch(() => props.optionCode, (optionCode: string) => {\n /* // eslint-disable-next-line\n let option = {}\n // eslint-disable-next-line\n eval(props.optionCode as string)\n myOption.value = option */\n try {\n // eslint-disable-next-line\n const evalCopy = eval\n myOption.value = evalCopy(optionCode)\n } catch (e) {\n console.error(e)\n }\n }, {\n immediate: true\n })\n return {\n style,\n myOption,\n echarts\n }\n }\n})\n</script>\n","import { withInstall } from '../../utils/withInstall'\nimport CustomGraph from './CustomGraph.vue'\nexport const EcanCustomGraph = withInstall(CustomGraph)\nexport default EcanCustomGraph\nexport * from './props'\n","import {\n Data,\n Props,\n props,\n transformToComponentProps,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface ComboGraphProps 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 xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n seriesTypes: { [key: string]: any } []\n dataFieldConfigType: 'key' | 'value',\n yAxis: { [key: string]: any } [],\n graphicConfig?: any\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\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 symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n areaStyleOpacity: number\n barWidth: string\n}\n\nexport const comboGraphProps: ComboGraphProps = {\n ...props,\n id: '',\n name: '组合图表',\n keyName: '组合图表',\n type: 'ecanComboGraph',\n width: '400px',\n height: '400px',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 410,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 210,\n type: '类型一'\n },\n {\n name: '名称一',\n value: 510,\n type: '类型二'\n },\n {\n name: '名称二',\n value: 731,\n type: '类型二'\n },\n {\n name: '名称三',\n value: 910,\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: '{marker} {a} {c}',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\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 seriesTypes: [\n {\n type: 'bar',\n axisIndex: 0\n },\n {\n type: 'line',\n axisIndex: 0\n }\n ],\n yAxis: [\n {\n axisLabelFormatter: '{value}'\n },\n {\n axisLabelFormatter: '{value}'\n }\n ],\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\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 areaStyleOpacity: 0,\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n barWidth: '40%'\n}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click', 'resetRecord']\n","<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 { 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'\nimport { RequestModalParam } from '@/utils/types'\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 const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { tooltipFormatter: _tooltipFormatter } = seriesType || {}\n const { marker, seriesName, name, value, data } = params[i] || {}\n if (i === 0) {\n formatter += `${name}<br/>`\n }\n formatter += useVariablesInText(\n // 如果系列有提示框组件就使用自定义,没有就用默认的\n _tooltipFormatter || 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 textStyle: {\n color: props.tooltipTextStyleColor\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData,\n click\n })\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","import { withInstall } from '../../utils/withInstall'\nimport ComboGraph from './ComboGraph.vue'\nexport const EcanComboGraph = withInstall(ComboGraph)\nexport default EcanComboGraph\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface BorderProps extends Props {\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n title: string\n mode: 'top-title' | 'no-title' | 'left-top'\n borderColor: string\n borderRadius: string\n borderStyle: string\n borderWidth: string\n backgroundColor: string\n useBorderModify: boolean\n textShadow: string\n data: { [key:string]: any }\n}\n\nexport const borderProps: BorderProps = {\n ...props,\n name: '边框',\n keyName: '边框',\n type: 'ecanBorder',\n width: '300px',\n height: '300px',\n zIndex: 0,\n fontSize: '16px',\n fontFamily: '',\n fontWeight: 700,\n title: '标题',\n mode: 'no-title',\n borderColor: '#eee',\n borderRadius: '5px',\n borderStyle: 'solid',\n borderWidth: '2px',\n backgroundColor: '#ffffff',\n useBorderModify: false,\n textShadow: '',\n data: {}\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\n","<template>\n <div class=\"ecan-border\" :style=\"style\" @click=\"click\">\n <div\n class=\"no-title\"\n :style=\"borderStyle\"\n v-if=\"mode === 'no-title'\"\n >\n <template v-if=\"useBorderModify\">\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </template>\n </div>\n <div class=\"top-title\" :style=\"borderStyle\" v-if=\"mode === 'top-title'\">\n <div class=\"title-item-wrapper\">\n <div class=\"title-item\">\n <img\n class=\"title-decoration-left\"\n src=\"../../assets/border-title-decoration-left.png\"\n >\n <div class=\"title\">{{ title }}</div>\n <img\n class=\"title-decoration-right\"\n src=\"../../assets/border-title-decoration-right.png\"\n >\n </div>\n </div>\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </div>\n <div class=\"left-title\" v-if=\"mode === 'left-title'\">\n <div class=\"title\">\n <span>{{ title }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch } from 'vue'\nimport { borderComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanBorder',\n props: {\n ...borderComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['background'])\n const { theme } = inject(GLOBAL_CONFIG, {\n theme: 'light'\n })\n const borderStyle = computed(() => {\n return {\n // borderWidth: props.borderWidth,\n // borderStyle: props.borderStyle,\n // borderRadius: props.borderRadius,\n // borderColor: props.borderColor,\n // backgroundColor: props.backgroundColor,\n width: '100%',\n height: '100%'\n }\n })\n const emitEvent = useEmitEvent(props)\n const click = emitEvent('click', () => {})\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n useOnEvent(props, {\n click\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myData\n })\n return {\n style,\n click,\n borderStyle,\n theme\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.top-title, .no-title {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n .border-item {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n }\n .top-left {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n }\n .top-right {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n }\n .bottom-left {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n }\n .bottom-right {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n }\n .title-item-wrapper {\n width: 100%;\n padding: 5px 0;\n background-image: url(\"../../assets/border-title-background.png\");\n background-size: cover;\n display: grid;\n place-content: center;\n }\n .title-item {\n display: flex;\n align-items: center;\n }\n .title {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg,#01aaff,#00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n .title-decoration-left {\n width: 58px;\n height: 14px;\n }\n .title-decoration-right {\n width: 58px;\n height: 14px;\n }\n}\n\n.left-title {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 0;\n .title {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url(\"../../assets/border-left-title.png\");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n span {\n writing-mode: vertical-lr;\n }\n }\n}\n</style>\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==\"","import { withInstall } from '@/utils/withInstall'\nimport Border from './Border.vue'\nexport const EcanBorder = withInstall(Border)\nexport default EcanBorder\nexport * from './props'\n","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","<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","import { withInstall } from '@/utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TabsProps extends Props {\n data: { [key:string]: any } []\n backgroundColor: string\n tabFontSize: string\n tabColor: string\n activeTabColor: string\n tabBackgroundImage: string\n tabBarGutter: string\n activeTabBackgroundImage\n value: string\n activeKey: number\n tabHorizontalPadding: string\n // 包含组件id\n contains: string []\n tabFontWeight: number\n tabAlignItems: 'flex-start' | 'center' | 'flex-end'\n tabJustifyContent: 'flex-start' | 'center' | 'flex-end',\n tabFlexDirection: 'row' | 'column'\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n tabHorizontalPadding: '0px',\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '500px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '#ffffff',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n tabFontWeight: 400,\n value: '',\n activeKey: 0,\n contains: [],\n tabFlexDirection: 'row',\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ],\n tabAlignItems: 'flex-start',\n tabJustifyContent: 'flex-start'\n}\n\nexport const tabsComponentProps = transformToComponentProps(tabsProps)\n\nexport const tabsEvents = ['tabChange']\n","<template>\n <div class=\"ecan-tabs\" :style=\"style\">\n <div\n class=\"tabs-header\"\n :style=\"{\n fontSize: tabFontSize,\n alignItems: tabAlignItems,\n justifyContent: tabJustifyContent,\n flexDirection: tabFlexDirection\n }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n padding: `5px ${tabHorizontalPadding}`,\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabFlexDirection === 'row' ? tabBarGutter : null,\n marginBottom: tabFlexDirection === 'column' ? tabBarGutter : null,\n fontWeight: tabFontWeight\n }\"\n v-for=\"(tab, index) in myData\"\n :key=\"index\"\n @click.prevent.stop=\"tabChange(tab, index)\"\n >\n <div\n class=\"tab-inner\"\n :style=\"{\n borderBottom: !activeTabBackgroundImage && !tabBackgroundImage ? `1px solid ${isActive(index) ? activeTabColor : 'transparent'}` : ''\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { tabsComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useImagePath } from '@/hooks'\nimport { GLOBAL_MODEL, REFRESH_PAGE } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanTabs',\n props: {\n ...tabsComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const activeKey = ref(0)\n watch(() => props.activeKey, (key) => {\n activeKey.value = key\n }, {\n immediate: true\n })\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n const isActive = (index: number) => activeKey.value === index\n const myValue = ref(props.value || (unref(myData)[0] && unref(myData)[0]?.value) || '')\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n value: myValue,\n activeKey\n })\n\n const { emitRefreshPage } = inject(REFRESH_PAGE, {\n // eslint-disable-next-line no-void\n emitRefreshPage: () => void 0\n })\n\n const tabChange = emitEvent('tabChange', (tab:{ [key:string]:any }, index: number) => {\n if (index !== unref(activeKey)) {\n myValue.value = tab?.value || ''\n activeKey.value = index\n emitRefreshPage()\n }\n })\n useOnEvent(props, {\n tabChange\n })\n return {\n style,\n activeKey,\n isActive,\n tabChange,\n myData,\n useImagePath\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-tabs {\n display: flex;\n}\n\n.tabs-header {\n width: 100%;\n color: #333333;\n display: flex;\n padding: 0 10px;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.tab:last-child {\n margin-bottom: 0 !important;\n margin-right: 0 !important;\n}\n\n.tabs-content {\n flex:1;\n}\n</style>\n","import Tabs from './Tabs.vue'\nimport { withInstall } from '../../utils/withInstall'\nexport const EcanTabs = withInstall(Tabs)\nexport default EcanTabs\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ImageProps extends Props {\n imgUrl: string\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\n\nexport const imageProps: ImageProps = {\n ...props,\n name: '图片',\n keyName: '图片',\n type: 'ecanImage',\n width: '300px',\n height: '300px',\n imgUrl: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\nexport const imageComponentProps = transformToComponentProps(imageProps)\n","<template>\n <img\n :style=\"style\"\n :src=\"myImgUrl\"\n v-if=\"myImgUrl !== ''\"\n @click=\"onClick\"\n />\n <div\n class=\"image-placeholder\"\n :style=\"style\"\n v-else\n >\n 请上传图片\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref } from 'vue'\nimport { imageComponentProps } from './props'\nimport { useImagePath, usePickComponentStyle, usePageUrl, useVariablesInText } from '@/hooks'\nimport { GLOBAL_CONFIG } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanImage',\n props: {\n ...imageComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myImgUrl = computed(() => useImagePath(props.imgUrl as string))\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const onClick = () => {\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 return {\n style,\n myImgUrl,\n onClick\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.image-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Image from './Image.vue'\nexport const EcanImage = withInstall(Image)\nexport default EcanImage\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface IframeProps extends Props {\n link: string,\n linkType: 'web' | 'erd'\n}\n\nexport const iframeProps: IframeProps = {\n ...props,\n name: '网页',\n keyName: '网页',\n type: 'ecanIframe',\n width: '300px',\n height: '300px',\n link: '',\n linkType: 'web'\n}\n\nexport const iframeComponentProps = transformToComponentProps(iframeProps)\n","<template>\n <iframe\n :src=\"myLink\"\n :style=\"style\"\n v-if=\"myLink\"\n />\n <div\n class=\"iframe-placeholder\"\n :style=\"style\"\n v-else\n >\n 请填写网页链接\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, inject, unref } from 'vue'\nimport { usePickComponentStyle, useVariablesInText } from '@/hooks'\nimport { iframeComponentProps } from '@/media/iframe/props'\nimport { GLOBAL_CONFIG, ERD_URL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanIframe',\n props: {\n ...iframeComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const { contextRequestUrl } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: ''\n })\n const myLink = computed(() => {\n let link = useVariablesInText(props.link as string)\n if (props.linkType === 'erd' && link != null) {\n let ctxErdUrl = unref(contextRequestUrl)\n if (ctxErdUrl[ctxErdUrl.length - 1] === '/') {\n ctxErdUrl += 'erdReport'\n } else {\n ctxErdUrl += '/erdReport'\n }\n const erdUrl = ERD_URL || ctxErdUrl\n link = `${erdUrl}?_t=0&uid=${link}`\n }\n return link\n })\n return {\n style,\n myLink\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.iframe-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Iframe from './Iframe.vue'\nexport const EcanIframe = withInstall(Iframe)\nexport default EcanIframe\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n headerFontSize: string\n headerFontWeight: number\n fontSize: string\n fontWeight: number\n isReverse: boolean\n clickHighlight: boolean\n filterDropdownHeight: 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: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n headerFontSize: '14px',\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n headerFontWeight: 400,\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n isReverse: false,\n simple: false,\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n clickHighlight: false,\n filterDropdownHeight: '200px',\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData', 'resetRecord']\n","<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"tableColumns\"\n :data-source=\"tableDataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template #customFilterDropdown=\"{ column, selectedKeys, setSelectedKeys, confirm, clearFilters }\">\n <div\n class=\"ecan-table-filter\"\n :style=\"{\n height: filterDropdownHeight\n }\"\n >\n <a-input\n v-model:value=\"column.filterOptionsInputValue\"\n placeholder=\"请输入关键字\"\n :value=\"selectedKeys[0]\"\n class=\"filter-input\"\n @change=\"onSearchFilterOptions\"\n />\n <a-checkbox-group\n v-model:value=\"column.filterCheckboxGroupValue\"\n class=\"filter-checkbox\"\n :options=\"useFilterOptions(column)\"\n @change=\"useSetSelectedKeys(setSelectedKeys, column)\"\n >\n </a-checkbox-group>\n <div>\n <a-button\n type=\"primary\"\n size=\"small\"\n style=\"width: 90px; margin-right: 8px\"\n @click=\"() => confirm()\"\n >\n 搜索\n </a-button>\n <a-button\n size=\"small\"\n style=\"width: 90px\"\n @click=\"onResetFilter(clearFilters, column)\"\n >\n 重置\n </a-button>\n </div>\n </div>\n </template>\n <template #bodyCell=\"{ column, index, text, record }\">\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span>{{ index + 1 }}</span>\n </template>\n <!-- 操作列配置 -->\n <template v-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ column.format != null ? formatFn(text, column.format) : text }}\n </div>\n </template>\n </template>\n <template #summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"index\"\n :index=\"index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor,\n }\"\n >\n <div\n :class=\"[contrastClass(summary.total, summary.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject, reactive } from 'vue'\nimport {\n Input as AInput,\n CheckboxGroup as ACheckboxGroup,\n // Checkbox as ACheckbox,\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport 'ant-design-vue/es/checkbox/style'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport { cloneDeep } from 'lodash-es'\nimport { RequestModalParam } from '@/utils/types'\n// import { Big } from 'big.js'\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n AInput,\n ACheckboxGroup,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = ref<{ [key: string]: any } []>([])\n const myDataSource = ref<{ [key: string]: any } []>([])\n const tableColumns = ref<{ [key: string]: any } []>([])\n const tableDataSource = ref<{ [key: string]: any } []>([])\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const filterDataIndexList = reactive([])\n const handleChildrenColumns = (_columns: { [key: string]: any } [] = []) => {\n if (Array.isArray(_columns) && _columns.length > 0) {\n const len = _columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = _columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n cellAlign = 'center',\n cellColor,\n dataIndex,\n title,\n tableFilter,\n headerCellAlign,\n headerCellColor\n } = column\n if (tableFilter) {\n filterDataIndexList.push(dataIndex)\n column.filterOptionsInputValue = ''\n column.filterCheckboxGroupValue = []\n column.customFilterDropdown = true\n column.onFilter = (value, record) => record[dataIndex].toString().toLowerCase().includes(value.toLowerCase())\n }\n // 通用配置\n // 头部单元格\n column.customHeaderCell = () => ({\n style: {\n display: 'table-cell',\n verticalAlign: 'middle',\n fontSize: props.headerFontSize,\n fontWeight: props.headerFontWeight,\n textAlign: headerCellAlign || 'center',\n color: headerCellColor,\n borderBottomColor: props.borderColor\n }\n })\n // 表格单元格\n column.customCell = (record, rowIndex) => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n },\n class: {\n highlight: unref(useRowIndex) === rowIndex && props.clickHighlight\n },\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n record = {\n dataIndex,\n title,\n ...record\n }\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n if (Array.isArray(column.children)) {\n handleChildrenColumns(column.children)\n }\n }\n }\n }\n const handleColumns = (columns: { [key: string]: any } [] = []) => {\n // 复制表头数据\n if (props.isUseSeq) {\n // 添加序号\n columns.unshift({\n title: '序号',\n dataIndex: 'SEQ',\n align: 'center'\n })\n }\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n handleChildrenColumns(columns)\n return columns\n }\n watch(() => [\n props.columns,\n props.isUseSeq,\n props.isUseAction,\n props.columnsFixedNum,\n props.actionColumnWidth,\n props.cellBackgroundColor,\n props.borderColor\n ], () => {\n myColumns.value = handleColumns(cloneDeep(props.columns as any []))\n }, {\n immediate: true,\n deep: true\n })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n myDataSource.value = data as { [key:string]:any } []\n }, {\n immediate: true\n })\n const allFilterOptions = ref({})\n const handleFilterCheckboxOptions = (dataSource: { [key:string]: any } []) => {\n if (Array.isArray(dataSource)) {\n const dataLen = dataSource.length\n const keys = filterDataIndexList\n const keysLen = keys.length\n const filterOptionsMap: { [key:string]: Set<string> } = {}\n for (let i = 0; i < dataLen; i++) {\n const record = dataSource[i]\n for (let j = 0; j < keysLen; j++) {\n const key = keys[j]\n if (filterOptionsMap[key]) {\n filterOptionsMap[key].add(record[key])\n } else {\n const set = new Set<string>()\n set.add(record[key])\n filterOptionsMap[key] = set\n }\n }\n }\n const _allFilterOptions: { [key:string]: { label:string, value: string } [] } = {}\n for (const key in filterOptionsMap) {\n if (Object.prototype.hasOwnProperty.call(filterOptionsMap, key)) {\n const optionsSet = filterOptionsMap[key]\n const options = Array.from(optionsSet)\n _allFilterOptions[key] = options.map((option) => ({ label: option, value: option }))\n }\n }\n allFilterOptions.value = _allFilterOptions\n }\n }\n watch(() => [props.isReverse, myColumns.value, myDataSource.value], () => {\n const _columns = unref(myColumns)\n const _dataSource = unref(myDataSource)\n handleFilterCheckboxOptions(_dataSource)\n if (props.isReverse) {\n const { columns, dataSource } = handleReverseTable(cloneDeep(_columns), cloneDeep(_dataSource))\n tableColumns.value = columns\n tableDataSource.value = dataSource\n } else {\n tableColumns.value = _columns\n tableDataSource.value = _dataSource\n }\n }, {\n immediate: true,\n flush: 'post'\n })\n const handleReverseTable = (columns: { [key:string]: any} [], dataSource: { [key:string]: any} []) => {\n const firstColumns = columns[0]\n const _columns = [{\n title: firstColumns.title,\n dataIndex: 'col0',\n key: 'col0',\n align: 'center'\n }] as { [key:string]: any } []\n for (let i = 0; i < dataSource.length; i++) {\n const data = dataSource[i]\n const dataIndex = 'col' + (i + 1)\n _columns.push({\n title: data[firstColumns.dataIndex],\n dataIndex,\n key: dataIndex,\n align: 'center'\n })\n }\n const _dataSource = [] as { [key:string]: any } []\n for (let i = 1; i < columns.length; i++) {\n const column = columns[i]\n const _data = { col0: column.title }\n for (let j = 0; j < dataSource.length; j++) {\n const data = dataSource[j]\n _data[`col${j + 1}`] = data[column.dataIndex]\n }\n _dataSource.push(_data)\n }\n return {\n columns: _columns,\n dataSource: _dataSource\n }\n }\n const orderCondition = ref<string>('')\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {} as { [key:string]: any }\n if (unref(orderCondition)) {\n params.orderCondition = unref(orderCondition)\n }\n // 分页\n if (props.paginationShow) {\n params = {\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1',\n ...params\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n if (Array.isArray(rows)) {\n myDataSource.value = rows\n }\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\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\n const handleIndicatorDataset = (dataColumns: any [] = [], dataRows: { [key:string]: any }[] = []) => {\n const _columns = dataColumns.map((column: string) => ({ title: column, dataIndex: column, key: column }))\n myColumns.value = handleColumns(_columns)\n myDataSource.value = dataRows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n //\n // const customHeaderRow = () => ({\n // style: {\n // backgroundColor: props.headerBackgroundColor\n // }\n // })\n const useRowIndex = ref(-1)\n\n const customRow = (record, index) => ({\n onClick: emitEvent('rowClick', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n useRowIndex.value = index\n })\n })\n\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData\n })\n const summaryList = computed(() => {\n const columns = unref(tableColumns)\n const summaryList = [] as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (props.isUseSeq && i === 0) {\n summaryList.push({\n ...column,\n total: '小计'\n })\n } else if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n let records = unref(tableDataSource)\n if (props.paginationShow) {\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n records = records.slice(start, end)\n }\n for (let i = 0; i < summaryList.length; i++) {\n const summary = summaryList[i]\n let total: number = 0\n const { isCalcTotal, dataIndex } = summary\n if (isCalcTotal === true) {\n for (let j = 0; j < records.length; j++) {\n const record = records[j]\n const num = +record[dataIndex]\n total += num\n // console.log(num)\n // if (!isNaN(num)) {\n // total = new Big(total).add(num).toNumber()\n // }\n }\n summary.total = total\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: props.requestSort as number\n })\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n const useSetSelectedKeys = (setSelectedKeys, column) => {\n setSelectedKeys(column.filterCheckboxGroupValue)\n }\n\n const onResetFilter = (clearFilters, column) => {\n clearFilters({ confirm: true })\n column.filterOptionsInputValue = ''\n column.filterCheckboxGroupValue = []\n }\n const onSearchFilterOptions = () => {}\n const useFilterOptions = (column) => {\n const key = column.dataIndex\n if (typeof key === 'string') {\n let filterOptions = unref(allFilterOptions)[key]\n const _inputValue = unref(column.filterOptionsInputValue).trim()\n if (Array.isArray(filterOptions)) {\n filterOptions = filterOptions.filter((filterOption) => {\n if (typeof filterOption.label === 'string') {\n return filterOption.label.toLowerCase().includes(_inputValue.toLowerCase())\n }\n return true\n })\n return filterOptions\n }\n return []\n }\n return []\n }\n return {\n x,\n y,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget,\n useRowIndex,\n tableColumns,\n tableDataSource,\n useFilterOptions,\n useSetSelectedKeys,\n onResetFilter,\n onSearchFilterOptions\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n\n.filter-input {\n width: 188px;\n margin-bottom: 8px;\n display: block\n}\n\n.filter-checkbox {\n width: 188px;\n margin-bottom: 8px;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table-filter {\n padding: 8px;\n display: flex;\n flex-direction: column;\n .ant-checkbox-group {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .ant-checkbox-wrapper {\n width: 100%;\n padding: 5px 0;\n font-size: 16px;\n &:hover {\n background-color: #f5f5f5;\n }\n .ant-checkbox + span {\n width: 100%;\n word-break: break-all;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical\n }\n }\n}\n\n.ecan-table {\n .highlight {\n background: #e6f7ff !important;\n }\n\n *::-webkit-scrollbar {\n //width: 6px;\n //height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: #bfbfbf;\n }\n\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n .highlight {\n background: #225b98 !important;\n }\n\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface MapProps extends Props {\n mapJson: { name: string, value: string } | null,\n data: { [key:string]: any } []\n backgroundImage: string\n backgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat',\n symbolImage: string // 图标\n symbolWidth: number\n symbolHeight: number\n geoZoom: number\n geoRoam: boolean\n geoCenter: string\n geoBackgroundImage: string\n geoBackgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'\n geoLabelShow: boolean\n geoLabelColor: string\n geoLabelFontSize: number\n geoItemStyleAreaColor: string\n geoItemStyleBorderColor: string\n geoItemStyleBorderWidth: number\n geoItemStyleShadowColor: string\n geoItemStyleShadowOffsetX: number\n geoItemStyleShadowOffsetY: number\n geoItemStyleShadowBlur: number\n geoEmphasisDisabled: boolean\n geoEmphasisLabelColor: string\n geoEmphasisItemStyleAreaColor: string\n geoEmphasisItemStyleBorderColor: string\n itemStyleColor: string\n labelFontSize: number\n labelFormatter: string\n labelShow: boolean\n labelColor: string\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n}\n\nexport const mapProps: MapProps = {\n ...props,\n mapJson: null,\n data: [],\n name: '地图',\n keyName: '地图',\n type: 'ecanMap',\n width: '400px',\n height: '400px',\n backgroundImage: '',\n backgroundImageRepeat: 'no-repeat',\n geoBackgroundImage: '',\n geoBackgroundImageRepeat: 'no-repeat',\n symbolImage: '',\n symbolWidth: 10,\n symbolHeight: 10,\n itemStyleColor: '#11BFDA',\n labelFontSize: 14,\n labelShow: true,\n geoLabelShow: true,\n geoLabelColor: '#000',\n geoZoom: 1,\n geoRoam: false,\n geoCenter: '',\n geoLabelFontSize: 12,\n labelColor: '',\n labelFormatter: '{b}',\n geoItemStyleAreaColor: '#eee',\n geoItemStyleBorderColor: '#000',\n geoItemStyleBorderWidth: 1,\n geoItemStyleShadowColor: '',\n geoItemStyleShadowOffsetX: 0,\n geoItemStyleShadowOffsetY: 0,\n geoItemStyleShadowBlur: 0,\n geoEmphasisDisabled: false,\n geoEmphasisLabelColor: '#fff',\n geoEmphasisItemStyleAreaColor: '#f00',\n geoEmphasisItemStyleBorderColor: '#000',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{b}'\n}\n\nexport const mapComponentProps = transformToComponentProps(mapProps)\n","<template>\n <div class=\"ecan-map\" :style=\"style\">\n <echarts\n v-if=\"isLoadedData\"\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n <img\n ref=\"geoBackgroundImageRef\"\n v-show=\"false\"\n :src=\"myGeoBackgroundImage\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, watch, ref, unref } from 'vue'\nimport { mapComponentProps } from './props'\nimport Echarts from '@/common/echarts'\nimport { use, registerMap } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { MapChart, ScatterChart } from 'echarts/charts'\nimport { VisualMapComponent, TooltipComponent, GraphicComponent } from 'echarts/components'\nimport request from '@/utils/request'\nimport { usePickComponentStyle, useImagePath } from '../../hooks'\nuse([\n CanvasRenderer,\n MapChart,\n ScatterChart,\n VisualMapComponent,\n TooltipComponent,\n GraphicComponent\n])\nexport default defineComponent({\n name: 'EcanMap',\n components: {\n Echarts\n },\n props: {\n ...mapComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['backgroundImage'])\n const geoBackgroundImageRef = ref()\n const myGeoBackgroundImage = computed(() => useImagePath(props.geoBackgroundImage as string))\n const myBackgroundImage = computed(() => useImagePath(props.backgroundImage as string))\n const areaColor = computed(() => {\n const backgroundImage = props.geoBackgroundImage as string\n if (backgroundImage) {\n return {\n image: unref(geoBackgroundImageRef),\n repeat: props.geoBackgroundImageRepeat\n }\n }\n return props.geoItemStyleAreaColor\n })\n const symbol = computed(() => {\n const symbolImage = props.symbolImage as string\n if (props.symbolImage) {\n return 'image://' + useImagePath(symbolImage)\n }\n return 'circle'\n })\n const option = computed(() => {\n const geoCenter = props.geoCenter\n let center: undefined | Array<any>\n if (typeof geoCenter === 'string' && geoCenter !== '') {\n center = geoCenter.split(',')\n }\n return {\n // backgroundColor: unref(background),\n tooltip: {\n show: true\n },\n graphic: [\n { // 一个图形元素,类型是 image。\n type: 'image',\n style: {\n width: parseFloat(props.width as string),\n height: parseFloat(props.height as string),\n image: unref(myBackgroundImage)\n },\n top: 'center'\n }\n ],\n geo: {\n zoom: props.geoZoom,\n roam: props.geoRoam,\n center,\n map: 'map',\n tooltip: {\n show: false\n },\n label: { // 地图上显示文字属性\n show: props.geoLabelShow,\n color: props.geoLabelColor,\n fontSize: props.geoLabelFontSize\n },\n itemStyle: { // 地图上板块属性\n areaColor: unref(areaColor),\n borderColor: props.geoItemStyleBorderColor,\n borderWidth: props.geoItemStyleBorderWidth,\n shadowColor: props.geoItemStyleShadowColor,\n shadowBlur: props.geoItemStyleShadowBlur,\n shadowOffsetX: props.geoItemStyleShadowOffsetX,\n shadowOffsetY: props.geoItemStyleShadowOffsetY\n },\n emphasis: { // 当鼠标悬停的时候\n disabled: props.geoEmphasisDisabled,\n label: {\n color: props.geoEmphasisLabelColor\n },\n itemStyle: {\n areaColor: props.geoEmphasisItemStyleAreaColor,\n borderColor: props.geoEmphasisItemStyleBorderColor\n }\n }\n },\n series: [\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n itemStyle: {\n color: props.itemStyleColor\n },\n symbol: unref(symbol),\n symbolSize: [props.symbolWidth, props.symbolHeight],\n label: {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n formatter: props.labelFormatter,\n color: props.labelColor\n },\n tooltip: {\n show: props.tooltipShow,\n formatter: props.tooltipFormatter,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n data: props.data\n }\n ]\n }\n })\n // const echarts = ref()\n const isLoadedData = ref(false)\n const handleRegisterMap = async () => {\n const mapJson = props.mapJson as { name: string, path: string }\n if (mapJson != null && mapJson.path) {\n // @ts-ignore\n const res = await request(window?.config?.uploadPath + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n }\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: true,\n deep: true\n })\n return {\n option,\n style,\n isLoadedData,\n geoBackgroundImageRef,\n myGeoBackgroundImage\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-map {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Map from './Map.vue'\nexport const EcanMap = withInstall(Map)\nexport default EcanMap\nexport * from './props'\n","import { App } from 'vue'\nimport * as components from './components'\nconst install = (app: App) => {\n Object.keys(components).forEach(key => {\n const component = components[key]\n if (component.install) {\n app.use(component)\n }\n })\n}\n\n// 部分导出\nexport * from './components'\n// 全局安装\nexport default {\n install\n}\n"],"names":["METHOD_NAMES","usePublicAPI","chart","init","makePublicMethod","name","args","makePublicMethods","methods","useAutoresize","autoresize","root","resizeListener","watch","_","cleanup","throttle","addListener","removeListener","autoresizeProps","LOADING_OPTIONS_KEY","useLoading","loading","loadingOptions","defaultLoadingOptions","inject","realLoadingOptions","computed","unref","watchEffect","instance","loadingProps","onRE","isOn","key","omitOn","attrs","result","TAG_NAME","THEME_KEY","INIT_OPTIONS_KEY","UPDATE_OPTIONS_KEY","Echarts","defineComponent","props","listeners","shallowRef","manualOption","defaultTheme","defaultInitOptions","defaultUpdateOptions","manualUpdate","toRefs","realOption","realTheme","realInitOptions","realUpdateOptions","nonEventAttrs","option","initChart","realListeners","event","handler","resize","e","commit","nextTick","setOption","updateOptions","unwatchOption","publicApi","onMounted","onUnmounted","h","bound01","n","max","isOnePointZero","isPercent","isPercentage","boundAlpha","a","convertToPercentage","pad2","c","rgbToRgb","r","g","b","hue2rgb","p","q","hslToRgb","s","l","rgbToHsv","min","v","d","hsvToRgb","i","f","t","mod","rgbToHex","allow3Char","hex","convertHexToDecimal","parseIntFromHex","val","names","inputToRGB","color","rgb","ok","format","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","_ref","hsv","toHex","_ref2","mix","rgb1","rgb2","amount","getHue","light","hue","getSaturation","saturation","getValue","value","generate","opts","patterns","pColor","colorString","_i","_hsv","_colorString","_ref3","index","opacity","darkColorString","presetPrimaryColors","presetPalettes","presetDarkPalettes","containers","styleElements","usage","createStyleElement","styleElement","insertCss","css","options","position","container","containerId","_objectSpread","target","source","ownKeys","sym","_defineProperty","obj","warn","valid","message","warning","isIconDefinition","node","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","cssInjectedFlag","useInsertStyles","styleStr","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","context","_props$context$attrs","icon","restProps","colors","VueIcon","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_d","_s","_e","err","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","getTwoToneColor","Icon","_classObj","cls","spin","rotate","tabindex","onClick","classObj","svgClassString","iconTabIndex","svgStyle","_createVNode","AntdIcon","LoadingOutlined","LoadingOutlinedSvg","LoadingOutlined$1","_sfc_main$r","ASpin","_component_a_spin","_resolveComponent","_createElementBlock","_hoisted_1","_ctx","_openBlock","_createBlock","_renderSlot","_sfc_main$q","ASkeleton","_component_a_skeleton","withInstall","main","extra","app","comp","transformToComponentProps","mapValues","pageConfig","pageConfigComponentProps","styleList","usePickComponentStyle","excludeStyleList","finalStyleList","without","pick","EVENT_BUS","GLOBAL_CONFIG","GLOBAL_MODEL","REQUEST_MODEL","GLOBAL_TOKEN","REFRESH_PAGE","INDICATOR_URL","_a","BASE_URL","ERD_URL","useOnEvent","events","id","oldId","eventBus","useEmitEvent","type","touchEventId","ref","on","callback","emitEvent","useTransformChartDataByAttrValue","data","dataFieldNames","set","map","item","x","dimensions","dataset","handleFormatter","formatter","formatMoney","decimalPlaces","_value","formatPercentage","strValue","lowerCaseIncludes","v1","v2","useVariablesInText","useNewline","useSpace","variables","variable","statement","reg","textVariables","j","textVariable","usedVariable","useRequestData","callBack","requestUrl","method","headers","requestParams","requestInterval","isOpenRequestTimer","contextRequestUrl","pageMode","getGlobalModel","url","requestData","params","_params","param","record","prop","propKey","operate","mode","urlParams","keys","last","keysLen","isSetUrlParams","res","axios","requestDataTimer","useTransformChartDataByAttrKey","types","dataLen","typesLen","vs","label","m","useImagePath","path","isFormat","imagePath","usePageUrl","pageId","envPageUrl","proPageUrl","request","config","error","_b","_c","status","useRequestDiagramData","getIndicatorList","graphicConfig","indicatorList","leftAxis","show","indicator","getCalculationAxis","it","newIndicator","getSqlCondition","relativeList","list","keyName","searchName","searchType","variateName","watchItem","getSortParams","classification","classifyItem","row","rowIndex","handlerFilterParam","parent","conditions","join","fieldValue","fieldList","getFilterParams","filterList","componentType","xAxisValue","series","seriesItem","firstSeries","classify","sqlConditions","fixedDimSql","dataSourceId","idxLibMode","useValueFormatter","useIndicatorData","requestToken","handleQueryColumn","queryColumn","location","indexCode","handleIndicator","calcType","builtInFormula","builtInValueSource","builtInCalcWay","formula","handleSqlConditions","controlList","control","conditionLabel","conditionKey","conditionValueType","sqlCondition","model","dataViewId","plugin","layer","chartType","classificationList","seriesList","leftAxisList","rightAxisList","queryColumnList","indicators","preview","sort","customGroup","queryColumns","rightAxis","useHrefParamsToGlobalVariables","keyAndValue","_sfc_main$p","style","width","height","originalWidth","originalHeight","ready","observer","initSize","resolve","updateSize","updateScale","currentWidth","currentHeight","realWidth","realHeight","widthScale","heightScale","onResize","initMutationObserver","MutationObserver","removeMutationObserver","debounce","_sfc_render","_cache","$props","$setup","$data","$options","_normalizeStyle","EcanPageConfig","PageConfig","providerConfig","providerConfigComponentProps","_sfc_main$o","expose","setTheme","theme","provide","globalModel","mitt","eventBusKeySet","k","onBeforeUnmount","eventName","tokenNum","requestModel","requestMap","setRequest","requestFn","sortNum","requestFnList","handleRequestFnList","reject","resultList","queryUserToken","touchRequest","requestModelArr","onRefreshPage","EcanProviderConfig","ProviderConfig","textProps","textComponentProps","textEvents","goUp","goDown","_sfc_main$n","Skeleton","myData","dataType","myText","text","handleRequestData","refreshData","click","linkPage","pageUrl","href","_component_skeleton","EcanText","Text","_sfc_main$m","EcanScrollText","ScrollText","timeDisplayProps","timeDisplayComponentProps","_sfc_main$l","time","dayjs","timer","clearTimer","setTimer","EcanTimeDisplay","TimeDisplay","listProps","listComponentProps","listEvents","_sfc_main$k","dataSource","columnStyle","formatFn","contrastClass","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_7","_withCtx","_Fragment","_renderList","count","_createCommentVNode","column","_hoisted_5","_normalizeClass","EcanList","List","proportionProps","proportionComponentProps","proportionEvents","_sfc_main$j","AProgress","myWidth","myValue","defaultValue","valueSet","_component_a_progress","EcanProportion","Proportion","inputProps","inputComponentProps","inputEvents","_sfc_main$i","AInput","setGlobalModel","handleSetGlobalModel","modal","inputChange","inputBlur","_component_a_input","$event","EcanInput","Input","datePickerProps","datePickerComponentProps","datePickerEvents","_sfc_main$h","ADatePicker","getPopupContainer","useCurrentTime","dateChange","locale","_component_a_date_picker","EcanDatePicker","DatePicker","selectProps","selectComponentProps","selectEvents","_sfc_main$g","ASelect","filterOption","input","labelKey","valueKey","labelValue","valueValue","firstOption","selectChange","_component_a_select","EcanSelect","Select","rangePickerProps","rangePickerComponentProps","rangePickerEvents","_sfc_main$f","ARangePicker","startTime","endTime","interval","intervalUnit","_startTime","_endTime","myStartTime","myEndTime","_component_a_range_picker","EcanRangePicker","RangePicker","buttonProps","buttonComponentProps","buttonEvents","_sfc_main$e","AButton","myHref","myTarget","_component_a_button","_createElementVNode","EcanButton","Button","checkboxProps","checkboxComponentProps","checkboxEvents","_sfc_main$d","ACheckboxGroup","myOption","handleDataAndOption","checkboxChange","_component_a_checkbox_group","EcanCheckbox","Checkbox","pieProps","pieComponentProps","pieEvents","useDownloadFile","downloadFileUrl","fileName","blob","dom","use","CanvasRenderer","PieChart","TitleComponent","ToolboxComponent","TooltipComponent","LegendComponent","_sfc_main$c","Spin","AModal","visible","hideModal","isUseLabelColors","marker","seriesName","percent","handleDataset","handleIndicatorDataset","chartData","requestDiagram","handleIndicatorData","newArr","_f","chooseRequestOrDiagram","_component_spin","_component_echarts","_component_a_modal","EcanPie","Pie","lineProps","lineComponentProps","lineEvents","LineChart","_sfc_main$b","xAxisLabelFormatter","yAxisLabelFormatter","tooltipFormatter","useDataFieldNames","temp","keyTypeDataFieldNames","EcanLine","Line","barProps","barComponentProps","barEvents","BarChart","DatasetComponent","_sfc_main$a","ds","indicatorData","columns","rows","fieldNames","EcanBar","Bar","scatterProps","scatterComponentProps","scatterEvents","ScatterChart","_sfc_main$9","y","EcanScatter","Scatter","customGraphProps","customGraphComponentProps","_sfc_main$8","optionCode","evalCopy","echarts","EcanCustomGraph","CustomGraph","comboGraphProps","comboGraphComponentProps","comboGraphEvents","_sfc_main$7","seriesTypes","seriesType","_tooltipFormatter","yAxis","axisIndex","axis","EcanComboGraph","ComboGraph","borderProps","borderComponentProps","borderEvents","_sfc_main$6","borderStyle","_imports_0","_imports_1","_withScopeId","_pushScopeId","_popScopeId","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_14","_toDisplayString","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_15","EcanBorder","Border","modalProps","modalComponentProps","modalEvents","_sfc_main$5","getContainer","modalStyle","scaleWidth","scaleHeight","modalWith","screenWidth","screenHeight","containWidth","containHeight","containStyle","contentStyle","isFullWidth","isFullModal","wrapClassName","className","contain","showModal","onOk","onCancel","_createSlots","component","_resolveDynamicComponent","_mergeProps","EcanModal","Modal","tabsProps","tabsComponentProps","tabsEvents","_sfc_main$4","activeKey","isActive","emitRefreshPage","tabChange","tab","_withModifiers","EcanTabs","Tabs","imageProps","imageComponentProps","_sfc_main$3","myImgUrl","EcanImage","Image","iframeProps","iframeComponentProps","_sfc_main$2","myLink","link","ctxErdUrl","EcanIframe","Iframe","tableProps","tableComponentProps","tableEvents","_sfc_main$1","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","splitY","myColumns","myDataSource","tableColumns","tableDataSource","total","pageNum","pageSize","filterDataIndexList","reactive","handleChildrenColumns","_columns","columnsFixedNum","cellAlign","cellColor","dataIndex","title","tableFilter","headerCellAlign","headerCellColor","useRowIndex","handleColumns","cloneDeep","allFilterOptions","handleFilterCheckboxOptions","filterOptionsMap","_allFilterOptions","optionsSet","_dataSource","handleReverseTable","firstColumns","_data","orderCondition","isUseLoading","tableTotal","tableChange","current","_filters","sorter","field","order","fieldOrder","pagination","simple","formatBoolean","dataColumns","dataRows","customRow","summaryList","calcTotalCount","isCalcTotal","records","start","end","summary","num","filterOptions","_inputValue","setSelectedKeys","clearFilters","_component_a_table","selectedKeys","confirm","action","index2","_component_a_table_summary","_component_a_table_summary_row","_component_a_table_summary_cell","EcanTable","Table","mapProps","mapComponentProps","MapChart","VisualMapComponent","GraphicComponent","_sfc_main","geoBackgroundImageRef","myGeoBackgroundImage","myBackgroundImage","areaColor","symbol","symbolImage","geoCenter","center","isLoadedData","handleRegisterMap","mapJson","registerMap","_withDirectives","EcanMap","Map","install","components"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/common/echarts/composables/api.ts","../src/common/echarts/composables/autoresize.ts","../src/common/echarts/composables/loading.ts","../src/common/echarts/utils.ts","../src/common/echarts/Echarts.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-vue/es/insert-css.js","../node_modules/@ant-design/icons-vue/es/utils.js","../node_modules/@ant-design/icons-vue/es/components/IconBase.js","../node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons-vue/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../src/common/spin/Spin.vue","../src/common/skeleton/Skeleton.vue","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../src/utils/withInstall.ts","../src/utils/props.ts","../src/setting/page-config/props.ts","../src/hooks/usePickComponentStyle.ts","../src/utils/constant.ts","../src/hooks/useOnEvent.ts","../src/hooks/useEmitEvent.ts","../src/hooks/useTransformChartDataByAttrValue.ts","../src/utils/util.ts","../src/hooks/useVariablesInText.ts","../src/hooks/useRequestData.ts","../src/hooks/useTransformChartDataByAttrKey.ts","../src/hooks/useImagePath.ts","../src/hooks/usePageUrl.ts","../src/utils/request.ts","../src/hooks/useRequestDiagramData.ts","../src/hooks/useValueFormatter.ts","../src/hooks/useIndicatorData.ts","../src/hooks/useHrefParamsToGlobalVariables.ts","../src/setting/page-config/PageConfig.vue","../src/setting/page-config/index.ts","../src/setting/provider-config/props.ts","../src/setting/provider-config/ProviderConfig.vue","../src/setting/provider-config/index.ts","../src/text/text/props.ts","../src/assets/go-up.png","../src/assets/go-down.png","../src/text/text/Text.vue","../src/text/text/index.ts","../src/text/scroll-text/ScrollText.vue","../src/text/scroll-text/index.ts","../src/text/time-display/props.ts","../src/text/time-display/TimeDisplay.vue","../src/text/time-display/index.ts","../src/text/list/props.ts","../src/text/list/List.vue","../src/text/list/index.ts","../src/text/proportion/props.ts","../src/text/proportion/Proportion.vue","../src/text/proportion/index.ts","../src/control/input/props.ts","../src/control/input/Input.vue","../src/control/input/index.ts","../src/control/date-picker/props.ts","../src/control/date-picker/DatePicker.vue","../src/control/date-picker/index.ts","../src/control/select/props.ts","../src/control/select/Select.vue","../src/control/select/index.ts","../src/control/range-picker/props.ts","../src/control/range-picker/RangePicker.vue","../src/control/range-picker/index.ts","../src/control/button/props.ts","../src/control/button/Button.vue","../src/control/button/index.ts","../src/control/checkbox/props.ts","../src/control/checkbox/Checkbox.vue","../src/control/checkbox/index.ts","../src/graph/pie/props.ts","../src/hooks/useDownloadFile.ts","../src/graph/pie/Pie.vue","../src/graph/pie/index.ts","../src/graph/line/props.ts","../src/graph/line/Line.vue","../src/graph/line/index.ts","../src/graph/bar/props.ts","../src/graph/bar/Bar.vue","../src/graph/bar/index.ts","../src/graph/scatter/props.ts","../src/graph/scatter/Scatter.vue","../src/graph/scatter/index.ts","../src/graph/custom-graph/props.ts","../src/graph/custom-graph/CustomGraph.vue","../src/graph/custom-graph/index.ts","../src/graph/combo-graph/props.ts","../src/graph/combo-graph/ComboGraph.vue","../src/graph/combo-graph/index.ts","../src/container/border/props.ts","../src/container/border/Border.vue","../src/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/index.ts","../src/container/modal/props.ts","../src/container/modal/Modal.vue","../src/container/modal/index.ts","../src/container/tabs/props.ts","../src/container/tabs/Tabs.vue","../src/container/tabs/index.ts","../src/media/image/props.ts","../src/media/image/Image.vue","../src/media/image/index.ts","../src/media/iframe/props.ts","../src/media/iframe/Iframe.vue","../src/media/iframe/index.ts","../src/table/table/props.ts","../src/table/table/Table.vue","../src/table/table/index.ts","../src/map/map/props.ts","../src/map/map/Map.vue","../src/map/map/index.ts","../src/index.ts"],"sourcesContent":["import { Ref } from 'vue'\nimport { EChartsType, Option } from '../types'\n\nconst METHOD_NAMES = [\n 'getWidth',\n 'getHeight',\n 'getDom',\n 'getOption',\n 'resize',\n 'dispatchAction',\n 'convertToPixel',\n 'convertFromPixel',\n 'containPixel',\n 'getDataURL',\n 'getConnectedDataURL',\n 'appendData',\n 'clear',\n 'isDisposed',\n 'dispose'\n] as const\ntype MethodName = typeof METHOD_NAMES[number];\n\ntype PublicMethods = Pick<EChartsType, MethodName>;\n\nexport function usePublicAPI (\n chart: Ref<EChartsType | undefined>,\n init: (option?: Option) => void\n): PublicMethods {\n function makePublicMethod<T extends MethodName> (\n name: T\n ): (...args: Parameters<EChartsType[T]>) => ReturnType<EChartsType[T]> {\n return (...args) => {\n if (!chart.value) {\n init()\n }\n\n if (!chart.value) {\n throw new Error('ECharts is not initialized yet.')\n }\n return (chart.value[name] as any).apply(chart.value, args)\n }\n }\n\n function makePublicMethods (): PublicMethods {\n const methods = Object.create(null)\n METHOD_NAMES.forEach(name => {\n methods[name] = makePublicMethod(name)\n })\n\n return methods as PublicMethods\n }\n\n return makePublicMethods()\n}\n","import { Ref, watch } from 'vue'\nimport { throttle } from 'echarts/core'\nimport { addListener, removeListener, ResizeCallback } from 'resize-detector'\nimport { EChartsType } from '../types'\n\nexport function useAutoresize (\n chart: Ref<EChartsType | undefined>,\n autoresize: Ref<boolean>,\n root: Ref<HTMLElement | undefined>\n): void {\n let resizeListener: ResizeCallback | null = null\n\n watch([root, chart, autoresize], ([root, chart, autoresize], _, cleanup) => {\n if (root && chart && autoresize) {\n resizeListener = throttle(() => {\n chart.resize()\n }, 100)\n\n addListener(root, resizeListener)\n }\n\n cleanup(() => {\n if (resizeListener && root) {\n removeListener(root, resizeListener)\n }\n })\n })\n}\n\nexport const autoresizeProps = {\n autoresize: Boolean\n}\n","import { inject, unref, computed, Ref, watchEffect } from 'vue'\nimport { EChartsType } from '../types'\n\nexport const LOADING_OPTIONS_KEY = 'ecLoadingOptions'\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport function useLoading (\n chart: Ref<EChartsType | undefined>,\n loading: Ref<boolean>,\n loadingOptions: Ref<UnknownRecord | undefined>\n): void {\n const defaultLoadingOptions = inject(LOADING_OPTIONS_KEY, {}) as\n | UnknownRecord\n | Ref<UnknownRecord>\n const realLoadingOptions = computed(() => ({\n ...unref(defaultLoadingOptions),\n ...loadingOptions?.value\n }))\n\n watchEffect(() => {\n const instance = chart.value\n if (!instance) {\n return\n }\n\n if (loading.value) {\n instance.showLoading(realLoadingOptions.value)\n } else {\n instance.hideLoading()\n }\n })\n}\n\nexport const loadingProps = {\n loading: Boolean,\n loadingOptions: Object\n}\n","type Attrs = {\n [key: string]: any\n}\n\n// Copied from\n// https://github.com/vuejs/vue-next/blob/5a7a1b8293822219283d6e267496bec02234b0bc/packages/shared/src/index.ts#L40-L41\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string): boolean => onRE.test(key)\n\nexport function omitOn (attrs: Attrs): Attrs {\n const result: Attrs = {}\n for (const key in attrs) {\n if (!isOn(key)) {\n result[key] = attrs[key]\n }\n }\n\n return result\n}\n","// 此组件为 vue-echarts\n// 文档:https://github.com/ecomfe/vue-echarts/blob/main/README.zh-Hans.md\nimport {\n defineComponent,\n unref,\n shallowRef,\n toRefs,\n watch,\n computed,\n inject,\n onMounted,\n onUnmounted,\n h,\n nextTick,\n PropType,\n watchEffect\n} from 'vue'\nimport { init as initChart } from 'echarts/core'\nimport {\n EChartsType,\n Option,\n Theme,\n ThemeInjection,\n InitOptions,\n InitOptionsInjection,\n UpdateOptions,\n UpdateOptionsInjection\n} from './types'\nimport {\n usePublicAPI,\n useAutoresize,\n autoresizeProps,\n useLoading,\n loadingProps\n} from './composables'\nimport './style.css'\nimport { omitOn } from './utils'\n\nconst TAG_NAME = 'x-vue-echarts'\nexport const THEME_KEY = 'ecTheme'\nexport const INIT_OPTIONS_KEY = 'ecInitOptions'\nexport const UPDATE_OPTIONS_KEY = 'ecUpdateOptions'\nexport { LOADING_OPTIONS_KEY } from './composables'\n\n// @ts-ignore\nexport default defineComponent({\n name: 'echarts',\n props: {\n option: Object as PropType<Option>,\n theme: {\n type: [Object, String] as PropType<Theme>\n },\n initOptions: Object as PropType<InitOptions>,\n updateOptions: Object as PropType<UpdateOptions>,\n group: String,\n manualUpdate: Boolean,\n ...autoresizeProps,\n ...loadingProps\n },\n inheritAttrs: false,\n // @ts-expect-error listeners for Vue 2 compatibility\n setup (props, { attrs, listeners }) {\n const root = shallowRef<HTMLElement>()\n const chart = shallowRef<EChartsType>()\n const manualOption = shallowRef<Option>()\n const defaultTheme = inject(THEME_KEY, null) as ThemeInjection\n const defaultInitOptions = inject(\n INIT_OPTIONS_KEY,\n null\n ) as InitOptionsInjection\n const defaultUpdateOptions = inject(\n UPDATE_OPTIONS_KEY,\n null\n ) as UpdateOptionsInjection\n\n const { autoresize, manualUpdate, loading, loadingOptions } = toRefs(props)\n\n const realOption = computed(\n () => manualOption.value || props.option || Object.create(null)\n )\n const realTheme = computed(() => props.theme || unref(defaultTheme) || {})\n const realInitOptions = computed(\n () => props.initOptions || unref(defaultInitOptions) || {}\n )\n const realUpdateOptions = computed(\n () => props.updateOptions || unref(defaultUpdateOptions) || {}\n )\n const nonEventAttrs = computed(() => omitOn(attrs))\n\n function init (option?: Option) {\n if (chart.value || !root.value) {\n return\n }\n\n const instance = (chart.value = initChart(\n root.value,\n realTheme.value,\n realInitOptions.value\n ))\n\n if (props.group) {\n instance.group = props.group\n }\n\n let realListeners = listeners\n if (!realListeners) {\n realListeners = {}\n\n Object.keys(attrs)\n .filter(key => key.indexOf('on') === 0 && key.length > 2)\n .forEach(key => {\n // onClick -> c + lick\n // onZr:click -> z + r:click\n const event = key.charAt(2).toLowerCase() + key.slice(3)\n realListeners[event] = attrs[key]\n })\n }\n\n Object.keys(realListeners).forEach(key => {\n const handler = realListeners[key] as any\n\n if (!handler) {\n return\n }\n\n if (key.indexOf('zr:') === 0) {\n instance.getZr().on(key.slice(3).toLowerCase(), handler)\n } else {\n instance.on(key.toLowerCase(), handler)\n }\n })\n\n function resize () {\n if (instance && !instance.isDisposed()) {\n // temporarily suppress errors caused by https://github.com/apache/echarts/issues/14846\n try {\n instance.resize()\n } catch (e) {\n if (e.message === \"Cannot read property 'get' of undefined\") {\n return\n }\n\n throw e\n }\n }\n }\n\n function commit () {\n instance.setOption(option || realOption.value, realUpdateOptions.value)\n }\n\n if (autoresize.value) {\n // Try to make chart fit to container in case container size\n // is changed synchronously or in already queued microtasks\n nextTick(() => {\n resize()\n commit()\n })\n } else {\n commit()\n }\n }\n\n function setOption (option: Option, updateOptions?: UpdateOptions) {\n if (props.manualUpdate) {\n manualOption.value = option\n }\n\n if (!chart.value) {\n init(option)\n } else {\n chart.value.setOption(option, updateOptions || {})\n }\n }\n\n function cleanup () {\n if (chart.value) {\n chart.value.dispose()\n chart.value = undefined\n }\n }\n\n let unwatchOption: (() => void) | null = null\n watch(\n manualUpdate,\n manualUpdate => {\n if (typeof unwatchOption === 'function') {\n unwatchOption()\n unwatchOption = null\n }\n\n if (!manualUpdate) {\n unwatchOption = watch(\n () => props.option,\n option => {\n if (!option) {\n return\n }\n if (!chart.value) {\n init()\n } else {\n chart.value.setOption(option, realUpdateOptions.value)\n }\n },\n { deep: true }\n )\n }\n },\n {\n immediate: true\n }\n )\n\n watch(\n [realTheme, realInitOptions],\n () => {\n cleanup()\n init()\n },\n {\n deep: true\n }\n )\n\n watchEffect(() => {\n if (props.group && chart.value) {\n chart.value.group = props.group\n }\n })\n\n const publicApi = usePublicAPI(chart, init)\n\n useLoading(chart, loading, loadingOptions)\n\n useAutoresize(chart, autoresize, root)\n\n onMounted(() => {\n if (props.option) {\n init()\n }\n })\n\n onUnmounted(cleanup)\n\n return {\n chart,\n root,\n setOption,\n nonEventAttrs,\n ...publicApi\n }\n },\n render () {\n const attrs = { ...this.nonEventAttrs }\n attrs.ref = 'root'\n attrs.class = attrs.class ? ['echarts'].concat(attrs.class) : 'echarts'\n return h(TAG_NAME, attrs)\n }\n})\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","// https://github.com/substack/insert-css\nvar containers = []; // will store container HTMLElement references\n\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries\n\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n } // try to get the correponding container + position styleElement, create it otherwise\n\n\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n } // strip potential UTF-8 BOM if css was read from a file\n\n\n if (css.charCodeAt(0) === 0xfeff) {\n css = css.substr(1, css.length);\n } // actually add the stylesheet\n\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css;\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n}\n\nexport default insertCss;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { nextTick, h } from 'vue';\nimport { generate as generateColor } from '@ant-design/colors';\nimport insertCss from './insert-css';\nexport function warn(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons-vue] \".concat(message));\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, _objectSpread({\n key: key\n }, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return h(node.tag, _objectSpread({\n key: key\n }, rootProps, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n nextTick(function () {\n if (!cssInjectedFlag) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n insertCss(styleStr, {\n prepend: true\n });\n }\n\n cssInjectedFlag = true;\n }\n });\n};","var _excluded = [\"icon\", \"primaryColor\", \"secondaryColor\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props, context) {\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n icon = _props$context$attrs.icon,\n primaryColor = _props$context$attrs.primaryColor,\n secondaryColor = _props$context$attrs.secondaryColor,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({}, restProps, {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n })); // },\n};\n\nIconBase.props = {\n icon: Object,\n primaryColor: String,\n secondaryColor: String,\n focusable: String\n};\nIconBase.inheritAttrs = false;\nIconBase.displayName = 'IconBase';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport VueIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","var _excluded = [\"class\", \"icon\", \"spin\", \"rotate\", \"tabindex\", \"twoToneColor\", \"onClick\"];\nimport { createVNode as _createVNode } from \"vue\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport VueIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n\nsetTwoToneColor('#1890ff');\n\nvar Icon = function Icon(props, context) {\n var _classObj;\n\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n cls = _props$context$attrs[\"class\"],\n icon = _props$context$attrs.icon,\n spin = _props$context$attrs.spin,\n rotate = _props$context$attrs.rotate,\n tabindex = _props$context$attrs.tabindex,\n twoToneColor = _props$context$attrs.twoToneColor,\n onClick = _props$context$attrs.onClick,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var classObj = (_classObj = {\n anticon: true\n }, _defineProperty(_classObj, \"anticon-\".concat(icon.name), Boolean(icon.name)), _defineProperty(_classObj, cls, cls), _classObj);\n var svgClassString = spin === '' || !!spin || icon.name === 'loading' ? 'anticon-spin' : '';\n var iconTabIndex = tabindex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n restProps.tabindex = iconTabIndex;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _createVNode(\"span\", _objectSpread({\n \"role\": \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n \"onClick\": onClick,\n \"class\": classObj\n }), [_createVNode(VueIcon, {\n \"class\": svgClassString,\n \"icon\": icon,\n \"primaryColor\": primaryColor,\n \"secondaryColor\": secondaryColor,\n \"style\": svgStyle\n }, null)]);\n};\n\nIcon.props = {\n spin: Boolean,\n rotate: Number,\n icon: Object,\n twoToneColor: String\n};\nIcon.displayName = 'AntdIcon';\nIcon.inheritAttrs = false;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","<template>\n <div class=\"spin-wrapper\">\n <a-spin\n class=\"spin\"\n :spinning=\"spinning\"\n v-if=\"spinning\"\n :indicator=\"indicator\"\n tip=\"加载中...\"\n >\n </a-spin>\n <slot v-else></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Spin as ASpin } from 'ant-design-vue'\nimport { LoadingOutlined } from '@ant-design/icons-vue'\nimport { defineComponent, h } from 'vue'\nimport 'ant-design-vue/es/spin/style'\nexport default defineComponent({\n props: {\n spinning: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASpin\n },\n setup () {\n const indicator = h(LoadingOutlined, {\n style: {\n fontSize: '24px',\n color: '#1890ff'\n },\n spin: true\n })\n return {\n indicator\n }\n }\n})\n</script>\n\n<style>\n.spin-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.spin {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n</style>\n","<template>\n <a-skeleton active :loading=\"loading\">\n <slot></slot>\n </a-skeleton>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { Skeleton as ASkeleton } from 'ant-design-vue'\nimport 'ant-design-vue/es/skeleton/style'\nexport default defineComponent({\n name: 'Skeleton',\n props: {\n loading: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASkeleton\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(',');\r\n for (let i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n [1 /* TEXT */]: `TEXT`,\r\n [2 /* CLASS */]: `CLASS`,\r\n [4 /* STYLE */]: `STYLE`,\r\n [8 /* PROPS */]: `PROPS`,\r\n [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n [-1 /* HOISTED */]: `HOISTED`,\r\n [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n [1 /* STABLE */]: 'STABLE',\r\n [2 /* DYNAMIC */]: 'DYNAMIC',\r\n [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n // Split the content into individual lines but capture the newline sequence\r\n // that separated each line. This is important because the actual sequence is\r\n // needed to properly take into account the full line length for offset\r\n // comparison\r\n let lines = source.split(/(\\r?\\n)/);\r\n // Separate the lines and newline sequences into separate arrays for easier referencing\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count +=\r\n lines[i].length +\r\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n `loop,open,required,reversed,scoped,seamless,` +\r\n `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\r\n */\r\nfunction includeBooleanAttr(value) {\r\n return !!value || value === '';\r\n}\r\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\r\nconst attrValidationCache = {};\r\nfunction isSSRSafeAttrName(name) {\r\n if (attrValidationCache.hasOwnProperty(name)) {\r\n return attrValidationCache[name];\r\n }\r\n const isUnsafe = unsafeAttrCharRE.test(name);\r\n if (isUnsafe) {\r\n console.error(`unsafe attribute name: ${name}`);\r\n }\r\n return (attrValidationCache[name] = !isUnsafe);\r\n}\r\nconst propsToAttrMap = {\r\n acceptCharset: 'accept-charset',\r\n className: 'class',\r\n htmlFor: 'for',\r\n httpEquiv: 'http-equiv'\r\n};\r\n/**\r\n * CSS properties that accept plain numbers\r\n */\r\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\r\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\r\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\r\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\r\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\r\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\r\n // SVG\r\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width`);\r\n/**\r\n * Known attributes, this is used for stringification of runtime static nodes\r\n * so that we don't stringify bindings that cannot be set from HTML.\r\n * Don't also forget to allow `data-*` and `aria-*`!\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\r\n */\r\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\r\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\r\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\r\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\r\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\r\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\r\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\r\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\r\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\r\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\r\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\r\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\r\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\r\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\r\n `value,width,wrap`);\r\n/**\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\r\n */\r\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\r\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\r\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\r\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\r\n `color-interpolation-filters,color-profile,color-rendering,` +\r\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\r\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\r\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\r\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\r\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\r\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\r\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\r\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\r\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\r\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\r\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\r\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\r\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\r\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\r\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\r\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\r\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\r\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\r\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\r\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\r\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\r\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\r\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\r\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\r\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\r\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\r\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\r\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\r\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\r\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\r\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\r\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\r\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\r\n if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item)\r\n ? parseStringStyle(item)\r\n : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n else if (isString(value)) {\r\n return value;\r\n }\r\n else if (isObject(value)) {\r\n return value;\r\n }\r\n}\r\nconst listDelimiterRE = /;(?![^(]*\\))/g;\r\nconst propertyDelimiterRE = /:(.+)/;\r\nfunction parseStringStyle(cssText) {\r\n const ret = {};\r\n cssText.split(listDelimiterRE).forEach(item => {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiterRE);\r\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return ret;\r\n}\r\nfunction stringifyStyle(styles) {\r\n let ret = '';\r\n if (!styles || isString(styles)) {\r\n return ret;\r\n }\r\n for (const key in styles) {\r\n const value = styles[key];\r\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\r\n if (isString(value) ||\r\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\r\n // only render valid values\r\n ret += `${normalizedKey}:${value};`;\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction normalizeClass(value) {\r\n let res = '';\r\n if (isString(value)) {\r\n res = value;\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + ' ';\r\n }\r\n }\r\n }\r\n else if (isObject(value)) {\r\n for (const name in value) {\r\n if (value[name]) {\r\n res += name + ' ';\r\n }\r\n }\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\r\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\r\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\r\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\r\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\r\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\r\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\r\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\r\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\r\n 'option,output,progress,select,textarea,details,dialog,menu,' +\r\n 'summary,template,blockquote,iframe,tfoot';\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\r\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\r\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\r\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\r\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\r\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\r\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\r\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\r\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\r\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\r\n 'text,textPath,title,tspan,unknown,use,view';\r\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\r\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\r\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\r\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\r\nfunction escapeHtml(string) {\r\n const str = '' + string;\r\n const match = escapeRE.exec(str);\r\n if (!match) {\r\n return str;\r\n }\r\n let html = '';\r\n let escaped;\r\n let index;\r\n let lastIndex = 0;\r\n for (index = match.index; index < str.length; index++) {\r\n switch (str.charCodeAt(index)) {\r\n case 34: // \"\r\n escaped = '"';\r\n break;\r\n case 38: // &\r\n escaped = '&';\r\n break;\r\n case 39: // '\r\n escaped = ''';\r\n break;\r\n case 60: // <\r\n escaped = '<';\r\n break;\r\n case 62: // >\r\n escaped = '>';\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (lastIndex !== index) {\r\n html += str.slice(lastIndex, index);\r\n }\r\n lastIndex = index + 1;\r\n html += escaped;\r\n }\r\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\r\n}\r\n// https://www.w3.org/TR/html52/syntax.html#comments\r\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\r\nfunction escapeHtmlComment(src) {\r\n return src.replace(commentStripRE, '');\r\n}\n\nfunction looseCompareArrays(a, b) {\r\n if (a.length !== b.length)\r\n return false;\r\n let equal = true;\r\n for (let i = 0; equal && i < a.length; i++) {\r\n equal = looseEqual(a[i], b[i]);\r\n }\r\n return equal;\r\n}\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n let aValidType = isDate(a);\r\n let bValidType = isDate(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\r\n }\r\n aValidType = isArray(a);\r\n bValidType = isArray(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\r\n }\r\n aValidType = isObject(a);\r\n bValidType = isObject(b);\r\n if (aValidType || bValidType) {\r\n /* istanbul ignore if: this if will probably never be called */\r\n if (!aValidType || !bValidType) {\r\n return false;\r\n }\r\n const aKeysCount = Object.keys(a).length;\r\n const bKeysCount = Object.keys(b).length;\r\n if (aKeysCount !== bKeysCount) {\r\n return false;\r\n }\r\n for (const key in a) {\r\n const aHasKey = a.hasOwnProperty(key);\r\n const bHasKey = b.hasOwnProperty(key);\r\n if ((aHasKey && !bHasKey) ||\r\n (!aHasKey && bHasKey) ||\r\n !looseEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return String(a) === String(b);\r\n}\r\nfunction looseIndexOf(arr, val) {\r\n return arr.findIndex(item => looseEqual(item, val));\r\n}\n\n/**\r\n * For converting {{ interpolation }} values to displayed strings.\r\n * @private\r\n */\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) ||\r\n (isObject(val) &&\r\n (val.toString === objectToString || !isFunction(val.toString)))\r\n ? JSON.stringify(val, replacer, 2)\r\n : String(val);\r\n};\r\nconst replacer = (_key, val) => {\r\n // can't use isRef here since @vue/shared has no deps\r\n if (val && val.__v_isRef) {\r\n return replacer(_key, val.value);\r\n }\r\n else if (isMap(val)) {\r\n return {\r\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\r\n entries[`${key} =>`] = val;\r\n return entries;\r\n }, {})\r\n };\r\n }\r\n else if (isSet(val)) {\r\n return {\r\n [`Set(${val.size})`]: [...val.values()]\r\n };\r\n }\r\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\r\n return String(val);\r\n }\r\n return val;\r\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\n/**\r\n * Always return false.\r\n */\r\nconst NO = () => false;\r\nconst onRE = /^on[^a-z]/;\r\nconst isOn = (key) => onRE.test(key);\r\nconst isModelListener = (key) => key.startsWith('onUpdate:');\r\nconst extend = Object.assign;\r\nconst remove = (arr, el) => {\r\n const i = arr.indexOf(el);\r\n if (i > -1) {\r\n arr.splice(i, 1);\r\n }\r\n};\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isArray = Array.isArray;\r\nconst isMap = (val) => toTypeString(val) === '[object Map]';\r\nconst isSet = (val) => toTypeString(val) === '[object Set]';\r\nconst isDate = (val) => val instanceof Date;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst toRawType = (value) => {\r\n // extract \"RawType\" from strings like \"[object RawType]\"\r\n return toTypeString(value).slice(8, -1);\r\n};\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\nconst isIntegerKey = (key) => isString(key) &&\r\n key !== 'NaN' &&\r\n key[0] !== '-' &&\r\n '' + parseInt(key, 10) === key;\r\nconst isReservedProp = /*#__PURE__*/ makeMap(\r\n// the leading comma is intentional so empty string \"\" is also included\r\n',key,ref,ref_for,ref_key,' +\r\n 'onVnodeBeforeMount,onVnodeMounted,' +\r\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\r\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\r\nconst cacheStringFunction = (fn) => {\r\n const cache = Object.create(null);\r\n return ((str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n });\r\n};\r\nconst camelizeRE = /-(\\w)/g;\r\n/**\r\n * @private\r\n */\r\nconst camelize = cacheStringFunction((str) => {\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n});\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\n/**\r\n * @private\r\n */\r\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\r\n/**\r\n * @private\r\n */\r\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\r\n/**\r\n * @private\r\n */\r\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\r\n// compare whether a value has changed, accounting for NaN.\r\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\r\nconst invokeArrayFns = (fns, arg) => {\r\n for (let i = 0; i < fns.length; i++) {\r\n fns[i](arg);\r\n }\r\n};\r\nconst def = (obj, key, value) => {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n enumerable: false,\r\n value\r\n });\r\n};\r\nconst toNumber = (val) => {\r\n const n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n};\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { NOOP } from '@vue/shared'\nimport { Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport const withInstall = <T, E extends Record<string, any>>(\n main: T,\n extra?: E\n) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app) => {\n app.config.globalProperties[name] = fn\n }\n\n return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n (component as SFCWithInstall<T>).install = NOOP\n\n return component as SFCWithInstall<T>\n}\n","import { mapValues } from 'lodash-es'\n\ninterface Event {\n // 当前组件触发什么事件类型后执行\n on: string\n // 被触发的组件id\n target: string\n // 被触发的组件:想要触发事件的类型\n emit: string\n}\n\nexport type Events = Event []\n\nexport type RequestMethod = 'get' | 'post' | 'put' | 'delete' | 'head'\n\nexport interface RequestParam {\n key: string,\n value: any\n}\n\nexport type RequestParams = RequestParam []\n\nexport interface Props {\n id: string // 组件Id,使用UUID\n name: string // 组件名称\n keyName: string // 控件\n type: string // 组件类型\n width: string // 组件宽度\n height: string // 组件高度\n position: string // 定位\n top: string // 组件左上定点x轴位置(相对于画布)\n left: string // 组件左上定点y轴位置(相对于画布)\n zIndex: number // 组件层级\n rotate: string // 旋转角度\n isShow: boolean // 是否展示\n isRender: boolean // 是否渲染\n events: Events\n requestUrl: string // 请求地址\n requestMethod: RequestMethod // 请求方式\n requestHeaders: { [key: string]: any } // 请求头部\n isOpenRequestTimer: boolean // 开启请求定时器\n requestInterval: number // 请求间隔\n requestParams: RequestParams // 请求参数\n requestSort: number, // 请求初始化优先级,越大越优先\n dataType: 'static' | 'request' | 'indicator'\n}\n\nexport const props: Props = {\n id: '',\n name: '',\n keyName: '',\n type: '',\n width: '100px',\n height: '40px',\n position: 'absolute',\n top: '0px',\n left: '0px',\n zIndex: 1,\n rotate: '0deg',\n isShow: true,\n isRender: true,\n requestUrl: '',\n requestMethod: 'get',\n requestHeaders: {},\n isOpenRequestTimer: false,\n requestInterval: 1,\n requestSort: 0,\n requestParams: [{ key: null, value: { } }],\n events: [],\n dataType: 'static'\n}\n\nexport const transformToComponentProps = <T extends {}>(props: T) => {\n // mapValues方法: 第一参数是要遍历的对象, 第二个参数是每次迭代时调用的函数\n return mapValues(props, (value) => {\n if (value == null) return {}\n return {\n type: (value as any).constructor,\n default: value\n }\n })\n}\n\nexport interface EventsProp {\n events: Events\n}\n\ninterface DataItem {\n name: string | number\n value: string | number\n type?: string\n}\n\nexport type Data = DataItem []\n\n// 数据转化映射格式\n\nexport interface KeyTypeDataFieldNames {\n name: string\n types: {\n label: string\n value: string\n } []\n}\n\nexport interface ValueTypeDataFieldNames {\n name: string\n value: string\n type: string\n}\n","import { transformToComponentProps } from '@/utils/props'\n\nexport interface PageConfig{\n width: string\n height: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n contextRequestUrl: string\n mode: 'normal' | 'preview'\n}\n\n// 页面组件默认配置\nexport const pageConfig:PageConfig = {\n width: '1920px',\n height: '1080px',\n backgroundColor: '#ffffff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n contextRequestUrl: '',\n mode: 'normal'\n}\n\n// 转化默认属性\nexport const pageConfigComponentProps = transformToComponentProps(pageConfig)\n","import { computed, HTMLAttributes } from 'vue'\nimport { pick, without } from 'lodash-es'\n// 需要添加组件的 style 属性\nconst styleList = [\n 'width',\n 'height',\n 'color',\n 'position',\n 'top',\n 'left',\n 'rotate',\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'textDecoration',\n 'textAlign',\n 'verticalAlign',\n 'overflow',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundSize',\n 'borderWidth',\n 'borderStyle',\n 'borderRadius',\n 'borderColor',\n 'textShadow',\n 'justifyContent',\n 'alignItems',\n 'zIndex'\n]\n/**\n * 过滤不是 style 属性的组件属性\n * @param props 组件属性\n * @param excludeStyleList 剔除组件的属性\n * @returns style属性\n */\nexport const usePickComponentStyle = <T>(props: Readonly<Partial<T>>, excludeStyleList: string [] = []) => {\n // 再选择需要的组件属性\n const finalStyleList = without(styleList, ...excludeStyleList)\n return computed<HTMLAttributes>(() => pick(props, finalStyleList))\n}\n\nexport default usePickComponentStyle\n","export const EVENT_BUS = 'EVENT_BUS'\nexport const GLOBAL_CONFIG = 'GLOBAL_CONFIG'\nexport const GLOBAL_MODEL = 'GLOBAL_MODEL'\nexport const REQUEST_MODEL = 'REQUEST_MODEL'\nexport const GLOBAL_TOKEN = 'GLOBAL_TOKEN'\nexport const REFRESH_PAGE = 'REFRESH_PAGE'\n// @ts-ignore\nexport const INDICATOR_URL = window?.config?.indicatorURL\n// @ts-ignore\nexport const UPLOAD_PATH = window?.config?.uploadPath || '/api'\n// @ts-ignore\nexport const BASE_URL = window?.config?.routerBaseURL || './'\n// @ts-ignore\nexport const ERD_URL = window?.config?.erdURL || ''\n","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '@/utils/constant'\nexport const useOnEvent = <T extends { [id: string]: any}>(props: Readonly<Partial<T>>, events: { [key: string]: any }) => {\n watch(() => props.id, (id, oldId) => {\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n onEvent: (i: string, e: { [key: string]: any }) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n offEvent: (i: string) => void 0\n })\n if (id != null && id !== '') {\n eventBus.onEvent(id, events)\n }\n }, {\n immediate: true\n })\n}\n\nexport default useOnEvent\n","import { inject, ref } from 'vue'\nimport { Events } from '@/utils/props'\nimport { EVENT_BUS, GLOBAL_CONFIG } from '@/utils/constant'\n/**\n * 触发事件\n * @param props 事件数据\n */\nexport const useEmitEvent = (props: { [key:string]: any }) => {\n const events = props.events as Events\n const id = props.id\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n emitEvent: (id:string, type: string) => void 0\n })\n\n const { touchEventId } = inject(GLOBAL_CONFIG, {\n touchEventId: ref('')\n })\n /**\n * @param on 触发事件\n * @param callback 回调函数\n */\n return (on: string, callback: Function = () => {}) => {\n return function () {\n // 透传\n callback.call(this, ...arguments)\n if (eventBus) {\n const { emitEvent } = eventBus\n events.forEach(event => {\n if (on === event.on) {\n try {\n touchEventId.value = id\n emitEvent(event.target, event.emit)\n } catch (e) {\n console.error(e)\n }\n }\n })\n }\n }\n }\n}\n\nexport default useEmitEvent\n","import { Data, ValueTypeDataFieldNames } from '@/utils/props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrValue = (data: Data, dataFieldNames?: ValueTypeDataFieldNames) => {\n let { name = 'name', value = 'value', type = 'type' } = dataFieldNames || {}\n // 处去字符串\n name = name?.trim()\n value = value?.trim()\n type = type?.trim()\n const set = new Set()\n const map = new Map()\n const len = data.length\n for (let i = 0; i < len; i++) {\n const item = data[i]\n // x轴\n const x = item[name] || ''\n // y轴\n const y = item[value] || ''\n // 系列(类型)\n const t = item[type] || ''\n set.add(x)\n if (map.has(t)) {\n const arr = map.get(t)\n arr.push({ name: x, value: y, ...item })\n map.set(t, arr)\n } else {\n map.set(t, [{ name: x, value: y, ...item }])\n }\n }\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\nexport default useTransformChartDataByAttrValue\n","export const handleAxisLabelFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n/**\n * 处理图表format, 目前只做 \\\\n => \\n 转化\n * @param formatter 格式化字符串\n */\nexport const handleFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n\n/**\n * 格式化金额\n * @param value 数值\n * @param decimalPlaces 格式化位数\n */\nexport const formatMoney = (value: string | number, decimalPlaces:number = 2) => {\n const _value = parseFloat(value + '')\n if (isNaN(_value) || _value < 0) return value\n return _value.toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n}\n\nexport const formatPercentage = (value: string | number, decimalPlaces:number = 2) => {\n const strValue = value + ''\n if (strValue.includes('%')) return value\n const _value = parseFloat(strValue)\n if (isNaN(_value)) return value\n return `${(_value * 100).toFixed(decimalPlaces)}%`\n}\n\n/**\n * 字符串1 中是否包含 字符串2 (会全部转成小写)\n * @param v1 字符串1\n * @param v2 字符串2\n * @constructor\n */\nexport const lowerCaseIncludes = (v1:any, v2:any): boolean => {\n if (typeof v1 === 'string' && typeof v2 === 'string') {\n return v1.toLocaleLowerCase().includes(v2.toLocaleLowerCase())\n }\n return false\n}\n","export const useVariablesInText = (\n formatter: string = '',\n data: { [key: string]:any } = {},\n { useNewline = false, useSpace = false } = {}\n) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (formatter).match(/\\{(.+?)\\}/g)\n if (variables == null || variables.length === 0) {\n return formatter\n }\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, -1)\n const reg = /[\\u4e00-\\u9fa5a-z-_A-Z]+[0-9]*/g\n const textVariables = statement.match(reg)\n for (let j = 0; j < textVariables.length; j++) {\n const textVariable = textVariables[j]\n const usedVariable = data[textVariable]\n if (usedVariable != null) {\n // 使用的变量\n statement = statement.replace(textVariable, usedVariable)\n }\n // else {\n // 过滤未使用的变量\n // statement = statement.replace(textVariable, '')\n // }\n }\n try {\n // 匹配加减乘除\n // eslint-disable-next-line no-eval\n const eval2 = eval\n statement = eval2(statement)\n } catch (e) {\n // console.error(e)\n }\n formatter = formatter.replace(variable, statement)\n }\n // 替换换行\n if (useNewline) {\n formatter = formatter?.replace(/\\n|\\\\n/g, '<br/>')\n }\n // 替换空格\n if (useSpace) {\n formatter = formatter?.replace(/\\s{2,}?/g, ' ')\n }\n return formatter\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const url = useVariablesInText(requestUrl)\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey, operate } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 如果传入响应式数据优取响应式\n let v = null\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n if (isNeedFormat) {\n // 操作时间\n const { value, type, mode } = operate || {}\n if (value && type && mode) {\n switch (type) {\n case 'add':\n v = unref(p).add(value, mode)\n break\n case 'minus':\n v = unref(p).subtract(value, mode)\n break\n }\n }\n if (v == null) {\n v = unref(p)\n }\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n // 格式化时间\n v = v?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref\n // 判断他是不是对象\n if (Object.prototype.toString.call(p) === '[object Object]') {\n v = p[propKey || 'value']\n } else {\n v = p\n }\n // v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.config.requestParams, ...params, ..._params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n","import { Data, KeyTypeDataFieldNames } from '@/utils/props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrKey = (data: Data = [], dataFieldNames: KeyTypeDataFieldNames) => {\n let { name = 'name', types = [] } = dataFieldNames || {}\n name = name?.trim() || name\n const set = new Set()\n const map = new Map<string, any []>()\n const dataLen = data.length\n const typesLen = types.length\n // 只有一条记录\n if (dataLen === 1) {\n const vs = []\n // data 为一个值取第一个\n for (let i = 0; i < typesLen; i++) {\n const type = types[i]\n const { label, value } = type\n const v = { ...data[0], value: data[0][value] }\n set.add(label)\n // 值列表\n vs.push(v)\n }\n const n = data[0][name] || ''\n map.set(n, vs)\n } else {\n for (let i = 0; i < dataLen; i++) {\n const item = data[i]\n const x = item[name]\n set.add(x)\n for (let j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = { ...item, value: item[value] }\n if (map.has(label)) {\n const m = map.get(label)\n m.push(v)\n map.set(label, m)\n } else {\n map.set(label, [v])\n }\n }\n }\n }\n\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\n\nexport default useTransformChartDataByAttrKey\n","export const useImagePath = (path:string, isFormat: boolean = false) => {\n if (!path) return path\n let imagePath: string = ''\n if (path?.includes('://')) {\n imagePath = path\n } else {\n // @ts-ignore\n imagePath = window?.config?.uploadPath + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '@/utils/constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `${BASE_URL}/preview?pageId=${pageId}`\n const proPageUrl = `${BASE_URL}/${pageId}`\n return pageMode === 'preview' ? envPageUrl : proPageUrl\n}\n\nexport default usePageUrl\n","import axios from 'axios'\nimport { message } from 'ant-design-vue'\n\nexport const request = axios.create({\n // timeout: 1000 * 15\n})\nrequest.interceptors.request.use((config) => {\n return config\n}, (error) => {\n return Promise.reject(error)\n})\n\nrequest.interceptors.response.use((config) => {\n if (+config?.data?.code === 500) {\n message.error({\n content: config?.data?.msg || config?.data?.message || '服务器异常',\n key: 'SERVER_ERROR'\n })\n }\n return config\n}, (error) => {\n if (error.message.includes('timeout')) {\n message.error({\n content: '网络连接超时,请重试!',\n key: 'TIMEOUT'\n })\n } else {\n const { status } = error.response\n if (status >= 400 && status < 500) {\n message.error({\n content: '请求异常',\n key: 'REQUEST_ERROR'\n })\n }\n\n if (status >= 500) {\n message.error({\n content: '服务器异常',\n key: 'REQUEST_ERROR'\n })\n }\n }\n return Promise.reject(error)\n})\n\nexport default request\n","import { INDICATOR_URL, GLOBAL_MODEL } from '@/utils/constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '@/utils/request'\r\nimport { message } from 'ant-design-vue'\r\n\r\n/**\r\n * 请求图表数据接口\r\n * @returns {{requestDiagram: () => Promise<AxiosResponse<any>>}}\r\n */\r\nexport const useRequestDiagramData = (props) => {\r\n // 获取到组件数据\r\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\r\n // @ts-ignore\r\n // eslint-disable-next-line no-void\r\n getGlobalModel: (key: string) => void 0\r\n })\r\n const getIndicatorList = (graphicConfig) => {\r\n const indicatorList = []\r\n // 左值轴、指标\r\n graphicConfig?.leftAxisList.forEach(leftAxis => {\r\n if (leftAxis) {\r\n let show = false\r\n if (graphicConfig.leftAxis.includes(leftAxis.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: leftAxis.name,\r\n columnName: leftAxis.label,\r\n aggregate: leftAxis.calcValue ? leftAxis.calcValue : 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = leftAxis.indexCode\r\n }\r\n indicator = getCalculationAxis(leftAxis, indicator)\r\n indicatorList.push(indicator)\r\n }\r\n })\r\n // 右值轴\r\n graphicConfig.rightAxisList.forEach(it => {\r\n let show = false\r\n if (graphicConfig.rightAxis.includes(it.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: it.name,\r\n columnName: it.label,\r\n aggregate: 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n indicator = getCalculationAxis(it, indicator)\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = it.indexCode\r\n }\r\n indicatorList.push(indicator)\r\n })\r\n\r\n return indicatorList\r\n }\r\n\r\n /**\r\n * 获取计算指标\r\n * @param item\r\n * @param indicator\r\n */\r\n const getCalculationAxis = <T> (item, indicator: T): T => {\r\n const newIndicator: any = { ...indicator }\r\n if (item.calcMethod) { // 来源:新增计算指标\r\n if (item.calcMethod === 'FORMULA') { // 公式\r\n if (item.formulafuc) {\r\n newIndicator.formula = item.formulafuc\r\n }\r\n newIndicator.calcType = 'FORMULA'\r\n } else {\r\n newIndicator.builtInFormula = item.calculmethod\r\n newIndicator.calcType = 'BUILT_IN'\r\n if (item.comeFrom) {\r\n newIndicator.builtInValueSource = item.comeFrom\r\n }\r\n if (item.accessPrinciple) {\r\n newIndicator.builtInCalcWay = item.accessPrinciple\r\n }\r\n }\r\n } else { // 来源:视图拖拽\r\n // @ts-ignore\r\n newIndicator.calcType = 'COLUMN'\r\n }\r\n\r\n return newIndicator\r\n }\r\n\r\n /**\r\n * 获取查询条件\r\n * TODO 检查除日期外的特殊逻辑\r\n * @param relativeList\r\n * @returns {any[]}\r\n */\r\n const getSqlCondition = (relativeList = []) => {\r\n // 关联\r\n const list = []\r\n for (let i = 0; i < relativeList.length; i++) {\r\n const { keyName, searchName, searchType, variateName, id } = relativeList[i]\r\n const item: any = {\r\n alias: keyName,\r\n fieldName: searchName,\r\n rule: searchType || 'NONE',\r\n fieldValue: '',\r\n valueType: '',\r\n variateName\r\n }\r\n const watchItem = getGlobalModel(id) || {}\r\n if (searchName === 'the_date') {\r\n item.valueType = 'DATE'\r\n } else if (['hbdwbh', 'hbdwbh_name'].includes(searchName)) {\r\n item.valueType = 'TEXT'\r\n }\r\n if (watchItem.type === 'ecanDatePicker') {\r\n item.dateFormat = watchItem.format\r\n const formatter = unref(watchItem)?.value.format\r\n if (typeof formatter === 'function') {\r\n item.fieldValue = formatter(watchItem?.format)\r\n }\r\n }\r\n list.push(item)\r\n }\r\n return list\r\n }\r\n\r\n const getSortParams = (classification, list) => {\r\n // 分类项中的排序\r\n const classifyItem = list.find(item => {\r\n return item.name === classification.label\r\n })\r\n if (classifyItem.sort.type) {\r\n if (classifyItem.sort.type !== 'CUSTOM') {\r\n classification.sort = {\r\n label: classifyItem.sort.label,\r\n columnName: classifyItem.sort.columnName,\r\n type: 'NORMAL',\r\n order: classifyItem.sort.type\r\n }\r\n } else {\r\n classification.sort = {\r\n label: classifyItem.label,\r\n columnName: classifyItem.columnName,\r\n type: 'CUSTOM',\r\n customOrderColumns: classifyItem.sort.customOrderColumns\r\n }\r\n }\r\n }\r\n if (classifyItem.customGroup) {\r\n if (classifyItem.customGroup.groupList.length > 1) { // 0或1表示未分组\r\n classification.customGroup = {\r\n groupInfoMap: {},\r\n otherGroupName: ''\r\n }\r\n classifyItem.customGroup.groupList.forEach((row, rowIndex) => {\r\n if (rowIndex !== 0) {\r\n classification.customGroup.groupInfoMap[row.key] = row.value\r\n }\r\n })\r\n classification.customGroup.otherGroupName = classifyItem.customGroup.otherName || ''\r\n }\r\n }\r\n classification.rangeIndexTypeGuid = classifyItem.typeGuid\r\n classification.customFilterSqlPart = classifyItem.filterSql || ''\r\n }\r\n\r\n const handlerFilterParam = (parent, conditions) => {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n if (parent.children[i].children.length > 0) {\r\n let join = ''\r\n if (parent.type === 'and') {\r\n join = '&&'\r\n } else {\r\n join = '||'\r\n }\r\n conditions.push({ conditions: [], join: join })\r\n handlerFilterParam(parent.children[i], conditions[conditions.length - 1].conditions)\r\n } else {\r\n if (parent.children[i].fieldName) {\r\n let fieldValue = ''\r\n const item: any = {\r\n fieldName: parent.children[i].fieldName,\r\n fieldType: parent.children[i].itemType,\r\n rule: parent.children[i].rule,\r\n fieldValue: '',\r\n label: parent.children[i].label,\r\n version: parent.children[i].version ? parent.children[i].version : 100, // 兼容图形化配置时传显示的label,之前的传字段就是100的,label版本为101\r\n targetSource: parent.children[i].targetSource ? parent.children[i].targetSource : ''\r\n }\r\n fieldValue = JSON.parse(JSON.stringify(parent.children[i].fieldValue))\r\n if (parent.children[i].itemType === 'DATE') {\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n if (parent.children[i].selectType === 'time') { // 自定义时间\r\n if (parent.children[i].absoluteBool) { // 相对时间\r\n fieldValue = '#######'\r\n item.calcWays = parent.children[i].calcWays\r\n } else { // 取配置值\r\n // TODO\r\n // fieldValue = moment(fieldValue).format(parent.children[i].format)\r\n }\r\n } else if (parent.children[i].selectType === 'component') { // 关联控件\r\n fieldValue = '${' + parent.children[i].relateCompent + '}'\r\n }\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n } else {\r\n if (Object.prototype.toString.call(fieldValue) === '[object Array]') { // 选中后台查询值\r\n const fieldList: any = []\r\n for (let n = 0; n < fieldValue.length; n++) {\r\n if (fieldValue[n] !== '全选') {\r\n fieldList.push(fieldValue[n])\r\n }\r\n }\r\n fieldValue = fieldList.join(',')\r\n }\r\n }\r\n item.fieldValue = fieldValue\r\n if (parent.children.length > 1 && i !== parent.children.length - 1) {\r\n if (parent.type === 'and') {\r\n item.join = '&&'\r\n } else {\r\n item.join = '||'\r\n }\r\n }\r\n conditions.push(item)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 筛选变量处理\r\n const getFilterParams = (type, list, graphicConfig) => {\r\n if (!type) {\r\n return\r\n }\r\n const classifyItem = graphicConfig[list].find(item => {\r\n return item.name === type.label\r\n })\r\n if (!classifyItem) {\r\n return\r\n }\r\n const conditions = []\r\n const filterList = classifyItem.filterList\r\n if (filterList) {\r\n for (let i = 0; i < filterList.length; i++) {\r\n if (filterList[i].children.length > 0) {\r\n handlerFilterParam(filterList[i], conditions)\r\n }\r\n }\r\n }\r\n return conditions\r\n }\r\n\r\n return async function () {\r\n const componentType = props.type\r\n let graphicConfig = props.graphicConfig\r\n if (!graphicConfig || Object.keys(graphicConfig).length === 0) {\r\n graphicConfig = {\r\n classify: [],\r\n classifyList: [],\r\n series: [],\r\n seriesList: [],\r\n leftAxis: [],\r\n leftAxisList: [],\r\n rightAxis: [],\r\n rightAxisList: [],\r\n relativeList: []\r\n }\r\n }\r\n const xAxisValue = graphicConfig.classify\r\n const yAxisValue = [...graphicConfig.leftAxis, ...graphicConfig.rightAxis]\r\n if (yAxisValue.length === 0) {\r\n message.error('当前y轴无配置信息')\r\n return\r\n }\r\n\r\n // 获取值轴参数\r\n const indicatorList = getIndicatorList(graphicConfig)\r\n // 获取系列值\r\n let series\r\n if (Array.isArray(graphicConfig.series) && graphicConfig.series.length > 0) {\r\n const seriesItem = graphicConfig.seriesList?.find(item => {\r\n const firstSeries = graphicConfig.series[0]\r\n return item.name === firstSeries || item.nameBak === firstSeries\r\n })\r\n if (seriesItem != null) {\r\n series = {\r\n label: seriesItem.name,\r\n columnName: seriesItem.label\r\n }\r\n }\r\n }\r\n // 获取分类\r\n let classification\r\n if (xAxisValue.length > 0) {\r\n classification = {\r\n label: xAxisValue[0],\r\n columnName: xAxisValue[0]\r\n }\r\n const classify = graphicConfig.classifyList?.find(item => {\r\n return item?.name === xAxisValue[0] || item?.nameBak === xAxisValue[0]\r\n }) || {}\r\n classification.columnName = classify.label\r\n // 获取排序信息\r\n getSortParams(classification, graphicConfig.classifyList)\r\n classification.conditions = getFilterParams(classification, 'classifyList', graphicConfig) || []\r\n }\r\n if (series) {\r\n // 获取排序信息\r\n getSortParams(series, graphicConfig.seriesList)\r\n series.conditions = getFilterParams(series, 'seriesList', graphicConfig) || []\r\n }\r\n\r\n for (let t = 0; t < indicatorList.length; t++) {\r\n if (indicatorList[t].location === 'RIGHT') {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'rightAxisList', graphicConfig)\r\n } else {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'leftAxisList', graphicConfig)\r\n }\r\n }\r\n\r\n let sqlConditions\r\n if (graphicConfig?.pageMode === 'design') {\r\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\r\n sqlConditions = graphicConfig.sqlConditions ?? []\r\n } else {\r\n sqlConditions = getSqlCondition(graphicConfig?.relativeList)\r\n }\r\n let source = 'SQL_VIEW'\r\n let fixedDimSql = ''\r\n let dataSourceId = ''\r\n let idxLibMode = ''\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n source = 'INDICATOR_LIB'\r\n fixedDimSql = graphicConfig.fixedDimSql\r\n dataSourceId = graphicConfig.dataSourceId\r\n idxLibMode = graphicConfig.idxLibMode\r\n }\r\n\r\n const map = {\r\n ecanBar: 'bar',\r\n ecanLine: 'line',\r\n ecanPie: 'pie',\r\n ecanScatter: 'scatter'\r\n }\r\n\r\n try {\r\n const res = await request.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\r\n headers: {\r\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\r\n current_context: 'ygt'\r\n }\r\n })\r\n\r\n return request.post(`${INDICATOR_URL}/diagram`, {\r\n dataViewId: graphicConfig.dataViewId,\r\n plugin: '1',\r\n layer: '2',\r\n chartType: map[componentType],\r\n classification,\r\n indicatorList,\r\n series,\r\n sqlConditions,\r\n source,\r\n fixedDimSql,\r\n dataSourceId,\r\n idxLibMode\r\n }, {\r\n headers: { Authentication: res.data.data.token }\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n}\r\n\r\nexport default useRequestDiagramData\r\n","export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) {\n return value\n }\n const len = variables.length\n for (let i = 0; i < len; i++) {\n const variable = variables[i]\n if (variable == null || variable === '') break\n let statement = variable.slice(1, -1)\n statement = statement?.replace(/value/g, value)\n try {\n // 匹配加减乘除\n let result = statement\n if ((/[+\\-*/%]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n result = eval2(statement)\n }\n formatter = formatter.replace(variable, result)\n } catch (e) {\n formatter = formatter.replace(variable, statement)\n console.warn(e)\n }\n }\n return formatter\n}\n\nexport default useValueFormatter\n","import { GLOBAL_MODEL, INDICATOR_URL, GLOBAL_TOKEN } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport request from '@/utils/request'\nimport { inject, unref } from 'vue'\n\nexport const useIndicatorData = (props: { [key:string]: any } = {}) => {\n const { requestToken } = inject(GLOBAL_TOKEN, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n requestToken: () => void 0\n })\n // 指标库模式才会发\n if (props.dataType === 'indicator') {\n // 只要调用,计数 + 1,计数大于0才会请求\n requestToken()\n }\n\n const handleQueryColumn = (queryColumn: { [key:string]: any } = {}) => {\n const { label, name, location, show, indexCode } = queryColumn\n return {\n label,\n columnName: name,\n location,\n show,\n calcType: 'COLUMN',\n hrpIndexCode: indexCode\n }\n }\n\n const handleIndicator = (indicator: { [key:string]: any } = {}) => {\n const {\n label,\n name,\n location,\n show,\n indexCode,\n calcType = 'COLUMN',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n } = indicator\n return {\n label,\n columnName: name,\n location,\n show,\n calcType,\n hrpIndexCode: indexCode,\n aggregate: 'SUM',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n }\n }\n\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const handleSqlConditions = (controlList: { [key:string]: any } [] = []) => {\n const len = controlList.length\n const sqlConditions = [] as { [key:string]: any } []\n for (let i = 0; i < len; i++) {\n const control = controlList[i]\n const {\n id,\n conditionLabel,\n conditionKey,\n conditionValueType\n } = control\n const sqlCondition: { [key:string]: any } = {\n rule: 'NONE',\n label: conditionLabel,\n fieldName: conditionKey,\n fieldValue: '', // 在关联控件中取\n valueType: conditionValueType\n }\n // 获取组件属性\n const model = getGlobalModel(id) || {}\n if (lowerCaseIncludes(model.type, 'date')) {\n const { value, format } = model || {}\n sqlCondition.fieldValue = unref(value)?.format(format)\n sqlCondition.dateFormat = format\n }\n sqlConditions.push(sqlCondition)\n }\n return sqlConditions\n }\n return async () => {\n const { graphicConfig } = props\n const {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classificationList = [],\n seriesList = [],\n leftAxisList = [],\n rightAxisList = [],\n queryColumnList = [],\n indicators = [],\n controlList = [],\n dataSourceId,\n idxLibMode,\n preview = false\n } = graphicConfig || {}\n // console.log('classificationList', classificationList)\n // console.log('seriesList', seriesList)\n // console.log('leftAxisList', leftAxisList)\n // console.log('rightAxisList', rightAxisList)\n // console.log('indicators', indicators)\n // console.log('controlList', controlList)\n // 重点处理 classificationList、seriesList、leftAxisList、rightAxisList、indicators\n // classificationList (取第一项) => classification\n let classification\n if (Array.isArray(classificationList) && classificationList.length > 0) {\n const len = classificationList.length\n for (let i = 0; i < len; i++) {\n const item = classificationList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 classification,停止遍历\n if (show || len === 1) {\n classification = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // seriesList (取第一项) => series\n let series\n if (Array.isArray(seriesList) && seriesList.length > 0) {\n const len = seriesList.length\n for (let i = 0; i < len; i++) {\n const item = seriesList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 seriesList,停止遍历\n if (show || len === 1) {\n series = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // queryColumnList => queryColumns\n const queryColumns = []\n queryColumnList?.forEach((queryColumn: { [key:string]: any }) => {\n queryColumns.push(handleQueryColumn(queryColumn))\n })\n\n // leftAxisList + rightAxisList + indicators => indicatorList\n const indicatorList = []\n leftAxisList?.forEach((leftAxis: { [key:string]: any }) => {\n leftAxis.location = 'LEFT'\n indicatorList.push(handleIndicator(leftAxis))\n })\n rightAxisList?.forEach((rightAxis: { [key:string]: any }) => {\n rightAxis.location = 'RIGHT'\n indicatorList.push(handleIndicator(rightAxis))\n })\n indicators?.forEach((indicator: { [key:string]: any }) => {\n indicator.location = 'LEFT'\n indicatorList.push(handleIndicator(indicator))\n })\n if (layer === '1' && queryColumns.length === 0) {\n return\n } else if (layer === '2' && indicatorList.length === 0) {\n return\n }\n let sqlConditions\n if (graphicConfig?.pageMode === 'design') {\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\n sqlConditions = graphicConfig.sqlConditions ?? []\n } else {\n sqlConditions = handleSqlConditions(controlList)\n }\n try {\n const res = await request.post(`${INDICATOR_URL}/diagram`, {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classification,\n series,\n indicatorList,\n queryColumns,\n pageFlag: true,\n sqlConditions,\n // fixedDimSql: '',\n dataSourceId,\n idxLibMode,\n preview\n },\n {\n headers: {\n // @ts-ignore\n Authentication: window?.config?.indicatorToken,\n operateContext: 'ygt'\n }\n })\n return res\n } catch (e) {\n console.error(e)\n }\n }\n}\n\nexport default useIndicatorData\n","export const useHrefParamsToGlobalVariables = () => {\n const search = window.location.search\n const params = search.slice(1).split('&')\n const len = params.length\n for (let i = 0; i < len; i++) {\n const param = params[i]\n if (param == null || param === '') continue\n const keyAndValue = param.split('=')\n if (Array.isArray(keyAndValue)) {\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\n }\n }\n}\n\nexport default useHrefParamsToGlobalVariables\n","<template>\n <div id=\"container\" ref=\"container\">\n <template v-if=\"ready\">\n <div\n class=\"page-config\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, nextTick, computed, ref, onMounted, onUnmounted } from 'vue'\nimport { debounce } from 'lodash-es'\nimport { pageConfigComponentProps } from './props'\nimport { useImagePath } from '@/hooks'\nexport default defineComponent({\n name: 'EcanPageConfig',\n inheritAttrs: false,\n props: {\n ...pageConfigComponentProps\n },\n setup (props) {\n // 大屏设计容器\n const style = computed(() => ({\n width: props.width,\n height: props.height,\n backgroundColor: props.backgroundColor,\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n backgroundSize: props.backgroundSize\n }))\n const width = ref(0)\n const height = ref(0)\n const originalWidth = ref(0)\n const originalHeight = ref(0)\n const ready = ref(false)\n const container = ref()\n let observer: MutationObserver | null\n const initSize = () => {\n return new Promise<void>((resolve) => {\n nextTick(() => {\n // 获取大屏的真实尺寸\n if (props.width && props.height) {\n width.value = parseFloat(props.width)\n height.value = parseFloat(props.height)\n } else {\n width.value = container.value.clientWidth\n height.value = container.value.clientHeight\n }\n // 获取画布尺寸\n if (!originalWidth.value || !originalHeight.value) {\n originalWidth.value = window.screen.width\n originalHeight.value = window.screen.height\n }\n resolve()\n })\n })\n }\n const updateSize = () => {\n if (width.value && height.value) {\n container.value.style.width = `${width.value}px`\n container.value.style.height = `${height.value}px`\n } else {\n container.value.style.width = `${originalWidth.value}px`\n container.value.style.height = `${originalHeight.value}px`\n }\n }\n const updateScale = () => {\n // 获取真实的视口尺寸\n const currentWidth = document.body.clientWidth\n const currentHeight = document.body.clientHeight\n // 获取大屏最终的宽高\n const realWidth = width.value || originalWidth.value\n const realHeight = height.value || originalHeight.value\n const widthScale = currentWidth / realWidth\n const heightScale = currentHeight / realHeight\n container.value && (container.value.style.transform = `scale(${widthScale}, ${heightScale})`)\n }\n const onResize = debounce(async () => {\n await initSize()\n updateScale()\n }, 100)\n const initMutationObserver = () => {\n const MutationObserver = window.MutationObserver\n observer = new MutationObserver(onResize)\n observer.observe(container.value, {\n attributes: true,\n attributeFilter: ['style'],\n attributeOldValue: true\n })\n }\n const removeMutationObserver = () => {\n if (observer) {\n observer.disconnect()\n observer.takeRecords()\n observer = null\n }\n }\n onMounted(async () => {\n ready.value = false\n await initSize()\n updateSize()\n updateScale()\n window.addEventListener('resize', onResize)\n initMutationObserver()\n ready.value = true\n })\n onUnmounted(() => {\n window.removeEventListener('resize', onResize)\n removeMutationObserver()\n })\n return {\n style,\n container,\n ready\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n#container {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport PageConfig from './PageConfig.vue'\nexport const EcanPageConfig = withInstall(PageConfig)\nexport default EcanPageConfig\nexport * from './props'\n","import { transformToComponentProps } from '@/utils/props'\n\nexport interface ProviderConfig {\n contextRequestUrl: string // 请求头\n pageMode: 'normal' | 'preview' | 'design' // 普通、预览、设计模式\n theme: 'light' | 'darkBlue'\n containerMap: { [key:string]: any }\n}\n\nexport const providerConfig: ProviderConfig = {\n contextRequestUrl: '',\n pageMode: 'normal',\n theme: 'light',\n containerMap: {}\n}\n\n// 转化默认属性\nexport const providerConfigComponentProps = transformToComponentProps(providerConfig)\n","<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, ref, onMounted, watch, computed, unref, onBeforeUnmount } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/hooks'\nimport axios from 'axios'\nimport { RequestModalParam } from '@/utils/types'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => {\n return useVariablesInText(props.contextRequestUrl as string)\n })\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const eventBusKeySet = new Set()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n if (eventBusKeySet.has(key)) {\n eventBus.off(key)\n }\n eventBus.on(key, (k: string) => {\n eventBusKeySet.add(key)\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onBeforeUnmount(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const requestMap = new Map()\n const setRequest = ({ requestFn = () => {}, sortNum = 0, id = '' }: RequestModalParam) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n requestMap.set(id, requestFn)\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async (id: undefined | string) => {\n // 传空默认触发全部\n if (!id) {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n } else if (typeof id === 'string') {\n const requestFn = requestMap.get(id)\n if (typeof requestFn === 'function') {\n requestFn()\n }\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n onBeforeUnmount(() => {\n requestModel?.clear()\n requestMap?.clear()\n })\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport ProviderConfig from './ProviderConfig.vue'\nexport const EcanProviderConfig = withInstall(ProviderConfig)\nexport default EcanProviderConfig\nexport * from './props'\n","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","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA3LTIyVDA5OjM1OjE5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHN0RXZ0OndoZW49IjIwMjItMDctMjJUMDk6MzU6MTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6VDI+BAAABUUlEQVRIia3WPyhGURgG8B8pi0xisStKMioZLQaLiaQMBoxiVBImCwaLf6MssloUk8Gmb7GgJFKSUvIZ7qe+bvd89+A+03uf989z3nPPPe+tK5fLqtF3tSESzRjFAJ4vemams4IaYqulCq9gEo34QGco+LcCg9hHaxW3jpsiBIZxmMp5kXQTRH1k8S4cZCxoE6//FaiXbEtThm87JjkPI+jN4E9xW4TAQoA/isjNFehCT8B3VoTAUID/xHURAn0B/g5fRQh0B/j7mOJkf2gTaKvY7YG8FsxXPe/hIVbgCTs5C+vAasU+xlooMGuLTrCVI/CDR0zVCgi9gzmUIgQmBbYmT+AdY5LjGMKWpNuaqHWKLrEY8JUkXeYi75iu4DzFfUi6ey9C4AvjeKviliTdRSHmsrvBbMU+lzNg0oidaLvox7LIK+IHdem/iqIROzL/jG+NrT1BRsXKNQAAAABJRU5ErkJggg==\"","<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'\nimport { RequestModalParam } from '@/utils/types'\nimport { formatMoney } from '@/utils/util'\n\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, ' ')\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 const format = props.format\n if (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 (format === 'percent') {\n // 百分数\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = formatMoney(usedVariable)\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: 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@import \"./style\";\n//.skeleton-wrapper {\n// overflow: hidden;\n//}\n//\n//.ecan-text {\n// overflow: hidden;\n// display: flex;\n//}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Text from './Text.vue'\nexport const EcanText = withInstall(Text)\nexport default EcanText\nexport * from './props'\n","<template>\n <div class=\"red\">\n {{ text }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue'\nexport default defineComponent({\n name: 'EcanScrollText',\n setup () {\n const text = ref('基础文本')\n return {\n text\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.red {\n color: red;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport ScrollText from './ScrollText.vue'\nexport const EcanScrollText = withInstall(ScrollText)\nexport default EcanScrollText\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TimeDisplayProps extends Props {\n color: string\n format: string\n fontSize: string\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n textShadow: string // 文字阴影\n textAlign: string // 水平\n verticalAlign: string // 垂直\n}\n\nexport const timeDisplayProps: TimeDisplayProps = {\n ...props,\n name: '时间展示',\n keyName: '时间展示',\n type: 'ecanTimeDisplay',\n format: 'YYYY-MM-DD dddd HH:mm:ss',\n fontSize: '16px',\n color: '#333',\n width: '240px',\n height: '40px',\n textAlign: 'center',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n verticalAlign: 'middle'\n}\n\nexport const timeDisplayComponentProps = transformToComponentProps(timeDisplayProps)\n","<template>\n <div class=\"time-display\" :style=\"style\">\n {{ time }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, onMounted, onUnmounted, ref } from 'vue'\nimport { timeDisplayComponentProps } from './props'\nimport dayjs from 'dayjs'\nimport { usePickComponentStyle } from '../../hooks'\nexport default defineComponent({\n name: 'EcanTimeDisplay',\n props: {\n ...timeDisplayComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const time = ref(dayjs().format(props.format as string))\n let timer = null\n const clearTimer = () => {\n clearInterval(timer)\n timer = null\n }\n const setTimer = () => {\n if (timer) {\n clearTimer()\n }\n timer = setInterval(() => {\n time.value = dayjs().add(1, 's').format(props.format as string)\n }, 1000)\n }\n onMounted(() => {\n setTimer()\n })\n onUnmounted(() => {\n clearTimer()\n })\n return {\n style,\n time\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.time-display {\n overflow: hidden;\n display: table-cell;\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport TimeDisplay from './TimeDisplay.vue'\nexport const EcanTimeDisplay = withInstall(TimeDisplay)\nexport default EcanTimeDisplay\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ListProps extends Props {\n data: { [key: string]: any } []\n columns: { [key: string]: any } []\n sliceCount: number,\n backgroundColor: string\n useRanking: boolean\n useTitle: boolean\n columnCount: number\n itemHeight: string\n itemColSpan: string\n itemRowSpan: string\n}\n\nexport const listProps:ListProps = {\n ...props,\n type: 'ecanList',\n name: '列表',\n keyName: '列表',\n width: '330px',\n height: '80px',\n backgroundColor: '#0d215e',\n itemColSpan: '10px',\n itemRowSpan: '10px',\n useRanking: true,\n useTitle: false,\n sliceCount: 6,\n columnCount: 1,\n itemHeight: '32px',\n data: [\n {\n name: 'a',\n age: 12\n },\n {\n name: 'b',\n age: 14\n }\n ],\n columns: [\n {\n key: 'name'\n },\n {\n key: 'age'\n }\n ]\n}\n\nexport const listComponentProps = transformToComponentProps(listProps)\n\nexport interface ListEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const listEvents: Array<keyof ListEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-list\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <div\n class=\"title\"\n v-if=\"useTitle\"\n >\n <div\n class=\"title-inner\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1}/ ${columnCount})`,\n marginRight: count % columnCount !== 0 ? itemColSpan : ''\n }\"\n v-for=\"count in columnCount\"\n :key=\"count\"\n >\n <div class=\"ranking\" v-if=\"useRanking\" />\n <div\n class=\"column\"\n v-for=\"(column, i) in columns\"\n :key=\"column.key || i\"\n :style=\"{\n color: column.titleColor,\n ...columnStyle\n }\"\n >\n {{ column.title }}\n </div>\n </div>\n </div>\n <div class=\"ecan-list-content\" v-if=\"dataSource.length > 0\">\n <div\n class=\"title-placeholder\"\n :style=\"{\n marginBottom: itemRowSpan\n }\"\n v-if=\"useTitle\"\n />\n <div\n class=\"item\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1} / ${columnCount})`,\n marginRight: (i + 1) % columnCount !== 0 ? itemColSpan : '',\n marginBottom: itemRowSpan\n }\"\n v-for=\"(item, i) in dataSource.slice(0, sliceCount)\"\n :key=\"item.id || i\"\n @click=\"click\"\n >\n <div class=\"ranking\" v-if=\"useRanking\">\n <div class=\"icon\"/>\n <div class=\"sort\">\n Top {{ i + 1 }}\n </div>\n </div>\n <div\n :class=\"['column', contrastClass(item[column.key], column.format)]\"\n v-for=\"column in columns\"\n :key=\"column.key\"\n :style=\"{\n fontSize: column.fontSize,\n color: contrastClass(item[column.key], column.format) === '' ? column.color : '',\n fontWeight: column.fontWeight,\n ...columnStyle\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(item[column.key], column.format) }}\n </div>\n </div>\n </div>\n <div class=\"empty\" v-else>\n 暂无数据\n </div>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref } from 'vue'\nimport { listComponentProps, ListEvents } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nimport Skeleton from '@/common/skeleton'\nexport default defineComponent({\n name: 'EcanList',\n components: { Skeleton },\n props: {\n ...listComponentProps\n },\n setup (props) {\n const dataSource = ref<{[key:string]: any} []>(props.data as {[key:string]: any} [])\n const style = usePickComponentStyle(props, ['backgroundColor'])\n const columnStyle = computed(() => {\n if (props.useRanking) {\n return {\n textAlign: 'center'\n }\n } else {\n return {\n textAlign: 'left'\n }\n }\n })\n type Format = 'money' | 'percentage' | 'contrast' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n\n try {\n loading.value = true\n const res = await requestData()\n dataSource.value = res?.data?.data.rows || []\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n handleRequestData()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n useOnEvent(props, {\n refreshData\n } as ListEvents)\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n style,\n formatFn,\n columnStyle,\n contrastClass,\n dataSource,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n .ecan-list {\n overflow: hidden;\n }\n .ecan-list-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n align-content: flex-start;\n flex-wrap: wrap;\n }\n .title {\n position: absolute;\n z-index: 9;\n display: flex;\n align-items: center;\n height: 32px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .title-inner {\n padding-left: 28px;\n padding-right: 20px;\n flex: 1;\n display: flex;\n height: 100%;\n }\n .title-placeholder {\n width: 100%;\n height: 32px;\n }\n .item {\n display: flex;\n align-items: center;\n height: 32px;\n padding-left: 28px;\n padding-right: 20px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .column {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .ranking {\n flex: 1;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .icon {\n width: 12px;\n height: 8px;\n background: #21BEF7;\n margin-right: 17px;\n opacity: .6;\n }\n .item:nth-child(2) .icon {\n opacity: .8;\n }\n .item:first-child .icon{\n opacity: 1;\n }\n .sort {\n font-weight: 600;\n }\n .goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n\n .goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n .empty {\n text-align: center;\n margin-top: 15%;\n }\n</style>\n\n<style lang=\"less\">\n.ecan-list {\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n *::-webkit-scrollbar-thumb {\n border-radius: 6px;\n -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);\n background-color: #c8c9ca;\n }\n}\n[datav-theme='darkBlue'] {\n .ecan-list {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n *::-webkit-scrollbar-track{\n background-color: #192c70;\n }\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .empty {\n color: #ffffff;\n }\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport List from './List.vue'\nexport const EcanList = withInstall(List)\nexport default EcanList\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ProportionProps extends Props {\n strokeColor: string // 进度条的色彩\n strokeLinecap: 'round' | 'square' // 进度条的样式\n trailColor: string // 未完成的分段的颜色\n strokeType: 'circle' | 'dashboard',\n data: { [key:string]: any }\n text: string\n fontSize: string\n color: string\n strokeWidth: number\n fontWeight: number\n strokeTextWidth: string\n lineHeight: string\n decimalFormat: boolean\n variableDefaultValue: string\n}\n\nexport const proportionProps: ProportionProps = {\n ...props,\n name: '占比图',\n keyName: '占比图',\n type: 'ecanProportion',\n strokeType: 'circle',\n width: '200px',\n height: '200px',\n strokeColor: '#4091f7',\n strokeLinecap: 'round',\n trailColor: '#f5f5f5',\n data: {\n percent: 0.30\n },\n text: '{percent}%',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: '0'\n}\n\nexport const proportionComponentProps = transformToComponentProps(proportionProps)\n\nexport const proportionEvents = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-proportion\" :style=\"style\">\n <a-progress\n class=\"progress\"\n :percent=\"myValue\"\n :width=\"myWidth\"\n :type=\"strokeType\"\n :strokeColor=\"strokeColor\"\n :strokeLinecap=\"strokeLinecap\"\n :trailColor=\"trailColor\"\n :strokeWidth=\"strokeWidth\"\n :gapDegree=\"strokeType === 'dashboard' ? 75 : 0\"\n @click=\"click\"\n >\n <template #format>\n <skeleton v-if=\"loading\" :loading=\"loading\"/>\n <div\n v-else\n class=\"format\"\n :style=\"{\n width: strokeTextWidth,\n fontSize,\n color,\n fontWeight,\n lineHeight\n }\">\n {{ text }}\n </div>\n </template>\n </a-progress>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport 'ant-design-vue/es/progress/style'\nimport { Progress as AProgress } from 'ant-design-vue'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '../../common/skeleton'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanProportion',\n components: {\n AProgress,\n Skeleton\n },\n props: {\n ...proportionComponentProps\n },\n setup (props) {\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const style = usePickComponentStyle(props)\n const myWidth = computed(() => {\n const width = props.width as string\n return parseFloat(width)\n })\n const myData = ref<{ [key:string]: any }>({})\n watch(() => props.data, () => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n myData.value = props.data as { [key:string]: any }\n }\n }, {\n immediate: true,\n deep: true\n })\n const myValue = computed(() => {\n const data = unref(myData)\n const defaultValue = +(props.variableDefaultValue)\n if (data == null) {\n if (!isNaN(defaultValue)) {\n return defaultValue\n } else {\n return 0\n }\n }\n const variables = (props.text as string).match(/\\{.+\\}/g) || []\n let value\n const valueSet = new Set(Object.keys(data))\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const key = variable.slice(1, variable.length - 1)\n if (valueSet.has(key)) {\n value = data[key]\n break\n }\n }\n\n if (typeof value === 'number') {\n value = value * 100\n } else if (typeof value === 'string' && !isNaN(+value)) {\n value = (+value) * 100\n } else if (!isNaN(defaultValue)) {\n value = defaultValue * 100\n } else {\n value = 0\n }\n\n if (props.decimalFormat) {\n value = +value.toFixed(2)\n }\n return value\n })\n const text = computed(() => {\n let text = props.text as string\n if (text === '') return unref(myValue)\n const defaultValue = props.variableDefaultValue as string // 变量默认值\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, variable.length - 1) // { a - b} => a - b\n const textVariables = statement.match(/.*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]?.trim()\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, defaultValue)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/\\w+[+\\-*/%]+\\w+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n usedVariable = eval2(statement)\n }\n } catch (e) {\n console.error(e)\n }\n if (typeof usedVariable === 'number' || !isNaN(+usedVariable)) {\n usedVariable = (+usedVariable * 100)\n if (props.decimalFormat) {\n usedVariable = usedVariable.toFixed(2)\n }\n }\n text = text.replace(variable, usedVariable + '')\n }\n return text\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\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 myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n handleRequestData()\n }\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n\n return {\n style,\n myWidth,\n text,\n myValue,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-proportion {\n overflow: hidden;\n}\n\n.progress {\n width: 100%;\n height: 100%;\n}\n\n.format {\n margin: 0 auto;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Proportion from './Proportion.vue'\nexport const EcanProportion = withInstall(Proportion)\nexport default EcanProportion\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface InputProps extends Props {\n value: string,\n placeholder: string\n}\n\nexport const inputProps: InputProps = {\n ...props,\n width: '200px',\n id: '',\n left: '0px',\n top: '0px',\n name: '输入框',\n keyName: '输入框',\n rotate: '',\n type: 'ecanInput',\n value: '',\n placeholder: '请输入文字'\n}\n\n// 转化默认属性\nexport const inputComponentProps = transformToComponentProps(inputProps)\n\nexport const inputEvents = ['inputChange', 'inputBlur']\n","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n v-model:value=\"myValue\"\n :placeholder=\"placeholder\"\n @change=\"inputChange\"\n @blur=\"inputBlur\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, watch } from 'vue'\nimport { useEmitEvent, usePickComponentStyle } from '@/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nimport { debounce } from 'lodash-es'\nexport default defineComponent({\n name: 'EcanInput',\n components: {\n AInput\n },\n props: {\n ...inputComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myValue = ref<string>('')\n watch(() => props.value, (value: string) => {\n myValue.value = value\n }, {\n immediate: true\n })\n const id = props.id as string\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n const handleSetGlobalModel = () => {\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n }\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const inputChange = debounce(emitEvent('inputChange', () => {\n handleSetGlobalModel()\n }), 300)\n const inputBlur = emitEvent('inputBlur', () => {\n })\n return {\n style,\n myValue,\n inputBlur,\n inputChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-input {\n .ant-input {\n width: 100%;\n height: 100%;\n }\n}\n\n[datav-theme='light'] .ecan-input {\n .ant-input{\n color: rgba(0, 0, 0, 0.65);\n background-color: #ffffff;\n border: 1px solid #d9d9d9;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-input {\n .ant-input{\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Input from './Input.vue'\nexport const EcanInput = withInstall(Input)\nexport default EcanInput\nexport * from './props'\n","import {\n Props,\n EventsProp,\n props,\n transformToComponentProps\n} from '@/utils/props'\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: boolean // 增加时间选择功能\n useCurrentTime: boolean\n}\n\nexport const datePickerProps: DatePickerProps = {\n ...props,\n height: '33px',\n width: '130px',\n id: '',\n left: '0px',\n top: '0px',\n name: '日期选择器',\n keyName: '日期选择器',\n rotate: '',\n type: 'ecanDatePicker',\n value: '',\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false,\n useCurrentTime: true\n}\nexport const datePickerComponentProps = transformToComponentProps(datePickerProps)\n\nexport const datePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-date-picker\"\n :style=\"style\"\n >\n <!-- 宽度style有效,class无效 -->\n <a-date-picker\n class=\"date-picker\"\n dropdownClassName=\"ecan-date-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :showTime=\"showTime\"\n :locale=\"locale\"\n @change=\"dateChange\"\n :getPopupContainer=\"getPopupContainer\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, watch } from 'vue'\nimport { datePickerComponentProps } from './props'\nimport { DatePicker as ADatePicker } from 'ant-design-vue'\nimport 'ant-design-vue/es/date-picker/style'\nimport { usePickComponentStyle, useOnEvent, useEmitEvent } from '@/hooks'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanDatePicker',\n props: {\n ...datePickerComponentProps\n },\n components: {\n ADatePicker\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<Dayjs | null>(null)\n watch(() => [props.value, props.useCurrentTime], ([value, useCurrentTime]: [string, boolean]) => {\n let _value: Dayjs = null\n if (value) {\n _value = dayjs(value)\n } else if (useCurrentTime) {\n _value = dayjs()\n }\n myValue.value = _value\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n myValue,\n locale,\n dateChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-date-picker {\n .date-picker {\n width: 100%;\n height: 100%\n }\n}\n[datav-theme='light'] .ecan-date-picker {\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner, .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #1890ff;\n color: #ffffff;\n }\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {\n color: #69befa;\n }\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover {\n background: #1890ff;\n color: #ffffff;\n }\n\n .ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {\n background: #1890ff;\n color: #ffffff;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport DatePicker from './DatePicker.vue'\nexport const EcanDatePicker = withInstall(DatePicker)\nexport default EcanDatePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface SelectOption {\n value: any\n label: string\n disabled?: boolean\n key?: string\n title?: string\n}\n\nexport type SelectOptions = SelectOption []\n\nexport interface SelectProps extends Props {\n data: SelectOptions // 同 options\n value: string,\n dataFieldNames: { label: string, value: string }\n mode: 'multiple' | 'tags' | 'combobox' | undefined\n maxTagCount: number | undefined\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n mode: undefined,\n data: [\n { label: '选项一', value: '1' },\n { label: '选项二', value: '2' },\n { label: '选项三', value: '3' }\n ],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' },\n maxTagCount: undefined\n}\n\nexport const selectComponentProps = transformToComponentProps(selectProps)\n\nexport const selectEvents = ['selectChange']\n","<template>\n <div\n class=\"ecan-select\"\n :style=\"style\"\n >\n <a-select\n class=\"select\"\n v-model:value=\"myValue\"\n :options=\"options\"\n :mode=\"mode\"\n :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n :maxTagCount=\"maxTagCount\"\n show-search\n :filter-option=\"filterOption\"\n @change=\"selectChange\"\n :loading=\"loading\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref } from 'vue'\nimport { Select as ASelect } from 'ant-design-vue'\nimport 'ant-design-vue/es/select/style'\nimport { selectComponentProps, SelectOptions } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanSelect',\n components: {\n ASelect\n },\n props: {\n ...selectComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 挂在在 ProviderConfig 或者 body 下\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const options = ref(props.data as SelectOptions)\n const myValue = ref(props.value || props.data[0])\n const dataFieldNames = props.dataFieldNames as { label:string, value:string }\n const filterOption = (input: string, option: any) => {\n const labelKey = dataFieldNames.label\n const valueKey = dataFieldNames.value\n let value: string | undefined\n // 没有 label 值才用 value\n // ant-select 组件如果没有传 label 值会使用 value 作为值\n const labelValue = option[labelKey]\n const valueValue = option[valueKey]\n if (labelValue != null) {\n value = labelValue\n } else if (valueValue != null) {\n value = valueValue\n }\n return !!(value?.toLowerCase().indexOf(input?.toLowerCase()) >= 0)\n }\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n options.value = res?.data?.data?.rows || []\n const firstOption = unref(options)[0]\n if (props.value === '' && firstOption != null) {\n myValue.value = firstOption[dataFieldNames.value]\n }\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const selectChange = emitEvent('selectChange', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n selectChange\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options,\n filterOption,\n loading\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-select {\n .ant-select {\n height: 100% !important;\n width: 100% !important;\n }\n .ant-select-selector {\n height: 100% !important;\n width: 100% !important;\n display: flex;\n align-items: center;\n input {\n height: 100% !important;\n }\n }\n}\n\n[datav-theme='light'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #d9d9d9;\n }\n .ant-select-dropdown {\n color: rgba(0, 0, 0, 0.85);\n background: #ffffff;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n }\n .ant-empty-img-simple-g {\n stroke: #d9d9d9;\n }\n .ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n }\n .ant-empty-img-simple-path {\n fill: #f5f5f5;\n stroke: #d9d9d9;\n }\n .ant-empty-description {\n color: rgba(0, 0, 0, 0.25);\n }\n .anticon-down {\n color: #333;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n .ant-select-dropdown {\n box-shadow: inset 0 0 10px #005efe;\n color: #fff;\n background-color: #05164c;\n }\n .ant-empty-img-simple-g {\n stroke: #69befa;\n }\n .ant-empty-img-simple-ellipse {\n fill-opacity: 0;\n }\n .ant-empty-img-simple-path {\n fill: #69befa;\n stroke: #69befa;\n }\n .ant-empty-description {\n color: #69befa;\n }\n .anticon-down {\n color: #ffffff;\n }\n .ant-select-item {\n color: #ffffff;\n }\n .ant-select-item-option-active {\n background: #1f63a3;\n }\n .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n background: #1f63a3;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Select from './Select.vue'\nexport const EcanSelect = withInstall(Select)\nexport default EcanSelect\nexport * from './props'\n","import { Props, props, transformToComponentProps } from '@/utils/props'\nimport { ManipulateType } from 'dayjs'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\n useCurrentTime: boolean\n interval: number\n intervalUnit: ManipulateType\n}\n\nexport const rangePickerProps: RangePickerProps = {\n ...props,\n name: '范围选择器',\n keyName: '范围选择器',\n type: 'ecanRangePicker',\n width: '250px',\n height: '35px',\n picker: 'date',\n format: 'YYYY-MM-DD',\n startTime: '',\n endTime: '',\n useCurrentTime: true,\n interval: 1,\n intervalUnit: 'year'\n}\n\nexport const rangePickerComponentProps = transformToComponentProps(rangePickerProps)\n\nexport const rangePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-range-picker\"\n :style=\"style\"\n >\n <a-range-picker\n class=\"range-picker\"\n dropdownClassName=\"ecan-range-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :locale=\"locale\"\n :getPopupContainer=\"getPopupContainer\"\n @change=\"dateChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref, watch, ref } from 'vue'\nimport { rangePickerComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/hooks'\nimport { RangePicker as ARangePicker } from 'ant-design-vue'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\n// antdv 中 range-picker 组件与 date-picker 共用一个样式\nimport 'ant-design-vue/es/date-picker/style'\nimport { GLOBAL_MODEL } from '@/utils/constant'\nimport dayjs, { Dayjs, ManipulateType } from 'dayjs'\nexport default defineComponent({\n name: 'EcanRangePicker',\n components: {\n ARangePicker\n },\n props: {\n ...rangePickerComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<[Dayjs, Dayjs]>([null, null])\n watch(() => [props.startTime, props.endTime, props.useCurrentTime, props.interval, props.intervalUnit], ([startTime, endTime, useCurrentTime, interval, intervalUnit]: [string, string, boolean, number, ManipulateType]) => {\n let _startTime: Dayjs = null\n let _endTime: Dayjs = null\n if (useCurrentTime) {\n _startTime = dayjs().subtract(interval, intervalUnit)\n _endTime = dayjs()\n }\n if (startTime) {\n _startTime = dayjs(startTime)\n }\n if (endTime) {\n _endTime = dayjs(endTime)\n }\n myValue.value = [_startTime, _endTime]\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const myStartTime = computed(() => unref(myValue)[0])\n const myEndTime = computed(() => unref(myValue)[1])\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n startTime: myStartTime,\n endTime: myEndTime\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {})\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n locale,\n dateChange,\n myValue\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.range-picker {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-range-picker{\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n .ant-picker-separator .anticon {\n color:#333;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-separator .anticon {\n color:#fff;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell-disabled .ant-picker-cell-inner {\n color: #999;\n }\n .ant-picker-cell-disabled::before {\n background: #333;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport RangePicker from './RangePicker.vue'\nexport const EcanRangePicker = withInstall(RangePicker)\nexport default EcanRangePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ButtonProps extends Props {\n text: string\n mode: 'primary' | 'dashed' | 'link' | 'text' | 'default'\n danger: boolean\n shape: 'default' | 'circle' | 'round'\n href: string\n target: 'self' | 'blank' | 'event'\n fontSize: string\n fontWeight: number\n}\n\nexport const buttonProps: ButtonProps = {\n ...props,\n width: '200px',\n name: '按钮',\n keyName: '按钮',\n type: 'ecanButton',\n text: '按钮',\n mode: 'default',\n danger: false,\n shape: 'default',\n href: '',\n target: 'self',\n fontSize: '14px',\n fontWeight: 400\n}\n\n// 转化默认属性\nexport const buttonComponentProps = transformToComponentProps(buttonProps)\n\nexport const buttonEvents = ['click']\n","<template>\n <div\n class=\"ecan-button\"\n :style=\"style\"\n >\n <a-button\n block\n @click=\"click\"\n :type=\"mode\"\n :danger=\"danger\"\n :shape=\"shape\"\n :href=\"myHref\"\n :target=\"myTarget\"\n >\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ myText }}\n </span>\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref } from 'vue'\nimport { usePickComponentStyle, useEmitEvent, useVariablesInText } from '@/hooks'\nimport { Button as AButton } from 'ant-design-vue'\nimport 'ant-design-vue/es/button/style'\nimport { buttonComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanButton',\n components: {\n AButton\n },\n props: {\n ...buttonComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 拦截触发事件\n const emitEvent = useEmitEvent(props)\n // click 是 event 名称\n const click = emitEvent('click', () => {\n // 打开链接\n const url = unref(myHref)\n if (url && props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // 空字符串会刷新页面\n const myHref = computed(() => useVariablesInText(props.href as string) || null)\n const myTarget = computed(() => {\n const target = props.target as 'self' | 'blank' | 'event'\n if (target === 'event' || unref(myHref) == null) {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n })\n return {\n style,\n click,\n myText,\n myHref,\n myTarget\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-button {\n .ant-btn {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Button from './Button.vue'\nexport const EcanButton = withInstall(Button)\nexport default EcanButton\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport type CheckboxOptions = {\n label: string\n value: string\n disabled?: boolean\n checked?: boolean\n indeterminate?: boolean\n} []\n\nexport interface CheckboxProps extends Props {\n value: string | string []\n data: CheckboxOptions\n}\n\nexport const checkboxProps: CheckboxProps = {\n ...props,\n width: '240px',\n id: '',\n left: '0px',\n top: '0px',\n name: '复选框',\n keyName: '复选框',\n rotate: '',\n type: 'ecanCheckbox',\n value: [],\n data: [\n { label: '选项一', value: '1', checked: true },\n { label: '选项二', value: '2', checked: true },\n { label: '选项三', value: '3' }\n ]\n}\n\n// 转化默认属性\nexport const checkboxComponentProps = transformToComponentProps(checkboxProps)\n\nexport const checkboxEvents = ['checkboxChange']\n","<template>\n <div class=\"ecan-checkbox\" :style=\"style\">\n <a-checkbox-group\n :options=\"myOption\"\n v-model:value=\"myValue\"\n @change=\"checkboxChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { CheckboxGroup as ACheckboxGroup } from 'ant-design-vue'\nimport 'ant-design-vue/es/checkbox/style'\nimport { checkboxComponentProps, CheckboxOptions } from './props'\nimport { useEmitEvent, usePickComponentStyle, useRequestData } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { RequestModalParam } from '@/utils/types'\nexport default defineComponent({\n name: 'EcanCheckbox',\n components: {\n ACheckboxGroup\n },\n props: {\n ...checkboxComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref<CheckboxOptions>([])\n const myValue = ref<string []>([])\n const handleDataAndOption = (data) => {\n const value = props.value\n let _value = [] as string []\n data.forEach((item) => {\n if (item.checked) {\n _value.push(item.value)\n }\n })\n if (typeof value === 'string' && value !== '') {\n _value = _value.concat(value.split(','))\n } else if (Array.isArray(value)) {\n _value = _value.concat(value)\n }\n myOption.value = data\n myValue.value = _value\n }\n watch(() => [props.data, props.value], ([data]: [CheckboxOptions, string | string []]) => {\n handleDataAndOption(data)\n }, {\n immediate: true,\n deep: true\n })\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n const res = await requestData()\n const data = res?.data?.data?.rows || []\n handleDataAndOption(data)\n }\n const id = props.id as string\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 // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const checkboxChange = emitEvent('checkboxChange', () => {\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: myValue })\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n return {\n myOption,\n style,\n myValue,\n checkboxChange\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-checkbox {\n .ant-checkbox-group {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-between;\n align-content: space-between;\n flex-wrap: wrap;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Checkbox from './Checkbox.vue'\nexport const EcanCheckbox = withInstall(Checkbox)\nexport default EcanCheckbox\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface PieProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n backgroundColor: string\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n legendTextStyleColor: string\n innerRadius: string\n outerRadius: string\n centerLeft: string\n centerTop: string\n labelShow: boolean\n labelFormatter: string\n labelFontSize: number\n labelPosition: 'outside' | 'inside' | 'center'\n labelLineShow: boolean\n labelColor: string\n isUseLabelColors: boolean\n labelLineLength: number\n labelLineLength2: number\n roseType: '' | 'radius' | 'area'\n valueTypeDataFieldNames: ValueTypeDataFieldNames,\n dataFieldConfigType: 'key' | 'value',\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\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}\n\nexport const pieProps: PieProps = {\n ...props,\n id: '',\n name: '饼图',\n keyName: '饼图',\n type: 'ecanPie',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n backgroundColor: '',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {b} {c} ({d}%)',\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'vertical',\n legendTop: 'top',\n legendLeft: 'left',\n innerRadius: '0%',\n outerRadius: '60%',\n centerLeft: '50%',\n centerTop: '50%',\n labelShow: true,\n labelColor: '#333',\n isUseLabelColors: false,\n labelFontSize: 12,\n labelPosition: 'outside',\n labelFormatter: '{b}\\\\n{d}%',\n labelLineShow: true,\n labelLineLength: 10,\n labelLineLength2: 15,\n roseType: '',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n dataFieldConfigType: 'value',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\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}\n// 转化默认属性\nexport const pieComponentProps = transformToComponentProps(pieProps)\n\nexport const pieEvents: Array<string> = ['click', 'refreshData', 'resetRecord']\n","import request from '@/utils/request'\nexport const useDownloadFile = async (downloadFileUrl: string) => {\n const res = await request.post(downloadFileUrl, {}, {\n responseType: 'blob'\n }) as any\n const { data, headers } = res\n const fileName = headers['content-disposition'].replace(/\\w+;filename=(.*)/, '$1')\n const blob = new Blob([data])\n const dom = document.createElement('a')\n const url = window.URL.createObjectURL(blob)\n dom.href = url\n dom.download = decodeURI(fileName)\n dom.style.display = 'none'\n document.body.appendChild(dom)\n dom.click()\n dom.parentNode?.removeChild(dom)\n window.URL.revokeObjectURL(url)\n}\nexport default useDownloadFile\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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, watch, inject, ref, unref } from 'vue'\nimport {\n useEmitEvent,\n usePickComponentStyle,\n useRequestData,\n useTransformChartDataByAttrValue,\n useOnEvent,\n useRequestDiagramData,\n useVariablesInText\n} from '@/hooks'\nimport Echarts from '@/common/echarts'\nimport { pieComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { PieChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { handleFormatter } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { ValueTypeDataFieldNames } from '@/utils/props'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { RequestModalParam } from '@/utils/types'\nuse([\n CanvasRenderer,\n PieChart,\n TitleComponent,\n ToolboxComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanPie',\n props: {\n ...pieComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n let { data = [] } = unref(dataset)[0] || {}\n if (Array.isArray(props.colors)) {\n const isUseLabelColors = props.isUseLabelColors\n const colors = props.colors\n data = data.map((item, index) => ({\n label: isUseLabelColors ? { color: colors[index] } : {},\n ...item\n }))\n }\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 // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: (params) => {\n const { marker, seriesName, name, value, percent, data } = params || {}\n return useVariablesInText(\n props.tooltipFormatter as string,\n {\n marker,\n name,\n value,\n percent,\n a: seriesName,\n b: name,\n c: value,\n d: percent,\n ...data\n },\n {\n useNewline: true,\n useSpace: true\n }\n )\n },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\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 color: props.colors,\n series: [\n {\n data,\n type: 'pie',\n radius: [props.innerRadius, props.outerRadius],\n center: [props.centerLeft, props.centerTop],\n roseType: props.roseType,\n avoidLabelOverlap: false,\n // data: data.value,\n // data: props.data,\n // dimensions: ['name', 'count'],\n label: {\n show: props.labelPosition !== 'center' && props.labelShow,\n color: props.labelColor,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n formatter: handleFormatter(props.labelFormatter as string)\n },\n labelLine: {\n show: props.labelLineShow,\n length: props.labelLineLength,\n length2: props.labelLineLength2\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n // show: props.labelPosition === 'center'\n }\n }\n }\n ]\n }\n })\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\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const { dataset: d } = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = d\n }\n\n const handleIndicatorDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = chartData.dataset\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 loading = ref(false)\n const requestData = useRequestData(props)\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, props.valueTypeDataFieldNames as ValueTypeDataFieldNames)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\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 newArr = []\n if (res?.data?.data?.columns?.length > 0) {\n const name = res.data.data.columns[0]\n const value = res.data.data.columns[1]\n newArr = res?.data?.data?.rows?.map(item => {\n return {\n name: item[name],\n value: item[value]\n }\n })\n }\n handleIndicatorDataset(newArr)\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 resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Pie from './Pie.vue'\nexport const EcanPie = withInstall(Pie)\nexport default EcanPie\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface LineProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n legendShow: boolean,\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal' // 标记点大小\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string // 格式化\n yAxisSplitLineShow: boolean // y轴展示分割线\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 gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n tooltipFormatter: string\n tooltipShow: boolean\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 areaStyleOpacity: number\n}\n\nexport const lineProps: LineProps = {\n ...props,\n id: '',\n name: '折线图',\n keyName: '折线图',\n type: 'ecanLine',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 235, type: '类型一' },\n { name: '名称二', value: 280, type: '类型一' },\n { name: '名称三', value: 230, type: '类型一' },\n { name: '名称四', value: 335, type: '类型一' }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n legendShow: true,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisLabelFormatter: '{value}', // 格式化\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n tooltipShow: true,\n tooltipFormatter: '{marker} {a} {c}',\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 areaStyleOpacity: 0\n}\n\n// 转化默认属性\nexport const lineComponentProps = transformToComponentProps(lineProps)\n\nexport const lineEvents = ['click', 'refreshData', 'resetRecord']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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 { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent, useOnEvent,\n usePickComponentStyle,\n useRequestData, useRequestDiagramData,\n useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue, useVariablesInText\n} from '@/hooks'\nimport Echarts from '@/common/echarts'\nimport { lineComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { LineChart } from 'echarts/charts'\nimport { TitleComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nimport { RequestModalParam } from '@/utils/types'\nuse([\n CanvasRenderer,\n LineChart,\n ToolboxComponent,\n TitleComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanLine',\n props: {\n ...lineComponentProps\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 // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n const yAxisLabelFormatter = props.yAxisLabelFormatter 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 },\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 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: '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(yAxisLabelFormatter, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: unref(series)\n }\n })\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\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 dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n // color: {\n // type: 'linear',\n // x: 0,\n // y: 0,\n // x2: 0,\n // y2: 1,\n // colorStops: [{\n // offset: 0, color: props.colors[i] // 0% 处的颜色\n // }, {\n // offset: 1, color: '#fff' // 100% 处的颜色\n // }],\n // global: false // 缺省为 false\n // },\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\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 dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.symbolSize, props.smooth, props.lineStyleWidth, props.areaStyleOpacity], ([data]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(data as { [key: string]: any }[])\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\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 const emitEvent = useEmitEvent(props)\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 // 指标库\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 resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n refreshData,\n resetRecord,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Line from './Line.vue'\nexport const EcanLine = withInstall(Line)\nexport default EcanLine\nexport * from './props'\n","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 yAxisLabelWidth: number | undefined // y轴名称宽度\n yAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // y轴名称溢出操作\n yAxisLabelRotate: number // y轴名称旋转\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 xAxisInverse: boolean\n yAxisInverse: boolean\n isStack: boolean\n labelShow: boolean\n labelFontSize: string\n labelPosition: 'inside' | 'top' | 'bottom' | 'right' | 'left'\n labelColor: string\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 yAxisLabelWidth: undefined,\n yAxisLabelRotate: 0,\n yAxisLabelOverflow: 'none',\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 xAxisInverse: false,\n yAxisInverse: false,\n isStack: false,\n labelShow: false,\n labelFontSize: '12px',\n labelPosition: 'inside',\n labelColor: ''\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport const barEvents: string [] = ['refreshData', 'click', 'resetRecord']\n","<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 } 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 { RequestModalParam } from '@/utils/types'\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 }\n item.label = {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n color: props.labelColor\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 ? props.xAxisInverse : 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 : props.yAxisInverse,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n rotate: props.yAxisLabelRotate,\n width: props.yAxisLabelWidth,\n overflow: props.yAxisLabelOverflow,\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: props.requestSort as number\n })\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n refreshData,\n click,\n resetRecord\n })\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","import { withInstall } from '@/utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data\n} from '@/utils/props'\n\nexport interface ScatterProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean,\n tooltipShow: boolean,\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipFormatter: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n symbolSize: number // 标记点大小\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // 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 gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n dataFieldNames: { name: string, value: string }\n graphicConfig?: any\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}\n\nexport const scatterProps: ScatterProps = {\n ...props,\n id: '',\n name: '散点图',\n keyName: '散点图',\n type: 'ecanScatter',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: 233, value: 335 },\n { name: 556, value: 310 },\n { name: 56, value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n tooltipShow: true,\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {b} {c}',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 10,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisLabelFormatter: '{value}',\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n dataFieldNames: { name: 'name', value: 'value' },\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: undefined,\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}\n\n// 转化默认属性\nexport const scatterComponentProps = transformToComponentProps(scatterProps)\n\nexport const scatterEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\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 useValueFormatter,\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData,\n useVariablesInText\n} from '@/hooks'\nimport { RequestModalParam } from '@/utils/types'\nimport Echarts from '@/common/echarts'\nimport { scatterComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { ScatterChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nuse([\n CanvasRenderer,\n ScatterChart,\n ToolboxComponent,\n TitleComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanScatter',\n props: {\n ...scatterComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n // 这样写为了触发响应式\n // 返回函数中使用无法触发\n const xAxisLabelFormatter = props.xAxisLabelFormatter as string\n const yAxisLabelFormatter = props.yAxisLabelFormatter 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 xAxis: {\n // type: 'value'\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\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 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 // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: function (params) {\n const { marker, seriesName } = params\n const record = params?.data?.record ?? {}\n const { name, value } = record\n return useVariablesInText(props.tooltipFormatter as string, {\n marker,\n seriesName,\n a: seriesName,\n b: name,\n c: value,\n ...record\n })\n },\n axisPointer: {\n type: 'cross'\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: [\n {\n data: unref(dataset),\n type: 'scatter',\n symbolSize: props.symbolSize\n }\n ]\n }\n })\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\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: { name: string, value:string }) => {\n const { name: x = 'name', value: y = 'value' } = dataFieldNames || {}\n dataset.value = data.map(item => ({ value: [item[x], item[y]], record: item }))\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 loading = ref(false)\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.dataFieldNames as { name: string, value:string })\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const refreshData = () => {\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n setRequest({\n id: props.id as string,\n requestFn: handleRequestData,\n sortNum: props.requestSort as number\n })\n\n return {\n option,\n style,\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\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../utils/withInstall'\nimport Scatter from './Scatter.vue'\nexport const EcanScatter = withInstall(Scatter)\nexport default EcanScatter\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface CustomGraphProps extends Props {\n option: { [key:string]: any }\n optionCode: string\n}\n\nexport const customGraphProps: CustomGraphProps = {\n ...props,\n id: '',\n name: '自定义图表',\n keyName: '自定义图表',\n type: 'ecanCustomGraph',\n width: '400px',\n height: '400px',\n option: {},\n optionCode: ''\n}\n\n// 转化默认属性\nexport const customGraphComponentProps = transformToComponentProps(customGraphProps)\n","<template>\n <div :style=\"style\">\n <echarts\n :option=\"myOption\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, ref } from 'vue'\nimport Echarts from '../../common/echarts'\nimport { customGraphComponentProps } from './props'\nimport { usePickComponentStyle } from '../../hooks'\nimport * as echarts from 'echarts'\n// import 'echarts/components'\nexport default defineComponent({\n name: 'EcanCustomGraph',\n props: {\n ...customGraphComponentProps\n },\n components: {\n Echarts\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref()\n watch(() => props.optionCode, (optionCode: string) => {\n /* // eslint-disable-next-line\n let option = {}\n // eslint-disable-next-line\n eval(props.optionCode as string)\n myOption.value = option */\n try {\n // eslint-disable-next-line\n const evalCopy = eval\n myOption.value = evalCopy(optionCode)\n } catch (e) {\n console.error(e)\n }\n }, {\n immediate: true\n })\n return {\n style,\n myOption,\n echarts\n }\n }\n})\n</script>\n","import { withInstall } from '../../utils/withInstall'\nimport CustomGraph from './CustomGraph.vue'\nexport const EcanCustomGraph = withInstall(CustomGraph)\nexport default EcanCustomGraph\nexport * from './props'\n","import {\n Data,\n Props,\n props,\n transformToComponentProps,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/utils/props'\n\nexport interface ComboGraphProps 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 xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n seriesTypes: { [key: string]: any } []\n dataFieldConfigType: 'key' | 'value',\n yAxis: { [key: string]: any } [],\n graphicConfig?: any\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\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 symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n areaStyleOpacity: number\n barWidth: string\n}\n\nexport const comboGraphProps: ComboGraphProps = {\n ...props,\n id: '',\n name: '组合图表',\n keyName: '组合图表',\n type: 'ecanComboGraph',\n width: '400px',\n height: '400px',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 410,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 210,\n type: '类型一'\n },\n {\n name: '名称一',\n value: 510,\n type: '类型二'\n },\n {\n name: '名称二',\n value: 731,\n type: '类型二'\n },\n {\n name: '名称三',\n value: 910,\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: '{marker} {a} {c}',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\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 seriesTypes: [\n {\n type: 'bar',\n axisIndex: 0\n },\n {\n type: 'line',\n axisIndex: 0\n }\n ],\n yAxis: [\n {\n axisLabelFormatter: '{value}'\n },\n {\n axisLabelFormatter: '{value}'\n }\n ],\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\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 areaStyleOpacity: 0,\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n barWidth: '40%'\n}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click', 'resetRecord']\n","<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 { 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'\nimport { RequestModalParam } from '@/utils/types'\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 const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { tooltipFormatter: _tooltipFormatter } = seriesType || {}\n const { marker, seriesName, name, value, data } = params[i] || {}\n if (i === 0) {\n formatter += `${name}<br/>`\n }\n formatter += useVariablesInText(\n // 如果系列有提示框组件就使用自定义,没有就用默认的\n _tooltipFormatter || 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 textStyle: {\n color: props.tooltipTextStyleColor\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: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: chooseRequestOrDiagram,\n sortNum: props.requestSort as number\n })\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData,\n click\n })\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","import { withInstall } from '../../utils/withInstall'\nimport ComboGraph from './ComboGraph.vue'\nexport const EcanComboGraph = withInstall(ComboGraph)\nexport default EcanComboGraph\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface BorderProps extends Props {\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n title: string\n mode: 'top-title' | 'no-title' | 'left-top'\n borderColor: string\n borderRadius: string\n borderStyle: string\n borderWidth: string\n backgroundColor: string\n useBorderModify: boolean\n textShadow: string\n data: { [key:string]: any }\n}\n\nexport const borderProps: BorderProps = {\n ...props,\n name: '边框',\n keyName: '边框',\n type: 'ecanBorder',\n width: '300px',\n height: '300px',\n zIndex: 0,\n fontSize: '16px',\n fontFamily: '',\n fontWeight: 700,\n title: '标题',\n mode: 'no-title',\n borderColor: '#eee',\n borderRadius: '5px',\n borderStyle: 'solid',\n borderWidth: '2px',\n backgroundColor: '#ffffff',\n useBorderModify: false,\n textShadow: '',\n data: {}\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\n","<template>\n <div class=\"ecan-border\" :style=\"style\" @click=\"click\">\n <div\n class=\"no-title\"\n :style=\"borderStyle\"\n v-if=\"mode === 'no-title'\"\n >\n <template v-if=\"useBorderModify\">\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </template>\n </div>\n <div class=\"top-title\" :style=\"borderStyle\" v-if=\"mode === 'top-title'\">\n <div class=\"title-item-wrapper\">\n <div class=\"title-item\">\n <img\n class=\"title-decoration-left\"\n src=\"../../assets/border-title-decoration-left.png\"\n >\n <div class=\"title\">{{ title }}</div>\n <img\n class=\"title-decoration-right\"\n src=\"../../assets/border-title-decoration-right.png\"\n >\n </div>\n </div>\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </div>\n <div class=\"left-title\" v-if=\"mode === 'left-title'\">\n <div class=\"title\">\n <span>{{ title }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch } from 'vue'\nimport { borderComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanBorder',\n props: {\n ...borderComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['background'])\n const { theme } = inject(GLOBAL_CONFIG, {\n theme: 'light'\n })\n const borderStyle = computed(() => {\n return {\n // borderWidth: props.borderWidth,\n // borderStyle: props.borderStyle,\n // borderRadius: props.borderRadius,\n // borderColor: props.borderColor,\n // backgroundColor: props.backgroundColor,\n width: '100%',\n height: '100%'\n }\n })\n const emitEvent = useEmitEvent(props)\n const click = emitEvent('click', () => {})\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n useOnEvent(props, {\n click\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myData\n })\n return {\n style,\n click,\n borderStyle,\n theme\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.top-title, .no-title {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n .border-item {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n }\n .top-left {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n }\n .top-right {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n }\n .bottom-left {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n }\n .bottom-right {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n }\n .title-item-wrapper {\n width: 100%;\n padding: 5px 0;\n background-image: url(\"../../assets/border-title-background.png\");\n background-size: cover;\n display: grid;\n place-content: center;\n }\n .title-item {\n display: flex;\n align-items: center;\n }\n .title {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg,#01aaff,#00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n .title-decoration-left {\n width: 58px;\n height: 14px;\n }\n .title-decoration-right {\n width: 58px;\n height: 14px;\n }\n}\n\n.left-title {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 0;\n .title {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url(\"../../assets/border-left-title.png\");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n span {\n writing-mode: vertical-lr;\n }\n }\n}\n</style>\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==\"","import { withInstall } from '@/utils/withInstall'\nimport Border from './Border.vue'\nexport const EcanBorder = withInstall(Border)\nexport default EcanBorder\nexport * from './props'\n","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","<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 ref=\"modalRef\"\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=\"containRef\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\" v-if=\"ready\">\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, watch, 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'\nimport { debounce } from 'lodash-es'\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 modalWith = ref('80%')\n const containWidth = ref(0)\n const scaleWidth = ref()\n const containHeight = ref(0)\n const containStyle = ref({})\n const style = usePickComponentStyle(props)\n const contentStyle = ref({})\n const ready = ref(false)\n const modalRef = ref<HTMLElement>()\n let observer: MutationObserver | null\n const updateSize = () => {\n scaleWidth.value = parseFloat(width) / parseFloat(originalWidth)\n const scaleHeight = parseFloat(height) / parseFloat(originalHeight)\n const screenWidth = document.body.offsetWidth\n const screenHeight = document.body.offsetHeight\n containWidth.value = screenWidth * unref(scaleWidth)\n containHeight.value = screenHeight * scaleHeight\n modalWith.value = `${unref(scaleWidth) * 100}%`\n containStyle.value = {\n width: `${unref(containWidth)}px`,\n height: `${unref(containHeight)}px`\n }\n contentStyle.value = {\n ...unref(style),\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n transform: `scale(${unref(containWidth) / parseFloat(width)},${unref(containHeight) / parseFloat(height)})`\n }\n }\n const onResize = debounce(() => {\n updateSize()\n }, 100)\n const initMutationObserver = () => {\n const MutationObserver = window.MutationObserver\n observer = new MutationObserver(onResize)\n observer.observe(document.body, {\n attributes: true,\n attributeFilter: ['style'],\n attributeOldValue: true\n })\n }\n const removeMutationObserver = () => {\n if (observer) {\n observer.disconnect()\n observer.takeRecords()\n observer = null\n }\n }\n\n const visible = ref(false)\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 watch(() => visible.value, (visible) => {\n if (visible) {\n ready.value = false\n nextTick(() => {\n updateSize()\n window.addEventListener('resize', onResize)\n initMutationObserver()\n ready.value = true\n })\n } else {\n window.removeEventListener('resize', onResize)\n removeMutationObserver()\n }\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 // 注册\n useOnEvent(props, {\n showModal\n })\n\n return {\n modalRef,\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 ready\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","import { withInstall } from '@/utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TabsProps extends Props {\n data: { [key:string]: any } []\n backgroundColor: string\n tabFontSize: string\n tabColor: string\n activeTabColor: string\n tabBackgroundImage: string\n tabBarGutter: string\n activeTabBackgroundImage\n value: string\n activeKey: number\n tabHorizontalPadding: string\n // 包含组件id\n contains: string []\n tabFontWeight: number\n tabAlignItems: 'flex-start' | 'center' | 'flex-end'\n tabJustifyContent: 'flex-start' | 'center' | 'flex-end',\n tabFlexDirection: 'row' | 'column'\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n tabHorizontalPadding: '0px',\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '500px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '#ffffff',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n tabFontWeight: 400,\n value: '',\n activeKey: 0,\n contains: [],\n tabFlexDirection: 'row',\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ],\n tabAlignItems: 'flex-start',\n tabJustifyContent: 'flex-start'\n}\n\nexport const tabsComponentProps = transformToComponentProps(tabsProps)\n\nexport const tabsEvents = ['tabChange']\n","<template>\n <div class=\"ecan-tabs\" :style=\"style\">\n <div\n class=\"tabs-header\"\n :style=\"{\n fontSize: tabFontSize,\n alignItems: tabAlignItems,\n justifyContent: tabJustifyContent,\n flexDirection: tabFlexDirection\n }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n padding: `5px ${tabHorizontalPadding}`,\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabFlexDirection === 'row' ? tabBarGutter : null,\n marginBottom: tabFlexDirection === 'column' ? tabBarGutter : null,\n fontWeight: tabFontWeight\n }\"\n v-for=\"(tab, index) in myData\"\n :key=\"index\"\n @click.prevent.stop=\"tabChange(tab, index)\"\n >\n <div\n class=\"tab-inner\"\n :style=\"{\n borderBottom: !activeTabBackgroundImage && !tabBackgroundImage ? `1px solid ${isActive(index) ? activeTabColor : 'transparent'}` : ''\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { tabsComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useImagePath } from '@/hooks'\nimport { GLOBAL_MODEL, REFRESH_PAGE } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanTabs',\n props: {\n ...tabsComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const activeKey = ref(0)\n watch(() => props.activeKey, (key) => {\n activeKey.value = key\n }, {\n immediate: true\n })\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n const isActive = (index: number) => activeKey.value === index\n const myValue = ref(props.value || (unref(myData)[0] && unref(myData)[0]?.value) || '')\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n value: myValue,\n activeKey\n })\n\n const { emitRefreshPage } = inject(REFRESH_PAGE, {\n // eslint-disable-next-line no-void\n emitRefreshPage: () => void 0\n })\n\n const tabChange = emitEvent('tabChange', (tab:{ [key:string]:any }, index: number) => {\n if (index !== unref(activeKey)) {\n myValue.value = tab?.value || ''\n activeKey.value = index\n emitRefreshPage()\n }\n })\n useOnEvent(props, {\n tabChange\n })\n return {\n style,\n activeKey,\n isActive,\n tabChange,\n myData,\n useImagePath\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-tabs {\n display: flex;\n}\n\n.tabs-header {\n width: 100%;\n color: #333333;\n display: flex;\n padding: 0 10px;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.tab:last-child {\n margin-bottom: 0 !important;\n margin-right: 0 !important;\n}\n\n.tabs-content {\n flex:1;\n}\n</style>\n","import Tabs from './Tabs.vue'\nimport { withInstall } from '../../utils/withInstall'\nexport const EcanTabs = withInstall(Tabs)\nexport default EcanTabs\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface ImageProps extends Props {\n imgUrl: string\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\n\nexport const imageProps: ImageProps = {\n ...props,\n name: '图片',\n keyName: '图片',\n type: 'ecanImage',\n width: '300px',\n height: '300px',\n imgUrl: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\nexport const imageComponentProps = transformToComponentProps(imageProps)\n","<template>\n <img\n :style=\"style\"\n :src=\"myImgUrl\"\n v-if=\"myImgUrl !== ''\"\n @click=\"onClick\"\n />\n <div\n class=\"image-placeholder\"\n :style=\"style\"\n v-else\n >\n 请上传图片\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref } from 'vue'\nimport { imageComponentProps } from './props'\nimport { useImagePath, usePickComponentStyle, usePageUrl, useVariablesInText } from '@/hooks'\nimport { GLOBAL_CONFIG } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanImage',\n props: {\n ...imageComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myImgUrl = computed(() => useImagePath(props.imgUrl as string))\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const onClick = () => {\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 return {\n style,\n myImgUrl,\n onClick\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.image-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Image from './Image.vue'\nexport const EcanImage = withInstall(Image)\nexport default EcanImage\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface IframeProps extends Props {\n link: string,\n linkType: 'web' | 'erd'\n}\n\nexport const iframeProps: IframeProps = {\n ...props,\n name: '网页',\n keyName: '网页',\n type: 'ecanIframe',\n width: '300px',\n height: '300px',\n link: '',\n linkType: 'web'\n}\n\nexport const iframeComponentProps = transformToComponentProps(iframeProps)\n","<template>\n <iframe\n :src=\"myLink\"\n :style=\"style\"\n v-if=\"myLink\"\n />\n <div\n class=\"iframe-placeholder\"\n :style=\"style\"\n v-else\n >\n 请填写网页链接\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, inject, unref } from 'vue'\nimport { usePickComponentStyle, useVariablesInText } from '@/hooks'\nimport { iframeComponentProps } from '@/media/iframe/props'\nimport { GLOBAL_CONFIG, ERD_URL } from '@/utils/constant'\nexport default defineComponent({\n name: 'EcanIframe',\n props: {\n ...iframeComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const { contextRequestUrl } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: ''\n })\n const myLink = computed(() => {\n let link = useVariablesInText(props.link as string)\n if (props.linkType === 'erd' && link != null) {\n let ctxErdUrl = unref(contextRequestUrl)\n if (ctxErdUrl[ctxErdUrl.length - 1] === '/') {\n ctxErdUrl += 'erdReport'\n } else {\n ctxErdUrl += '/erdReport'\n }\n const erdUrl = ERD_URL || ctxErdUrl\n link = `${erdUrl}?_t=0&uid=${link}`\n }\n return link\n })\n return {\n style,\n myLink\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.iframe-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Iframe from './Iframe.vue'\nexport const EcanIframe = withInstall(Iframe)\nexport default EcanIframe\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n headerFontSize: string\n headerFontWeight: number\n fontSize: string\n fontWeight: number\n isReverse: boolean\n clickHighlight: boolean\n filterDropdownHeight: 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: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n headerFontSize: '14px',\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n headerFontWeight: 400,\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n isReverse: false,\n simple: false,\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n clickHighlight: false,\n filterDropdownHeight: '200px',\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData', 'resetRecord']\n","<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"tableColumns\"\n :data-source=\"tableDataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template #customFilterDropdown=\"{ column, selectedKeys, setSelectedKeys, confirm, clearFilters }\">\n <div\n class=\"ecan-table-filter\"\n :style=\"{\n height: filterDropdownHeight\n }\"\n >\n <a-input\n v-model:value=\"column.filterOptionsInputValue\"\n placeholder=\"请输入关键字\"\n :value=\"selectedKeys[0]\"\n class=\"filter-input\"\n @change=\"onSearchFilterOptions\"\n />\n <a-checkbox-group\n v-model:value=\"column.filterCheckboxGroupValue\"\n class=\"filter-checkbox\"\n :options=\"useFilterOptions(column)\"\n @change=\"useSetSelectedKeys(setSelectedKeys, column)\"\n >\n </a-checkbox-group>\n <div>\n <a-button\n type=\"primary\"\n size=\"small\"\n style=\"width: 90px; margin-right: 8px\"\n @click=\"() => confirm()\"\n >\n 搜索\n </a-button>\n <a-button\n size=\"small\"\n style=\"width: 90px\"\n @click=\"onResetFilter(clearFilters, column)\"\n >\n 重置\n </a-button>\n </div>\n </div>\n </template>\n <template #bodyCell=\"{ column, index, text, record }\">\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span>{{ index + 1 }}</span>\n </template>\n <!-- 操作列配置 -->\n <template v-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ column.format != null ? formatFn(text, column.format) : text }}\n </div>\n </template>\n </template>\n <template #summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"index\"\n :index=\"index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor,\n }\"\n >\n <div\n :class=\"[contrastClass(summary.total, summary.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject, reactive } from 'vue'\nimport {\n Input as AInput,\n CheckboxGroup as ACheckboxGroup,\n // Checkbox as ACheckbox,\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport 'ant-design-vue/es/checkbox/style'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport { cloneDeep } from 'lodash-es'\nimport { RequestModalParam } from '@/utils/types'\nimport { Big } from 'big.js'\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n AInput,\n ACheckboxGroup,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = ref<{ [key: string]: any } []>([])\n const myDataSource = ref<{ [key: string]: any } []>([])\n const tableColumns = ref<{ [key: string]: any } []>([])\n const tableDataSource = ref<{ [key: string]: any } []>([])\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const filterDataIndexList = reactive([])\n const handleChildrenColumns = (_columns: { [key: string]: any } [] = []) => {\n if (Array.isArray(_columns) && _columns.length > 0) {\n const len = _columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = _columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n cellAlign = 'center',\n cellColor,\n dataIndex,\n title,\n tableFilter,\n headerCellAlign,\n headerCellColor\n } = column\n if (tableFilter) {\n filterDataIndexList.push(dataIndex)\n column.filterOptionsInputValue = ''\n column.filterCheckboxGroupValue = []\n column.customFilterDropdown = true\n column.onFilter = (value, record) => record[dataIndex].toString().toLowerCase().includes(value.toLowerCase())\n }\n // 通用配置\n // 头部单元格\n column.customHeaderCell = () => ({\n style: {\n display: 'table-cell',\n verticalAlign: 'middle',\n fontSize: props.headerFontSize,\n fontWeight: props.headerFontWeight,\n textAlign: headerCellAlign || 'center',\n color: headerCellColor,\n borderBottomColor: props.borderColor\n }\n })\n // 表格单元格\n column.customCell = (record, rowIndex) => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n },\n class: {\n highlight: unref(useRowIndex) === rowIndex && props.clickHighlight\n },\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n record = {\n dataIndex,\n title,\n ...record\n }\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n if (Array.isArray(column.children)) {\n handleChildrenColumns(column.children)\n }\n }\n }\n }\n const handleColumns = (columns: { [key: string]: any } [] = []) => {\n // 复制表头数据\n if (props.isUseSeq) {\n // 添加序号\n columns.unshift({\n title: '序号',\n dataIndex: 'SEQ',\n align: 'center'\n })\n }\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n handleChildrenColumns(columns)\n return columns\n }\n watch(() => [\n props.columns,\n props.isUseSeq,\n props.isUseAction,\n props.columnsFixedNum,\n props.actionColumnWidth,\n props.cellBackgroundColor,\n props.borderColor\n ], () => {\n myColumns.value = handleColumns(cloneDeep(props.columns as any []))\n }, {\n immediate: true,\n deep: true\n })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n myDataSource.value = data as { [key:string]:any } []\n }, {\n immediate: true\n })\n const allFilterOptions = ref({})\n const handleFilterCheckboxOptions = (dataSource: { [key:string]: any } []) => {\n if (Array.isArray(dataSource)) {\n const dataLen = dataSource.length\n const keys = filterDataIndexList\n const keysLen = keys.length\n const filterOptionsMap: { [key:string]: Set<string> } = {}\n for (let i = 0; i < dataLen; i++) {\n const record = dataSource[i]\n for (let j = 0; j < keysLen; j++) {\n const key = keys[j]\n if (filterOptionsMap[key]) {\n filterOptionsMap[key].add(record[key])\n } else {\n const set = new Set<string>()\n set.add(record[key])\n filterOptionsMap[key] = set\n }\n }\n }\n const _allFilterOptions: { [key:string]: { label:string, value: string } [] } = {}\n for (const key in filterOptionsMap) {\n if (Object.prototype.hasOwnProperty.call(filterOptionsMap, key)) {\n const optionsSet = filterOptionsMap[key]\n const options = Array.from(optionsSet)\n _allFilterOptions[key] = options.map((option) => ({ label: option, value: option }))\n }\n }\n allFilterOptions.value = _allFilterOptions\n }\n }\n watch(() => [props.isReverse, myColumns.value, myDataSource.value], () => {\n const _columns = unref(myColumns)\n const _dataSource = unref(myDataSource)\n handleFilterCheckboxOptions(_dataSource)\n if (props.isReverse) {\n const { columns, dataSource } = handleReverseTable(cloneDeep(_columns), cloneDeep(_dataSource))\n tableColumns.value = columns\n tableDataSource.value = dataSource\n } else {\n tableColumns.value = _columns\n tableDataSource.value = _dataSource\n }\n }, {\n immediate: true,\n flush: 'post'\n })\n const handleReverseTable = (columns: { [key:string]: any} [], dataSource: { [key:string]: any} []) => {\n const firstColumns = columns[0]\n const _columns = [{\n title: firstColumns.title,\n dataIndex: 'col0',\n key: 'col0',\n align: 'center'\n }] as { [key:string]: any } []\n for (let i = 0; i < dataSource.length; i++) {\n const data = dataSource[i]\n const dataIndex = 'col' + (i + 1)\n _columns.push({\n title: data[firstColumns.dataIndex],\n dataIndex,\n key: dataIndex,\n align: 'center'\n })\n }\n const _dataSource = [] as { [key:string]: any } []\n for (let i = 1; i < columns.length; i++) {\n const column = columns[i]\n const _data = { col0: column.title }\n for (let j = 0; j < dataSource.length; j++) {\n const data = dataSource[j]\n _data[`col${j + 1}`] = data[column.dataIndex]\n }\n _dataSource.push(_data)\n }\n return {\n columns: _columns,\n dataSource: _dataSource\n }\n }\n const orderCondition = ref<string>('')\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {} as { [key:string]: any }\n if (unref(orderCondition)) {\n params.orderCondition = unref(orderCondition)\n }\n // 分页\n if (props.paginationShow) {\n params = {\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1',\n ...params\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n if (Array.isArray(rows)) {\n myDataSource.value = rows\n }\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\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\n const handleIndicatorDataset = (dataColumns: any [] = [], dataRows: { [key:string]: any }[] = []) => {\n const _columns = dataColumns.map((column: string) => ({ title: column, dataIndex: column, key: column }))\n myColumns.value = handleColumns(_columns)\n myDataSource.value = dataRows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const useRowIndex = ref(-1)\n\n const customRow = (record, index) => ({\n onClick: emitEvent('rowClick', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n useRowIndex.value = index\n })\n })\n\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n\n const resetRecord = () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n setGlobalModel(id, { ...modal, RECORD: '' })\n }\n\n useOnEvent(props, {\n resetRecord,\n refreshData\n })\n const summaryList = computed(() => {\n const columns = unref(tableColumns)\n const summaryList = [] as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (props.isUseSeq && i === 0) {\n summaryList.push({\n ...column,\n total: '小计'\n })\n } else if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n let records = unref(tableDataSource)\n if (props.paginationShow) {\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n records = records.slice(start, end)\n }\n for (let i = 0; i < summaryList.length; i++) {\n const summary = summaryList[i]\n let total: number = 0\n const { isCalcTotal, dataIndex } = summary\n if (isCalcTotal === true) {\n for (let j = 0; j < records.length; j++) {\n const record = records[j]\n const num = +record[dataIndex]\n if (!isNaN(num)) {\n total = new Big(total).add(num).toNumber()\n }\n }\n summary.total = total\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: ({ id, sortNum, requestFn }: RequestModalParam) => void 0\n })\n\n setRequest({\n id: props.id as string,\n requestFn: refreshData,\n sortNum: props.requestSort as number\n })\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n const useSetSelectedKeys = (setSelectedKeys, column) => {\n setSelectedKeys(column.filterCheckboxGroupValue)\n }\n\n const onResetFilter = (clearFilters, column) => {\n clearFilters({ confirm: true })\n column.filterOptionsInputValue = ''\n column.filterCheckboxGroupValue = []\n }\n const onSearchFilterOptions = () => {}\n const useFilterOptions = (column) => {\n const key = column.dataIndex\n if (typeof key === 'string') {\n let filterOptions = unref(allFilterOptions)[key]\n const _inputValue = unref(column.filterOptionsInputValue).trim()\n if (Array.isArray(filterOptions)) {\n filterOptions = filterOptions.filter((filterOption) => {\n if (typeof filterOption.label === 'string') {\n return filterOption.label.toLowerCase().includes(_inputValue.toLowerCase())\n }\n return true\n })\n return filterOptions\n }\n return []\n }\n return []\n }\n return {\n x,\n y,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget,\n useRowIndex,\n tableColumns,\n tableDataSource,\n useFilterOptions,\n useSetSelectedKeys,\n onResetFilter,\n onSearchFilterOptions\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n\n.filter-input {\n width: 188px;\n margin-bottom: 8px;\n display: block\n}\n\n.filter-checkbox {\n width: 188px;\n margin-bottom: 8px;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table-filter {\n padding: 8px;\n display: flex;\n flex-direction: column;\n .ant-checkbox-group {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .ant-checkbox-wrapper {\n width: 100%;\n padding: 5px 0;\n font-size: 16px;\n &:hover {\n background-color: #f5f5f5;\n }\n .ant-checkbox + span {\n width: 100%;\n word-break: break-all;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical\n }\n }\n}\n\n.ecan-table {\n .highlight {\n background: #e6f7ff !important;\n }\n\n *::-webkit-scrollbar {\n //width: 6px;\n //height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: #bfbfbf;\n }\n\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n .highlight {\n background: #225b98 !important;\n }\n\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface MapProps extends Props {\n mapJson: { name: string, value: string } | null,\n data: { [key:string]: any } []\n backgroundImage: string\n backgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat',\n symbolImage: string // 图标\n symbolWidth: number\n symbolHeight: number\n geoZoom: number\n geoRoam: boolean\n geoCenter: string\n geoBackgroundImage: string\n geoBackgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'\n geoLabelShow: boolean\n geoLabelColor: string\n geoLabelFontSize: number\n geoItemStyleAreaColor: string\n geoItemStyleBorderColor: string\n geoItemStyleBorderWidth: number\n geoItemStyleShadowColor: string\n geoItemStyleShadowOffsetX: number\n geoItemStyleShadowOffsetY: number\n geoItemStyleShadowBlur: number\n geoEmphasisDisabled: boolean\n geoEmphasisLabelColor: string\n geoEmphasisItemStyleAreaColor: string\n geoEmphasisItemStyleBorderColor: string\n itemStyleColor: string\n labelFontSize: number\n labelFormatter: string\n labelShow: boolean\n labelColor: string\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n}\n\nexport const mapProps: MapProps = {\n ...props,\n mapJson: null,\n data: [],\n name: '地图',\n keyName: '地图',\n type: 'ecanMap',\n width: '400px',\n height: '400px',\n backgroundImage: '',\n backgroundImageRepeat: 'no-repeat',\n geoBackgroundImage: '',\n geoBackgroundImageRepeat: 'no-repeat',\n symbolImage: '',\n symbolWidth: 10,\n symbolHeight: 10,\n itemStyleColor: '#11BFDA',\n labelFontSize: 14,\n labelShow: true,\n geoLabelShow: true,\n geoLabelColor: '#000',\n geoZoom: 1,\n geoRoam: false,\n geoCenter: '',\n geoLabelFontSize: 12,\n labelColor: '',\n labelFormatter: '{b}',\n geoItemStyleAreaColor: '#eee',\n geoItemStyleBorderColor: '#000',\n geoItemStyleBorderWidth: 1,\n geoItemStyleShadowColor: '',\n geoItemStyleShadowOffsetX: 0,\n geoItemStyleShadowOffsetY: 0,\n geoItemStyleShadowBlur: 0,\n geoEmphasisDisabled: false,\n geoEmphasisLabelColor: '#fff',\n geoEmphasisItemStyleAreaColor: '#f00',\n geoEmphasisItemStyleBorderColor: '#000',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{b}'\n}\n\nexport const mapComponentProps = transformToComponentProps(mapProps)\n","<template>\n <div class=\"ecan-map\" :style=\"style\">\n <echarts\n v-if=\"isLoadedData\"\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n <img\n ref=\"geoBackgroundImageRef\"\n v-show=\"false\"\n :src=\"myGeoBackgroundImage\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, watch, ref, unref } from 'vue'\nimport { mapComponentProps } from './props'\nimport Echarts from '@/common/echarts'\nimport { use, registerMap } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { MapChart, ScatterChart } from 'echarts/charts'\nimport { VisualMapComponent, TooltipComponent, GraphicComponent } from 'echarts/components'\nimport request from '@/utils/request'\nimport { usePickComponentStyle, useImagePath } from '../../hooks'\nuse([\n CanvasRenderer,\n MapChart,\n ScatterChart,\n VisualMapComponent,\n TooltipComponent,\n GraphicComponent\n])\nexport default defineComponent({\n name: 'EcanMap',\n components: {\n Echarts\n },\n props: {\n ...mapComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['backgroundImage'])\n const geoBackgroundImageRef = ref()\n const myGeoBackgroundImage = computed(() => useImagePath(props.geoBackgroundImage as string))\n const myBackgroundImage = computed(() => useImagePath(props.backgroundImage as string))\n const areaColor = computed(() => {\n const backgroundImage = props.geoBackgroundImage as string\n if (backgroundImage) {\n return {\n image: unref(geoBackgroundImageRef),\n repeat: props.geoBackgroundImageRepeat\n }\n }\n return props.geoItemStyleAreaColor\n })\n const symbol = computed(() => {\n const symbolImage = props.symbolImage as string\n if (props.symbolImage) {\n return 'image://' + useImagePath(symbolImage)\n }\n return 'circle'\n })\n const option = computed(() => {\n const geoCenter = props.geoCenter\n let center: undefined | Array<any>\n if (typeof geoCenter === 'string' && geoCenter !== '') {\n center = geoCenter.split(',')\n }\n return {\n // backgroundColor: unref(background),\n tooltip: {\n show: true\n },\n graphic: [\n { // 一个图形元素,类型是 image。\n type: 'image',\n style: {\n width: parseFloat(props.width as string),\n height: parseFloat(props.height as string),\n image: unref(myBackgroundImage)\n },\n top: 'center'\n }\n ],\n geo: {\n zoom: props.geoZoom,\n roam: props.geoRoam,\n center,\n map: 'map',\n tooltip: {\n show: false\n },\n label: { // 地图上显示文字属性\n show: props.geoLabelShow,\n color: props.geoLabelColor,\n fontSize: props.geoLabelFontSize\n },\n itemStyle: { // 地图上板块属性\n areaColor: unref(areaColor),\n borderColor: props.geoItemStyleBorderColor,\n borderWidth: props.geoItemStyleBorderWidth,\n shadowColor: props.geoItemStyleShadowColor,\n shadowBlur: props.geoItemStyleShadowBlur,\n shadowOffsetX: props.geoItemStyleShadowOffsetX,\n shadowOffsetY: props.geoItemStyleShadowOffsetY\n },\n emphasis: { // 当鼠标悬停的时候\n disabled: props.geoEmphasisDisabled,\n label: {\n color: props.geoEmphasisLabelColor\n },\n itemStyle: {\n areaColor: props.geoEmphasisItemStyleAreaColor,\n borderColor: props.geoEmphasisItemStyleBorderColor\n }\n }\n },\n series: [\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n itemStyle: {\n color: props.itemStyleColor\n },\n symbol: unref(symbol),\n symbolSize: [props.symbolWidth, props.symbolHeight],\n label: {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n formatter: props.labelFormatter,\n color: props.labelColor\n },\n tooltip: {\n show: props.tooltipShow,\n formatter: props.tooltipFormatter,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n data: props.data\n }\n ]\n }\n })\n // const echarts = ref()\n const isLoadedData = ref(false)\n const handleRegisterMap = async () => {\n const mapJson = props.mapJson as { name: string, path: string }\n if (mapJson != null && mapJson.path) {\n // @ts-ignore\n const res = await request(window?.config?.uploadPath + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n }\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: true,\n deep: true\n })\n return {\n option,\n style,\n isLoadedData,\n geoBackgroundImageRef,\n myGeoBackgroundImage\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-map {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\nimport Map from './Map.vue'\nexport const EcanMap = withInstall(Map)\nexport default EcanMap\nexport * from './props'\n","import { App } from 'vue'\nimport * as components from './components'\nconst install = (app: App) => {\n Object.keys(components).forEach(key => {\n const component = components[key]\n if (component.install) {\n app.use(component)\n }\n })\n}\n\n// 部分导出\nexport * from './components'\n// 全局安装\nexport default {\n install\n}\n"],"names":["METHOD_NAMES","usePublicAPI","chart","init","makePublicMethod","name","args","makePublicMethods","methods","useAutoresize","autoresize","root","resizeListener","watch","_","cleanup","throttle","addListener","removeListener","autoresizeProps","LOADING_OPTIONS_KEY","useLoading","loading","loadingOptions","defaultLoadingOptions","inject","realLoadingOptions","computed","unref","watchEffect","instance","loadingProps","onRE","isOn","key","omitOn","attrs","result","TAG_NAME","THEME_KEY","INIT_OPTIONS_KEY","UPDATE_OPTIONS_KEY","Echarts","defineComponent","props","listeners","shallowRef","manualOption","defaultTheme","defaultInitOptions","defaultUpdateOptions","manualUpdate","toRefs","realOption","realTheme","realInitOptions","realUpdateOptions","nonEventAttrs","option","initChart","realListeners","event","handler","resize","e","commit","nextTick","setOption","updateOptions","unwatchOption","publicApi","onMounted","onUnmounted","h","bound01","n","max","isOnePointZero","isPercent","isPercentage","boundAlpha","a","convertToPercentage","pad2","c","rgbToRgb","r","g","b","hue2rgb","p","q","hslToRgb","s","l","rgbToHsv","min","v","d","hsvToRgb","i","f","t","mod","rgbToHex","allow3Char","hex","convertHexToDecimal","parseIntFromHex","val","names","inputToRGB","color","rgb","ok","format","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","_ref","hsv","toHex","_ref2","mix","rgb1","rgb2","amount","getHue","light","hue","getSaturation","saturation","getValue","value","generate","opts","patterns","pColor","colorString","_i","_hsv","_colorString","_ref3","index","opacity","darkColorString","presetPrimaryColors","presetPalettes","presetDarkPalettes","containers","styleElements","usage","createStyleElement","styleElement","insertCss","css","options","position","container","containerId","_objectSpread","target","source","ownKeys","sym","_defineProperty","obj","warn","valid","message","warning","isIconDefinition","node","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","cssInjectedFlag","useInsertStyles","styleStr","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","context","_props$context$attrs","icon","restProps","colors","VueIcon","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_d","_s","_e","err","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","getTwoToneColor","Icon","_classObj","cls","spin","rotate","tabindex","onClick","classObj","svgClassString","iconTabIndex","svgStyle","_createVNode","AntdIcon","LoadingOutlined","LoadingOutlinedSvg","LoadingOutlined$1","_sfc_main$r","ASpin","_component_a_spin","_resolveComponent","_createElementBlock","_hoisted_1","_ctx","_openBlock","_createBlock","_renderSlot","_sfc_main$q","ASkeleton","_component_a_skeleton","withInstall","main","extra","app","comp","transformToComponentProps","mapValues","pageConfig","pageConfigComponentProps","styleList","usePickComponentStyle","excludeStyleList","finalStyleList","without","pick","EVENT_BUS","GLOBAL_CONFIG","GLOBAL_MODEL","REQUEST_MODEL","GLOBAL_TOKEN","REFRESH_PAGE","INDICATOR_URL","_a","BASE_URL","ERD_URL","useOnEvent","events","id","oldId","eventBus","useEmitEvent","type","touchEventId","ref","on","callback","emitEvent","useTransformChartDataByAttrValue","data","dataFieldNames","set","map","item","x","dimensions","dataset","handleFormatter","formatter","formatMoney","decimalPlaces","_value","formatPercentage","strValue","lowerCaseIncludes","v1","v2","useVariablesInText","useNewline","useSpace","variables","variable","statement","reg","textVariables","j","textVariable","usedVariable","useRequestData","callBack","requestUrl","method","headers","requestParams","requestInterval","isOpenRequestTimer","contextRequestUrl","pageMode","getGlobalModel","url","requestData","params","_params","param","record","prop","propKey","operate","mode","urlParams","keys","last","keysLen","isSetUrlParams","res","axios","requestDataTimer","useTransformChartDataByAttrKey","types","dataLen","typesLen","vs","label","m","useImagePath","path","isFormat","imagePath","usePageUrl","pageId","envPageUrl","proPageUrl","request","config","error","_b","_c","status","useRequestDiagramData","getIndicatorList","graphicConfig","indicatorList","leftAxis","show","indicator","getCalculationAxis","it","newIndicator","getSqlCondition","relativeList","list","keyName","searchName","searchType","variateName","watchItem","getSortParams","classification","classifyItem","row","rowIndex","handlerFilterParam","parent","conditions","join","fieldValue","fieldList","getFilterParams","filterList","componentType","xAxisValue","series","seriesItem","firstSeries","classify","sqlConditions","fixedDimSql","dataSourceId","idxLibMode","useValueFormatter","useIndicatorData","requestToken","handleQueryColumn","queryColumn","location","indexCode","handleIndicator","calcType","builtInFormula","builtInValueSource","builtInCalcWay","formula","handleSqlConditions","controlList","control","conditionLabel","conditionKey","conditionValueType","sqlCondition","model","dataViewId","plugin","layer","chartType","classificationList","seriesList","leftAxisList","rightAxisList","queryColumnList","indicators","preview","sort","customGroup","queryColumns","rightAxis","useHrefParamsToGlobalVariables","keyAndValue","_sfc_main$p","style","width","height","originalWidth","originalHeight","ready","observer","initSize","resolve","updateSize","updateScale","currentWidth","currentHeight","realWidth","realHeight","widthScale","heightScale","onResize","debounce","initMutationObserver","MutationObserver","removeMutationObserver","_sfc_render","_cache","$props","$setup","$data","$options","_normalizeStyle","EcanPageConfig","PageConfig","providerConfig","providerConfigComponentProps","_sfc_main$o","expose","setTheme","theme","provide","globalModel","mitt","eventBusKeySet","k","onBeforeUnmount","eventName","tokenNum","requestModel","requestMap","setRequest","requestFn","sortNum","requestFnList","handleRequestFnList","reject","resultList","queryUserToken","touchRequest","requestModelArr","onRefreshPage","EcanProviderConfig","ProviderConfig","textProps","textComponentProps","textEvents","goUp","goDown","_sfc_main$n","Skeleton","myData","dataType","myText","text","handleRequestData","refreshData","click","linkPage","pageUrl","href","_component_skeleton","EcanText","Text","_sfc_main$m","EcanScrollText","ScrollText","timeDisplayProps","timeDisplayComponentProps","_sfc_main$l","time","dayjs","timer","clearTimer","setTimer","EcanTimeDisplay","TimeDisplay","listProps","listComponentProps","listEvents","_sfc_main$k","dataSource","columnStyle","formatFn","contrastClass","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_7","_withCtx","_Fragment","_renderList","count","_createCommentVNode","column","_hoisted_5","_normalizeClass","EcanList","List","proportionProps","proportionComponentProps","proportionEvents","_sfc_main$j","AProgress","myWidth","myValue","defaultValue","valueSet","_component_a_progress","EcanProportion","Proportion","inputProps","inputComponentProps","inputEvents","_sfc_main$i","AInput","setGlobalModel","handleSetGlobalModel","modal","inputChange","inputBlur","_component_a_input","$event","EcanInput","Input","datePickerProps","datePickerComponentProps","datePickerEvents","_sfc_main$h","ADatePicker","getPopupContainer","useCurrentTime","dateChange","locale","_component_a_date_picker","EcanDatePicker","DatePicker","selectProps","selectComponentProps","selectEvents","_sfc_main$g","ASelect","filterOption","input","labelKey","valueKey","labelValue","valueValue","firstOption","selectChange","_component_a_select","EcanSelect","Select","rangePickerProps","rangePickerComponentProps","rangePickerEvents","_sfc_main$f","ARangePicker","startTime","endTime","interval","intervalUnit","_startTime","_endTime","myStartTime","myEndTime","_component_a_range_picker","EcanRangePicker","RangePicker","buttonProps","buttonComponentProps","buttonEvents","_sfc_main$e","AButton","myHref","myTarget","_component_a_button","_createElementVNode","EcanButton","Button","checkboxProps","checkboxComponentProps","checkboxEvents","_sfc_main$d","ACheckboxGroup","myOption","handleDataAndOption","checkboxChange","_component_a_checkbox_group","EcanCheckbox","Checkbox","pieProps","pieComponentProps","pieEvents","useDownloadFile","downloadFileUrl","fileName","blob","dom","use","CanvasRenderer","PieChart","TitleComponent","ToolboxComponent","TooltipComponent","LegendComponent","_sfc_main$c","Spin","AModal","visible","hideModal","isUseLabelColors","marker","seriesName","percent","handleDataset","handleIndicatorDataset","chartData","requestDiagram","handleIndicatorData","newArr","_f","chooseRequestOrDiagram","_component_spin","_component_echarts","_component_a_modal","EcanPie","Pie","lineProps","lineComponentProps","lineEvents","LineChart","_sfc_main$b","xAxisLabelFormatter","yAxisLabelFormatter","tooltipFormatter","useDataFieldNames","temp","keyTypeDataFieldNames","EcanLine","Line","barProps","barComponentProps","barEvents","BarChart","DatasetComponent","_sfc_main$a","ds","indicatorData","columns","rows","fieldNames","EcanBar","Bar","scatterProps","scatterComponentProps","scatterEvents","ScatterChart","_sfc_main$9","y","EcanScatter","Scatter","customGraphProps","customGraphComponentProps","_sfc_main$8","optionCode","evalCopy","echarts","EcanCustomGraph","CustomGraph","comboGraphProps","comboGraphComponentProps","comboGraphEvents","_sfc_main$7","seriesTypes","seriesType","_tooltipFormatter","yAxis","axisIndex","axis","EcanComboGraph","ComboGraph","borderProps","borderComponentProps","borderEvents","_sfc_main$6","borderStyle","_imports_0","_imports_1","_withScopeId","_pushScopeId","_popScopeId","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_14","_toDisplayString","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_15","EcanBorder","Border","modalProps","modalComponentProps","modalEvents","_sfc_main$5","getContainer","modalStyle","modalWith","containWidth","scaleWidth","containHeight","containStyle","contentStyle","modalRef","scaleHeight","screenWidth","screenHeight","showModal","onOk","onCancel","isFullWidth","isFullModal","wrapClassName","className","_createSlots","component","_resolveDynamicComponent","_mergeProps","EcanModal","Modal","tabsProps","tabsComponentProps","tabsEvents","_sfc_main$4","activeKey","isActive","emitRefreshPage","tabChange","tab","_withModifiers","EcanTabs","Tabs","imageProps","imageComponentProps","_sfc_main$3","myImgUrl","EcanImage","Image","iframeProps","iframeComponentProps","_sfc_main$2","myLink","link","ctxErdUrl","EcanIframe","Iframe","tableProps","tableComponentProps","tableEvents","_sfc_main$1","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","splitY","myColumns","myDataSource","tableColumns","tableDataSource","total","pageNum","pageSize","filterDataIndexList","reactive","handleChildrenColumns","_columns","columnsFixedNum","cellAlign","cellColor","dataIndex","title","tableFilter","headerCellAlign","headerCellColor","useRowIndex","handleColumns","cloneDeep","allFilterOptions","handleFilterCheckboxOptions","filterOptionsMap","_allFilterOptions","optionsSet","_dataSource","handleReverseTable","firstColumns","_data","orderCondition","isUseLoading","tableTotal","tableChange","current","_filters","sorter","field","order","fieldOrder","pagination","simple","formatBoolean","dataColumns","dataRows","customRow","summaryList","calcTotalCount","isCalcTotal","records","start","end","summary","num","Big","filterOptions","_inputValue","setSelectedKeys","clearFilters","_component_a_table","selectedKeys","confirm","action","index2","_component_a_table_summary","_component_a_table_summary_row","_component_a_table_summary_cell","EcanTable","Table","mapProps","mapComponentProps","MapChart","VisualMapComponent","GraphicComponent","_sfc_main","geoBackgroundImageRef","myGeoBackgroundImage","myBackgroundImage","areaColor","symbol","symbolImage","geoCenter","center","isLoadedData","handleRegisterMap","mapJson","registerMap","_withDirectives","EcanMap","Map","install","components"],"mappings":"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"}
|