@ecan-bi/datav 1.0.62 → 1.0.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2062) hide show
  1. package/dist/index.es.js +522 -447
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +453 -473
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +64 -64
  6. package/es/_utils/constant.js +16 -4
  7. package/es/_utils/constant.js.map +1 -1
  8. package/es/_utils/hooks/useDownloadFile.js +4 -1
  9. package/es/_utils/hooks/useDownloadFile.js.map +1 -1
  10. package/es/_utils/hooks/useEmitEvent.js +4 -1
  11. package/es/_utils/hooks/useEmitEvent.js.map +1 -1
  12. package/es/_utils/hooks/useHrefParamsToGlobalVariables.js +17 -0
  13. package/es/_utils/hooks/useHrefParamsToGlobalVariables.js.map +1 -0
  14. package/es/_utils/hooks/useImagePath.js +4 -1
  15. package/es/_utils/hooks/useImagePath.js.map +1 -1
  16. package/es/_utils/hooks/useIndicatorData.js +206 -0
  17. package/es/_utils/hooks/useIndicatorData.js.map +1 -0
  18. package/es/_utils/hooks/useOnEvent.js +4 -1
  19. package/es/_utils/hooks/useOnEvent.js.map +1 -1
  20. package/es/_utils/hooks/usePageUrl.js +4 -1
  21. package/es/_utils/hooks/usePageUrl.js.map +1 -1
  22. package/es/_utils/hooks/usePickComponentStyle.js +11 -3
  23. package/es/_utils/hooks/usePickComponentStyle.js.map +1 -1
  24. package/es/_utils/hooks/useRequestData.js +19 -29
  25. package/es/_utils/hooks/useRequestData.js.map +1 -1
  26. package/es/_utils/hooks/useRequestDiagramData.js +6 -19
  27. package/es/_utils/hooks/useRequestDiagramData.js.map +1 -1
  28. package/es/_utils/hooks/useTransformChartDataByAttrKey.js +4 -1
  29. package/es/_utils/hooks/useTransformChartDataByAttrKey.js.map +1 -1
  30. package/es/_utils/hooks/useTransformChartDataByAttrValue.js +6 -19
  31. package/es/_utils/hooks/useTransformChartDataByAttrValue.js.map +1 -1
  32. package/es/_utils/hooks/useValueFormatter.js +16 -6
  33. package/es/_utils/hooks/useValueFormatter.js.map +1 -1
  34. package/es/_utils/hooks/useVariablesInText.js +11 -25
  35. package/es/_utils/hooks/useVariablesInText.js.map +1 -1
  36. package/es/_utils/props.js +4 -1
  37. package/es/_utils/props.js.map +1 -1
  38. package/es/_utils/request.js +4 -1
  39. package/es/_utils/request.js.map +1 -1
  40. package/es/_utils/util.js +6 -1
  41. package/es/_utils/util.js.map +1 -1
  42. package/es/_utils/withInstall.js +4 -1
  43. package/es/_utils/withInstall.js.map +1 -1
  44. package/es/_virtual/_commonjsHelpers.js +7 -0
  45. package/es/_virtual/_commonjsHelpers.js.map +1 -0
  46. package/es/_virtual/axios.js +3 -1
  47. package/es/_virtual/axios.js.map +1 -1
  48. package/es/_virtual/index.js +5 -0
  49. package/es/_virtual/index.js.map +1 -0
  50. package/es/_virtual/plugin-vue_export-helper.js +4 -2
  51. package/es/_virtual/plugin-vue_export-helper.js.map +1 -1
  52. package/es/assets/border-title-decoration-left.js +4 -2
  53. package/es/assets/border-title-decoration-left.js.map +1 -1
  54. package/es/assets/border-title-decoration-right.js +4 -2
  55. package/es/assets/border-title-decoration-right.js.map +1 -1
  56. package/es/assets/go-down.js +5 -0
  57. package/es/assets/go-down.js.map +1 -0
  58. package/es/assets/go-up.js +5 -0
  59. package/es/assets/go-up.js.map +1 -0
  60. package/es/common/Skeleton/Skeleton.js +21 -4
  61. package/es/common/Skeleton/Skeleton.js.map +1 -1
  62. package/es/common/Skeleton/index.js +5 -2
  63. package/es/common/echarts/ECharts.js +78 -57
  64. package/es/common/echarts/ECharts.js.map +1 -1
  65. package/es/common/echarts/composables/api.js +3 -1
  66. package/es/common/echarts/composables/api.js.map +1 -1
  67. package/es/common/echarts/composables/autoresize.js +4 -1
  68. package/es/common/echarts/composables/autoresize.js.map +1 -1
  69. package/es/common/echarts/composables/loading.js +9 -18
  70. package/es/common/echarts/composables/loading.js.map +1 -1
  71. package/es/common/echarts/index.js +5 -2
  72. package/es/common/echarts/style.js +4 -2
  73. package/es/common/echarts/style.js.map +1 -1
  74. package/es/common/echarts/utils.js +4 -1
  75. package/es/common/echarts/utils.js.map +1 -1
  76. package/es/common/spin/Spin.js +4 -2
  77. package/es/common/spin/Spin.js.map +1 -1
  78. package/es/common/spin/Spin.vue_vue_type_style_index_0_lang.js +4 -2
  79. package/es/common/spin/Spin.vue_vue_type_style_index_0_lang.js.map +1 -1
  80. package/es/common/spin/index.js +4 -1
  81. package/es/components.js +142 -49
  82. package/es/components.js.map +1 -1
  83. package/es/container/border/Border.js +68 -73
  84. package/es/container/border/Border.js.map +1 -1
  85. package/es/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  86. package/es/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  87. package/es/container/border/index.js +8 -2
  88. package/es/container/border/index.js.map +1 -1
  89. package/es/container/border/props.js +16 -23
  90. package/es/container/border/props.js.map +1 -1
  91. package/es/container/modal/Modal.js +10 -24
  92. package/es/container/modal/Modal.js.map +1 -1
  93. package/es/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  94. package/es/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  95. package/es/container/modal/Modal.vue_vue_type_style_index_1_lang.js +4 -2
  96. package/es/container/modal/Modal.vue_vue_type_style_index_1_lang.js.map +1 -1
  97. package/es/container/modal/index.js +8 -2
  98. package/es/container/modal/index.js.map +1 -1
  99. package/es/container/modal/props.js +5 -1
  100. package/es/container/modal/props.js.map +1 -1
  101. package/es/container/tabs/Tabs.js +110 -0
  102. package/es/container/tabs/Tabs.js.map +1 -0
  103. package/es/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +5 -0
  104. package/es/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -0
  105. package/es/container/tabs/index.js +12 -0
  106. package/es/container/tabs/index.js.map +1 -0
  107. package/es/container/tabs/props.js +38 -0
  108. package/es/container/tabs/props.js.map +1 -0
  109. package/es/control/button/Button.js +51 -30
  110. package/es/control/button/Button.js.map +1 -1
  111. package/es/control/button/Button.vue_vue_type_style_index_0_lang.js +5 -0
  112. package/es/control/button/Button.vue_vue_type_style_index_0_lang.js.map +1 -0
  113. package/es/control/button/index.js +8 -2
  114. package/es/control/button/index.js.map +1 -1
  115. package/es/control/button/props.js +17 -23
  116. package/es/control/button/props.js.map +1 -1
  117. package/es/control/date-picker/DatePicker.js +8 -20
  118. package/es/control/date-picker/DatePicker.js.map +1 -1
  119. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  120. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  121. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js +4 -2
  122. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js.map +1 -1
  123. package/es/control/date-picker/index.js +8 -2
  124. package/es/control/date-picker/index.js.map +1 -1
  125. package/es/control/date-picker/props.js +8 -22
  126. package/es/control/date-picker/props.js.map +1 -1
  127. package/es/control/input/Input.js +8 -20
  128. package/es/control/input/Input.js.map +1 -1
  129. package/es/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  130. package/es/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  131. package/es/control/input/index.js +7 -2
  132. package/es/control/input/index.js.map +1 -1
  133. package/es/control/input/props.js +7 -22
  134. package/es/control/input/props.js.map +1 -1
  135. package/es/control/range-picker/RangePicker.js +8 -20
  136. package/es/control/range-picker/RangePicker.js.map +1 -1
  137. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  138. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  139. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js +4 -2
  140. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js.map +1 -1
  141. package/es/control/range-picker/index.js +8 -2
  142. package/es/control/range-picker/index.js.map +1 -1
  143. package/es/control/range-picker/props.js +8 -22
  144. package/es/control/range-picker/props.js.map +1 -1
  145. package/es/control/select/Select.js +7 -19
  146. package/es/control/select/Select.js.map +1 -1
  147. package/es/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  148. package/es/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  149. package/es/control/select/Select.vue_vue_type_style_index_1_lang.js +4 -2
  150. package/es/control/select/Select.vue_vue_type_style_index_1_lang.js.map +1 -1
  151. package/es/control/select/index.js +8 -2
  152. package/es/control/select/index.js.map +1 -1
  153. package/es/control/select/props.js +8 -22
  154. package/es/control/select/props.js.map +1 -1
  155. package/es/graph/bar/Bar.js +40 -50
  156. package/es/graph/bar/Bar.js.map +1 -1
  157. package/es/graph/bar/Bar.vue_vue_type_style_index_0_lang.js +4 -2
  158. package/es/graph/bar/Bar.vue_vue_type_style_index_0_lang.js.map +1 -1
  159. package/es/graph/bar/index.js +8 -2
  160. package/es/graph/bar/index.js.map +1 -1
  161. package/es/graph/bar/props.js +16 -28
  162. package/es/graph/bar/props.js.map +1 -1
  163. package/es/graph/combo-graph/ComboGraph.js +93 -34
  164. package/es/graph/combo-graph/ComboGraph.js.map +1 -1
  165. package/es/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js +5 -0
  166. package/es/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js.map +1 -0
  167. package/es/graph/combo-graph/index.js +8 -2
  168. package/es/graph/combo-graph/index.js.map +1 -1
  169. package/es/graph/combo-graph/props.js +20 -25
  170. package/es/graph/combo-graph/props.js.map +1 -1
  171. package/es/graph/custom-graph/CustomGraph.js +10 -22
  172. package/es/graph/custom-graph/CustomGraph.js.map +1 -1
  173. package/es/graph/custom-graph/index.js +7 -2
  174. package/es/graph/custom-graph/index.js.map +1 -1
  175. package/es/graph/custom-graph/props.js +7 -22
  176. package/es/graph/custom-graph/props.js.map +1 -1
  177. package/es/graph/line/Line.js +98 -39
  178. package/es/graph/line/Line.js.map +1 -1
  179. package/es/graph/line/Line.vue_vue_type_style_index_0_lang.js +5 -0
  180. package/es/graph/line/Line.vue_vue_type_style_index_0_lang.js.map +1 -0
  181. package/es/graph/line/index.js +8 -2
  182. package/es/graph/line/index.js.map +1 -1
  183. package/es/graph/line/props.js +21 -25
  184. package/es/graph/line/props.js.map +1 -1
  185. package/es/graph/pie/Pie.js +91 -34
  186. package/es/graph/pie/Pie.js.map +1 -1
  187. package/es/graph/pie/Pie.vue_vue_type_style_index_0_lang.js +5 -0
  188. package/es/graph/pie/Pie.vue_vue_type_style_index_0_lang.js.map +1 -0
  189. package/es/graph/pie/index.js +8 -2
  190. package/es/graph/pie/index.js.map +1 -1
  191. package/es/graph/pie/props.js +20 -25
  192. package/es/graph/pie/props.js.map +1 -1
  193. package/es/graph/scatter/Scatter.js +85 -32
  194. package/es/graph/scatter/Scatter.js.map +1 -1
  195. package/es/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js +5 -0
  196. package/es/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js.map +1 -0
  197. package/es/graph/scatter/index.js +8 -2
  198. package/es/graph/scatter/index.js.map +1 -1
  199. package/es/graph/scatter/props.js +20 -25
  200. package/es/graph/scatter/props.js.map +1 -1
  201. package/es/index.js +142 -49
  202. package/es/index.js.map +1 -1
  203. package/es/map/map/Map.js +10 -22
  204. package/es/map/map/Map.js.map +1 -1
  205. package/es/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  206. package/es/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  207. package/es/map/map/index.js +7 -2
  208. package/es/map/map/index.js.map +1 -1
  209. package/es/map/map/props.js +7 -22
  210. package/es/map/map/props.js.map +1 -1
  211. package/es/media/image/Image.js +23 -24
  212. package/es/media/image/Image.js.map +1 -1
  213. package/es/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  214. package/es/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  215. package/es/media/image/index.js +7 -2
  216. package/es/media/image/index.js.map +1 -1
  217. package/es/media/image/props.js +9 -24
  218. package/es/media/image/props.js.map +1 -1
  219. package/es/node_modules/@ant-design/colors/dist/index.esm.js +7 -2
  220. package/es/node_modules/@ant-design/colors/dist/index.esm.js.map +1 -1
  221. package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +4 -2
  222. package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +1 -1
  223. package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +4 -2
  224. package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +1 -1
  225. package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js +5 -3
  226. package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +1 -1
  227. package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +4 -1
  228. package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +1 -1
  229. package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +4 -2
  230. package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +1 -1
  231. package/es/node_modules/@ant-design/icons-vue/es/insert-css.js +3 -1
  232. package/es/node_modules/@ant-design/icons-vue/es/insert-css.js.map +1 -1
  233. package/es/node_modules/@ant-design/icons-vue/es/utils.js +16 -1
  234. package/es/node_modules/@ant-design/icons-vue/es/utils.js.map +1 -1
  235. package/es/node_modules/@babel/runtime/helpers/esm/extends.js +3 -1
  236. package/es/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  237. package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js +10 -2
  238. package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +1 -1
  239. package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +3 -1
  240. package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js.map +1 -1
  241. package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js +5 -1
  242. package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +1 -1
  243. package/es/node_modules/@ctrl/tinycolor/dist/module/util.js +8 -1
  244. package/es/node_modules/@ctrl/tinycolor/dist/module/util.js.map +1 -1
  245. package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js +3 -0
  246. package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  247. package/es/node_modules/ant-design-vue/es/button/style/index.js +4 -2
  248. package/es/node_modules/ant-design-vue/es/button/style/index.js.map +1 -1
  249. package/es/node_modules/ant-design-vue/es/checkbox/style/index.js +4 -2
  250. package/es/node_modules/ant-design-vue/es/checkbox/style/index.js.map +1 -1
  251. package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +4 -2
  252. package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +1 -1
  253. package/es/node_modules/ant-design-vue/es/date-picker/style/index.js +4 -2
  254. package/es/node_modules/ant-design-vue/es/date-picker/style/index.js.map +1 -1
  255. package/es/node_modules/ant-design-vue/es/dropdown/style/index.js +4 -2
  256. package/es/node_modules/ant-design-vue/es/dropdown/style/index.js.map +1 -1
  257. package/es/node_modules/ant-design-vue/es/empty/style/index.js +4 -2
  258. package/es/node_modules/ant-design-vue/es/empty/style/index.js.map +1 -1
  259. package/es/node_modules/ant-design-vue/es/input/style/index.js +4 -2
  260. package/es/node_modules/ant-design-vue/es/input/style/index.js.map +1 -1
  261. package/es/node_modules/ant-design-vue/es/modal/style/index.js +4 -2
  262. package/es/node_modules/ant-design-vue/es/modal/style/index.js.map +1 -1
  263. package/es/node_modules/ant-design-vue/es/pagination/style/index.js +4 -2
  264. package/es/node_modules/ant-design-vue/es/pagination/style/index.js.map +1 -1
  265. package/es/node_modules/ant-design-vue/es/progress/style/index.js +4 -2
  266. package/es/node_modules/ant-design-vue/es/progress/style/index.js.map +1 -1
  267. package/es/node_modules/ant-design-vue/es/radio/style/index.js +4 -2
  268. package/es/node_modules/ant-design-vue/es/radio/style/index.js.map +1 -1
  269. package/es/node_modules/ant-design-vue/es/select/style/index.js +4 -2
  270. package/es/node_modules/ant-design-vue/es/select/style/index.js.map +1 -1
  271. package/es/node_modules/ant-design-vue/es/skeleton/style/index.js +4 -2
  272. package/es/node_modules/ant-design-vue/es/skeleton/style/index.js.map +1 -1
  273. package/es/node_modules/ant-design-vue/es/spin/style/index.js +4 -2
  274. package/es/node_modules/ant-design-vue/es/spin/style/index.js.map +1 -1
  275. package/es/node_modules/ant-design-vue/es/style/default.js +4 -1738
  276. package/es/node_modules/ant-design-vue/es/style/default.js.map +1 -1
  277. package/es/node_modules/ant-design-vue/es/table/style/index.js +4 -2
  278. package/es/node_modules/ant-design-vue/es/table/style/index.js.map +1 -1
  279. package/es/node_modules/ant-design-vue/es/tag/style/index.js +4 -2
  280. package/es/node_modules/ant-design-vue/es/tag/style/index.js.map +1 -1
  281. package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +4 -2
  282. package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +1 -1
  283. package/es/node_modules/ant-design-vue/es/tooltip/style/index.js +4 -2
  284. package/es/node_modules/ant-design-vue/es/tooltip/style/index.js.map +1 -1
  285. package/es/node_modules/ant-design-vue/es/tree/style/index.js +4 -2
  286. package/es/node_modules/ant-design-vue/es/tree/style/index.js.map +1 -1
  287. package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +4 -2
  288. package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +1 -1
  289. package/es/node_modules/axios/index.js +9 -2
  290. package/es/node_modules/axios/index.js.map +1 -1
  291. package/es/node_modules/axios/lib/adapters/xhr.js +151 -136
  292. package/es/node_modules/axios/lib/adapters/xhr.js.map +1 -1
  293. package/es/node_modules/axios/lib/axios.js +18 -14
  294. package/es/node_modules/axios/lib/axios.js.map +1 -1
  295. package/es/node_modules/axios/lib/cancel/Cancel.js +17 -7
  296. package/es/node_modules/axios/lib/cancel/Cancel.js.map +1 -1
  297. package/es/node_modules/axios/lib/cancel/CancelToken.js +79 -69
  298. package/es/node_modules/axios/lib/cancel/CancelToken.js.map +1 -1
  299. package/es/node_modules/axios/lib/cancel/isCancel.js +13 -3
  300. package/es/node_modules/axios/lib/cancel/isCancel.js.map +1 -1
  301. package/es/node_modules/axios/lib/core/Axios.js +3 -1
  302. package/es/node_modules/axios/lib/core/Axios.js.map +1 -1
  303. package/es/node_modules/axios/lib/core/InterceptorManager.js +3 -1
  304. package/es/node_modules/axios/lib/core/InterceptorManager.js.map +1 -1
  305. package/es/node_modules/axios/lib/core/buildFullPath.js +20 -10
  306. package/es/node_modules/axios/lib/core/buildFullPath.js.map +1 -1
  307. package/es/node_modules/axios/lib/core/createError.js +16 -6
  308. package/es/node_modules/axios/lib/core/createError.js.map +1 -1
  309. package/es/node_modules/axios/lib/core/dispatchRequest.js +38 -14
  310. package/es/node_modules/axios/lib/core/dispatchRequest.js.map +1 -1
  311. package/es/node_modules/axios/lib/core/enhanceError.js +3 -1
  312. package/es/node_modules/axios/lib/core/enhanceError.js.map +1 -1
  313. package/es/node_modules/axios/lib/core/mergeConfig.js +3 -1
  314. package/es/node_modules/axios/lib/core/mergeConfig.js.map +1 -1
  315. package/es/node_modules/axios/lib/core/settle.js +26 -10
  316. package/es/node_modules/axios/lib/core/settle.js.map +1 -1
  317. package/es/node_modules/axios/lib/core/transformData.js +5 -3
  318. package/es/node_modules/axios/lib/core/transformData.js.map +1 -1
  319. package/es/node_modules/axios/lib/defaults.js +103 -93
  320. package/es/node_modules/axios/lib/defaults.js.map +1 -1
  321. package/es/node_modules/axios/lib/env/data.js +13 -3
  322. package/es/node_modules/axios/lib/env/data.js.map +1 -1
  323. package/es/node_modules/axios/lib/helpers/bind.js +3 -1
  324. package/es/node_modules/axios/lib/helpers/bind.js.map +1 -1
  325. package/es/node_modules/axios/lib/helpers/buildURL.js +3 -1
  326. package/es/node_modules/axios/lib/helpers/buildURL.js.map +1 -1
  327. package/es/node_modules/axios/lib/helpers/combineURLs.js +13 -3
  328. package/es/node_modules/axios/lib/helpers/combineURLs.js.map +1 -1
  329. package/es/node_modules/axios/lib/helpers/cookies.js +49 -39
  330. package/es/node_modules/axios/lib/helpers/cookies.js.map +1 -1
  331. package/es/node_modules/axios/lib/helpers/isAbsoluteURL.js +13 -3
  332. package/es/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +1 -1
  333. package/es/node_modules/axios/lib/helpers/isAxiosError.js +15 -5
  334. package/es/node_modules/axios/lib/helpers/isAxiosError.js.map +1 -1
  335. package/es/node_modules/axios/lib/helpers/isURLSameOrigin.js +42 -32
  336. package/es/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +1 -1
  337. package/es/node_modules/axios/lib/helpers/normalizeHeaderName.js +3 -1
  338. package/es/node_modules/axios/lib/helpers/normalizeHeaderName.js.map +1 -1
  339. package/es/node_modules/axios/lib/helpers/parseHeaders.js +55 -45
  340. package/es/node_modules/axios/lib/helpers/parseHeaders.js.map +1 -1
  341. package/es/node_modules/axios/lib/helpers/spread.js +14 -4
  342. package/es/node_modules/axios/lib/helpers/spread.js.map +1 -1
  343. package/es/node_modules/axios/lib/helpers/validator.js +11 -4
  344. package/es/node_modules/axios/lib/helpers/validator.js.map +1 -1
  345. package/es/node_modules/axios/lib/utils.js +3 -1
  346. package/es/node_modules/axios/lib/utils.js.map +1 -1
  347. package/es/node_modules/echarts/lib/action/roamHelper.js +3 -1
  348. package/es/node_modules/echarts/lib/action/roamHelper.js.map +1 -1
  349. package/es/node_modules/echarts/lib/animation/basicTrasition.js +10 -1
  350. package/es/node_modules/echarts/lib/animation/basicTrasition.js.map +1 -1
  351. package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +16 -1
  352. package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +1 -1
  353. package/es/node_modules/echarts/lib/animation/customGraphicTransition.js +58 -4
  354. package/es/node_modules/echarts/lib/animation/customGraphicTransition.js.map +1 -1
  355. package/es/node_modules/echarts/lib/chart/bar/BarSeries.js +4 -2
  356. package/es/node_modules/echarts/lib/chart/bar/BarSeries.js.map +1 -1
  357. package/es/node_modules/echarts/lib/chart/bar/BarView.js +17 -2
  358. package/es/node_modules/echarts/lib/chart/bar/BarView.js.map +1 -1
  359. package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +4 -2
  360. package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +1 -1
  361. package/es/node_modules/echarts/lib/chart/bar/install.js +3 -1
  362. package/es/node_modules/echarts/lib/chart/bar/install.js.map +1 -1
  363. package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +7 -3
  364. package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +1 -1
  365. package/es/node_modules/echarts/lib/chart/helper/Symbol.js +4 -2
  366. package/es/node_modules/echarts/lib/chart/helper/Symbol.js.map +1 -1
  367. package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js +4 -2
  368. package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +1 -1
  369. package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +5 -1
  370. package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +1 -1
  371. package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +3 -1
  372. package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +1 -1
  373. package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js +8 -2
  374. package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +1 -1
  375. package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +3 -1
  376. package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +1 -1
  377. package/es/node_modules/echarts/lib/chart/helper/labelHelper.js +4 -1
  378. package/es/node_modules/echarts/lib/chart/helper/labelHelper.js.map +1 -1
  379. package/es/node_modules/echarts/lib/chart/helper/pieHelper.js +3 -1
  380. package/es/node_modules/echarts/lib/chart/helper/pieHelper.js.map +1 -1
  381. package/es/node_modules/echarts/lib/chart/line/LineSeries.js +10 -2
  382. package/es/node_modules/echarts/lib/chart/line/LineSeries.js.map +1 -1
  383. package/es/node_modules/echarts/lib/chart/line/LineView.js +28 -9
  384. package/es/node_modules/echarts/lib/chart/line/LineView.js.map +1 -1
  385. package/es/node_modules/echarts/lib/chart/line/helper.js +12 -3
  386. package/es/node_modules/echarts/lib/chart/line/helper.js.map +1 -1
  387. package/es/node_modules/echarts/lib/chart/line/install.js +3 -1
  388. package/es/node_modules/echarts/lib/chart/line/install.js.map +1 -1
  389. package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +3 -1
  390. package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +1 -1
  391. package/es/node_modules/echarts/lib/chart/line/poly.js +4 -1
  392. package/es/node_modules/echarts/lib/chart/line/poly.js.map +1 -1
  393. package/es/node_modules/echarts/lib/chart/map/MapSeries.js +4 -2
  394. package/es/node_modules/echarts/lib/chart/map/MapSeries.js.map +1 -1
  395. package/es/node_modules/echarts/lib/chart/map/MapView.js +4 -2
  396. package/es/node_modules/echarts/lib/chart/map/MapView.js.map +1 -1
  397. package/es/node_modules/echarts/lib/chart/map/install.js +3 -1
  398. package/es/node_modules/echarts/lib/chart/map/install.js.map +1 -1
  399. package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js +3 -1
  400. package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +1 -1
  401. package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +3 -1
  402. package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +1 -1
  403. package/es/node_modules/echarts/lib/chart/pie/PieSeries.js +4 -2
  404. package/es/node_modules/echarts/lib/chart/pie/PieSeries.js.map +1 -1
  405. package/es/node_modules/echarts/lib/chart/pie/PieView.js +4 -2
  406. package/es/node_modules/echarts/lib/chart/pie/PieView.js.map +1 -1
  407. package/es/node_modules/echarts/lib/chart/pie/install.js +3 -1
  408. package/es/node_modules/echarts/lib/chart/pie/install.js.map +1 -1
  409. package/es/node_modules/echarts/lib/chart/pie/labelLayout.js +3 -1
  410. package/es/node_modules/echarts/lib/chart/pie/labelLayout.js.map +1 -1
  411. package/es/node_modules/echarts/lib/chart/pie/pieLayout.js +4 -1
  412. package/es/node_modules/echarts/lib/chart/pie/pieLayout.js.map +1 -1
  413. package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +4 -2
  414. package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +1 -1
  415. package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js +4 -2
  416. package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +1 -1
  417. package/es/node_modules/echarts/lib/chart/scatter/install.js +3 -1
  418. package/es/node_modules/echarts/lib/chart/scatter/install.js.map +1 -1
  419. package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js +13 -4
  420. package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +1 -1
  421. package/es/node_modules/echarts/lib/component/axis/AxisView.js +9 -2
  422. package/es/node_modules/echarts/lib/component/axis/AxisView.js.map +1 -1
  423. package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js +5 -1
  424. package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +1 -1
  425. package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js +4 -1
  426. package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +1 -1
  427. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +4 -2
  428. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +1 -1
  429. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +4 -2
  430. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +1 -1
  431. package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +4 -2
  432. package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +1 -1
  433. package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +12 -3
  434. package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +1 -1
  435. package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +8 -2
  436. package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +1 -1
  437. package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +3 -1
  438. package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +1 -1
  439. package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js +4 -1
  440. package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +1 -1
  441. package/es/node_modules/echarts/lib/component/axisPointer/install.js +3 -1
  442. package/es/node_modules/echarts/lib/component/axisPointer/install.js.map +1 -1
  443. package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js +7 -1
  444. package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +1 -1
  445. package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js +9 -1
  446. package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +1 -1
  447. package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +4 -2
  448. package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +1 -1
  449. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +11 -3
  450. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +1 -1
  451. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +4 -2
  452. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +1 -1
  453. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +4 -2
  454. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +1 -1
  455. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +4 -2
  456. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +1 -1
  457. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +3 -1
  458. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +1 -1
  459. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +4 -2
  460. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +1 -1
  461. package/es/node_modules/echarts/lib/component/dataZoom/helper.js +10 -2
  462. package/es/node_modules/echarts/lib/component/dataZoom/helper.js.map +1 -1
  463. package/es/node_modules/echarts/lib/component/dataZoom/history.js +6 -1
  464. package/es/node_modules/echarts/lib/component/dataZoom/history.js.map +1 -1
  465. package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js +3 -1
  466. package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +1 -1
  467. package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +3 -1
  468. package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +1 -1
  469. package/es/node_modules/echarts/lib/component/dataset/install.js +4 -1
  470. package/es/node_modules/echarts/lib/component/dataset/install.js.map +1 -1
  471. package/es/node_modules/echarts/lib/component/geo/GeoView.js +4 -2
  472. package/es/node_modules/echarts/lib/component/geo/GeoView.js.map +1 -1
  473. package/es/node_modules/echarts/lib/component/geo/install.js +3 -1
  474. package/es/node_modules/echarts/lib/component/geo/install.js.map +1 -1
  475. package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js +12 -2
  476. package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +1 -1
  477. package/es/node_modules/echarts/lib/component/graphic/GraphicView.js +15 -3
  478. package/es/node_modules/echarts/lib/component/graphic/GraphicView.js.map +1 -1
  479. package/es/node_modules/echarts/lib/component/graphic/install.js +3 -1
  480. package/es/node_modules/echarts/lib/component/graphic/install.js.map +1 -1
  481. package/es/node_modules/echarts/lib/component/grid/installSimple.js +3 -1
  482. package/es/node_modules/echarts/lib/component/grid/installSimple.js.map +1 -1
  483. package/es/node_modules/echarts/lib/component/helper/BrushController.js +28 -3
  484. package/es/node_modules/echarts/lib/component/helper/BrushController.js.map +1 -1
  485. package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js +12 -3
  486. package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +1 -1
  487. package/es/node_modules/echarts/lib/component/helper/MapDraw.js +4 -2
  488. package/es/node_modules/echarts/lib/component/helper/MapDraw.js.map +1 -1
  489. package/es/node_modules/echarts/lib/component/helper/RoamController.js +4 -2
  490. package/es/node_modules/echarts/lib/component/helper/RoamController.js.map +1 -1
  491. package/es/node_modules/echarts/lib/component/helper/brushHelper.js +5 -1
  492. package/es/node_modules/echarts/lib/component/helper/brushHelper.js.map +1 -1
  493. package/es/node_modules/echarts/lib/component/helper/cursorHelper.js +3 -1
  494. package/es/node_modules/echarts/lib/component/helper/cursorHelper.js.map +1 -1
  495. package/es/node_modules/echarts/lib/component/helper/interactionMutex.js +5 -1
  496. package/es/node_modules/echarts/lib/component/helper/interactionMutex.js.map +1 -1
  497. package/es/node_modules/echarts/lib/component/helper/listComponent.js +4 -1
  498. package/es/node_modules/echarts/lib/component/helper/listComponent.js.map +1 -1
  499. package/es/node_modules/echarts/lib/component/helper/roamHelper.js +4 -1
  500. package/es/node_modules/echarts/lib/component/helper/roamHelper.js.map +1 -1
  501. package/es/node_modules/echarts/lib/component/helper/sliderMove.js +3 -1
  502. package/es/node_modules/echarts/lib/component/helper/sliderMove.js.map +1 -1
  503. package/es/node_modules/echarts/lib/component/legend/LegendModel.js +4 -2
  504. package/es/node_modules/echarts/lib/component/legend/LegendModel.js.map +1 -1
  505. package/es/node_modules/echarts/lib/component/legend/LegendView.js +14 -3
  506. package/es/node_modules/echarts/lib/component/legend/LegendView.js.map +1 -1
  507. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +4 -2
  508. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +1 -1
  509. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +22 -8
  510. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +1 -1
  511. package/es/node_modules/echarts/lib/component/legend/install.js +3 -1
  512. package/es/node_modules/echarts/lib/component/legend/install.js.map +1 -1
  513. package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js +3 -1
  514. package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +1 -1
  515. package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js +3 -1
  516. package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +1 -1
  517. package/es/node_modules/echarts/lib/component/legend/legendAction.js +3 -1
  518. package/es/node_modules/echarts/lib/component/legend/legendAction.js.map +1 -1
  519. package/es/node_modules/echarts/lib/component/legend/legendFilter.js +3 -1
  520. package/es/node_modules/echarts/lib/component/legend/legendFilter.js.map +1 -1
  521. package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +3 -1
  522. package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +1 -1
  523. package/es/node_modules/echarts/lib/component/title/install.js +3 -1
  524. package/es/node_modules/echarts/lib/component/title/install.js.map +1 -1
  525. package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +4 -2
  526. package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +1 -1
  527. package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js +4 -2
  528. package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +1 -1
  529. package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js +9 -3
  530. package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +1 -1
  531. package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +4 -2
  532. package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +1 -1
  533. package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +4 -2
  534. package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +1 -1
  535. package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js +4 -2
  536. package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +1 -1
  537. package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +4 -2
  538. package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +1 -1
  539. package/es/node_modules/echarts/lib/component/toolbox/featureManager.js +5 -1
  540. package/es/node_modules/echarts/lib/component/toolbox/featureManager.js.map +1 -1
  541. package/es/node_modules/echarts/lib/component/toolbox/install.js +3 -1
  542. package/es/node_modules/echarts/lib/component/toolbox/install.js.map +1 -1
  543. package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +4 -2
  544. package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +1 -1
  545. package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js +4 -2
  546. package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +1 -1
  547. package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +5 -3
  548. package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +1 -1
  549. package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js +4 -2
  550. package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +1 -1
  551. package/es/node_modules/echarts/lib/component/tooltip/helper.js +7 -1
  552. package/es/node_modules/echarts/lib/component/tooltip/helper.js.map +1 -1
  553. package/es/node_modules/echarts/lib/component/tooltip/install.js +3 -1
  554. package/es/node_modules/echarts/lib/component/tooltip/install.js.map +1 -1
  555. package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +5 -3
  556. package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +1 -1
  557. package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +19 -5
  558. package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +1 -1
  559. package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +4 -2
  560. package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +1 -1
  561. package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js +12 -4
  562. package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +1 -1
  563. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +9 -2
  564. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +1 -1
  565. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +12 -3
  566. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +1 -1
  567. package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +4 -2
  568. package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +1 -1
  569. package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js +4 -2
  570. package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +1 -1
  571. package/es/node_modules/echarts/lib/component/visualMap/helper.js +4 -1
  572. package/es/node_modules/echarts/lib/component/visualMap/helper.js.map +1 -1
  573. package/es/node_modules/echarts/lib/component/visualMap/install.js +3 -1
  574. package/es/node_modules/echarts/lib/component/visualMap/install.js.map +1 -1
  575. package/es/node_modules/echarts/lib/component/visualMap/installCommon.js +3 -1
  576. package/es/node_modules/echarts/lib/component/visualMap/installCommon.js.map +1 -1
  577. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +3 -1
  578. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +1 -1
  579. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +3 -1
  580. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +1 -1
  581. package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js +3 -1
  582. package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +1 -1
  583. package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js +3 -1
  584. package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +1 -1
  585. package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js +4 -1
  586. package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js.map +1 -1
  587. package/es/node_modules/echarts/lib/coord/Axis.js +4 -2
  588. package/es/node_modules/echarts/lib/coord/Axis.js.map +1 -1
  589. package/es/node_modules/echarts/lib/coord/CoordinateSystem.js +3 -1
  590. package/es/node_modules/echarts/lib/coord/CoordinateSystem.js.map +1 -1
  591. package/es/node_modules/echarts/lib/coord/View.js +4 -2
  592. package/es/node_modules/echarts/lib/coord/View.js.map +1 -1
  593. package/es/node_modules/echarts/lib/coord/axisAlignTicks.js +14 -3
  594. package/es/node_modules/echarts/lib/coord/axisAlignTicks.js.map +1 -1
  595. package/es/node_modules/echarts/lib/coord/axisCommonTypes.js +3 -1
  596. package/es/node_modules/echarts/lib/coord/axisCommonTypes.js.map +1 -1
  597. package/es/node_modules/echarts/lib/coord/axisDefault.js +4 -2
  598. package/es/node_modules/echarts/lib/coord/axisDefault.js.map +1 -1
  599. package/es/node_modules/echarts/lib/coord/axisHelper.js +14 -2
  600. package/es/node_modules/echarts/lib/coord/axisHelper.js.map +1 -1
  601. package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js +3 -1
  602. package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +1 -1
  603. package/es/node_modules/echarts/lib/coord/axisModelCreator.js +3 -1
  604. package/es/node_modules/echarts/lib/coord/axisModelCreator.js.map +1 -1
  605. package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +5 -1
  606. package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +1 -1
  607. package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js +4 -2
  608. package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +1 -1
  609. package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js +4 -1
  610. package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +1 -1
  611. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js +4 -2
  612. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +1 -1
  613. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +4 -2
  614. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +1 -1
  615. package/es/node_modules/echarts/lib/coord/cartesian/Grid.js +13 -3
  616. package/es/node_modules/echarts/lib/coord/cartesian/Grid.js.map +1 -1
  617. package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js +4 -2
  618. package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +1 -1
  619. package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +11 -2
  620. package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +1 -1
  621. package/es/node_modules/echarts/lib/coord/geo/Geo.js +21 -3
  622. package/es/node_modules/echarts/lib/coord/geo/Geo.js.map +1 -1
  623. package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +4 -2
  624. package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +1 -1
  625. package/es/node_modules/echarts/lib/coord/geo/GeoModel.js +4 -2
  626. package/es/node_modules/echarts/lib/coord/geo/GeoModel.js.map +1 -1
  627. package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +3 -1
  628. package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +1 -1
  629. package/es/node_modules/echarts/lib/coord/geo/Region.js +7 -1
  630. package/es/node_modules/echarts/lib/coord/geo/Region.js.map +1 -1
  631. package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +3 -1
  632. package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +1 -1
  633. package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js +3 -1
  634. package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +1 -1
  635. package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js +3 -1
  636. package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +1 -1
  637. package/es/node_modules/echarts/lib/coord/geo/geoCreator.js +13 -5
  638. package/es/node_modules/echarts/lib/coord/geo/geoCreator.js.map +1 -1
  639. package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js +7 -2
  640. package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +1 -1
  641. package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js +3 -1
  642. package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +1 -1
  643. package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +15 -2
  644. package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +1 -1
  645. package/es/node_modules/echarts/lib/core/CoordinateSystem.js +4 -2
  646. package/es/node_modules/echarts/lib/core/CoordinateSystem.js.map +1 -1
  647. package/es/node_modules/echarts/lib/core/ExtensionAPI.js +4 -2
  648. package/es/node_modules/echarts/lib/core/ExtensionAPI.js.map +1 -1
  649. package/es/node_modules/echarts/lib/core/Scheduler.js +10 -2
  650. package/es/node_modules/echarts/lib/core/Scheduler.js.map +1 -1
  651. package/es/node_modules/echarts/lib/core/echarts.js +104 -5
  652. package/es/node_modules/echarts/lib/core/echarts.js.map +1 -1
  653. package/es/node_modules/echarts/lib/core/impl.js +15 -1
  654. package/es/node_modules/echarts/lib/core/impl.js.map +1 -1
  655. package/es/node_modules/echarts/lib/core/lifecycle.js +4 -2
  656. package/es/node_modules/echarts/lib/core/lifecycle.js.map +1 -1
  657. package/es/node_modules/echarts/lib/core/locale.js +7 -1
  658. package/es/node_modules/echarts/lib/core/locale.js.map +1 -1
  659. package/es/node_modules/echarts/lib/core/task.js +17 -2
  660. package/es/node_modules/echarts/lib/core/task.js.map +1 -1
  661. package/es/node_modules/echarts/lib/data/DataDiffer.js +4 -2
  662. package/es/node_modules/echarts/lib/data/DataDiffer.js.map +1 -1
  663. package/es/node_modules/echarts/lib/data/DataStore.js +20 -3
  664. package/es/node_modules/echarts/lib/data/DataStore.js.map +1 -1
  665. package/es/node_modules/echarts/lib/data/OrdinalMeta.js +4 -2
  666. package/es/node_modules/echarts/lib/data/OrdinalMeta.js.map +1 -1
  667. package/es/node_modules/echarts/lib/data/SeriesData.js +27 -3
  668. package/es/node_modules/echarts/lib/data/SeriesData.js.map +1 -1
  669. package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js +4 -2
  670. package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +1 -1
  671. package/es/node_modules/echarts/lib/data/Source.js +15 -5
  672. package/es/node_modules/echarts/lib/data/Source.js.map +1 -1
  673. package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +7 -1
  674. package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +1 -1
  675. package/es/node_modules/echarts/lib/data/helper/createDimensions.js +3 -1
  676. package/es/node_modules/echarts/lib/data/helper/createDimensions.js.map +1 -1
  677. package/es/node_modules/echarts/lib/data/helper/dataProvider.js +38 -2
  678. package/es/node_modules/echarts/lib/data/helper/dataProvider.js.map +1 -1
  679. package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js +5 -1
  680. package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +1 -1
  681. package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js +4 -1
  682. package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +1 -1
  683. package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js +8 -2
  684. package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +1 -1
  685. package/es/node_modules/echarts/lib/data/helper/sourceHelper.js +10 -2
  686. package/es/node_modules/echarts/lib/data/helper/sourceHelper.js.map +1 -1
  687. package/es/node_modules/echarts/lib/data/helper/sourceManager.js +20 -2
  688. package/es/node_modules/echarts/lib/data/helper/sourceManager.js.map +1 -1
  689. package/es/node_modules/echarts/lib/data/helper/transform.js +57 -5
  690. package/es/node_modules/echarts/lib/data/helper/transform.js.map +1 -1
  691. package/es/node_modules/echarts/lib/extension.js +3 -1
  692. package/es/node_modules/echarts/lib/extension.js.map +1 -1
  693. package/es/node_modules/echarts/lib/i18n/langEN.js +4 -2
  694. package/es/node_modules/echarts/lib/i18n/langEN.js.map +1 -1
  695. package/es/node_modules/echarts/lib/i18n/langZH.js +4 -2
  696. package/es/node_modules/echarts/lib/i18n/langZH.js.map +1 -1
  697. package/es/node_modules/echarts/lib/label/labelGuideHelper.js +6 -1
  698. package/es/node_modules/echarts/lib/label/labelGuideHelper.js.map +1 -1
  699. package/es/node_modules/echarts/lib/label/labelLayoutHelper.js +5 -1
  700. package/es/node_modules/echarts/lib/label/labelLayoutHelper.js.map +1 -1
  701. package/es/node_modules/echarts/lib/label/labelStyle.js +31 -1
  702. package/es/node_modules/echarts/lib/label/labelStyle.js.map +1 -1
  703. package/es/node_modules/echarts/lib/label/sectorLabel.js +4 -1
  704. package/es/node_modules/echarts/lib/label/sectorLabel.js.map +1 -1
  705. package/es/node_modules/echarts/lib/layout/barGrid.js +11 -2
  706. package/es/node_modules/echarts/lib/layout/barGrid.js.map +1 -1
  707. package/es/node_modules/echarts/lib/layout/points.js +3 -1
  708. package/es/node_modules/echarts/lib/layout/points.js.map +1 -1
  709. package/es/node_modules/echarts/lib/legacy/dataSelectAction.js +11 -1
  710. package/es/node_modules/echarts/lib/legacy/dataSelectAction.js.map +1 -1
  711. package/es/node_modules/echarts/lib/loading/default.js +3 -1
  712. package/es/node_modules/echarts/lib/loading/default.js.map +1 -1
  713. package/es/node_modules/echarts/lib/model/Component.js +5 -3
  714. package/es/node_modules/echarts/lib/model/Component.js.map +1 -1
  715. package/es/node_modules/echarts/lib/model/Global.js +106 -4
  716. package/es/node_modules/echarts/lib/model/Global.js.map +1 -1
  717. package/es/node_modules/echarts/lib/model/Model.js +4 -2
  718. package/es/node_modules/echarts/lib/model/Model.js.map +1 -1
  719. package/es/node_modules/echarts/lib/model/OptionManager.js +18 -4
  720. package/es/node_modules/echarts/lib/model/OptionManager.js.map +1 -1
  721. package/es/node_modules/echarts/lib/model/Series.js +10 -4
  722. package/es/node_modules/echarts/lib/model/Series.js.map +1 -1
  723. package/es/node_modules/echarts/lib/model/globalDefault.js +4 -2
  724. package/es/node_modules/echarts/lib/model/globalDefault.js.map +1 -1
  725. package/es/node_modules/echarts/lib/model/internalComponentCreator.js +10 -1
  726. package/es/node_modules/echarts/lib/model/internalComponentCreator.js.map +1 -1
  727. package/es/node_modules/echarts/lib/model/mixin/areaStyle.js +4 -1
  728. package/es/node_modules/echarts/lib/model/mixin/areaStyle.js.map +1 -1
  729. package/es/node_modules/echarts/lib/model/mixin/dataFormat.js +14 -1
  730. package/es/node_modules/echarts/lib/model/mixin/dataFormat.js.map +1 -1
  731. package/es/node_modules/echarts/lib/model/mixin/itemStyle.js +4 -1
  732. package/es/node_modules/echarts/lib/model/mixin/itemStyle.js.map +1 -1
  733. package/es/node_modules/echarts/lib/model/mixin/lineStyle.js +4 -1
  734. package/es/node_modules/echarts/lib/model/mixin/lineStyle.js.map +1 -1
  735. package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +3 -1
  736. package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +1 -1
  737. package/es/node_modules/echarts/lib/model/mixin/palette.js +4 -2
  738. package/es/node_modules/echarts/lib/model/mixin/palette.js.map +1 -1
  739. package/es/node_modules/echarts/lib/model/mixin/textStyle.js +4 -2
  740. package/es/node_modules/echarts/lib/model/mixin/textStyle.js.map +1 -1
  741. package/es/node_modules/echarts/lib/model/referHelper.js +25 -2
  742. package/es/node_modules/echarts/lib/model/referHelper.js.map +1 -1
  743. package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js +37 -1
  744. package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +1 -1
  745. package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +32 -1
  746. package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +1 -1
  747. package/es/node_modules/echarts/lib/processor/dataFilter.js +3 -1
  748. package/es/node_modules/echarts/lib/processor/dataFilter.js.map +1 -1
  749. package/es/node_modules/echarts/lib/processor/dataSample.js +3 -1
  750. package/es/node_modules/echarts/lib/processor/dataSample.js.map +1 -1
  751. package/es/node_modules/echarts/lib/processor/dataStack.js +3 -1
  752. package/es/node_modules/echarts/lib/processor/dataStack.js.map +1 -1
  753. package/es/node_modules/echarts/lib/processor/negativeDataFilter.js +3 -1
  754. package/es/node_modules/echarts/lib/processor/negativeDataFilter.js.map +1 -1
  755. package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js +3 -1
  756. package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +1 -1
  757. package/es/node_modules/echarts/lib/scale/Interval.js +4 -2
  758. package/es/node_modules/echarts/lib/scale/Interval.js.map +1 -1
  759. package/es/node_modules/echarts/lib/scale/Log.js +4 -2
  760. package/es/node_modules/echarts/lib/scale/Log.js.map +1 -1
  761. package/es/node_modules/echarts/lib/scale/Ordinal.js +4 -2
  762. package/es/node_modules/echarts/lib/scale/Ordinal.js.map +1 -1
  763. package/es/node_modules/echarts/lib/scale/Scale.js +4 -2
  764. package/es/node_modules/echarts/lib/scale/Scale.js.map +1 -1
  765. package/es/node_modules/echarts/lib/scale/Time.js +11 -3
  766. package/es/node_modules/echarts/lib/scale/Time.js.map +1 -1
  767. package/es/node_modules/echarts/lib/scale/helper.js +17 -2
  768. package/es/node_modules/echarts/lib/scale/helper.js.map +1 -1
  769. package/es/node_modules/echarts/lib/theme/dark.js +4 -2
  770. package/es/node_modules/echarts/lib/theme/dark.js.map +1 -1
  771. package/es/node_modules/echarts/lib/theme/light.js +4 -2
  772. package/es/node_modules/echarts/lib/theme/light.js.map +1 -1
  773. package/es/node_modules/echarts/lib/util/ECEventProcessor.js +3 -1
  774. package/es/node_modules/echarts/lib/util/ECEventProcessor.js.map +1 -1
  775. package/es/node_modules/echarts/lib/util/clazz.js +24 -2
  776. package/es/node_modules/echarts/lib/util/clazz.js.map +1 -1
  777. package/es/node_modules/echarts/lib/util/component.js +11 -2
  778. package/es/node_modules/echarts/lib/util/component.js.map +1 -1
  779. package/es/node_modules/echarts/lib/util/decal.js +14 -1
  780. package/es/node_modules/echarts/lib/util/decal.js.map +1 -1
  781. package/es/node_modules/echarts/lib/util/event.js +3 -1
  782. package/es/node_modules/echarts/lib/util/event.js.map +1 -1
  783. package/es/node_modules/echarts/lib/util/format.js +12 -2
  784. package/es/node_modules/echarts/lib/util/format.js.map +1 -1
  785. package/es/node_modules/echarts/lib/util/graphic.js +72 -23
  786. package/es/node_modules/echarts/lib/util/graphic.js.map +1 -1
  787. package/es/node_modules/echarts/lib/util/innerStore.js +4 -1
  788. package/es/node_modules/echarts/lib/util/innerStore.js.map +1 -1
  789. package/es/node_modules/echarts/lib/util/layout.js +12 -2
  790. package/es/node_modules/echarts/lib/util/layout.js.map +1 -1
  791. package/es/node_modules/echarts/lib/util/log.js +60 -1
  792. package/es/node_modules/echarts/lib/util/log.js.map +1 -1
  793. package/es/node_modules/echarts/lib/util/model.js +48 -2
  794. package/es/node_modules/echarts/lib/util/model.js.map +1 -1
  795. package/es/node_modules/echarts/lib/util/number.js +23 -1
  796. package/es/node_modules/echarts/lib/util/number.js.map +1 -1
  797. package/es/node_modules/echarts/lib/util/shape/sausage.js +4 -2
  798. package/es/node_modules/echarts/lib/util/shape/sausage.js.map +1 -1
  799. package/es/node_modules/echarts/lib/util/states.js +59 -1
  800. package/es/node_modules/echarts/lib/util/states.js.map +1 -1
  801. package/es/node_modules/echarts/lib/util/styleCompat.js +4 -1
  802. package/es/node_modules/echarts/lib/util/styleCompat.js.map +1 -1
  803. package/es/node_modules/echarts/lib/util/symbol.js +6 -1
  804. package/es/node_modules/echarts/lib/util/symbol.js.map +1 -1
  805. package/es/node_modules/echarts/lib/util/throttle.js +5 -1
  806. package/es/node_modules/echarts/lib/util/throttle.js.map +1 -1
  807. package/es/node_modules/echarts/lib/util/time.js +33 -1
  808. package/es/node_modules/echarts/lib/util/time.js.map +1 -1
  809. package/es/node_modules/echarts/lib/util/types.js +11 -1
  810. package/es/node_modules/echarts/lib/util/types.js.map +1 -1
  811. package/es/node_modules/echarts/lib/util/vendor.js +3 -1
  812. package/es/node_modules/echarts/lib/util/vendor.js.map +1 -1
  813. package/es/node_modules/echarts/lib/view/Chart.js +16 -4
  814. package/es/node_modules/echarts/lib/view/Chart.js.map +1 -1
  815. package/es/node_modules/echarts/lib/view/Component.js +4 -2
  816. package/es/node_modules/echarts/lib/view/Component.js.map +1 -1
  817. package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js +4 -2
  818. package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +1 -1
  819. package/es/node_modules/echarts/lib/visual/VisualMapping.js +5 -3
  820. package/es/node_modules/echarts/lib/visual/VisualMapping.js.map +1 -1
  821. package/es/node_modules/echarts/lib/visual/decal.js +3 -1
  822. package/es/node_modules/echarts/lib/visual/decal.js.map +1 -1
  823. package/es/node_modules/echarts/lib/visual/helper.js +17 -1
  824. package/es/node_modules/echarts/lib/visual/helper.js.map +1 -1
  825. package/es/node_modules/echarts/lib/visual/style.js +10 -2
  826. package/es/node_modules/echarts/lib/visual/style.js.map +1 -1
  827. package/es/node_modules/echarts/lib/visual/symbol.js +4 -1
  828. package/es/node_modules/echarts/lib/visual/symbol.js.map +1 -1
  829. package/es/node_modules/echarts/lib/visual/visualDefault.js +4 -2
  830. package/es/node_modules/echarts/lib/visual/visualDefault.js.map +1 -1
  831. package/es/node_modules/echarts/lib/visual/visualSolution.js +5 -1
  832. package/es/node_modules/echarts/lib/visual/visualSolution.js.map +1 -1
  833. package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js +3 -1
  834. package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +1 -1
  835. package/es/node_modules/resize-detector/esm/index.js +4 -1
  836. package/es/node_modules/resize-detector/esm/index.js.map +1 -1
  837. package/es/node_modules/zrender/lib/Element.js +35 -2
  838. package/es/node_modules/zrender/lib/Element.js.map +1 -1
  839. package/es/node_modules/zrender/lib/Handler.js +4 -2
  840. package/es/node_modules/zrender/lib/Handler.js.map +1 -1
  841. package/es/node_modules/zrender/lib/Storage.js +4 -2
  842. package/es/node_modules/zrender/lib/Storage.js.map +1 -1
  843. package/es/node_modules/zrender/lib/animation/Animation.js +5 -2
  844. package/es/node_modules/zrender/lib/animation/Animation.js.map +1 -1
  845. package/es/node_modules/zrender/lib/animation/Animator.js +4 -1
  846. package/es/node_modules/zrender/lib/animation/Animator.js.map +1 -1
  847. package/es/node_modules/zrender/lib/animation/Clip.js +4 -2
  848. package/es/node_modules/zrender/lib/animation/Clip.js.map +1 -1
  849. package/es/node_modules/zrender/lib/animation/cubicEasing.js +3 -1
  850. package/es/node_modules/zrender/lib/animation/cubicEasing.js.map +1 -1
  851. package/es/node_modules/zrender/lib/animation/easing.js +4 -2
  852. package/es/node_modules/zrender/lib/animation/easing.js.map +1 -1
  853. package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js +4 -2
  854. package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +1 -1
  855. package/es/node_modules/zrender/lib/canvas/Layer.js +4 -2
  856. package/es/node_modules/zrender/lib/canvas/Layer.js.map +1 -1
  857. package/es/node_modules/zrender/lib/canvas/Painter.js +10 -2
  858. package/es/node_modules/zrender/lib/canvas/Painter.js.map +1 -1
  859. package/es/node_modules/zrender/lib/canvas/dashStyle.js +4 -1
  860. package/es/node_modules/zrender/lib/canvas/dashStyle.js.map +1 -1
  861. package/es/node_modules/zrender/lib/canvas/graphic.js +5 -1
  862. package/es/node_modules/zrender/lib/canvas/graphic.js.map +1 -1
  863. package/es/node_modules/zrender/lib/canvas/helper.js +7 -1
  864. package/es/node_modules/zrender/lib/canvas/helper.js.map +1 -1
  865. package/es/node_modules/zrender/lib/config.js +7 -1
  866. package/es/node_modules/zrender/lib/config.js.map +1 -1
  867. package/es/node_modules/zrender/lib/contain/arc.js +3 -1
  868. package/es/node_modules/zrender/lib/contain/arc.js.map +1 -1
  869. package/es/node_modules/zrender/lib/contain/cubic.js +3 -1
  870. package/es/node_modules/zrender/lib/contain/cubic.js.map +1 -1
  871. package/es/node_modules/zrender/lib/contain/line.js +3 -1
  872. package/es/node_modules/zrender/lib/contain/line.js.map +1 -1
  873. package/es/node_modules/zrender/lib/contain/path.js +4 -1
  874. package/es/node_modules/zrender/lib/contain/path.js.map +1 -1
  875. package/es/node_modules/zrender/lib/contain/polygon.js +3 -1
  876. package/es/node_modules/zrender/lib/contain/polygon.js.map +1 -1
  877. package/es/node_modules/zrender/lib/contain/quadratic.js +3 -1
  878. package/es/node_modules/zrender/lib/contain/quadratic.js.map +1 -1
  879. package/es/node_modules/zrender/lib/contain/text.js +10 -1
  880. package/es/node_modules/zrender/lib/contain/text.js.map +1 -1
  881. package/es/node_modules/zrender/lib/contain/util.js +3 -1
  882. package/es/node_modules/zrender/lib/contain/util.js.map +1 -1
  883. package/es/node_modules/zrender/lib/contain/windingLine.js +3 -1
  884. package/es/node_modules/zrender/lib/contain/windingLine.js.map +1 -1
  885. package/es/node_modules/zrender/lib/core/BoundingRect.js +4 -2
  886. package/es/node_modules/zrender/lib/core/BoundingRect.js.map +1 -1
  887. package/es/node_modules/zrender/lib/core/Eventful.js +4 -2
  888. package/es/node_modules/zrender/lib/core/Eventful.js.map +1 -1
  889. package/es/node_modules/zrender/lib/core/GestureMgr.js +3 -1
  890. package/es/node_modules/zrender/lib/core/GestureMgr.js.map +1 -1
  891. package/es/node_modules/zrender/lib/core/LRU.js +6 -2
  892. package/es/node_modules/zrender/lib/core/LRU.js.map +1 -1
  893. package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js +4 -2
  894. package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +1 -1
  895. package/es/node_modules/zrender/lib/core/PathProxy.js +5 -2
  896. package/es/node_modules/zrender/lib/core/PathProxy.js.map +1 -1
  897. package/es/node_modules/zrender/lib/core/Point.js +4 -2
  898. package/es/node_modules/zrender/lib/core/Point.js.map +1 -1
  899. package/es/node_modules/zrender/lib/core/Transformable.js +5 -1
  900. package/es/node_modules/zrender/lib/core/Transformable.js.map +1 -1
  901. package/es/node_modules/zrender/lib/core/WeakMap.js +4 -2
  902. package/es/node_modules/zrender/lib/core/WeakMap.js.map +1 -1
  903. package/es/node_modules/zrender/lib/core/bbox.js +6 -1
  904. package/es/node_modules/zrender/lib/core/bbox.js.map +1 -1
  905. package/es/node_modules/zrender/lib/core/curve.js +16 -1
  906. package/es/node_modules/zrender/lib/core/curve.js.map +1 -1
  907. package/es/node_modules/zrender/lib/core/dom.js +5 -1
  908. package/es/node_modules/zrender/lib/core/dom.js.map +1 -1
  909. package/es/node_modules/zrender/lib/core/env.js +4 -2
  910. package/es/node_modules/zrender/lib/core/env.js.map +1 -1
  911. package/es/node_modules/zrender/lib/core/event.js +9 -1
  912. package/es/node_modules/zrender/lib/core/event.js.map +1 -1
  913. package/es/node_modules/zrender/lib/core/fourPointsTransform.js +3 -1
  914. package/es/node_modules/zrender/lib/core/fourPointsTransform.js.map +1 -1
  915. package/es/node_modules/zrender/lib/core/matrix.js +10 -1
  916. package/es/node_modules/zrender/lib/core/matrix.js.map +1 -1
  917. package/es/node_modules/zrender/lib/core/platform.js +7 -1
  918. package/es/node_modules/zrender/lib/core/platform.js.map +1 -1
  919. package/es/node_modules/zrender/lib/core/timsort.js +3 -1
  920. package/es/node_modules/zrender/lib/core/timsort.js.map +1 -1
  921. package/es/node_modules/zrender/lib/core/util.js +53 -1
  922. package/es/node_modules/zrender/lib/core/util.js.map +1 -1
  923. package/es/node_modules/zrender/lib/core/vector.js +19 -1
  924. package/es/node_modules/zrender/lib/core/vector.js.map +1 -1
  925. package/es/node_modules/zrender/lib/dom/HandlerProxy.js +4 -2
  926. package/es/node_modules/zrender/lib/dom/HandlerProxy.js.map +1 -1
  927. package/es/node_modules/zrender/lib/graphic/CompoundPath.js +4 -2
  928. package/es/node_modules/zrender/lib/graphic/CompoundPath.js.map +1 -1
  929. package/es/node_modules/zrender/lib/graphic/Displayable.js +6 -2
  930. package/es/node_modules/zrender/lib/graphic/Displayable.js.map +1 -1
  931. package/es/node_modules/zrender/lib/graphic/Gradient.js +4 -2
  932. package/es/node_modules/zrender/lib/graphic/Gradient.js.map +1 -1
  933. package/es/node_modules/zrender/lib/graphic/Group.js +9 -2
  934. package/es/node_modules/zrender/lib/graphic/Group.js.map +1 -1
  935. package/es/node_modules/zrender/lib/graphic/Image.js +6 -2
  936. package/es/node_modules/zrender/lib/graphic/Image.js.map +1 -1
  937. package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +4 -2
  938. package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +1 -1
  939. package/es/node_modules/zrender/lib/graphic/LinearGradient.js +4 -2
  940. package/es/node_modules/zrender/lib/graphic/LinearGradient.js.map +1 -1
  941. package/es/node_modules/zrender/lib/graphic/Path.js +6 -2
  942. package/es/node_modules/zrender/lib/graphic/Path.js.map +1 -1
  943. package/es/node_modules/zrender/lib/graphic/RadialGradient.js +4 -2
  944. package/es/node_modules/zrender/lib/graphic/RadialGradient.js.map +1 -1
  945. package/es/node_modules/zrender/lib/graphic/TSpan.js +5 -2
  946. package/es/node_modules/zrender/lib/graphic/TSpan.js.map +1 -1
  947. package/es/node_modules/zrender/lib/graphic/Text.js +11 -2
  948. package/es/node_modules/zrender/lib/graphic/Text.js.map +1 -1
  949. package/es/node_modules/zrender/lib/graphic/constants.js +5 -1
  950. package/es/node_modules/zrender/lib/graphic/constants.js.map +1 -1
  951. package/es/node_modules/zrender/lib/graphic/helper/image.js +5 -1
  952. package/es/node_modules/zrender/lib/graphic/helper/image.js.map +1 -1
  953. package/es/node_modules/zrender/lib/graphic/helper/parseText.js +6 -1
  954. package/es/node_modules/zrender/lib/graphic/helper/parseText.js.map +1 -1
  955. package/es/node_modules/zrender/lib/graphic/helper/poly.js +3 -1
  956. package/es/node_modules/zrender/lib/graphic/helper/poly.js.map +1 -1
  957. package/es/node_modules/zrender/lib/graphic/helper/roundRect.js +3 -1
  958. package/es/node_modules/zrender/lib/graphic/helper/roundRect.js.map +1 -1
  959. package/es/node_modules/zrender/lib/graphic/helper/roundSector.js +3 -1
  960. package/es/node_modules/zrender/lib/graphic/helper/roundSector.js.map +1 -1
  961. package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js +3 -1
  962. package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +1 -1
  963. package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js +5 -1
  964. package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +1 -1
  965. package/es/node_modules/zrender/lib/graphic/shape/Arc.js +5 -2
  966. package/es/node_modules/zrender/lib/graphic/shape/Arc.js.map +1 -1
  967. package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js +5 -2
  968. package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +1 -1
  969. package/es/node_modules/zrender/lib/graphic/shape/Circle.js +5 -2
  970. package/es/node_modules/zrender/lib/graphic/shape/Circle.js.map +1 -1
  971. package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js +5 -2
  972. package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +1 -1
  973. package/es/node_modules/zrender/lib/graphic/shape/Line.js +5 -2
  974. package/es/node_modules/zrender/lib/graphic/shape/Line.js.map +1 -1
  975. package/es/node_modules/zrender/lib/graphic/shape/Polygon.js +5 -2
  976. package/es/node_modules/zrender/lib/graphic/shape/Polygon.js.map +1 -1
  977. package/es/node_modules/zrender/lib/graphic/shape/Polyline.js +5 -2
  978. package/es/node_modules/zrender/lib/graphic/shape/Polyline.js.map +1 -1
  979. package/es/node_modules/zrender/lib/graphic/shape/Rect.js +5 -2
  980. package/es/node_modules/zrender/lib/graphic/shape/Rect.js.map +1 -1
  981. package/es/node_modules/zrender/lib/graphic/shape/Ring.js +5 -2
  982. package/es/node_modules/zrender/lib/graphic/shape/Ring.js.map +1 -1
  983. package/es/node_modules/zrender/lib/graphic/shape/Sector.js +5 -2
  984. package/es/node_modules/zrender/lib/graphic/shape/Sector.js.map +1 -1
  985. package/es/node_modules/zrender/lib/mixin/Draggable.js +4 -2
  986. package/es/node_modules/zrender/lib/mixin/Draggable.js.map +1 -1
  987. package/es/node_modules/zrender/lib/svg/helper.js +8 -2
  988. package/es/node_modules/zrender/lib/svg/helper.js.map +1 -1
  989. package/es/node_modules/zrender/lib/tool/color.js +10 -1
  990. package/es/node_modules/zrender/lib/tool/color.js.map +1 -1
  991. package/es/node_modules/zrender/lib/tool/parseSVG.js +11 -2
  992. package/es/node_modules/zrender/lib/tool/parseSVG.js.map +1 -1
  993. package/es/node_modules/zrender/lib/tool/parseXML.js +3 -1
  994. package/es/node_modules/zrender/lib/tool/parseXML.js.map +1 -1
  995. package/es/node_modules/zrender/lib/tool/path.js +5 -1
  996. package/es/node_modules/zrender/lib/tool/path.js.map +1 -1
  997. package/es/node_modules/zrender/lib/tool/transformPath.js +3 -1
  998. package/es/node_modules/zrender/lib/tool/transformPath.js.map +1 -1
  999. package/es/node_modules/zrender/lib/zrender.js +9 -1
  1000. package/es/node_modules/zrender/lib/zrender.js.map +1 -1
  1001. package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js +3 -1
  1002. package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +1 -1
  1003. package/es/setting/page-config/PageConfig.js +10 -21
  1004. package/es/setting/page-config/PageConfig.js.map +1 -1
  1005. package/es/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  1006. package/es/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1007. package/es/setting/page-config/index.js +7 -2
  1008. package/es/setting/page-config/index.js.map +1 -1
  1009. package/es/setting/page-config/props.js +4 -1
  1010. package/es/setting/page-config/props.js.map +1 -1
  1011. package/es/setting/provider-config/ProviderConfig.js +51 -24
  1012. package/es/setting/provider-config/ProviderConfig.js.map +1 -1
  1013. package/es/setting/provider-config/index.js +7 -2
  1014. package/es/setting/provider-config/index.js.map +1 -1
  1015. package/es/setting/provider-config/props.js +6 -2
  1016. package/es/setting/provider-config/props.js.map +1 -1
  1017. package/es/setting/renderer/Renderer.js +19 -0
  1018. package/es/setting/renderer/Renderer.js.map +1 -0
  1019. package/es/setting/renderer/index.js +11 -0
  1020. package/es/setting/renderer/index.js.map +1 -0
  1021. package/es/setting/renderer/props.js +10 -0
  1022. package/es/setting/renderer/props.js.map +1 -0
  1023. package/es/table/table/Table.js +101 -42
  1024. package/es/table/table/Table.js.map +1 -1
  1025. package/es/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js +4 -36
  1026. package/es/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1027. package/es/table/table/Table.vue_vue_type_style_index_1_lang.js +4 -2
  1028. package/es/table/table/Table.vue_vue_type_style_index_1_lang.js.map +1 -1
  1029. package/es/table/table/index.js +8 -2
  1030. package/es/table/table/index.js.map +1 -1
  1031. package/es/table/table/props.js +24 -24
  1032. package/es/table/table/props.js.map +1 -1
  1033. package/es/text/list/List.js +17 -27
  1034. package/es/text/list/List.js.map +1 -1
  1035. package/es/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js +4 -109
  1036. package/es/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1037. package/es/text/list/List.vue_vue_type_style_index_1_lang.js +4 -2
  1038. package/es/text/list/List.vue_vue_type_style_index_1_lang.js.map +1 -1
  1039. package/es/text/list/index.js +8 -2
  1040. package/es/text/list/index.js.map +1 -1
  1041. package/es/text/list/props.js +8 -22
  1042. package/es/text/list/props.js.map +1 -1
  1043. package/es/text/proportion/Proportion.js +49 -44
  1044. package/es/text/proportion/Proportion.js.map +1 -1
  1045. package/es/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  1046. package/es/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1047. package/es/text/proportion/index.js +8 -2
  1048. package/es/text/proportion/index.js.map +1 -1
  1049. package/es/text/proportion/props.js +11 -23
  1050. package/es/text/proportion/props.js.map +1 -1
  1051. package/es/text/scroll-text/ScrollText.js +4 -2
  1052. package/es/text/scroll-text/ScrollText.js.map +1 -1
  1053. package/es/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  1054. package/es/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1055. package/es/text/scroll-text/index.js +4 -1
  1056. package/es/text/scroll-text/index.js.map +1 -1
  1057. package/es/text/text/Text.js +51 -30
  1058. package/es/text/text/Text.js.map +1 -1
  1059. package/es/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  1060. package/es/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1061. package/es/text/text/index.js +8 -2
  1062. package/es/text/text/index.js.map +1 -1
  1063. package/es/text/text/props.js +13 -24
  1064. package/es/text/text/props.js.map +1 -1
  1065. package/es/text/time-display/TimeDisplay.js +8 -20
  1066. package/es/text/time-display/TimeDisplay.js.map +1 -1
  1067. package/es/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js +4 -2
  1068. package/es/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  1069. package/es/text/time-display/index.js +7 -2
  1070. package/es/text/time-display/index.js.map +1 -1
  1071. package/es/text/time-display/props.js +7 -22
  1072. package/es/text/time-display/props.js.map +1 -1
  1073. package/lib/_utils/constant.js +7 -3
  1074. package/lib/_utils/constant.js.map +1 -1
  1075. package/lib/_utils/hooks/useDownloadFile.js +2 -2
  1076. package/lib/_utils/hooks/useDownloadFile.js.map +1 -1
  1077. package/lib/_utils/hooks/useEmitEvent.js +3 -3
  1078. package/lib/_utils/hooks/useEmitEvent.js.map +1 -1
  1079. package/lib/_utils/hooks/useHrefParamsToGlobalVariables.js +17 -0
  1080. package/lib/_utils/hooks/useHrefParamsToGlobalVariables.js.map +1 -0
  1081. package/lib/_utils/hooks/useImagePath.js +2 -2
  1082. package/lib/_utils/hooks/useIndicatorData.js +206 -0
  1083. package/lib/_utils/hooks/useIndicatorData.js.map +1 -0
  1084. package/lib/_utils/hooks/useOnEvent.js +3 -3
  1085. package/lib/_utils/hooks/usePageUrl.js +2 -2
  1086. package/lib/_utils/hooks/usePickComponentStyle.js +9 -4
  1087. package/lib/_utils/hooks/usePickComponentStyle.js.map +1 -1
  1088. package/lib/_utils/hooks/useRequestData.js +20 -33
  1089. package/lib/_utils/hooks/useRequestData.js.map +1 -1
  1090. package/lib/_utils/hooks/useRequestDiagramData.js +6 -22
  1091. package/lib/_utils/hooks/useRequestDiagramData.js.map +1 -1
  1092. package/lib/_utils/hooks/useTransformChartDataByAttrKey.js +1 -1
  1093. package/lib/_utils/hooks/useTransformChartDataByAttrKey.js.map +1 -1
  1094. package/lib/_utils/hooks/useTransformChartDataByAttrValue.js +3 -19
  1095. package/lib/_utils/hooks/useTransformChartDataByAttrValue.js.map +1 -1
  1096. package/lib/_utils/hooks/useValueFormatter.js +13 -6
  1097. package/lib/_utils/hooks/useValueFormatter.js.map +1 -1
  1098. package/lib/_utils/hooks/useVariablesInText.js +8 -25
  1099. package/lib/_utils/hooks/useVariablesInText.js.map +1 -1
  1100. package/lib/_utils/props.js +1 -1
  1101. package/lib/_utils/props.js.map +1 -1
  1102. package/lib/_utils/request.js +4 -4
  1103. package/lib/_utils/request.js.map +1 -1
  1104. package/lib/_utils/util.js.map +1 -1
  1105. package/lib/_utils/withInstall.js +1 -0
  1106. package/lib/_utils/withInstall.js.map +1 -1
  1107. package/lib/_virtual/_commonjsHelpers.js +7 -0
  1108. package/lib/_virtual/_commonjsHelpers.js.map +1 -0
  1109. package/lib/_virtual/index.js +5 -0
  1110. package/lib/_virtual/index.js.map +1 -0
  1111. package/lib/_virtual/plugin-vue_export-helper.js +2 -2
  1112. package/lib/_virtual/plugin-vue_export-helper.js.map +1 -1
  1113. package/lib/assets/border-title-decoration-left.js +2 -2
  1114. package/lib/assets/border-title-decoration-left.js.map +1 -1
  1115. package/lib/assets/border-title-decoration-right.js +2 -2
  1116. package/lib/assets/border-title-decoration-right.js.map +1 -1
  1117. package/lib/assets/go-down.js +5 -0
  1118. package/lib/assets/go-down.js.map +1 -0
  1119. package/lib/assets/go-up.js +5 -0
  1120. package/lib/assets/go-up.js.map +1 -0
  1121. package/lib/common/Skeleton/Skeleton.js +19 -3
  1122. package/lib/common/Skeleton/Skeleton.js.map +1 -1
  1123. package/lib/common/Skeleton/index.js +2 -2
  1124. package/lib/common/echarts/ECharts.js +77 -62
  1125. package/lib/common/echarts/ECharts.js.map +1 -1
  1126. package/lib/common/echarts/composables/api.js.map +1 -1
  1127. package/lib/common/echarts/composables/autoresize.js +3 -3
  1128. package/lib/common/echarts/composables/autoresize.js.map +1 -1
  1129. package/lib/common/echarts/composables/loading.js +5 -18
  1130. package/lib/common/echarts/composables/loading.js.map +1 -1
  1131. package/lib/common/echarts/index.js +2 -2
  1132. package/lib/common/echarts/style.js +2 -2
  1133. package/lib/common/echarts/utils.js.map +1 -1
  1134. package/lib/common/spin/Spin.js +7 -7
  1135. package/lib/common/spin/Spin.js.map +1 -1
  1136. package/lib/common/spin/Spin.vue_vue_type_style_index_0_lang.js +2 -2
  1137. package/lib/common/spin/index.js +2 -2
  1138. package/lib/components.js +103 -98
  1139. package/lib/components.js.map +1 -1
  1140. package/lib/container/border/Border.js +75 -82
  1141. package/lib/container/border/Border.js.map +1 -1
  1142. package/lib/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1143. package/lib/container/border/index.js +5 -5
  1144. package/lib/container/border/index.js.map +1 -1
  1145. package/lib/container/border/props.js +12 -23
  1146. package/lib/container/border/props.js.map +1 -1
  1147. package/lib/container/modal/Modal.js +16 -32
  1148. package/lib/container/modal/Modal.js.map +1 -1
  1149. package/lib/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1150. package/lib/container/modal/Modal.vue_vue_type_style_index_1_lang.js +2 -2
  1151. package/lib/container/modal/index.js +5 -5
  1152. package/lib/container/modal/index.js.map +1 -1
  1153. package/lib/container/modal/props.js +1 -1
  1154. package/lib/container/modal/props.js.map +1 -1
  1155. package/lib/container/tabs/Tabs.js +110 -0
  1156. package/lib/container/tabs/Tabs.js.map +1 -0
  1157. package/lib/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +5 -0
  1158. package/lib/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -0
  1159. package/lib/container/tabs/index.js +12 -0
  1160. package/lib/container/tabs/index.js.map +1 -0
  1161. package/lib/container/tabs/props.js +38 -0
  1162. package/lib/container/tabs/props.js.map +1 -0
  1163. package/lib/control/button/Button.js +54 -35
  1164. package/lib/control/button/Button.js.map +1 -1
  1165. package/lib/control/button/Button.vue_vue_type_style_index_0_lang.js +5 -0
  1166. package/lib/control/button/Button.vue_vue_type_style_index_0_lang.js.map +1 -0
  1167. package/lib/control/button/index.js +5 -5
  1168. package/lib/control/button/index.js.map +1 -1
  1169. package/lib/control/button/props.js +13 -23
  1170. package/lib/control/button/props.js.map +1 -1
  1171. package/lib/control/date-picker/DatePicker.js +20 -36
  1172. package/lib/control/date-picker/DatePicker.js.map +1 -1
  1173. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1174. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js +2 -2
  1175. package/lib/control/date-picker/index.js +5 -5
  1176. package/lib/control/date-picker/index.js.map +1 -1
  1177. package/lib/control/date-picker/props.js +8 -28
  1178. package/lib/control/date-picker/props.js.map +1 -1
  1179. package/lib/control/input/Input.js +11 -25
  1180. package/lib/control/input/Input.js.map +1 -1
  1181. package/lib/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1182. package/lib/control/input/index.js +5 -5
  1183. package/lib/control/input/index.js.map +1 -1
  1184. package/lib/control/input/props.js +4 -22
  1185. package/lib/control/input/props.js.map +1 -1
  1186. package/lib/control/range-picker/RangePicker.js +21 -37
  1187. package/lib/control/range-picker/RangePicker.js.map +1 -1
  1188. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1189. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js +2 -2
  1190. package/lib/control/range-picker/index.js +5 -5
  1191. package/lib/control/range-picker/index.js.map +1 -1
  1192. package/lib/control/range-picker/props.js +4 -22
  1193. package/lib/control/range-picker/props.js.map +1 -1
  1194. package/lib/control/select/Select.js +14 -28
  1195. package/lib/control/select/Select.js.map +1 -1
  1196. package/lib/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1197. package/lib/control/select/Select.vue_vue_type_style_index_1_lang.js +2 -2
  1198. package/lib/control/select/index.js +5 -5
  1199. package/lib/control/select/index.js.map +1 -1
  1200. package/lib/control/select/props.js +4 -22
  1201. package/lib/control/select/props.js.map +1 -1
  1202. package/lib/graph/bar/Bar.js +58 -70
  1203. package/lib/graph/bar/Bar.js.map +1 -1
  1204. package/lib/graph/bar/Bar.vue_vue_type_style_index_0_lang.js +2 -2
  1205. package/lib/graph/bar/index.js +5 -5
  1206. package/lib/graph/bar/index.js.map +1 -1
  1207. package/lib/graph/bar/props.js +12 -28
  1208. package/lib/graph/bar/props.js.map +1 -1
  1209. package/lib/graph/combo-graph/ComboGraph.js +112 -55
  1210. package/lib/graph/combo-graph/ComboGraph.js.map +1 -1
  1211. package/lib/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js +5 -0
  1212. package/lib/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js.map +1 -0
  1213. package/lib/graph/combo-graph/index.js +5 -5
  1214. package/lib/graph/combo-graph/index.js.map +1 -1
  1215. package/lib/graph/combo-graph/props.js +16 -25
  1216. package/lib/graph/combo-graph/props.js.map +1 -1
  1217. package/lib/graph/custom-graph/CustomGraph.js +20 -36
  1218. package/lib/graph/custom-graph/CustomGraph.js.map +1 -1
  1219. package/lib/graph/custom-graph/index.js +5 -5
  1220. package/lib/graph/custom-graph/index.js.map +1 -1
  1221. package/lib/graph/custom-graph/props.js +4 -22
  1222. package/lib/graph/custom-graph/props.js.map +1 -1
  1223. package/lib/graph/line/Line.js +113 -56
  1224. package/lib/graph/line/Line.js.map +1 -1
  1225. package/lib/graph/line/Line.vue_vue_type_style_index_0_lang.js +5 -0
  1226. package/lib/graph/line/Line.vue_vue_type_style_index_0_lang.js.map +1 -0
  1227. package/lib/graph/line/index.js +5 -5
  1228. package/lib/graph/line/index.js.map +1 -1
  1229. package/lib/graph/line/props.js +17 -25
  1230. package/lib/graph/line/props.js.map +1 -1
  1231. package/lib/graph/pie/Pie.js +105 -50
  1232. package/lib/graph/pie/Pie.js.map +1 -1
  1233. package/lib/graph/pie/Pie.vue_vue_type_style_index_0_lang.js +5 -0
  1234. package/lib/graph/pie/Pie.vue_vue_type_style_index_0_lang.js.map +1 -0
  1235. package/lib/graph/pie/index.js +5 -5
  1236. package/lib/graph/pie/index.js.map +1 -1
  1237. package/lib/graph/pie/props.js +16 -25
  1238. package/lib/graph/pie/props.js.map +1 -1
  1239. package/lib/graph/scatter/Scatter.js +98 -47
  1240. package/lib/graph/scatter/Scatter.js.map +1 -1
  1241. package/lib/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js +5 -0
  1242. package/lib/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js.map +1 -0
  1243. package/lib/graph/scatter/index.js +5 -5
  1244. package/lib/graph/scatter/index.js.map +1 -1
  1245. package/lib/graph/scatter/props.js +16 -25
  1246. package/lib/graph/scatter/props.js.map +1 -1
  1247. package/lib/index.js +104 -99
  1248. package/lib/index.js.map +1 -1
  1249. package/lib/map/map/Map.js +23 -37
  1250. package/lib/map/map/Map.js.map +1 -1
  1251. package/lib/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1252. package/lib/map/map/index.js +5 -5
  1253. package/lib/map/map/index.js.map +1 -1
  1254. package/lib/map/map/props.js +4 -22
  1255. package/lib/map/map/props.js.map +1 -1
  1256. package/lib/media/image/Image.js +28 -31
  1257. package/lib/media/image/Image.js.map +1 -1
  1258. package/lib/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  1259. package/lib/media/image/index.js +5 -5
  1260. package/lib/media/image/index.js.map +1 -1
  1261. package/lib/media/image/props.js +6 -24
  1262. package/lib/media/image/props.js.map +1 -1
  1263. package/lib/node_modules/@ant-design/colors/dist/index.esm.js +2 -2
  1264. package/lib/node_modules/@ant-design/colors/dist/index.esm.js.map +1 -1
  1265. package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +2 -2
  1266. package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +1 -1
  1267. package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +7 -7
  1268. package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +1 -1
  1269. package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js +4 -4
  1270. package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +1 -1
  1271. package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +4 -4
  1272. package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +1 -1
  1273. package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +7 -7
  1274. package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +1 -1
  1275. package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js +1 -1
  1276. package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js.map +1 -1
  1277. package/lib/node_modules/@ant-design/icons-vue/es/utils.js +11 -4
  1278. package/lib/node_modules/@ant-design/icons-vue/es/utils.js.map +1 -1
  1279. package/lib/node_modules/@babel/runtime/helpers/esm/extends.js +1 -1
  1280. package/lib/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  1281. package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js +1 -1
  1282. package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +1 -1
  1283. package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js +3 -3
  1284. package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +1 -1
  1285. package/lib/node_modules/@ctrl/tinycolor/dist/module/util.js.map +1 -1
  1286. package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +4 -0
  1287. package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  1288. package/lib/node_modules/ant-design-vue/es/button/style/index.js +2 -2
  1289. package/lib/node_modules/ant-design-vue/es/checkbox/style/index.js +2 -2
  1290. package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +8 -8
  1291. package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +1 -1
  1292. package/lib/node_modules/ant-design-vue/es/date-picker/style/index.js +2 -2
  1293. package/lib/node_modules/ant-design-vue/es/dropdown/style/index.js +2 -2
  1294. package/lib/node_modules/ant-design-vue/es/empty/style/index.js +2 -2
  1295. package/lib/node_modules/ant-design-vue/es/input/style/index.js +2 -2
  1296. package/lib/node_modules/ant-design-vue/es/modal/style/index.js +2 -2
  1297. package/lib/node_modules/ant-design-vue/es/pagination/style/index.js +2 -2
  1298. package/lib/node_modules/ant-design-vue/es/progress/style/index.js +2 -2
  1299. package/lib/node_modules/ant-design-vue/es/radio/style/index.js +2 -2
  1300. package/lib/node_modules/ant-design-vue/es/select/style/index.js +2 -2
  1301. package/lib/node_modules/ant-design-vue/es/skeleton/style/index.js +2 -2
  1302. package/lib/node_modules/ant-design-vue/es/spin/style/index.js +2 -2
  1303. package/lib/node_modules/ant-design-vue/es/style/default.js +2 -1738
  1304. package/lib/node_modules/ant-design-vue/es/style/default.js.map +1 -1
  1305. package/lib/node_modules/ant-design-vue/es/table/style/index.js +2 -2
  1306. package/lib/node_modules/ant-design-vue/es/tag/style/index.js +2 -2
  1307. package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +2 -2
  1308. package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +1 -1
  1309. package/lib/node_modules/ant-design-vue/es/tooltip/style/index.js +2 -2
  1310. package/lib/node_modules/ant-design-vue/es/tree/style/index.js +2 -2
  1311. package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +2 -2
  1312. package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +1 -1
  1313. package/lib/node_modules/axios/index.js +8 -3
  1314. package/lib/node_modules/axios/index.js.map +1 -1
  1315. package/lib/node_modules/axios/lib/adapters/xhr.js +150 -137
  1316. package/lib/node_modules/axios/lib/adapters/xhr.js.map +1 -1
  1317. package/lib/node_modules/axios/lib/axios.js +25 -23
  1318. package/lib/node_modules/axios/lib/axios.js.map +1 -1
  1319. package/lib/node_modules/axios/lib/cancel/Cancel.js +16 -8
  1320. package/lib/node_modules/axios/lib/cancel/Cancel.js.map +1 -1
  1321. package/lib/node_modules/axios/lib/cancel/CancelToken.js +78 -70
  1322. package/lib/node_modules/axios/lib/cancel/CancelToken.js.map +1 -1
  1323. package/lib/node_modules/axios/lib/cancel/isCancel.js +12 -4
  1324. package/lib/node_modules/axios/lib/cancel/isCancel.js.map +1 -1
  1325. package/lib/node_modules/axios/lib/core/Axios.js +13 -13
  1326. package/lib/node_modules/axios/lib/core/Axios.js.map +1 -1
  1327. package/lib/node_modules/axios/lib/core/InterceptorManager.js +3 -3
  1328. package/lib/node_modules/axios/lib/core/InterceptorManager.js.map +1 -1
  1329. package/lib/node_modules/axios/lib/core/buildFullPath.js +19 -11
  1330. package/lib/node_modules/axios/lib/core/buildFullPath.js.map +1 -1
  1331. package/lib/node_modules/axios/lib/core/createError.js +15 -7
  1332. package/lib/node_modules/axios/lib/core/createError.js.map +1 -1
  1333. package/lib/node_modules/axios/lib/core/dispatchRequest.js +40 -18
  1334. package/lib/node_modules/axios/lib/core/dispatchRequest.js.map +1 -1
  1335. package/lib/node_modules/axios/lib/core/enhanceError.js +1 -1
  1336. package/lib/node_modules/axios/lib/core/enhanceError.js.map +1 -1
  1337. package/lib/node_modules/axios/lib/core/mergeConfig.js +3 -3
  1338. package/lib/node_modules/axios/lib/core/mergeConfig.js.map +1 -1
  1339. package/lib/node_modules/axios/lib/core/settle.js +25 -11
  1340. package/lib/node_modules/axios/lib/core/settle.js.map +1 -1
  1341. package/lib/node_modules/axios/lib/core/transformData.js +5 -5
  1342. package/lib/node_modules/axios/lib/core/transformData.js.map +1 -1
  1343. package/lib/node_modules/axios/lib/defaults.js +102 -94
  1344. package/lib/node_modules/axios/lib/defaults.js.map +1 -1
  1345. package/lib/node_modules/axios/lib/env/data.js +12 -4
  1346. package/lib/node_modules/axios/lib/env/data.js.map +1 -1
  1347. package/lib/node_modules/axios/lib/helpers/bind.js +1 -1
  1348. package/lib/node_modules/axios/lib/helpers/bind.js.map +1 -1
  1349. package/lib/node_modules/axios/lib/helpers/buildURL.js +3 -3
  1350. package/lib/node_modules/axios/lib/helpers/buildURL.js.map +1 -1
  1351. package/lib/node_modules/axios/lib/helpers/combineURLs.js +12 -4
  1352. package/lib/node_modules/axios/lib/helpers/combineURLs.js.map +1 -1
  1353. package/lib/node_modules/axios/lib/helpers/cookies.js +47 -39
  1354. package/lib/node_modules/axios/lib/helpers/cookies.js.map +1 -1
  1355. package/lib/node_modules/axios/lib/helpers/isAbsoluteURL.js +12 -4
  1356. package/lib/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +1 -1
  1357. package/lib/node_modules/axios/lib/helpers/isAxiosError.js +14 -6
  1358. package/lib/node_modules/axios/lib/helpers/isAxiosError.js.map +1 -1
  1359. package/lib/node_modules/axios/lib/helpers/isURLSameOrigin.js +40 -32
  1360. package/lib/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +1 -1
  1361. package/lib/node_modules/axios/lib/helpers/normalizeHeaderName.js +3 -3
  1362. package/lib/node_modules/axios/lib/helpers/normalizeHeaderName.js.map +1 -1
  1363. package/lib/node_modules/axios/lib/helpers/parseHeaders.js +54 -46
  1364. package/lib/node_modules/axios/lib/helpers/parseHeaders.js.map +1 -1
  1365. package/lib/node_modules/axios/lib/helpers/spread.js +13 -5
  1366. package/lib/node_modules/axios/lib/helpers/spread.js.map +1 -1
  1367. package/lib/node_modules/axios/lib/helpers/validator.js +9 -4
  1368. package/lib/node_modules/axios/lib/helpers/validator.js.map +1 -1
  1369. package/lib/node_modules/axios/lib/utils.js +3 -3
  1370. package/lib/node_modules/axios/lib/utils.js.map +1 -1
  1371. package/lib/node_modules/echarts/lib/action/roamHelper.js.map +1 -1
  1372. package/lib/node_modules/echarts/lib/animation/basicTrasition.js +2 -2
  1373. package/lib/node_modules/echarts/lib/animation/basicTrasition.js.map +1 -1
  1374. package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +16 -4
  1375. package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +1 -1
  1376. package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js +59 -11
  1377. package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js.map +1 -1
  1378. package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js +9 -9
  1379. package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js.map +1 -1
  1380. package/lib/node_modules/echarts/lib/chart/bar/BarView.js +40 -27
  1381. package/lib/node_modules/echarts/lib/chart/bar/BarView.js.map +1 -1
  1382. package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +8 -8
  1383. package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +1 -1
  1384. package/lib/node_modules/echarts/lib/chart/bar/install.js +8 -8
  1385. package/lib/node_modules/echarts/lib/chart/bar/install.js.map +1 -1
  1386. package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +14 -12
  1387. package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +1 -1
  1388. package/lib/node_modules/echarts/lib/chart/helper/Symbol.js +14 -14
  1389. package/lib/node_modules/echarts/lib/chart/helper/Symbol.js.map +1 -1
  1390. package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js +10 -10
  1391. package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +1 -1
  1392. package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +7 -7
  1393. package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +1 -1
  1394. package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +2 -2
  1395. package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +1 -1
  1396. package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js +20 -16
  1397. package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +1 -1
  1398. package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +6 -6
  1399. package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +1 -1
  1400. package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js +2 -2
  1401. package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js.map +1 -1
  1402. package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js +2 -2
  1403. package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js.map +1 -1
  1404. package/lib/node_modules/echarts/lib/chart/line/LineSeries.js +16 -10
  1405. package/lib/node_modules/echarts/lib/chart/line/LineSeries.js.map +1 -1
  1406. package/lib/node_modules/echarts/lib/chart/line/LineView.js +56 -39
  1407. package/lib/node_modules/echarts/lib/chart/line/LineView.js.map +1 -1
  1408. package/lib/node_modules/echarts/lib/chart/line/helper.js +10 -4
  1409. package/lib/node_modules/echarts/lib/chart/line/helper.js.map +1 -1
  1410. package/lib/node_modules/echarts/lib/chart/line/install.js +8 -8
  1411. package/lib/node_modules/echarts/lib/chart/line/install.js.map +1 -1
  1412. package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +3 -3
  1413. package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +1 -1
  1414. package/lib/node_modules/echarts/lib/chart/line/poly.js +7 -7
  1415. package/lib/node_modules/echarts/lib/chart/line/poly.js.map +1 -1
  1416. package/lib/node_modules/echarts/lib/chart/map/MapSeries.js +13 -13
  1417. package/lib/node_modules/echarts/lib/chart/map/MapSeries.js.map +1 -1
  1418. package/lib/node_modules/echarts/lib/chart/map/MapView.js +11 -11
  1419. package/lib/node_modules/echarts/lib/chart/map/MapView.js.map +1 -1
  1420. package/lib/node_modules/echarts/lib/chart/map/install.js +11 -11
  1421. package/lib/node_modules/echarts/lib/chart/map/install.js.map +1 -1
  1422. package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js +2 -2
  1423. package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +1 -1
  1424. package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +2 -2
  1425. package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +1 -1
  1426. package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js +13 -13
  1427. package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js.map +1 -1
  1428. package/lib/node_modules/echarts/lib/chart/pie/PieView.js +21 -21
  1429. package/lib/node_modules/echarts/lib/chart/pie/PieView.js.map +1 -1
  1430. package/lib/node_modules/echarts/lib/chart/pie/install.js +12 -12
  1431. package/lib/node_modules/echarts/lib/chart/pie/install.js.map +1 -1
  1432. package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js +8 -8
  1433. package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js.map +1 -1
  1434. package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js +4 -4
  1435. package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js.map +1 -1
  1436. package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +7 -7
  1437. package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +1 -1
  1438. package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js +10 -10
  1439. package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +1 -1
  1440. package/lib/node_modules/echarts/lib/chart/scatter/install.js +8 -8
  1441. package/lib/node_modules/echarts/lib/chart/scatter/install.js.map +1 -1
  1442. package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js +32 -25
  1443. package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +1 -1
  1444. package/lib/node_modules/echarts/lib/component/axis/AxisView.js +11 -6
  1445. package/lib/node_modules/echarts/lib/component/axis/AxisView.js.map +1 -1
  1446. package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js +16 -16
  1447. package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +1 -1
  1448. package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js +4 -4
  1449. package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +1 -1
  1450. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +5 -5
  1451. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +1 -1
  1452. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +6 -6
  1453. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +1 -1
  1454. package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +13 -13
  1455. package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +1 -1
  1456. package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +15 -8
  1457. package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +1 -1
  1458. package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +11 -7
  1459. package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +1 -1
  1460. package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +3 -3
  1461. package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +1 -1
  1462. package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js +5 -5
  1463. package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +1 -1
  1464. package/lib/node_modules/echarts/lib/component/axisPointer/install.js +11 -11
  1465. package/lib/node_modules/echarts/lib/component/axisPointer/install.js.map +1 -1
  1466. package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js +3 -3
  1467. package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +1 -1
  1468. package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js +9 -9
  1469. package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +1 -1
  1470. package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +10 -10
  1471. package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +1 -1
  1472. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +14 -8
  1473. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +1 -1
  1474. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +5 -5
  1475. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +1 -1
  1476. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +5 -5
  1477. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +1 -1
  1478. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +5 -5
  1479. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +1 -1
  1480. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +3 -3
  1481. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +1 -1
  1482. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +6 -6
  1483. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +1 -1
  1484. package/lib/node_modules/echarts/lib/component/dataZoom/helper.js +4 -1
  1485. package/lib/node_modules/echarts/lib/component/dataZoom/helper.js.map +1 -1
  1486. package/lib/node_modules/echarts/lib/component/dataZoom/history.js +2 -2
  1487. package/lib/node_modules/echarts/lib/component/dataZoom/history.js.map +1 -1
  1488. package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js +5 -5
  1489. package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +1 -1
  1490. package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +6 -6
  1491. package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +1 -1
  1492. package/lib/node_modules/echarts/lib/component/dataset/install.js +7 -7
  1493. package/lib/node_modules/echarts/lib/component/dataset/install.js.map +1 -1
  1494. package/lib/node_modules/echarts/lib/component/geo/GeoView.js +9 -9
  1495. package/lib/node_modules/echarts/lib/component/geo/GeoView.js.map +1 -1
  1496. package/lib/node_modules/echarts/lib/component/geo/install.js +11 -11
  1497. package/lib/node_modules/echarts/lib/component/geo/install.js.map +1 -1
  1498. package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js +13 -6
  1499. package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +1 -1
  1500. package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js +32 -23
  1501. package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js.map +1 -1
  1502. package/lib/node_modules/echarts/lib/component/graphic/install.js +3 -3
  1503. package/lib/node_modules/echarts/lib/component/graphic/install.js.map +1 -1
  1504. package/lib/node_modules/echarts/lib/component/grid/installSimple.js +15 -15
  1505. package/lib/node_modules/echarts/lib/component/grid/installSimple.js.map +1 -1
  1506. package/lib/node_modules/echarts/lib/component/helper/BrushController.js +44 -21
  1507. package/lib/node_modules/echarts/lib/component/helper/BrushController.js.map +1 -1
  1508. package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js +13 -6
  1509. package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +1 -1
  1510. package/lib/node_modules/echarts/lib/component/helper/MapDraw.js +32 -32
  1511. package/lib/node_modules/echarts/lib/component/helper/MapDraw.js.map +1 -1
  1512. package/lib/node_modules/echarts/lib/component/helper/RoamController.js +8 -8
  1513. package/lib/node_modules/echarts/lib/component/helper/RoamController.js.map +1 -1
  1514. package/lib/node_modules/echarts/lib/component/helper/brushHelper.js +4 -4
  1515. package/lib/node_modules/echarts/lib/component/helper/brushHelper.js.map +1 -1
  1516. package/lib/node_modules/echarts/lib/component/helper/cursorHelper.js.map +1 -1
  1517. package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js +2 -2
  1518. package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js.map +1 -1
  1519. package/lib/node_modules/echarts/lib/component/helper/listComponent.js +4 -4
  1520. package/lib/node_modules/echarts/lib/component/helper/listComponent.js.map +1 -1
  1521. package/lib/node_modules/echarts/lib/component/helper/roamHelper.js.map +1 -1
  1522. package/lib/node_modules/echarts/lib/component/helper/sliderMove.js +1 -1
  1523. package/lib/node_modules/echarts/lib/component/helper/sliderMove.js.map +1 -1
  1524. package/lib/node_modules/echarts/lib/component/legend/LegendModel.js +9 -9
  1525. package/lib/node_modules/echarts/lib/component/legend/LegendModel.js.map +1 -1
  1526. package/lib/node_modules/echarts/lib/component/legend/LegendView.js +31 -22
  1527. package/lib/node_modules/echarts/lib/component/legend/LegendView.js.map +1 -1
  1528. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +8 -8
  1529. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +1 -1
  1530. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +33 -21
  1531. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +1 -1
  1532. package/lib/node_modules/echarts/lib/component/legend/install.js +3 -3
  1533. package/lib/node_modules/echarts/lib/component/legend/install.js.map +1 -1
  1534. package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js +7 -7
  1535. package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +1 -1
  1536. package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js +8 -8
  1537. package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +1 -1
  1538. package/lib/node_modules/echarts/lib/component/legend/legendAction.js +1 -1
  1539. package/lib/node_modules/echarts/lib/component/legend/legendAction.js.map +1 -1
  1540. package/lib/node_modules/echarts/lib/component/legend/legendFilter.js +1 -1
  1541. package/lib/node_modules/echarts/lib/component/legend/legendFilter.js.map +1 -1
  1542. package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +1 -1
  1543. package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +1 -1
  1544. package/lib/node_modules/echarts/lib/component/title/install.js +15 -15
  1545. package/lib/node_modules/echarts/lib/component/title/install.js.map +1 -1
  1546. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +7 -7
  1547. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +1 -1
  1548. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js +19 -19
  1549. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +1 -1
  1550. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js +11 -7
  1551. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +1 -1
  1552. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +15 -15
  1553. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +1 -1
  1554. package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +7 -7
  1555. package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +1 -1
  1556. package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js +6 -6
  1557. package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +1 -1
  1558. package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +7 -7
  1559. package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +1 -1
  1560. package/lib/node_modules/echarts/lib/component/toolbox/featureManager.js.map +1 -1
  1561. package/lib/node_modules/echarts/lib/component/toolbox/install.js +17 -17
  1562. package/lib/node_modules/echarts/lib/component/toolbox/install.js.map +1 -1
  1563. package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +15 -15
  1564. package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +1 -1
  1565. package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js +5 -5
  1566. package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +1 -1
  1567. package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +8 -8
  1568. package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +1 -1
  1569. package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js +37 -37
  1570. package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +1 -1
  1571. package/lib/node_modules/echarts/lib/component/tooltip/helper.js +3 -3
  1572. package/lib/node_modules/echarts/lib/component/tooltip/helper.js.map +1 -1
  1573. package/lib/node_modules/echarts/lib/component/tooltip/install.js +7 -7
  1574. package/lib/node_modules/echarts/lib/component/tooltip/install.js.map +1 -1
  1575. package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +4 -4
  1576. package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +1 -1
  1577. package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +15 -7
  1578. package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +1 -1
  1579. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +9 -9
  1580. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +1 -1
  1581. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js +39 -33
  1582. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +1 -1
  1583. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +21 -16
  1584. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +1 -1
  1585. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +24 -17
  1586. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +1 -1
  1587. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +15 -15
  1588. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +1 -1
  1589. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js +13 -13
  1590. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +1 -1
  1591. package/lib/node_modules/echarts/lib/component/visualMap/helper.js +2 -2
  1592. package/lib/node_modules/echarts/lib/component/visualMap/helper.js.map +1 -1
  1593. package/lib/node_modules/echarts/lib/component/visualMap/install.js +3 -3
  1594. package/lib/node_modules/echarts/lib/component/visualMap/install.js.map +1 -1
  1595. package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js +6 -6
  1596. package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js.map +1 -1
  1597. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +6 -6
  1598. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +1 -1
  1599. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +6 -6
  1600. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +1 -1
  1601. package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js +2 -2
  1602. package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +1 -1
  1603. package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js +5 -5
  1604. package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +1 -1
  1605. package/lib/node_modules/echarts/lib/coord/Axis.js +5 -5
  1606. package/lib/node_modules/echarts/lib/coord/Axis.js.map +1 -1
  1607. package/lib/node_modules/echarts/lib/coord/CoordinateSystem.js.map +1 -1
  1608. package/lib/node_modules/echarts/lib/coord/View.js +15 -15
  1609. package/lib/node_modules/echarts/lib/coord/View.js.map +1 -1
  1610. package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js +14 -5
  1611. package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js.map +1 -1
  1612. package/lib/node_modules/echarts/lib/coord/axisDefault.js +3 -3
  1613. package/lib/node_modules/echarts/lib/coord/axisDefault.js.map +1 -1
  1614. package/lib/node_modules/echarts/lib/coord/axisHelper.js +16 -16
  1615. package/lib/node_modules/echarts/lib/coord/axisHelper.js.map +1 -1
  1616. package/lib/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +1 -1
  1617. package/lib/node_modules/echarts/lib/coord/axisModelCreator.js +9 -9
  1618. package/lib/node_modules/echarts/lib/coord/axisModelCreator.js.map +1 -1
  1619. package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +4 -4
  1620. package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +1 -1
  1621. package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js +5 -5
  1622. package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +1 -1
  1623. package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js +7 -7
  1624. package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +1 -1
  1625. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js +3 -3
  1626. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +1 -1
  1627. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +9 -10
  1628. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +1 -1
  1629. package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js +21 -13
  1630. package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js.map +1 -1
  1631. package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js +5 -5
  1632. package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +1 -1
  1633. package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +7 -2
  1634. package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +1 -1
  1635. package/lib/node_modules/echarts/lib/coord/geo/Geo.js +29 -14
  1636. package/lib/node_modules/echarts/lib/coord/geo/Geo.js.map +1 -1
  1637. package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +11 -11
  1638. package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +1 -1
  1639. package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js +14 -14
  1640. package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js.map +1 -1
  1641. package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +10 -10
  1642. package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +1 -1
  1643. package/lib/node_modules/echarts/lib/coord/geo/Region.js +8 -8
  1644. package/lib/node_modules/echarts/lib/coord/geo/Region.js.map +1 -1
  1645. package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +1 -1
  1646. package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +1 -1
  1647. package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js +5 -5
  1648. package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +1 -1
  1649. package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js +1 -1
  1650. package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +1 -1
  1651. package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js +20 -14
  1652. package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js.map +1 -1
  1653. package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js +8 -5
  1654. package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +1 -1
  1655. package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js +3 -3
  1656. package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +1 -1
  1657. package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +11 -2
  1658. package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +1 -1
  1659. package/lib/node_modules/echarts/lib/core/CoordinateSystem.js +3 -3
  1660. package/lib/node_modules/echarts/lib/core/CoordinateSystem.js.map +1 -1
  1661. package/lib/node_modules/echarts/lib/core/ExtensionAPI.js +3 -3
  1662. package/lib/node_modules/echarts/lib/core/ExtensionAPI.js.map +1 -1
  1663. package/lib/node_modules/echarts/lib/core/Scheduler.js +16 -10
  1664. package/lib/node_modules/echarts/lib/core/Scheduler.js.map +1 -1
  1665. package/lib/node_modules/echarts/lib/core/echarts.js +165 -84
  1666. package/lib/node_modules/echarts/lib/core/echarts.js.map +1 -1
  1667. package/lib/node_modules/echarts/lib/core/impl.js +11 -0
  1668. package/lib/node_modules/echarts/lib/core/impl.js.map +1 -1
  1669. package/lib/node_modules/echarts/lib/core/lifecycle.js +4 -4
  1670. package/lib/node_modules/echarts/lib/core/lifecycle.js.map +1 -1
  1671. package/lib/node_modules/echarts/lib/core/locale.js +9 -9
  1672. package/lib/node_modules/echarts/lib/core/locale.js.map +1 -1
  1673. package/lib/node_modules/echarts/lib/core/task.js +13 -1
  1674. package/lib/node_modules/echarts/lib/core/task.js.map +1 -1
  1675. package/lib/node_modules/echarts/lib/data/DataDiffer.js +2 -2
  1676. package/lib/node_modules/echarts/lib/data/DataDiffer.js.map +1 -1
  1677. package/lib/node_modules/echarts/lib/data/DataStore.js +16 -5
  1678. package/lib/node_modules/echarts/lib/data/DataStore.js.map +1 -1
  1679. package/lib/node_modules/echarts/lib/data/OrdinalMeta.js +3 -3
  1680. package/lib/node_modules/echarts/lib/data/OrdinalMeta.js.map +1 -1
  1681. package/lib/node_modules/echarts/lib/data/SeriesData.js +42 -20
  1682. package/lib/node_modules/echarts/lib/data/SeriesData.js.map +1 -1
  1683. package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js +3 -3
  1684. package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +1 -1
  1685. package/lib/node_modules/echarts/lib/data/Source.js +9 -6
  1686. package/lib/node_modules/echarts/lib/data/Source.js.map +1 -1
  1687. package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +3 -3
  1688. package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +1 -1
  1689. package/lib/node_modules/echarts/lib/data/helper/createDimensions.js +10 -10
  1690. package/lib/node_modules/echarts/lib/data/helper/createDimensions.js.map +1 -1
  1691. package/lib/node_modules/echarts/lib/data/helper/dataProvider.js +34 -4
  1692. package/lib/node_modules/echarts/lib/data/helper/dataProvider.js.map +1 -1
  1693. package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js +2 -2
  1694. package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +1 -1
  1695. package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js +2 -2
  1696. package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +1 -1
  1697. package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js +5 -2
  1698. package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +1 -1
  1699. package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js +3 -3
  1700. package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js.map +1 -1
  1701. package/lib/node_modules/echarts/lib/data/helper/sourceManager.js +23 -8
  1702. package/lib/node_modules/echarts/lib/data/helper/sourceManager.js.map +1 -1
  1703. package/lib/node_modules/echarts/lib/data/helper/transform.js +56 -8
  1704. package/lib/node_modules/echarts/lib/data/helper/transform.js.map +1 -1
  1705. package/lib/node_modules/echarts/lib/extension.js +17 -17
  1706. package/lib/node_modules/echarts/lib/extension.js.map +1 -1
  1707. package/lib/node_modules/echarts/lib/i18n/langEN.js +2 -2
  1708. package/lib/node_modules/echarts/lib/i18n/langEN.js.map +1 -1
  1709. package/lib/node_modules/echarts/lib/i18n/langZH.js +2 -2
  1710. package/lib/node_modules/echarts/lib/i18n/langZH.js.map +1 -1
  1711. package/lib/node_modules/echarts/lib/label/labelGuideHelper.js +23 -23
  1712. package/lib/node_modules/echarts/lib/label/labelGuideHelper.js.map +1 -1
  1713. package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js +6 -6
  1714. package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js.map +1 -1
  1715. package/lib/node_modules/echarts/lib/label/labelStyle.js +27 -6
  1716. package/lib/node_modules/echarts/lib/label/labelStyle.js.map +1 -1
  1717. package/lib/node_modules/echarts/lib/label/sectorLabel.js +2 -2
  1718. package/lib/node_modules/echarts/lib/label/sectorLabel.js.map +1 -1
  1719. package/lib/node_modules/echarts/lib/layout/barGrid.js +10 -7
  1720. package/lib/node_modules/echarts/lib/layout/barGrid.js.map +1 -1
  1721. package/lib/node_modules/echarts/lib/layout/points.js +6 -6
  1722. package/lib/node_modules/echarts/lib/layout/points.js.map +1 -1
  1723. package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js +9 -2
  1724. package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js.map +1 -1
  1725. package/lib/node_modules/echarts/lib/loading/default.js +11 -11
  1726. package/lib/node_modules/echarts/lib/loading/default.js.map +1 -1
  1727. package/lib/node_modules/echarts/lib/model/Component.js +11 -11
  1728. package/lib/node_modules/echarts/lib/model/Component.js.map +1 -1
  1729. package/lib/node_modules/echarts/lib/model/Global.js +124 -24
  1730. package/lib/node_modules/echarts/lib/model/Global.js.map +1 -1
  1731. package/lib/node_modules/echarts/lib/model/Model.js +11 -11
  1732. package/lib/node_modules/echarts/lib/model/Model.js.map +1 -1
  1733. package/lib/node_modules/echarts/lib/model/OptionManager.js +17 -5
  1734. package/lib/node_modules/echarts/lib/model/OptionManager.js.map +1 -1
  1735. package/lib/node_modules/echarts/lib/model/Series.js +22 -19
  1736. package/lib/node_modules/echarts/lib/model/Series.js.map +1 -1
  1737. package/lib/node_modules/echarts/lib/model/globalDefault.js +2 -2
  1738. package/lib/node_modules/echarts/lib/model/globalDefault.js.map +1 -1
  1739. package/lib/node_modules/echarts/lib/model/internalComponentCreator.js +7 -1
  1740. package/lib/node_modules/echarts/lib/model/internalComponentCreator.js.map +1 -1
  1741. package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js +2 -2
  1742. package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js.map +1 -1
  1743. package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js +13 -3
  1744. package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js.map +1 -1
  1745. package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js +2 -2
  1746. package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js.map +1 -1
  1747. package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js +2 -2
  1748. package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js.map +1 -1
  1749. package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +2 -2
  1750. package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +1 -1
  1751. package/lib/node_modules/echarts/lib/model/mixin/palette.js +1 -1
  1752. package/lib/node_modules/echarts/lib/model/mixin/palette.js.map +1 -1
  1753. package/lib/node_modules/echarts/lib/model/mixin/textStyle.js +5 -5
  1754. package/lib/node_modules/echarts/lib/model/mixin/textStyle.js.map +1 -1
  1755. package/lib/node_modules/echarts/lib/model/referHelper.js +23 -2
  1756. package/lib/node_modules/echarts/lib/model/referHelper.js.map +1 -1
  1757. package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js +39 -5
  1758. package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +1 -1
  1759. package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +32 -3
  1760. package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +1 -1
  1761. package/lib/node_modules/echarts/lib/processor/dataFilter.js +1 -1
  1762. package/lib/node_modules/echarts/lib/processor/dataFilter.js.map +1 -1
  1763. package/lib/node_modules/echarts/lib/processor/dataSample.js +2 -2
  1764. package/lib/node_modules/echarts/lib/processor/dataSample.js.map +1 -1
  1765. package/lib/node_modules/echarts/lib/processor/dataStack.js +3 -3
  1766. package/lib/node_modules/echarts/lib/processor/dataStack.js.map +1 -1
  1767. package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js +2 -2
  1768. package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js.map +1 -1
  1769. package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js +2 -2
  1770. package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +1 -1
  1771. package/lib/node_modules/echarts/lib/scale/Interval.js +9 -9
  1772. package/lib/node_modules/echarts/lib/scale/Interval.js.map +1 -1
  1773. package/lib/node_modules/echarts/lib/scale/Log.js +13 -13
  1774. package/lib/node_modules/echarts/lib/scale/Log.js.map +1 -1
  1775. package/lib/node_modules/echarts/lib/scale/Ordinal.js +11 -11
  1776. package/lib/node_modules/echarts/lib/scale/Ordinal.js.map +1 -1
  1777. package/lib/node_modules/echarts/lib/scale/Scale.js +3 -3
  1778. package/lib/node_modules/echarts/lib/scale/Scale.js.map +1 -1
  1779. package/lib/node_modules/echarts/lib/scale/Time.js +17 -11
  1780. package/lib/node_modules/echarts/lib/scale/Time.js.map +1 -1
  1781. package/lib/node_modules/echarts/lib/scale/helper.js +7 -1
  1782. package/lib/node_modules/echarts/lib/scale/helper.js.map +1 -1
  1783. package/lib/node_modules/echarts/lib/theme/dark.js +2 -2
  1784. package/lib/node_modules/echarts/lib/theme/dark.js.map +1 -1
  1785. package/lib/node_modules/echarts/lib/theme/light.js +2 -2
  1786. package/lib/node_modules/echarts/lib/theme/light.js.map +1 -1
  1787. package/lib/node_modules/echarts/lib/util/ECEventProcessor.js +2 -2
  1788. package/lib/node_modules/echarts/lib/util/ECEventProcessor.js.map +1 -1
  1789. package/lib/node_modules/echarts/lib/util/clazz.js +17 -2
  1790. package/lib/node_modules/echarts/lib/util/clazz.js.map +1 -1
  1791. package/lib/node_modules/echarts/lib/util/component.js +6 -2
  1792. package/lib/node_modules/echarts/lib/util/component.js.map +1 -1
  1793. package/lib/node_modules/echarts/lib/util/decal.js +20 -9
  1794. package/lib/node_modules/echarts/lib/util/decal.js.map +1 -1
  1795. package/lib/node_modules/echarts/lib/util/event.js.map +1 -1
  1796. package/lib/node_modules/echarts/lib/util/format.js +3 -3
  1797. package/lib/node_modules/echarts/lib/util/format.js.map +1 -1
  1798. package/lib/node_modules/echarts/lib/util/graphic.js +64 -64
  1799. package/lib/node_modules/echarts/lib/util/graphic.js.map +1 -1
  1800. package/lib/node_modules/echarts/lib/util/innerStore.js +1 -1
  1801. package/lib/node_modules/echarts/lib/util/layout.js +6 -6
  1802. package/lib/node_modules/echarts/lib/util/layout.js.map +1 -1
  1803. package/lib/node_modules/echarts/lib/util/log.js +56 -0
  1804. package/lib/node_modules/echarts/lib/util/log.js.map +1 -1
  1805. package/lib/node_modules/echarts/lib/util/model.js +26 -4
  1806. package/lib/node_modules/echarts/lib/util/model.js.map +1 -1
  1807. package/lib/node_modules/echarts/lib/util/number.js +1 -1
  1808. package/lib/node_modules/echarts/lib/util/number.js.map +1 -1
  1809. package/lib/node_modules/echarts/lib/util/shape/sausage.js +5 -5
  1810. package/lib/node_modules/echarts/lib/util/shape/sausage.js.map +1 -1
  1811. package/lib/node_modules/echarts/lib/util/states.js +21 -8
  1812. package/lib/node_modules/echarts/lib/util/states.js.map +1 -1
  1813. package/lib/node_modules/echarts/lib/util/styleCompat.js +1 -1
  1814. package/lib/node_modules/echarts/lib/util/styleCompat.js.map +1 -1
  1815. package/lib/node_modules/echarts/lib/util/symbol.js +21 -21
  1816. package/lib/node_modules/echarts/lib/util/symbol.js.map +1 -1
  1817. package/lib/node_modules/echarts/lib/util/throttle.js.map +1 -1
  1818. package/lib/node_modules/echarts/lib/util/time.js +5 -5
  1819. package/lib/node_modules/echarts/lib/util/time.js.map +1 -1
  1820. package/lib/node_modules/echarts/lib/util/types.js +1 -1
  1821. package/lib/node_modules/echarts/lib/util/vendor.js +1 -1
  1822. package/lib/node_modules/echarts/lib/util/vendor.js.map +1 -1
  1823. package/lib/node_modules/echarts/lib/view/Chart.js +24 -14
  1824. package/lib/node_modules/echarts/lib/view/Chart.js.map +1 -1
  1825. package/lib/node_modules/echarts/lib/view/Component.js +6 -6
  1826. package/lib/node_modules/echarts/lib/view/Component.js.map +1 -1
  1827. package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js +2 -2
  1828. package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +1 -1
  1829. package/lib/node_modules/echarts/lib/visual/VisualMapping.js +7 -7
  1830. package/lib/node_modules/echarts/lib/visual/VisualMapping.js.map +1 -1
  1831. package/lib/node_modules/echarts/lib/visual/decal.js +2 -2
  1832. package/lib/node_modules/echarts/lib/visual/decal.js.map +1 -1
  1833. package/lib/node_modules/echarts/lib/visual/helper.js +12 -0
  1834. package/lib/node_modules/echarts/lib/visual/helper.js.map +1 -1
  1835. package/lib/node_modules/echarts/lib/visual/style.js +14 -10
  1836. package/lib/node_modules/echarts/lib/visual/style.js.map +1 -1
  1837. package/lib/node_modules/echarts/lib/visual/symbol.js +1 -1
  1838. package/lib/node_modules/echarts/lib/visual/symbol.js.map +1 -1
  1839. package/lib/node_modules/echarts/lib/visual/visualDefault.js +3 -3
  1840. package/lib/node_modules/echarts/lib/visual/visualDefault.js.map +1 -1
  1841. package/lib/node_modules/echarts/lib/visual/visualSolution.js +7 -7
  1842. package/lib/node_modules/echarts/lib/visual/visualSolution.js.map +1 -1
  1843. package/lib/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +1 -1
  1844. package/lib/node_modules/resize-detector/esm/index.js.map +1 -1
  1845. package/lib/node_modules/zrender/lib/Element.js +47 -17
  1846. package/lib/node_modules/zrender/lib/Element.js.map +1 -1
  1847. package/lib/node_modules/zrender/lib/Handler.js +12 -12
  1848. package/lib/node_modules/zrender/lib/Handler.js.map +1 -1
  1849. package/lib/node_modules/zrender/lib/Storage.js +6 -6
  1850. package/lib/node_modules/zrender/lib/Storage.js.map +1 -1
  1851. package/lib/node_modules/zrender/lib/animation/Animation.js +10 -10
  1852. package/lib/node_modules/zrender/lib/animation/Animation.js.map +1 -1
  1853. package/lib/node_modules/zrender/lib/animation/Animator.js +9 -9
  1854. package/lib/node_modules/zrender/lib/animation/Animator.js.map +1 -1
  1855. package/lib/node_modules/zrender/lib/animation/Clip.js +6 -6
  1856. package/lib/node_modules/zrender/lib/animation/Clip.js.map +1 -1
  1857. package/lib/node_modules/zrender/lib/animation/cubicEasing.js +2 -2
  1858. package/lib/node_modules/zrender/lib/animation/cubicEasing.js.map +1 -1
  1859. package/lib/node_modules/zrender/lib/animation/easing.js +2 -2
  1860. package/lib/node_modules/zrender/lib/animation/easing.js.map +1 -1
  1861. package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js +4 -4
  1862. package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +1 -1
  1863. package/lib/node_modules/zrender/lib/canvas/Layer.js +16 -16
  1864. package/lib/node_modules/zrender/lib/canvas/Layer.js.map +1 -1
  1865. package/lib/node_modules/zrender/lib/canvas/Painter.js +21 -15
  1866. package/lib/node_modules/zrender/lib/canvas/Painter.js.map +1 -1
  1867. package/lib/node_modules/zrender/lib/canvas/dashStyle.js +1 -1
  1868. package/lib/node_modules/zrender/lib/canvas/dashStyle.js.map +1 -1
  1869. package/lib/node_modules/zrender/lib/canvas/graphic.js +16 -16
  1870. package/lib/node_modules/zrender/lib/canvas/graphic.js.map +1 -1
  1871. package/lib/node_modules/zrender/lib/canvas/helper.js.map +1 -1
  1872. package/lib/node_modules/zrender/lib/config.js +2 -2
  1873. package/lib/node_modules/zrender/lib/config.js.map +1 -1
  1874. package/lib/node_modules/zrender/lib/contain/arc.js +1 -1
  1875. package/lib/node_modules/zrender/lib/contain/arc.js.map +1 -1
  1876. package/lib/node_modules/zrender/lib/contain/cubic.js +1 -1
  1877. package/lib/node_modules/zrender/lib/contain/cubic.js.map +1 -1
  1878. package/lib/node_modules/zrender/lib/contain/line.js.map +1 -1
  1879. package/lib/node_modules/zrender/lib/contain/path.js +15 -15
  1880. package/lib/node_modules/zrender/lib/contain/path.js.map +1 -1
  1881. package/lib/node_modules/zrender/lib/contain/polygon.js +3 -3
  1882. package/lib/node_modules/zrender/lib/contain/polygon.js.map +1 -1
  1883. package/lib/node_modules/zrender/lib/contain/quadratic.js +1 -1
  1884. package/lib/node_modules/zrender/lib/contain/quadratic.js.map +1 -1
  1885. package/lib/node_modules/zrender/lib/contain/text.js +6 -6
  1886. package/lib/node_modules/zrender/lib/contain/text.js.map +1 -1
  1887. package/lib/node_modules/zrender/lib/contain/util.js.map +1 -1
  1888. package/lib/node_modules/zrender/lib/contain/windingLine.js +1 -1
  1889. package/lib/node_modules/zrender/lib/contain/windingLine.js.map +1 -1
  1890. package/lib/node_modules/zrender/lib/core/BoundingRect.js +19 -19
  1891. package/lib/node_modules/zrender/lib/core/BoundingRect.js.map +1 -1
  1892. package/lib/node_modules/zrender/lib/core/Eventful.js +2 -2
  1893. package/lib/node_modules/zrender/lib/core/Eventful.js.map +1 -1
  1894. package/lib/node_modules/zrender/lib/core/GestureMgr.js +1 -1
  1895. package/lib/node_modules/zrender/lib/core/GestureMgr.js.map +1 -1
  1896. package/lib/node_modules/zrender/lib/core/LRU.js +2 -2
  1897. package/lib/node_modules/zrender/lib/core/LRU.js.map +1 -1
  1898. package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js +14 -14
  1899. package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +1 -1
  1900. package/lib/node_modules/zrender/lib/core/PathProxy.js +8 -8
  1901. package/lib/node_modules/zrender/lib/core/PathProxy.js.map +1 -1
  1902. package/lib/node_modules/zrender/lib/core/Point.js +2 -2
  1903. package/lib/node_modules/zrender/lib/core/Point.js.map +1 -1
  1904. package/lib/node_modules/zrender/lib/core/Transformable.js +3 -3
  1905. package/lib/node_modules/zrender/lib/core/Transformable.js.map +1 -1
  1906. package/lib/node_modules/zrender/lib/core/WeakMap.js +2 -2
  1907. package/lib/node_modules/zrender/lib/core/WeakMap.js.map +1 -1
  1908. package/lib/node_modules/zrender/lib/core/bbox.js +2 -2
  1909. package/lib/node_modules/zrender/lib/core/bbox.js.map +1 -1
  1910. package/lib/node_modules/zrender/lib/core/curve.js +1 -1
  1911. package/lib/node_modules/zrender/lib/core/curve.js.map +1 -1
  1912. package/lib/node_modules/zrender/lib/core/dom.js +3 -3
  1913. package/lib/node_modules/zrender/lib/core/dom.js.map +1 -1
  1914. package/lib/node_modules/zrender/lib/core/env.js +2 -2
  1915. package/lib/node_modules/zrender/lib/core/env.js.map +1 -1
  1916. package/lib/node_modules/zrender/lib/core/event.js +4 -4
  1917. package/lib/node_modules/zrender/lib/core/event.js.map +1 -1
  1918. package/lib/node_modules/zrender/lib/core/fourPointsTransform.js.map +1 -1
  1919. package/lib/node_modules/zrender/lib/core/matrix.js.map +1 -1
  1920. package/lib/node_modules/zrender/lib/core/platform.js.map +1 -1
  1921. package/lib/node_modules/zrender/lib/core/timsort.js +1 -1
  1922. package/lib/node_modules/zrender/lib/core/timsort.js.map +1 -1
  1923. package/lib/node_modules/zrender/lib/core/util.js +5 -1
  1924. package/lib/node_modules/zrender/lib/core/util.js.map +1 -1
  1925. package/lib/node_modules/zrender/lib/core/vector.js.map +1 -1
  1926. package/lib/node_modules/zrender/lib/dom/HandlerProxy.js +13 -13
  1927. package/lib/node_modules/zrender/lib/dom/HandlerProxy.js.map +1 -1
  1928. package/lib/node_modules/zrender/lib/graphic/CompoundPath.js +6 -6
  1929. package/lib/node_modules/zrender/lib/graphic/CompoundPath.js.map +1 -1
  1930. package/lib/node_modules/zrender/lib/graphic/Displayable.js +13 -13
  1931. package/lib/node_modules/zrender/lib/graphic/Displayable.js.map +1 -1
  1932. package/lib/node_modules/zrender/lib/graphic/Gradient.js +2 -2
  1933. package/lib/node_modules/zrender/lib/graphic/Gradient.js.map +1 -1
  1934. package/lib/node_modules/zrender/lib/graphic/Group.js +14 -9
  1935. package/lib/node_modules/zrender/lib/graphic/Group.js.map +1 -1
  1936. package/lib/node_modules/zrender/lib/graphic/Image.js +8 -8
  1937. package/lib/node_modules/zrender/lib/graphic/Image.js.map +1 -1
  1938. package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +7 -7
  1939. package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +1 -1
  1940. package/lib/node_modules/zrender/lib/graphic/LinearGradient.js +5 -5
  1941. package/lib/node_modules/zrender/lib/graphic/LinearGradient.js.map +1 -1
  1942. package/lib/node_modules/zrender/lib/graphic/Path.js +13 -13
  1943. package/lib/node_modules/zrender/lib/graphic/Path.js.map +1 -1
  1944. package/lib/node_modules/zrender/lib/graphic/RadialGradient.js +5 -5
  1945. package/lib/node_modules/zrender/lib/graphic/RadialGradient.js.map +1 -1
  1946. package/lib/node_modules/zrender/lib/graphic/TSpan.js +9 -9
  1947. package/lib/node_modules/zrender/lib/graphic/TSpan.js.map +1 -1
  1948. package/lib/node_modules/zrender/lib/graphic/Text.js +23 -20
  1949. package/lib/node_modules/zrender/lib/graphic/Text.js.map +1 -1
  1950. package/lib/node_modules/zrender/lib/graphic/helper/image.js +3 -3
  1951. package/lib/node_modules/zrender/lib/graphic/helper/image.js.map +1 -1
  1952. package/lib/node_modules/zrender/lib/graphic/helper/parseText.js +3 -3
  1953. package/lib/node_modules/zrender/lib/graphic/helper/parseText.js.map +1 -1
  1954. package/lib/node_modules/zrender/lib/graphic/helper/poly.js +2 -2
  1955. package/lib/node_modules/zrender/lib/graphic/helper/poly.js.map +1 -1
  1956. package/lib/node_modules/zrender/lib/graphic/helper/roundRect.js.map +1 -1
  1957. package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js +1 -1
  1958. package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js.map +1 -1
  1959. package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js +2 -2
  1960. package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +1 -1
  1961. package/lib/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +1 -1
  1962. package/lib/node_modules/zrender/lib/graphic/shape/Arc.js +5 -5
  1963. package/lib/node_modules/zrender/lib/graphic/shape/Arc.js.map +1 -1
  1964. package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js +7 -7
  1965. package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +1 -1
  1966. package/lib/node_modules/zrender/lib/graphic/shape/Circle.js +5 -5
  1967. package/lib/node_modules/zrender/lib/graphic/shape/Circle.js.map +1 -1
  1968. package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js +5 -5
  1969. package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +1 -1
  1970. package/lib/node_modules/zrender/lib/graphic/shape/Line.js +6 -6
  1971. package/lib/node_modules/zrender/lib/graphic/shape/Line.js.map +1 -1
  1972. package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js +6 -6
  1973. package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js.map +1 -1
  1974. package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js +6 -6
  1975. package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js.map +1 -1
  1976. package/lib/node_modules/zrender/lib/graphic/shape/Rect.js +7 -7
  1977. package/lib/node_modules/zrender/lib/graphic/shape/Rect.js.map +1 -1
  1978. package/lib/node_modules/zrender/lib/graphic/shape/Ring.js +5 -5
  1979. package/lib/node_modules/zrender/lib/graphic/shape/Ring.js.map +1 -1
  1980. package/lib/node_modules/zrender/lib/graphic/shape/Sector.js +6 -6
  1981. package/lib/node_modules/zrender/lib/graphic/shape/Sector.js.map +1 -1
  1982. package/lib/node_modules/zrender/lib/mixin/Draggable.js +2 -2
  1983. package/lib/node_modules/zrender/lib/mixin/Draggable.js.map +1 -1
  1984. package/lib/node_modules/zrender/lib/svg/helper.js +6 -3
  1985. package/lib/node_modules/zrender/lib/svg/helper.js.map +1 -1
  1986. package/lib/node_modules/zrender/lib/tool/color.js +2 -2
  1987. package/lib/node_modules/zrender/lib/tool/color.js.map +1 -1
  1988. package/lib/node_modules/zrender/lib/tool/parseSVG.js +36 -31
  1989. package/lib/node_modules/zrender/lib/tool/parseSVG.js.map +1 -1
  1990. package/lib/node_modules/zrender/lib/tool/parseXML.js +1 -1
  1991. package/lib/node_modules/zrender/lib/tool/parseXML.js.map +1 -1
  1992. package/lib/node_modules/zrender/lib/tool/path.js +10 -10
  1993. package/lib/node_modules/zrender/lib/tool/path.js.map +1 -1
  1994. package/lib/node_modules/zrender/lib/tool/transformPath.js +4 -4
  1995. package/lib/node_modules/zrender/lib/tool/transformPath.js.map +1 -1
  1996. package/lib/node_modules/zrender/lib/zrender.js +19 -14
  1997. package/lib/node_modules/zrender/lib/zrender.js.map +1 -1
  1998. package/lib/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +1 -1
  1999. package/lib/setting/page-config/PageConfig.js +12 -25
  2000. package/lib/setting/page-config/PageConfig.js.map +1 -1
  2001. package/lib/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  2002. package/lib/setting/page-config/index.js +5 -5
  2003. package/lib/setting/page-config/index.js.map +1 -1
  2004. package/lib/setting/page-config/props.js +1 -1
  2005. package/lib/setting/page-config/props.js.map +1 -1
  2006. package/lib/setting/provider-config/ProviderConfig.js +56 -33
  2007. package/lib/setting/provider-config/ProviderConfig.js.map +1 -1
  2008. package/lib/setting/provider-config/index.js +5 -5
  2009. package/lib/setting/provider-config/index.js.map +1 -1
  2010. package/lib/setting/provider-config/props.js +3 -2
  2011. package/lib/setting/provider-config/props.js.map +1 -1
  2012. package/lib/setting/renderer/Renderer.js +19 -0
  2013. package/lib/setting/renderer/Renderer.js.map +1 -0
  2014. package/lib/setting/renderer/index.js +11 -0
  2015. package/lib/setting/renderer/index.js.map +1 -0
  2016. package/lib/setting/renderer/props.js +10 -0
  2017. package/lib/setting/renderer/props.js.map +1 -0
  2018. package/lib/style.css +3475 -3397
  2019. package/lib/table/table/Table.js +109 -52
  2020. package/lib/table/table/Table.js.map +1 -1
  2021. package/lib/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js +2 -36
  2022. package/lib/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  2023. package/lib/table/table/Table.vue_vue_type_style_index_1_lang.js +2 -2
  2024. package/lib/table/table/index.js +5 -5
  2025. package/lib/table/table/index.js.map +1 -1
  2026. package/lib/table/table/props.js +20 -24
  2027. package/lib/table/table/props.js.map +1 -1
  2028. package/lib/text/list/List.js +25 -37
  2029. package/lib/text/list/List.js.map +1 -1
  2030. package/lib/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js +2 -109
  2031. package/lib/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js.map +1 -1
  2032. package/lib/text/list/List.vue_vue_type_style_index_1_lang.js +2 -2
  2033. package/lib/text/list/index.js +5 -5
  2034. package/lib/text/list/index.js.map +1 -1
  2035. package/lib/text/list/props.js +4 -22
  2036. package/lib/text/list/props.js.map +1 -1
  2037. package/lib/text/proportion/Proportion.js +56 -53
  2038. package/lib/text/proportion/Proportion.js.map +1 -1
  2039. package/lib/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  2040. package/lib/text/proportion/index.js +5 -5
  2041. package/lib/text/proportion/index.js.map +1 -1
  2042. package/lib/text/proportion/props.js +7 -23
  2043. package/lib/text/proportion/props.js.map +1 -1
  2044. package/lib/text/scroll-text/ScrollText.js +4 -4
  2045. package/lib/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  2046. package/lib/text/scroll-text/index.js +4 -4
  2047. package/lib/text/scroll-text/index.js.map +1 -1
  2048. package/lib/text/text/Text.js +57 -38
  2049. package/lib/text/text/Text.js.map +1 -1
  2050. package/lib/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  2051. package/lib/text/text/index.js +5 -5
  2052. package/lib/text/text/index.js.map +1 -1
  2053. package/lib/text/text/props.js +9 -24
  2054. package/lib/text/text/props.js.map +1 -1
  2055. package/lib/text/time-display/TimeDisplay.js +15 -31
  2056. package/lib/text/time-display/TimeDisplay.js.map +1 -1
  2057. package/lib/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js +2 -2
  2058. package/lib/text/time-display/index.js +5 -5
  2059. package/lib/text/time-display/index.js.map +1 -1
  2060. package/lib/text/time-display/props.js +4 -22
  2061. package/lib/text/time-display/props.js.map +1 -1
  2062. package/package.json +4 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.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","../plugin-vue:export-helper","../src/common/spin/Spin.vue","../src/common/skeleton/Skeleton.vue","../src/_utils/withInstall.ts","../src/_utils/props.ts","../src/setting/page-config/props.ts","../src/_utils/hooks/usePickComponentStyle.ts","../src/_utils/constant.ts","../src/_utils/hooks/useOnEvent.ts","../src/_utils/hooks/useEmitEvent.ts","../src/_utils/hooks/useTransformChartDataByAttrValue.ts","../src/_utils/util.ts","../src/_utils/hooks/useVariablesInText.ts","../src/_utils/hooks/useRequestData.ts","../src/_utils/hooks/useTransformChartDataByAttrKey.ts","../src/_utils/hooks/useImagePath.ts","../src/_utils/hooks/usePageUrl.ts","../src/_utils/request.ts","../src/_utils/hooks/useRequestDiagramData.ts","../src/_utils/hooks/useValueFormatter.ts","../src/_utils/hooks/useIndicatorData.ts","../src/_utils/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/setting/renderer/props.ts","../src/setting/renderer/Renderer.vue","../src/setting/renderer/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/graph/pie/props.ts","../src/_utils/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/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/Border.vue","../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/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;","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<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","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: { id: string, prop: string } | string\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: '', value: { id: '', prop: '' } }],\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","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '../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 (oldId != null && oldId !== '') {\n eventBus.offEvent(oldId)\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 } from 'vue'\nimport { Events } from '../props'\nimport { EVENT_BUS } from '../constant'\n/**\n * 触发事件\n * @param events 事件数据\n */\nexport const useEmitEvent = (events: Events) => {\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 * @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 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 '../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 = (text: string = '', data: { [key: string]:any } = {}) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (text).match(/\\{\\w*\\}/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)\n // TODO 设置变量默认值\n const usedVariable = data[v]\n if (usedVariable != null) {\n // 使用的变量\n text = text.replace(variable, usedVariable)\n } else {\n // 过滤未使用的变量\n text = text.replace(variable, '')\n }\n }\n return text\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '../constant'\nimport { lowerCaseIncludes } from '../util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal'\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 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 const record = getGlobalModel(value.id) || {}\n const { prop, propKey } = value\n let p = record[prop] != null ? record[prop] : {}\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n if (propKey != null && propKey !== '' && !isNeedFormat) {\n // 判断 propKey 是否为空 或者 空字符串,不是就取值\n // 因为 model[prop] 可能为 ref ,所以不判断 他是不是对象\n // 新增: 需要格式化时间\n p = record[prop][propKey]\n }\n // 如果传入响应式数据优取响应式\n let v = unref(p)\n // if (typeof v === 'object' && v != null) {\n // 如果是对象那就转字符串一下\n // v = JSON.stringify(v)\n // }\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = v?.format(propKey?.trim() || record.format) || ''\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n _params = { ..._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 '../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 j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = 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 t = item[value]\n if (map.has(label)) {\n const m = map.get(label)\n m.push(t)\n map.set(label, m)\n } else {\n map.set(label, [t])\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","import { UPLOAD_PATH } from '../constant'\nexport 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 imagePath = UPLOAD_PATH + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '../constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `/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 * 10\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 '../constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '../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 const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) return formatter\n for (let i = 0; i < variables.length; 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 console.error(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 const keyAndValue = param.split('=')\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\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 '@/_utils/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, onUnmounted, ref, onMounted, watch, computed, unref } 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 '@/_utils/hooks'\nimport axios from 'axios'\n// import { lowerCaseIncludes } from '@/_utils/util'\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\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(() => useVariablesInText(props.contextRequestUrl as string))\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n console.log('contextRequestUrl', unref(contextRequestUrl))\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme\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 onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key, eventName) => {\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 setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\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 () => {\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 }\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 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 { transformToComponentProps } from '@/_utils/props'\n\nexport interface Renderer {\n componentList: { [key:string]:any } []\n}\n\nexport const renderer: Renderer = {\n componentList: []\n}\n\n// 转化默认属性\nexport const rendererComponentProps = transformToComponentProps(renderer)\n","<template>\n <div></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { rendererComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanRenderer',\n props: {\n ...rendererComponentProps\n },\n setup () {\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Renderer from './Renderer.vue'\nexport const EcanRenderer = withInstall(Renderer)\nexport default EcanRenderer\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}\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: '',\n format: ''\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 { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport { Events } from '@/_utils/props'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br />')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n if (typeof usedVariable === 'number') {\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}\"/>${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 {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props.events as Events)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n","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 '../../_utils/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 '@/_utils/hooks'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton'\nimport { Events } from '@/_utils/props'\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.events as Events)\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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\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: '',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: ''\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=\"value\"\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 '@/_utils/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '../../common/skeleton'\nimport { Events } from '@/_utils/props'\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 defaultValue = 0 // 变量默认值\n const value = computed(() => {\n const data = unref(myData)\n if (data == null) return defaultValue\n const values = Object.values(data)\n // 只取第一个,乘以 100\n const value = values[0] * 100\n if (!isNaN(value)) {\n return props.decimalFormat ? value.toFixed(2) : value\n }\n return 0\n })\n const text = computed(() => {\n let text = props.text as string\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n if (text === '') return unref(value) + '%'\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(/[a-zA-Z]\\w*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, props.variableDefaultValue as string)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/[+\\-*/%]+/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 (props.decimalFormat) {\n usedVariable = (usedVariable as number)?.toFixed(2)\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.events as Events)\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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n style,\n myWidth,\n text,\n value,\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","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { usePickComponentStyle } from '@/_utils/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\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 return {\n style\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.input {\n width: 100%;\n height: 100%;\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'\nimport dayjs from 'dayjs'\n\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: 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: dayjs().format('YYYY-MM-DD'),\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false\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, computed } from 'vue'\nimport { Events } from '@/_utils/props'\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 '@/_utils/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 = computed<Dayjs | null>(() => props.value ? dayjs(props.value as string) : null)\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 events = props.events as Events\n const emitEvent = useEmitEvent(events)\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 scoped lang=\"less\">\n.date-picker {\n width: 100%;\n height: 100%\n}\n</style>\n\n<style lang=\"less\">\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 }\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\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n data: [],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' }\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 :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n @change=\"selectChange\"\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 { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '../../_utils/hooks'\nimport { selectComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '../../_utils/constant'\nimport { Events } from '@/_utils/props'\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 { [key:string]:any } [])\n const myValue = ref(props.value || props.data[0])\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\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[(props.dataFieldNames as { label: string, value: string }).value]\n }\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: myValue\n })\n // 注册函数触发事件拦截器\n const events = props.events as Events\n const emitEvent = useEmitEvent(events)\n const selectChange = emitEvent('selectChange')\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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-select {\n :deep(.ant-select-selector) {\n height: 100% !important;\n }\n}\n\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\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 {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\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}\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 '@/_utils/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 { Events } from '@/_utils/props'\nimport dayjs, { Dayjs } 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], ([startTime, endTime]) => {\n const _startTime = startTime ? dayjs(startTime as string) : null\n const _endTime = endTime ? dayjs(endTime as string) : null\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 events = props.events as Events\n const emitEvent = useEmitEvent(events)\n const dateChange = emitEvent('dateChange', () => {})\n // TODO 传入需要注册的参数\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 '@/_utils/hooks'\nimport { Button as AButton } from 'ant-design-vue'\nimport 'ant-design-vue/es/button/style'\nimport { buttonComponentProps } from './props'\nimport { Events } from '@/_utils/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 const events = props.events as Events\n // 拦截触发事件\n const emitEvent = useEmitEvent(events)\n // click 是 event 名称\n const click = emitEvent('click', () => {\n if (props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: unref(myHref)\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // const target = computed(() => {})\n const myHref = computed(() => useVariablesInText(props.href as string))\n const myTarget = computed(() => {\n const target = props.target as '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 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 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: '{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 interface PieEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const pieEvents: Array<keyof PieEvents> = ['click', 'refreshData']\n","import request from '../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} from '@/_utils/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, Events } from '@/_utils/props'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\n\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: handleFormatter(props.tooltipFormatter as string),\n // formatter: function (params) {\n // console.log(params)\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.events as Events)\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 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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\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 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 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: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 },\n { name: '名称四', value: 135 },\n { name: '名称五', value: 1548 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\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: 4,\n lineStyleWidth: 2,\n smooth: false,\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 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 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']\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\n} from '@/_utils/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 { Events, KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\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 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: '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: {\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(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n tooltip: {\n trigger: 'axis'\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 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 // const areaStyles = [\n // {\n // opacity: 0.4\n // },\n // {\n // opacity: 0.4\n // }\n // ]\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.events as Events)\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 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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(chooseRequestOrDiagram, 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 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 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 yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n}\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 yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter\n} from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Events, Data } from '@/_utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport useDownloadFile from '@/_utils/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 series.push({\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n })\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: handleFormatter(props.tooltipFormatter as string),\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n if (props.isUseHorizontalAxis) return value\n return useValueFormatter(props.yAxisLabelFormatter as string, 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.events as Events)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","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 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: '{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 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 '@/_utils/hooks'\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 { Events } from '@/_utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/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 },\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 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 },\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(props.yAxisLabelFormatter as string, 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 record = params?.data?.record ?? {}\n return useVariablesInText(props.tooltipFormatter as string, record)\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 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 console.log(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.events as Events)\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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, 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 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 '../../_utils/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}\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: '',\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}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click']\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\n // useTooltipFormatter\n} from '@/_utils/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { Events, KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n // formatter: ,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n tooltip: {\n valueFormatter (value: string) {\n return useValueFormatter(seriesType?.tooltipFormatter, value)\n }\n },\n ...dataset[i]\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 // 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], ([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.events as Events)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","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}\n\nexport const borderProps: BorderProps = {\n ...props,\n name: '边框',\n keyName: '边框',\n type: 'ecanBorder',\n width: '450px',\n height: '450px',\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: '',\n useBorderModify: false,\n textShadow: ''\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\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==\"","<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 } from 'vue'\nimport { borderComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/_utils/hooks'\nimport { Events } from '@/_utils/props'\nimport { GLOBAL_CONFIG } 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.events as Events)\n const click = emitEvent('click', () => {})\n useOnEvent(props, {\n click\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","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: false,\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 :bodyStyle=\"{\n background: 'red'\n }\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/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 // 包含组件id\n contains: string []\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '200px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n value: '',\n activeKey: 0,\n contains: [],\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ]\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 }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabBarGutter\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: `1px solid ${isActive(index) ? activeTabColor : 'transparent'}`\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n <div class=\"tabs-content\"></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 '@/_utils/hooks'\nimport { GLOBAL_MODEL, REFRESH_PAGE } from '@/_utils/constant'\nimport { Events } from '@/_utils/props'\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 events = props.events as Events\n const emitEvent = useEmitEvent(events)\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 flex-direction: column;\n}\n\n.tabs-header {\n color: #333333;\n display: flex;\n width: 100%;\n padding: 0 12px;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n}\n\n.tab-inner {\n padding: 12px 0;\n}\n\n.tab:last-child {\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 '@/_utils/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 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 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 headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\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 fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\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']\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=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-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 || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot: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=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\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 } from 'vue'\nimport {\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/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/_utils/hooks'\nimport { tableComponentProps } from './props'\nimport { Events } from '@/_utils/props'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\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 = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\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 headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData({\n pageNum: unref(pageNum),\n pageSize: unref(pageSize)\n })\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\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 }\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.events as Events)\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 dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\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 customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData()\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) 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 (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 const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\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 return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\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</style>\n\n<style lang=\"less\">\n.ecan-table {\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: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\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</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 '../../_utils/hooks'\nimport { UPLOAD_PATH } from '@/_utils/constant'\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 geoCenter = computed(() => (props.geoCenter as string)?.split(','))\n const option = computed(() => ({\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: unref(geoCenter),\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 // 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 == null) return\n const res = await request(UPLOAD_PATH + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: 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":["watch","throttle","addListener","removeListener","inject","computed","unref","watchEffect","defineComponent","shallowRef","toRefs","initChart","nextTick","onMounted","onUnmounted","h","generate","_defineProperty","_objectSpread","generateColor","_excluded","_objectWithoutPropertiesLoose","_objectWithoutProperties","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_slicedToArray","_createVNode","LoadingOutlined","_sfc_main","ASpin","_hoisted_1","_openBlock","_createElementBlock","_createBlock","_renderSlot","ASkeleton","mapValues","without","pick","axios","message","ref","debounce","_normalizeStyle","_createCommentVNode","provide","mitt","_toDisplayString","dayjs","_createElementVNode","_hoisted_6","_withCtx","_Fragment","_renderList","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_normalizeClass","_hoisted_7","AProgress","AInput","ADatePicker","locale","ASelect","ARangePicker","AButton","use","CanvasRenderer","PieChart","TitleComponent","ToolboxComponent","TooltipComponent","LegendComponent","AModal","LineChart","BarChart","DatasetComponent","ScatterChart","echarts","_createSlots","_resolveDynamicComponent","_mergeProps","_withModifiers","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","MapChart","VisualMapComponent","GraphicComponent","registerMap","Map"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.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","../plugin-vue:export-helper","../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/_utils/hooks/usePickComponentStyle.ts","../src/_utils/constant.ts","../src/_utils/hooks/useOnEvent.ts","../src/_utils/hooks/useEmitEvent.ts","../src/_utils/hooks/useTransformChartDataByAttrValue.ts","../src/_utils/util.ts","../src/_utils/hooks/useVariablesInText.ts","../src/_utils/hooks/useRequestData.ts","../src/_utils/hooks/useTransformChartDataByAttrKey.ts","../src/_utils/hooks/useImagePath.ts","../src/_utils/hooks/usePageUrl.ts","../src/_utils/request.ts","../src/_utils/hooks/useRequestDiagramData.ts","../src/_utils/hooks/useValueFormatter.ts","../src/_utils/hooks/useIndicatorData.ts","../src/_utils/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/setting/renderer/props.ts","../src/setting/renderer/Renderer.vue","../src/setting/renderer/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/graph/pie/props.ts","../src/_utils/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/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/Border.vue","../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/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;","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<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 = '&quot;';\r\n break;\r\n case 38: // &\r\n escaped = '&amp;';\r\n break;\r\n case 39: // '\r\n escaped = '&#39;';\r\n break;\r\n case 60: // <\r\n escaped = '&lt;';\r\n break;\r\n case 62: // >\r\n escaped = '&gt;';\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: { id: string, prop: string } | string\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: '', value: { id: '', prop: '' } }],\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","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '../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 (oldId != null && oldId !== '') {\n eventBus.offEvent(oldId)\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 '../props'\nimport { EVENT_BUS, GLOBAL_CONFIG } from '../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 '../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 = (text: string = '', data: { [key: string]:any } = {}) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (text).match(/\\{\\w*\\}/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)\n // TODO 设置变量默认值\n const usedVariable = data[v]\n if (usedVariable != null) {\n // 使用的变量\n text = text.replace(variable, usedVariable)\n } else {\n // 过滤未使用的变量\n text = text.replace(variable, '')\n }\n }\n return text\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '../constant'\nimport { lowerCaseIncludes } from '../util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\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 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 } = value\n if (id === 'THIS') {\n // 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n // 如果传入响应式数据优取响应式\n let v = ''\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = unref(p)?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref ,同时不判断 他是不是对象\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 _params = { ..._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 '../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 j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = 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 t = item[value]\n if (map.has(label)) {\n const m = map.get(label)\n m.push(t)\n map.set(label, m)\n } else {\n map.set(label, [t])\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","import { UPLOAD_PATH } from '../constant'\nexport 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 imagePath = UPLOAD_PATH + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '../constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `/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 * 10\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 '../constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '../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 const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) return formatter\n for (let i = 0; i < variables.length; 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 console.error(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 const keyAndValue = param.split('=')\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\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 '@/_utils/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, onUnmounted, ref, onMounted, watch, computed, unref } 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 '@/_utils/hooks'\nimport axios from 'axios'\n// import { lowerCaseIncludes } from '@/_utils/util'\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\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(() => useVariablesInText(props.contextRequestUrl as string))\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 onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\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 setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\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 () => {\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 }\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 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 { transformToComponentProps } from '@/_utils/props'\n\nexport interface Renderer {\n componentList: { [key:string]:any } []\n}\n\nexport const renderer: Renderer = {\n componentList: []\n}\n\n// 转化默认属性\nexport const rendererComponentProps = transformToComponentProps(renderer)\n","<template>\n <div></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { rendererComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanRenderer',\n props: {\n ...rendererComponentProps\n },\n setup () {\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Renderer from './Renderer.vue'\nexport const EcanRenderer = withInstall(Renderer)\nexport default EcanRenderer\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}\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: '',\n format: ''\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 { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br />')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${usedVariable}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n","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 '../../_utils/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 '@/_utils/hooks'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\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: '',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: ''\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=\"value\"\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 '@/_utils/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '../../common/skeleton'\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 defaultValue = 0 // 变量默认值\n const value = computed(() => {\n const data = unref(myData)\n if (data == null) return defaultValue\n const values = Object.values(data)\n // 只取第一个,乘以 100\n const value = values[0] * 100\n if (!isNaN(value)) {\n return props.decimalFormat ? value.toFixed(2) : value\n }\n return 0\n })\n const text = computed(() => {\n let text = props.text as string\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n if (text === '') return unref(value) + '%'\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(/[a-zA-Z]\\w*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, props.variableDefaultValue as string)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/[+\\-*/%]+/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 (props.decimalFormat) {\n usedVariable = (usedVariable as number)?.toFixed(2)\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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n style,\n myWidth,\n text,\n value,\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","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { usePickComponentStyle } from '@/_utils/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\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 return {\n style\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.input {\n width: 100%;\n height: 100%;\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'\nimport dayjs from 'dayjs'\n\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: 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: dayjs().format('YYYY-MM-DD'),\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false\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, computed } 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 '@/_utils/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 = computed<Dayjs | null>(() => props.value ? dayjs(props.value as string) : null)\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 scoped lang=\"less\">\n.date-picker {\n width: 100%;\n height: 100%\n}\n</style>\n\n<style lang=\"less\">\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 }\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\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n data: [],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' }\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 :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n @change=\"selectChange\"\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 { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '../../_utils/hooks'\nimport { selectComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '../../_utils/constant'\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 { [key:string]:any } [])\n const myValue = ref(props.value || props.data[0])\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\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[(props.dataFieldNames as { label: string, value: string }).value]\n }\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: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const selectChange = emitEvent('selectChange')\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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-select {\n :deep(.ant-select-selector) {\n height: 100% !important;\n }\n}\n\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\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 {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\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}\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 '@/_utils/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 } 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], ([startTime, endTime]) => {\n const _startTime = startTime ? dayjs(startTime as string) : null\n const _endTime = endTime ? dayjs(endTime as string) : null\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 // TODO 传入需要注册的参数\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 '@/_utils/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 if (props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: unref(myHref)\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // const target = computed(() => {})\n const myHref = computed(() => useVariablesInText(props.href as string))\n const myTarget = computed(() => {\n const target = props.target as '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 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 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: '{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 interface PieEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const pieEvents: Array<keyof PieEvents> = ['click', 'refreshData']\n","import request from '../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} from '@/_utils/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 '@/_utils/hooks/useDownloadFile'\n\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: handleFormatter(props.tooltipFormatter as string),\n // formatter: function (params) {\n // console.log(params)\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 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: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\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 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 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: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 },\n { name: '名称四', value: 135 },\n { name: '名称五', value: 1548 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\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: 4,\n lineStyleWidth: 2,\n smooth: false,\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 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 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']\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\n} from '@/_utils/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 '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\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 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: '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: {\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(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n tooltip: {\n trigger: 'axis'\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 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 // const areaStyles = [\n // {\n // opacity: 0.4\n // },\n // {\n // opacity: 0.4\n // }\n // ]\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 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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(chooseRequestOrDiagram, 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 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 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 yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n}\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 yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter\n} from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Data } from '@/_utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport useDownloadFile from '@/_utils/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 series.push({\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n })\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: handleFormatter(props.tooltipFormatter as string),\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n if (props.isUseHorizontalAxis) return value\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: Data = [], useDataFieldNames: boolean = false) => {\n let chartData = {} as { [key:string]: any }\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n const { columns = [], rows = [] } = res?.data?.data ?? {}\n let fieldNames\n if (columns.length > 0) {\n fieldNames = {\n name: columns[0],\n types: columns.slice(1).map(column => {\n return {\n label: column,\n value: column\n }\n })\n }\n }\n handleIndicatorDataset(rows, fieldNames, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'indicator':\n handleIndicatorData()\n break\n case 'request':\n handleRequestData()\n break\n }\n }\n\n expose({\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","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 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: '{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 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 '@/_utils/hooks'\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 '@/_utils/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 },\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 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 },\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(props.yAxisLabelFormatter as string, 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 record = params?.data?.record ?? {}\n return useVariablesInText(props.tooltipFormatter as string, record)\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 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 console.log(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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, 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 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 '../../_utils/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}\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: '',\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}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click']\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\n // useTooltipFormatter\n} from '@/_utils/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n // formatter: ,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n tooltip: {\n valueFormatter (value: string) {\n return useValueFormatter(seriesType?.tooltipFormatter, value)\n }\n },\n ...dataset[i]\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 // 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], ([value]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const yAxis = computed(() => {\n const yAxis = props.yAxis as { [key: string]: any } []\n return yAxis?.map((axis) => {\n return {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(axis.axisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n }\n })\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","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: '450px',\n height: '450px',\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: '',\n useBorderModify: false,\n textShadow: '',\n data: {}\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\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==\"","<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 '@/_utils/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","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: false,\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 :bodyStyle=\"{\n background: 'red'\n }\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/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 // 包含组件id\n contains: string []\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '200px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n value: '',\n activeKey: 0,\n contains: [],\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ]\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 }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabBarGutter\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: `1px solid ${isActive(index) ? activeTabColor : 'transparent'}`\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n <div class=\"tabs-content\"></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 '@/_utils/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 flex-direction: column;\n}\n\n.tabs-header {\n color: #333333;\n display: flex;\n width: 100%;\n padding: 0 12px;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n}\n\n.tab-inner {\n padding: 12px 0;\n}\n\n.tab:last-child {\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 '@/_utils/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 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 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 headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\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 fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\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']\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=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-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 || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot: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=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\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 } from 'vue'\nimport {\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/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/_utils/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'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\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 = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\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 headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData({\n pageNum: unref(pageNum),\n pageSize: unref(pageSize)\n })\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\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 }\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 dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\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 customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData()\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) 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 (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 const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\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: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\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 return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\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</style>\n\n<style lang=\"less\">\n.ecan-table {\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: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\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</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 '../../_utils/hooks'\nimport { UPLOAD_PATH } from '@/_utils/constant'\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 geoCenter = computed(() => (props.geoCenter as string)?.split(','))\n const option = computed(() => ({\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: unref(geoCenter),\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 // 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 == null) return\n const res = await request(UPLOAD_PATH + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: 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":["watch","root","chart","autoresize","throttle","addListener","removeListener","inject","computed","unref","watchEffect","defineComponent","props","shallowRef","toRefs","initChart","nextTick","manualUpdate","onMounted","onUnmounted","h","generate","index","_objectSpread","_defineProperty","generateColor","useInsertStyles","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","IconBase","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Icon","_createVNode","LoadingOutlined","_sfc_main","ASpin","_hoisted_1","_openBlock","_createElementBlock","_createBlock","_renderSlot","ASkeleton","mapValues","without","pick","id","ref","name","data","config","axios","_a","message","_b","_c","style","debounce","_normalizeStyle","_createCommentVNode","providerConfig","provide","mitt","_toDisplayString","dayjs","_createElementVNode","_hoisted_6","_withCtx","_Fragment","_renderList","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_normalizeClass","_hoisted_7","AProgress","value","text","AInput","ADatePicker","locale","ASelect","ARangePicker","AButton","use","CanvasRenderer","PieChart","TitleComponent","ToolboxComponent","TooltipComponent","LegendComponent","AModal","LineChart","BarChart","DatasetComponent","series","ScatterChart","echarts","yAxis","_createSlots","_resolveDynamicComponent","_mergeProps","_withModifiers","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","summaryList","total","MapChart","VisualMapComponent","GraphicComponent","registerMap","Map"],"mappings":"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"}