@supermapgis/vue-iclient-leaflet 11.2.0

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 (719) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +31 -0
  3. package/dist/iclient-leaflet-vue.css +24471 -0
  4. package/dist/iclient-leaflet-vue.js +190317 -0
  5. package/dist/iclient-leaflet-vue.min.css +9 -0
  6. package/dist/iclient-leaflet-vue.min.js +517 -0
  7. package/dist/index.js +15 -0
  8. package/lib/_assets/iconfont/icon-sm-components.css +245 -0
  9. package/lib/_assets/iconfont/icon-sm-components.eot +0 -0
  10. package/lib/_assets/iconfont/icon-sm-components.svg +197 -0
  11. package/lib/_assets/iconfont/icon-sm-components.ttf +0 -0
  12. package/lib/_assets/iconfont/icon-sm-components.woff +0 -0
  13. package/lib/_assets/iconfont/icon-sm-components.woff2 +0 -0
  14. package/lib/_lang/en.js +446 -0
  15. package/lib/_lang/index.js +385 -0
  16. package/lib/_lang/zh.js +445 -0
  17. package/lib/_mixin/AntdRender.js +686 -0
  18. package/lib/_mixin/Card.js +197 -0
  19. package/lib/_mixin/GridLayer.js +153 -0
  20. package/lib/_mixin/Layer.js +140 -0
  21. package/lib/_mixin/Options.js +114 -0
  22. package/lib/_mixin/Popper.js +134 -0
  23. package/lib/_mixin/Theme.js +441 -0
  24. package/lib/_mixin/ThirdService.js +243 -0
  25. package/lib/_mixin/TileLayer.js +138 -0
  26. package/lib/_mixin/Timer.js +230 -0
  27. package/lib/_mixin/VmUpdater.js +204 -0
  28. package/lib/_mixin/WebMapBase.js +3467 -0
  29. package/lib/_mixin/map-events.js +200 -0
  30. package/lib/_mixin/map-getter.js +341 -0
  31. package/lib/_types/AddressMatchParameter.js +118 -0
  32. package/lib/_types/GeoJSONParamter.js +113 -0
  33. package/lib/_types/RestDataParameter.js +141 -0
  34. package/lib/_types/RestMapParameter.js +141 -0
  35. package/lib/_types/RestParameter.js +121 -0
  36. package/lib/_types/event/BaseTypes.js +124 -0
  37. package/lib/_types/event/Event.js +442 -0
  38. package/lib/_types/event/Events.js +484 -0
  39. package/lib/_types/event/Pixel.js +295 -0
  40. package/lib/_types/event/Util.js +305 -0
  41. package/lib/_types/iPortalDataParameter.js +121 -0
  42. package/lib/_types/iServerBaseParameter.js +111 -0
  43. package/lib/_types/iServerDataParameter.js +154 -0
  44. package/lib/_types/iServerMapParameter.js +154 -0
  45. package/lib/_types/index.js +231 -0
  46. package/lib/_types/map-event.js +163 -0
  47. package/lib/_utils/EchartsDataService.js +843 -0
  48. package/lib/_utils/RestService.js +7096 -0
  49. package/lib/_utils/WebMapService.js +1607 -0
  50. package/lib/_utils/epsg-define.js +181 -0
  51. package/lib/_utils/get-features.js +232 -0
  52. package/lib/_utils/global-event.js +134 -0
  53. package/lib/_utils/iPortalDataService.js +7459 -0
  54. package/lib/_utils/iServerRestService.js +7603 -0
  55. package/lib/_utils/props-binder.js +129 -0
  56. package/lib/_utils/statistics.js +147 -0
  57. package/lib/_utils/style/color/colorPalette.js +192 -0
  58. package/lib/_utils/style/color/serialColors.js +352 -0
  59. package/lib/_utils/style/common/common.css +1 -0
  60. package/lib/_utils/style/mixins/config.css +0 -0
  61. package/lib/_utils/style/mixins/mixins.css +0 -0
  62. package/lib/_utils/style/theme/antd.css +25242 -0
  63. package/lib/_utils/style/theme/antdVar.css +0 -0
  64. package/lib/_utils/style/theme/chart.js +7477 -0
  65. package/lib/_utils/style/theme/set-theme.js +200 -0
  66. package/lib/_utils/style/theme/theme.css +0 -0
  67. package/lib/_utils/style/theme/theme.json +356 -0
  68. package/lib/_utils/util.js +484 -0
  69. package/lib/_utils/vue-types/index.js +396 -0
  70. package/lib/_utils/vue-types/utils.js +318 -0
  71. package/lib/avatar/index.js +656 -0
  72. package/lib/avatar/style/avatar.css +1 -0
  73. package/lib/avatar/style/css.js +9 -0
  74. package/lib/avatar/style/index.css +2135 -0
  75. package/lib/avatar/style/index.js +9 -0
  76. package/lib/border/index.js +642 -0
  77. package/lib/border/style/border.css +1 -0
  78. package/lib/border/style/css.js +7 -0
  79. package/lib/border/style/index.js +7 -0
  80. package/lib/breadcrumb/index.js +813 -0
  81. package/lib/breadcrumb/style/breadcrumb.css +1 -0
  82. package/lib/breadcrumb/style/css.js +9 -0
  83. package/lib/breadcrumb/style/index.css +2102 -0
  84. package/lib/breadcrumb/style/index.js +9 -0
  85. package/lib/button/index.js +758 -0
  86. package/lib/button/style/button.css +1 -0
  87. package/lib/button/style/css.js +9 -0
  88. package/lib/button/style/index.css +3571 -0
  89. package/lib/button/style/index.js +9 -0
  90. package/lib/card/index.js +824 -0
  91. package/lib/card/style/card.css +1 -0
  92. package/lib/card/style/css.js +9 -0
  93. package/lib/card/style/index.css +2379 -0
  94. package/lib/card/style/index.js +9 -0
  95. package/lib/chart/index.js +9471 -0
  96. package/lib/chart/style/chart.css +1 -0
  97. package/lib/chart/style/css.js +11 -0
  98. package/lib/chart/style/index.js +11 -0
  99. package/lib/checkbox/index.js +756 -0
  100. package/lib/checkbox/style/checkbox.css +1 -0
  101. package/lib/checkbox/style/css.js +9 -0
  102. package/lib/checkbox/style/index.css +2286 -0
  103. package/lib/checkbox/style/index.js +9 -0
  104. package/lib/collapse/index.js +446 -0
  105. package/lib/collapse/style/collapse.css +1 -0
  106. package/lib/collapse/style/css.js +9 -0
  107. package/lib/collapse/style/index.css +2187 -0
  108. package/lib/collapse/style/index.js +9 -0
  109. package/lib/collapse-card/index.js +588 -0
  110. package/lib/collapse-card/style/collapse-card.css +1 -0
  111. package/lib/collapse-card/style/css.js +7 -0
  112. package/lib/collapse-card/style/index.js +7 -0
  113. package/lib/color-picker/index.js +521 -0
  114. package/lib/color-picker/style/color-picker.css +1 -0
  115. package/lib/color-picker/style/css.js +7 -0
  116. package/lib/color-picker/style/index.js +7 -0
  117. package/lib/date-picker/index.js +680 -0
  118. package/lib/date-picker/style/css.js +9 -0
  119. package/lib/date-picker/style/date-picker.css +1 -0
  120. package/lib/date-picker/style/index.css +4236 -0
  121. package/lib/date-picker/style/index.js +9 -0
  122. package/lib/dropdown/index.js +347 -0
  123. package/lib/dropdown/style/css.js +9 -0
  124. package/lib/dropdown/style/dropdown.css +1 -0
  125. package/lib/dropdown/style/index.css +2344 -0
  126. package/lib/dropdown/style/index.js +9 -0
  127. package/lib/empty/index.js +643 -0
  128. package/lib/empty/style/css.js +9 -0
  129. package/lib/empty/style/empty.css +1 -0
  130. package/lib/empty/style/index.css +2095 -0
  131. package/lib/empty/style/index.js +9 -0
  132. package/lib/icon/index.js +681 -0
  133. package/lib/icon/style/css.js +9 -0
  134. package/lib/icon/style/icon.css +1 -0
  135. package/lib/icon/style/index.css +2058 -0
  136. package/lib/icon/style/index.js +9 -0
  137. package/lib/identify/index.js +1081 -0
  138. package/lib/identify/style/css.js +9 -0
  139. package/lib/identify/style/identify.css +1 -0
  140. package/lib/identify/style/index.js +9 -0
  141. package/lib/iframe/index.js +344 -0
  142. package/lib/iframe/style/css.js +7 -0
  143. package/lib/iframe/style/iframe.css +1 -0
  144. package/lib/iframe/style/index.js +7 -0
  145. package/lib/image/index.js +446 -0
  146. package/lib/image/style/css.js +7 -0
  147. package/lib/image/style/image.css +1 -0
  148. package/lib/image/style/index.js +7 -0
  149. package/lib/index.js +1040 -0
  150. package/lib/indicator/index.js +996 -0
  151. package/lib/indicator/style/countTo.css +1 -0
  152. package/lib/indicator/style/css.js +7 -0
  153. package/lib/indicator/style/index.js +7 -0
  154. package/lib/indicator/style/indicator.css +1 -0
  155. package/lib/init.js +207 -0
  156. package/lib/input/index.js +1151 -0
  157. package/lib/input/style/css.js +9 -0
  158. package/lib/input/style/index.css +2549 -0
  159. package/lib/input/style/index.js +9 -0
  160. package/lib/input/style/input.css +1 -0
  161. package/lib/input-number/index.js +739 -0
  162. package/lib/input-number/style/css.js +9 -0
  163. package/lib/input-number/style/index.css +2360 -0
  164. package/lib/input-number/style/index.js +9 -0
  165. package/lib/input-number/style/input-number.css +1 -0
  166. package/lib/layout/index.js +700 -0
  167. package/lib/layout/style/css.js +9 -0
  168. package/lib/layout/style/index.css +2185 -0
  169. package/lib/layout/style/index.js +9 -0
  170. package/lib/layout/style/layout.css +0 -0
  171. package/lib/liquid-fill/index.js +983 -0
  172. package/lib/liquid-fill/style/css.js +7 -0
  173. package/lib/liquid-fill/style/index.js +7 -0
  174. package/lib/liquid-fill/style/liquid-fill.css +1 -0
  175. package/lib/marker/index.js +649 -0
  176. package/lib/marker/style/css.js +0 -0
  177. package/lib/marker/style/index.js +0 -0
  178. package/lib/menu/index.js +858 -0
  179. package/lib/menu/style/css.js +9 -0
  180. package/lib/menu/style/index.css +2777 -0
  181. package/lib/menu/style/index.js +9 -0
  182. package/lib/menu/style/menu.css +0 -0
  183. package/lib/message/index.js +174 -0
  184. package/lib/message/style/css.js +9 -0
  185. package/lib/message/style/index.css +2143 -0
  186. package/lib/message/style/index.js +9 -0
  187. package/lib/message/style/message.css +1 -0
  188. package/lib/modal/index.js +742 -0
  189. package/lib/modal/style/css.js +9 -0
  190. package/lib/modal/style/index.css +2289 -0
  191. package/lib/modal/style/index.js +9 -0
  192. package/lib/modal/style/modal.css +1 -0
  193. package/lib/nav/style/css.js +9 -0
  194. package/lib/nav/style/index.js +9 -0
  195. package/lib/nav/style/nav.css +1 -0
  196. package/lib/notification/index.js +151 -0
  197. package/lib/notification/style/css.js +9 -0
  198. package/lib/notification/style/index.css +2285 -0
  199. package/lib/notification/style/index.js +9 -0
  200. package/lib/notification/style/notification.css +1 -0
  201. package/lib/pagination/index.js +352 -0
  202. package/lib/pagination/style/css.js +9 -0
  203. package/lib/pagination/style/index.css +2529 -0
  204. package/lib/pagination/style/index.js +9 -0
  205. package/lib/pagination/style/pagination.css +1 -0
  206. package/lib/popup/index.js +800 -0
  207. package/lib/popup/style/css.js +0 -0
  208. package/lib/popup/style/index.js +0 -0
  209. package/lib/progress/index.js +1146 -0
  210. package/lib/progress/style/css.js +9 -0
  211. package/lib/progress/style/index.css +2226 -0
  212. package/lib/progress/style/index.js +9 -0
  213. package/lib/progress/style/progress.css +1 -0
  214. package/lib/radio/index.js +852 -0
  215. package/lib/radio/style/css.js +9 -0
  216. package/lib/radio/style/index.css +2381 -0
  217. package/lib/radio/style/index.js +9 -0
  218. package/lib/radio/style/radio.css +1 -0
  219. package/lib/select/index.js +836 -0
  220. package/lib/select/style/css.js +9 -0
  221. package/lib/select/style/index.css +2655 -0
  222. package/lib/select/style/index.js +9 -0
  223. package/lib/select/style/select.css +1 -0
  224. package/lib/slider/index.js +347 -0
  225. package/lib/slider/style/css.js +9 -0
  226. package/lib/slider/style/index.css +2233 -0
  227. package/lib/slider/style/index.js +9 -0
  228. package/lib/slider/style/slider.css +1 -0
  229. package/lib/slideshow/index.js +913 -0
  230. package/lib/slideshow/style/css.js +9 -0
  231. package/lib/slideshow/style/index.js +9 -0
  232. package/lib/slideshow/style/slideshow.css +1 -0
  233. package/lib/spin/index.js +357 -0
  234. package/lib/spin/style/css.js +9 -0
  235. package/lib/spin/style/index.css +2268 -0
  236. package/lib/spin/style/index.js +9 -0
  237. package/lib/spin/style/spin.css +1 -0
  238. package/lib/steps/index.js +748 -0
  239. package/lib/steps/style/css.js +9 -0
  240. package/lib/steps/style/index.css +2724 -0
  241. package/lib/steps/style/index.js +9 -0
  242. package/lib/steps/style/steps.css +1 -0
  243. package/lib/style.js +7 -0
  244. package/lib/switch/index.js +654 -0
  245. package/lib/switch/style/css.js +9 -0
  246. package/lib/switch/style/index.css +2241 -0
  247. package/lib/switch/style/index.js +9 -0
  248. package/lib/switch/style/switch.css +1 -0
  249. package/lib/table/index.js +810 -0
  250. package/lib/table/style/css.js +9 -0
  251. package/lib/table/style/index.css +2909 -0
  252. package/lib/table/style/index.js +9 -0
  253. package/lib/table/style/table.css +1 -0
  254. package/lib/table-popup/index.js +438 -0
  255. package/lib/table-popup/style/css.js +9 -0
  256. package/lib/table-popup/style/index.js +9 -0
  257. package/lib/table-popup/style/table-popup.css +1 -0
  258. package/lib/tabs/index.js +743 -0
  259. package/lib/tabs/style/css.js +9 -0
  260. package/lib/tabs/style/index.css +2692 -0
  261. package/lib/tabs/style/index.js +9 -0
  262. package/lib/tabs/style/tabs.css +1 -0
  263. package/lib/text/index.js +434 -0
  264. package/lib/text/style/css.js +7 -0
  265. package/lib/text/style/index.js +7 -0
  266. package/lib/text/style/text.css +1 -0
  267. package/lib/tile-layer/index.js +535 -0
  268. package/lib/tile-layer/style/css.js +0 -0
  269. package/lib/tile-layer/style/index.js +0 -0
  270. package/lib/time-line/index.js +654 -0
  271. package/lib/time-line/style/css.js +7 -0
  272. package/lib/time-line/style/index.js +7 -0
  273. package/lib/time-line/style/time-line.css +1 -0
  274. package/lib/time-picker/index.js +669 -0
  275. package/lib/time-picker/style/css.js +9 -0
  276. package/lib/time-picker/style/index.css +2418 -0
  277. package/lib/time-picker/style/index.js +9 -0
  278. package/lib/time-picker/style/time-picker.css +1 -0
  279. package/lib/time-range/index.js +526 -0
  280. package/lib/time-range/style/css.js +7 -0
  281. package/lib/time-range/style/index.js +7 -0
  282. package/lib/time-range/style/time-range.css +1 -0
  283. package/lib/time-slider/index.js +1169 -0
  284. package/lib/time-slider/style/css.js +7 -0
  285. package/lib/time-slider/style/index.js +7 -0
  286. package/lib/time-slider/style/time-slider.css +1 -0
  287. package/lib/time-text/index.js +393 -0
  288. package/lib/time-text/style/css.js +7 -0
  289. package/lib/time-text/style/index.js +7 -0
  290. package/lib/time-text/style/time-text.css +1 -0
  291. package/lib/tooltip/index.js +635 -0
  292. package/lib/tooltip/style/css.js +9 -0
  293. package/lib/tooltip/style/index.css +2231 -0
  294. package/lib/tooltip/style/index.js +9 -0
  295. package/lib/tooltip/style/tooltip.css +0 -0
  296. package/lib/transfer/index.js +636 -0
  297. package/lib/transfer/style/css.js +9 -0
  298. package/lib/transfer/style/index.css +2302 -0
  299. package/lib/transfer/style/index.js +9 -0
  300. package/lib/transfer/style/transfer.css +1 -0
  301. package/lib/tree/index.js +857 -0
  302. package/lib/tree/style/css.js +9 -0
  303. package/lib/tree/style/index.css +2644 -0
  304. package/lib/tree/style/index.js +9 -0
  305. package/lib/tree/style/tree.css +1 -0
  306. package/lib/tree-select/index.js +765 -0
  307. package/lib/tree-select/style/css.js +9 -0
  308. package/lib/tree-select/style/index.css +2508 -0
  309. package/lib/tree-select/style/index.js +9 -0
  310. package/lib/tree-select/style/tree-select.css +1 -0
  311. package/lib/video-player/index.js +1472 -0
  312. package/lib/video-player/style/css.js +11 -0
  313. package/lib/video-player/style/index.js +11 -0
  314. package/lib/video-player/style/video-player.css +1 -0
  315. package/lib/web-map/index.js +2241 -0
  316. package/lib/web-map/style/css.js +15 -0
  317. package/lib/web-map/style/index.js +15 -0
  318. package/lib/web-map/style/web-map.css +1 -0
  319. package/package.json +97 -0
  320. package/src/common/_assets/iconfont/icon-sm-components.css +245 -0
  321. package/src/common/_assets/iconfont/icon-sm-components.eot +0 -0
  322. package/src/common/_assets/iconfont/icon-sm-components.svg +197 -0
  323. package/src/common/_assets/iconfont/icon-sm-components.ttf +0 -0
  324. package/src/common/_assets/iconfont/icon-sm-components.woff +0 -0
  325. package/src/common/_assets/iconfont/icon-sm-components.woff2 +0 -0
  326. package/src/common/_lang/en.js +355 -0
  327. package/src/common/_lang/index.js +177 -0
  328. package/src/common/_lang/zh.js +342 -0
  329. package/src/common/_mixin/AntdRender.ts +114 -0
  330. package/src/common/_mixin/Card.ts +22 -0
  331. package/src/common/_mixin/Theme.ts +222 -0
  332. package/src/common/_mixin/ThirdService.ts +58 -0
  333. package/src/common/_mixin/Timer.ts +58 -0
  334. package/src/common/_mixin/VmUpdater.ts +46 -0
  335. package/src/common/_types/AddressMatchParameter.js +9 -0
  336. package/src/common/_types/GeoJSONParamter.ts +17 -0
  337. package/src/common/_types/RestDataParameter.js +8 -0
  338. package/src/common/_types/RestMapParameter.js +8 -0
  339. package/src/common/_types/RestParameter.js +12 -0
  340. package/src/common/_types/event/BaseTypes.js +24 -0
  341. package/src/common/_types/event/Event.js +315 -0
  342. package/src/common/_types/event/Events.js +353 -0
  343. package/src/common/_types/event/Pixel.js +177 -0
  344. package/src/common/_types/event/Util.js +173 -0
  345. package/src/common/_types/iPortalDataParameter.js +12 -0
  346. package/src/common/_types/iServerBaseParameter.ts +28 -0
  347. package/src/common/_types/iServerDataParameter.ts +13 -0
  348. package/src/common/_types/iServerMapParameter.ts +13 -0
  349. package/src/common/_utils/EchartsDataService.js +527 -0
  350. package/src/common/_utils/RestService.js +130 -0
  351. package/src/common/_utils/WebMapService.ts +1292 -0
  352. package/src/common/_utils/epsg-define.js +55 -0
  353. package/src/common/_utils/get-features.js +92 -0
  354. package/src/common/_utils/global-event.js +6 -0
  355. package/src/common/_utils/iPortalDataService.js +444 -0
  356. package/src/common/_utils/iServerRestService.js +487 -0
  357. package/src/common/_utils/statistics.js +36 -0
  358. package/src/common/_utils/style/color/colorPalette.ts +63 -0
  359. package/src/common/_utils/style/color/serialColors.ts +207 -0
  360. package/src/common/_utils/style/common/common.scss +39 -0
  361. package/src/common/_utils/style/mixins/config.scss +4 -0
  362. package/src/common/_utils/style/mixins/mixins.scss +48 -0
  363. package/src/common/_utils/style/theme/antd.less +2 -0
  364. package/src/common/_utils/style/theme/antdVar.less +371 -0
  365. package/src/common/_utils/style/theme/chart.js +548 -0
  366. package/src/common/_utils/style/theme/set-theme.ts +43 -0
  367. package/src/common/_utils/style/theme/theme.json +356 -0
  368. package/src/common/_utils/style/theme/theme.scss +495 -0
  369. package/src/common/_utils/util.js +251 -0
  370. package/src/common/_utils/vue-types/index.js +267 -0
  371. package/src/common/_utils/vue-types/utils.js +194 -0
  372. package/src/common/avatar/Avatar.vue +41 -0
  373. package/src/common/avatar/index.js +9 -0
  374. package/src/common/avatar/style/avatar.scss +8 -0
  375. package/src/common/avatar/style/index.js +4 -0
  376. package/src/common/avatar/style/index.less +3 -0
  377. package/src/common/border/Border.vue +121 -0
  378. package/src/common/border/assets/border.config.json +67 -0
  379. package/src/common/border/assets/image/border1.png +0 -0
  380. package/src/common/border/assets/image/border10.png +0 -0
  381. package/src/common/border/assets/image/border11.png +0 -0
  382. package/src/common/border/assets/image/border12.png +0 -0
  383. package/src/common/border/assets/image/border13.png +0 -0
  384. package/src/common/border/assets/image/border2.png +0 -0
  385. package/src/common/border/assets/image/border3.png +0 -0
  386. package/src/common/border/assets/image/border4.png +0 -0
  387. package/src/common/border/assets/image/border5.png +0 -0
  388. package/src/common/border/assets/image/border6.png +0 -0
  389. package/src/common/border/assets/image/border7.png +0 -0
  390. package/src/common/border/assets/image/border8.png +0 -0
  391. package/src/common/border/assets/image/border9.png +0 -0
  392. package/src/common/border/index.js +9 -0
  393. package/src/common/border/style/border.scss +19 -0
  394. package/src/common/border/style/index.js +4 -0
  395. package/src/common/breadcrumb/Breadcrumb.vue +21 -0
  396. package/src/common/breadcrumb/BreadcrumbItem.vue +21 -0
  397. package/src/common/breadcrumb/BreadcrumbSeparator.vue +19 -0
  398. package/src/common/breadcrumb/index.js +13 -0
  399. package/src/common/breadcrumb/style/breadcrumb.scss +21 -0
  400. package/src/common/breadcrumb/style/index.js +4 -0
  401. package/src/common/breadcrumb/style/index.less +3 -0
  402. package/src/common/button/Button.vue +34 -0
  403. package/src/common/button/Group.vue +31 -0
  404. package/src/common/button/index.js +11 -0
  405. package/src/common/button/style/button.scss +91 -0
  406. package/src/common/button/style/index.js +4 -0
  407. package/src/common/button/style/index.less +3 -0
  408. package/src/common/button/style/mixin.scss +56 -0
  409. package/src/common/card/Card.vue +32 -0
  410. package/src/common/card/Grid.vue +20 -0
  411. package/src/common/card/Meta.vue +20 -0
  412. package/src/common/card/index.js +13 -0
  413. package/src/common/card/style/card.scss +43 -0
  414. package/src/common/card/style/index.js +4 -0
  415. package/src/common/card/style/index.less +3 -0
  416. package/src/common/chart/ChartMixin.vue +1572 -0
  417. package/src/common/chart/index.js +9 -0
  418. package/src/common/chart/style/chart.scss +10 -0
  419. package/src/common/chart/style/index.js +5 -0
  420. package/src/common/checkbox/Checkbox.vue +37 -0
  421. package/src/common/checkbox/Group.vue +36 -0
  422. package/src/common/checkbox/index.js +11 -0
  423. package/src/common/checkbox/style/checkbox.scss +40 -0
  424. package/src/common/checkbox/style/index.js +4 -0
  425. package/src/common/checkbox/style/index.less +3 -0
  426. package/src/common/collapse/Collapse.vue +32 -0
  427. package/src/common/collapse/Panel.vue +26 -0
  428. package/src/common/collapse/index.js +11 -0
  429. package/src/common/collapse/style/collapse.scss +10 -0
  430. package/src/common/collapse/style/index.js +4 -0
  431. package/src/common/collapse/style/index.less +3 -0
  432. package/src/common/collapse-card/CollapseCard.vue +150 -0
  433. package/src/common/collapse-card/index.js +9 -0
  434. package/src/common/collapse-card/style/collapse-card.scss +176 -0
  435. package/src/common/collapse-card/style/index.js +4 -0
  436. package/src/common/color-picker/ColorPicker.vue +106 -0
  437. package/src/common/color-picker/index.js +9 -0
  438. package/src/common/color-picker/style/color-picker.scss +37 -0
  439. package/src/common/color-picker/style/index.js +4 -0
  440. package/src/common/config-provider/ConfigProvider.vue +31 -0
  441. package/src/common/config-provider/index.js +9 -0
  442. package/src/common/date-picker/BaseMixin.vue +23 -0
  443. package/src/common/date-picker/DatePicker.vue +20 -0
  444. package/src/common/date-picker/MonthPicker.vue +20 -0
  445. package/src/common/date-picker/RangePicker.vue +20 -0
  446. package/src/common/date-picker/WeekPicker.vue +20 -0
  447. package/src/common/date-picker/index.js +15 -0
  448. package/src/common/date-picker/style/date-picker.scss +290 -0
  449. package/src/common/date-picker/style/index.js +4 -0
  450. package/src/common/date-picker/style/index.less +3 -0
  451. package/src/common/date-picker/style/mixin.scss +75 -0
  452. package/src/common/dropdown/Dropdown.vue +31 -0
  453. package/src/common/dropdown/index.js +9 -0
  454. package/src/common/dropdown/style/dropdown.scss +22 -0
  455. package/src/common/dropdown/style/index.js +4 -0
  456. package/src/common/dropdown/style/index.less +3 -0
  457. package/src/common/empty/Empty.vue +26 -0
  458. package/src/common/empty/RenderEmpty.ts +50 -0
  459. package/src/common/empty/assets/image/empty.png +0 -0
  460. package/src/common/empty/index.js +9 -0
  461. package/src/common/empty/style/empty.scss +31 -0
  462. package/src/common/empty/style/index.js +4 -0
  463. package/src/common/empty/style/index.less +3 -0
  464. package/src/common/icon/Icon.vue +66 -0
  465. package/src/common/icon/index.js +9 -0
  466. package/src/common/icon/style/icon.scss +12 -0
  467. package/src/common/icon/style/index.js +4 -0
  468. package/src/common/icon/style/index.less +3 -0
  469. package/src/common/iframe/Iframe.vue +17 -0
  470. package/src/common/iframe/index.js +9 -0
  471. package/src/common/iframe/style/iframe.scss +7 -0
  472. package/src/common/iframe/style/index.js +4 -0
  473. package/src/common/image/Image.vue +83 -0
  474. package/src/common/image/index.js +9 -0
  475. package/src/common/image/style/image.scss +33 -0
  476. package/src/common/image/style/index.js +4 -0
  477. package/src/common/indicator/CountTo.vue +92 -0
  478. package/src/common/indicator/Indicator.vue +308 -0
  479. package/src/common/indicator/index.js +11 -0
  480. package/src/common/indicator/style/countTo.scss +7 -0
  481. package/src/common/indicator/style/index.js +4 -0
  482. package/src/common/indicator/style/indicator.scss +47 -0
  483. package/src/common/input/BaseMixin.vue +24 -0
  484. package/src/common/input/Group.vue +31 -0
  485. package/src/common/input/Input.vue +41 -0
  486. package/src/common/input/Password.vue +41 -0
  487. package/src/common/input/Search.vue +40 -0
  488. package/src/common/input/TextArea.vue +25 -0
  489. package/src/common/input/index.js +17 -0
  490. package/src/common/input/style/index.js +4 -0
  491. package/src/common/input/style/index.less +3 -0
  492. package/src/common/input/style/input.scss +72 -0
  493. package/src/common/input/style/mixin.scss +42 -0
  494. package/src/common/input-number/InputNumber.vue +44 -0
  495. package/src/common/input-number/index.js +9 -0
  496. package/src/common/input-number/style/index.js +4 -0
  497. package/src/common/input-number/style/index.less +3 -0
  498. package/src/common/input-number/style/input-number.scss +43 -0
  499. package/src/common/layout/Content.vue +25 -0
  500. package/src/common/layout/Footer.vue +25 -0
  501. package/src/common/layout/Header.vue +25 -0
  502. package/src/common/layout/Layout.vue +25 -0
  503. package/src/common/layout/Sider.vue +33 -0
  504. package/src/common/layout/index.js +17 -0
  505. package/src/common/layout/style/index.js +4 -0
  506. package/src/common/layout/style/index.less +3 -0
  507. package/src/common/layout/style/layout.scss +5 -0
  508. package/src/common/liquid-fill/LiquidFill.vue +209 -0
  509. package/src/common/liquid-fill/index.js +9 -0
  510. package/src/common/liquid-fill/style/index.js +4 -0
  511. package/src/common/liquid-fill/style/liquid-fill.scss +6 -0
  512. package/src/common/menu/Menu.vue +31 -0
  513. package/src/common/menu/MenuItem.vue +37 -0
  514. package/src/common/menu/SubMenu.vue +51 -0
  515. package/src/common/menu/index.js +13 -0
  516. package/src/common/menu/style/index.js +4 -0
  517. package/src/common/menu/style/index.less +3 -0
  518. package/src/common/menu/style/menu.scss +0 -0
  519. package/src/common/message/Message.js +12 -0
  520. package/src/common/message/index.js +3 -0
  521. package/src/common/message/style/index.js +4 -0
  522. package/src/common/message/style/index.less +3 -0
  523. package/src/common/message/style/message.scss +16 -0
  524. package/src/common/modal/Modal.vue +64 -0
  525. package/src/common/modal/index.js +9 -0
  526. package/src/common/modal/main.ts +49 -0
  527. package/src/common/modal/style/index.js +4 -0
  528. package/src/common/modal/style/index.less +3 -0
  529. package/src/common/modal/style/modal.scss +23 -0
  530. package/src/common/nav/Nav.vue +158 -0
  531. package/src/common/nav/assets/image/background_image.png +0 -0
  532. package/src/common/nav/assets/image/item_active.png +0 -0
  533. package/src/common/nav/index.js +9 -0
  534. package/src/common/nav/style/index.js +5 -0
  535. package/src/common/nav/style/nav.scss +55 -0
  536. package/src/common/notification/Notification.js +10 -0
  537. package/src/common/notification/index.js +3 -0
  538. package/src/common/notification/style/index.js +4 -0
  539. package/src/common/notification/style/index.less +3 -0
  540. package/src/common/notification/style/notification.scss +30 -0
  541. package/src/common/pagination/Pagination.vue +32 -0
  542. package/src/common/pagination/index.js +9 -0
  543. package/src/common/pagination/style/index.js +4 -0
  544. package/src/common/pagination/style/index.less +3 -0
  545. package/src/common/pagination/style/pagination.scss +131 -0
  546. package/src/common/progress/Progress.vue +98 -0
  547. package/src/common/progress/index.js +9 -0
  548. package/src/common/progress/style/index.js +4 -0
  549. package/src/common/progress/style/index.less +3 -0
  550. package/src/common/progress/style/progress.scss +43 -0
  551. package/src/common/radio/Button.vue +18 -0
  552. package/src/common/radio/Group.vue +48 -0
  553. package/src/common/radio/Radio.vue +36 -0
  554. package/src/common/radio/index.js +13 -0
  555. package/src/common/radio/style/index.js +4 -0
  556. package/src/common/radio/style/index.less +3 -0
  557. package/src/common/radio/style/radio.scss +127 -0
  558. package/src/common/select/OptGroup.vue +20 -0
  559. package/src/common/select/Option.vue +22 -0
  560. package/src/common/select/Select.vue +49 -0
  561. package/src/common/select/index.js +13 -0
  562. package/src/common/select/style/index.js +4 -0
  563. package/src/common/select/style/index.less +3 -0
  564. package/src/common/select/style/select.scss +140 -0
  565. package/src/common/slider/Slider.vue +31 -0
  566. package/src/common/slider/index.js +9 -0
  567. package/src/common/slider/style/index.js +4 -0
  568. package/src/common/slider/style/index.less +3 -0
  569. package/src/common/slider/style/slider.scss +8 -0
  570. package/src/common/slideshow/Slideshow.vue +354 -0
  571. package/src/common/slideshow/SlideshowItem.vue +17 -0
  572. package/src/common/slideshow/Swiper.js +29 -0
  573. package/src/common/slideshow/index.js +11 -0
  574. package/src/common/slideshow/style/index.js +5 -0
  575. package/src/common/slideshow/style/slideshow.scss +48 -0
  576. package/src/common/spin/Spin.vue +17 -0
  577. package/src/common/spin/index.js +9 -0
  578. package/src/common/spin/main.ts +13 -0
  579. package/src/common/spin/style/index.js +4 -0
  580. package/src/common/spin/style/index.less +3 -0
  581. package/src/common/spin/style/spin.scss +14 -0
  582. package/src/common/steps/Step.vue +33 -0
  583. package/src/common/steps/Steps.vue +39 -0
  584. package/src/common/steps/index.js +11 -0
  585. package/src/common/steps/style/index.js +4 -0
  586. package/src/common/steps/style/index.less +3 -0
  587. package/src/common/steps/style/mixin.scss +67 -0
  588. package/src/common/steps/style/steps.scss +98 -0
  589. package/src/common/switch/Switch.vue +41 -0
  590. package/src/common/switch/index.js +9 -0
  591. package/src/common/switch/style/index.js +4 -0
  592. package/src/common/switch/style/index.less +3 -0
  593. package/src/common/switch/style/switch.scss +20 -0
  594. package/src/common/table/Column.vue +18 -0
  595. package/src/common/table/ColumnGroup.vue +19 -0
  596. package/src/common/table/Table.vue +18 -0
  597. package/src/common/table/index.js +13 -0
  598. package/src/common/table/style/index.js +4 -0
  599. package/src/common/table/style/index.less +3 -0
  600. package/src/common/table/style/table.scss +138 -0
  601. package/src/common/table-popup/TablePopup.vue +73 -0
  602. package/src/common/table-popup/index.js +9 -0
  603. package/src/common/table-popup/style/index.js +5 -0
  604. package/src/common/table-popup/style/table-popup.scss +52 -0
  605. package/src/common/tabs/TabPane.vue +26 -0
  606. package/src/common/tabs/Tabs.vue +41 -0
  607. package/src/common/tabs/index.js +11 -0
  608. package/src/common/tabs/style/index.js +4 -0
  609. package/src/common/tabs/style/index.less +3 -0
  610. package/src/common/tabs/style/tabs.scss +95 -0
  611. package/src/common/text/Text.vue +69 -0
  612. package/src/common/text/index.js +9 -0
  613. package/src/common/text/style/index.js +4 -0
  614. package/src/common/text/style/text.scss +23 -0
  615. package/src/common/time-line/TimeLine.vue +260 -0
  616. package/src/common/time-line/index.js +9 -0
  617. package/src/common/time-line/style/index.js +4 -0
  618. package/src/common/time-line/style/time-line.scss +10 -0
  619. package/src/common/time-picker/TimePicker.vue +47 -0
  620. package/src/common/time-picker/index.js +9 -0
  621. package/src/common/time-picker/style/index.js +4 -0
  622. package/src/common/time-picker/style/index.less +3 -0
  623. package/src/common/time-picker/style/time-picker.scss +69 -0
  624. package/src/common/time-range/TimeRange.vue +122 -0
  625. package/src/common/time-range/index.js +9 -0
  626. package/src/common/time-range/style/index.js +4 -0
  627. package/src/common/time-range/style/time-range.scss +10 -0
  628. package/src/common/time-slider/TimeSlider.vue +591 -0
  629. package/src/common/time-slider/index.js +9 -0
  630. package/src/common/time-slider/style/index.js +4 -0
  631. package/src/common/time-slider/style/mixin.scss +36 -0
  632. package/src/common/time-slider/style/time-slider.scss +147 -0
  633. package/src/common/time-text/TimeText.vue +51 -0
  634. package/src/common/time-text/index.js +9 -0
  635. package/src/common/time-text/style/index.js +4 -0
  636. package/src/common/time-text/style/time-text.scss +14 -0
  637. package/src/common/tooltip/Tooltip.vue +21 -0
  638. package/src/common/tooltip/index.js +9 -0
  639. package/src/common/tooltip/style/index.js +4 -0
  640. package/src/common/tooltip/style/index.less +3 -0
  641. package/src/common/tooltip/style/tooltip.scss +5 -0
  642. package/src/common/transfer/Transfer.vue +19 -0
  643. package/src/common/transfer/index.js +9 -0
  644. package/src/common/transfer/style/index.js +4 -0
  645. package/src/common/transfer/style/index.less +3 -0
  646. package/src/common/transfer/style/transfer.scss +52 -0
  647. package/src/common/tree/DirectoryTree.vue +32 -0
  648. package/src/common/tree/Tree.vue +32 -0
  649. package/src/common/tree/TreeNode.vue +49 -0
  650. package/src/common/tree/index.js +13 -0
  651. package/src/common/tree/style/index.js +4 -0
  652. package/src/common/tree/style/index.less +3 -0
  653. package/src/common/tree/style/tree.scss +16 -0
  654. package/src/common/tree-select/TreeSelect.vue +43 -0
  655. package/src/common/tree-select/TreeSelectNode.vue +49 -0
  656. package/src/common/tree-select/index.js +11 -0
  657. package/src/common/tree-select/style/index.js +4 -0
  658. package/src/common/tree-select/style/index.less +3 -0
  659. package/src/common/tree-select/style/tree-select.scss +38 -0
  660. package/src/common/video-player/VideoPlayer.vue +423 -0
  661. package/src/common/video-player/index.js +9 -0
  662. package/src/common/video-player/style/index.js +5 -0
  663. package/src/common/video-player/style/video-player.scss +266 -0
  664. package/src/common/web-map/WebMapBase.ts +1178 -0
  665. package/src/common/web-map/config/MunicipalCenter.json +1 -0
  666. package/src/common/web-map/config/ProvinceCenter.json +1 -0
  667. package/src/image.d.ts +7 -0
  668. package/src/init.js +38 -0
  669. package/src/leaflet/README.md +31 -0
  670. package/src/leaflet/_mixin/GridLayer.js +33 -0
  671. package/src/leaflet/_mixin/Layer.js +26 -0
  672. package/src/leaflet/_mixin/Options.js +10 -0
  673. package/src/leaflet/_mixin/Popper.js +25 -0
  674. package/src/leaflet/_mixin/TileLayer.js +18 -0
  675. package/src/leaflet/_mixin/map-getter.ts +122 -0
  676. package/src/leaflet/_types/index.js +17 -0
  677. package/src/leaflet/_types/map-event.js +34 -0
  678. package/src/leaflet/_utils/props-binder.js +23 -0
  679. package/src/leaflet/chart/Chart.vue +25 -0
  680. package/src/leaflet/chart/ChartViewModel.js +44 -0
  681. package/src/leaflet/chart/index.js +9 -0
  682. package/src/leaflet/components.ts +206 -0
  683. package/src/leaflet/css.js +3 -0
  684. package/src/leaflet/entrys.json +106 -0
  685. package/src/leaflet/identify/Identify.vue +233 -0
  686. package/src/leaflet/identify/IdentifyViewModel.js +114 -0
  687. package/src/leaflet/identify/index.js +9 -0
  688. package/src/leaflet/identify/style/identify.scss +30 -0
  689. package/src/leaflet/identify/style/index.js +4 -0
  690. package/src/leaflet/index.ts +5 -0
  691. package/src/leaflet/leaflet-wrapper.js +125 -0
  692. package/src/leaflet/marker/Marker.vue +46 -0
  693. package/src/leaflet/marker/MarkerViewModel.js +31 -0
  694. package/src/leaflet/marker/index.js +9 -0
  695. package/src/leaflet/package.json +97 -0
  696. package/src/leaflet/popup/Popup.vue +93 -0
  697. package/src/leaflet/popup/PopupViewModel.js +75 -0
  698. package/src/leaflet/popup/index.js +9 -0
  699. package/src/leaflet/style.js +3 -0
  700. package/src/leaflet/style.scss +52 -0
  701. package/src/leaflet/web-map/WebMap.vue +213 -0
  702. package/src/leaflet/web-map/WebMapViewModel.ts +1102 -0
  703. package/src/leaflet/web-map/_mixin/map-events.ts +65 -0
  704. package/src/leaflet/web-map/index.js +9 -0
  705. package/src/leaflet/web-map/layer/tile/TileLayer.vue +88 -0
  706. package/src/leaflet/web-map/layer/tile/TileLayerViewModel.js +66 -0
  707. package/src/leaflet/web-map/layer/tile/index.js +9 -0
  708. package/src/leaflet/web-map/style/index.js +7 -0
  709. package/src/leaflet/web-map/style/web-map.scss +32 -0
  710. package/src/sfc.d.ts +50 -0
  711. package/src/vue-i18n.d.ts +26 -0
  712. package/src/vue-options.d.ts +18 -0
  713. package/static/libs/echarts-layer/EchartsLayer.js +390 -0
  714. package/static/libs/geostats/geostats.js +1227 -0
  715. package/static/libs/iclient-common/iclient-common.js +2 -0
  716. package/static/libs/iclient-leaflet/iclient-leaflet.min.css +8 -0
  717. package/static/libs/iclient-leaflet/iclient-leaflet.min.js +1741 -0
  718. package/static/libs/json-sql/jsonsql.js +125 -0
  719. package/tsconfig.json +43 -0
@@ -0,0 +1,527 @@
1
+ import getFeatures from 'vue-iclient/src/common/_utils/get-features';
2
+ import tonumber from 'lodash.tonumber';
3
+ import max from 'lodash.max';
4
+ import orderBy from 'lodash.orderby';
5
+ import { clearNumberComma, filterInvalidData, statisticFunctions } from 'vue-iclient/src/common/_utils/util';
6
+ import { statisticsFeatures } from 'vue-iclient/src/common/_utils/statistics';
7
+
8
+ // 三方服务请求的结果为单对象的时候,是否要转成多个features
9
+ export function tranformSingleToMulti(data) {
10
+ const dataInfo = (data.features[0] || {}).properties;
11
+ if (dataInfo) {
12
+ data.features = Object.entries(dataInfo).map(([key, value]) => ({ properties: { label: key, value } }));
13
+ return Object.assign(data, statisticsFeatures(data.features));
14
+ }
15
+ return data;
16
+ }
17
+
18
+ export function sortData(features, datasetOptions, maxFeatures, xBar) {
19
+ const matchItem = datasetOptions.find(item => item.sort && item.sort !== 'unsort');
20
+ let nextFeatures = [].concat(features);
21
+ if (matchItem) {
22
+ nextFeatures = orderBy(
23
+ features,
24
+ feature => isNaN(+feature.properties[matchItem.yField]) ? -Number.MAX_VALUE : +feature.properties[matchItem.yField],
25
+ matchItem.sort === 'ascending' ? 'asc' : 'desc'
26
+ );
27
+ }
28
+ const maxLen = +maxFeatures;
29
+ if (maxLen && nextFeatures.length > maxLen) {
30
+ nextFeatures.length = maxLen;
31
+ }
32
+ matchItem && xBar && nextFeatures.reverse();
33
+ return nextFeatures;
34
+ }
35
+
36
+ /**
37
+ * @class EchartsDataService
38
+ * @classdesc 图表组件功能类
39
+ * @param {Chart-dataset} dataset - 请求的参数
40
+ * @param {Array.<Chart-datasetOption>} datasetOptions - 数据解析的配置。
41
+ */
42
+
43
+ /**
44
+ * @typedef {Object} Chart-dataset - 数据来源
45
+ * @property {string} [type = 'iServer'] - 服务类型 iServer, iPortal。
46
+ * @property {string} url - 服务url地址。
47
+ * @property {boolean} [withCredentials = false] - 设置请求是否带cookie
48
+ * @property {SuperMap.FilterParameter} queryInfo - 查询条件
49
+ */
50
+ /**
51
+ * @typedef {Object} Chart-datasetOption - 解析数据的配置
52
+ * @property {string} seriesType - 图表类型line, bar, scatter, pie, radar, gauge。
53
+ * @property {boolean} [isStastic = false] - 是否统计数据。
54
+ * @property {string|function} [statisticFunction = 'sum'] - 统计方式。
55
+ * @property {boolean} [isStack = false] - 图表(line, bar, scatter)是否堆叠
56
+ * @property {string} xField - 数据的字段,坐标值
57
+ * @property {string} yField - 数据的字段,数据值
58
+ */
59
+
60
+ export default class EchartsDataService {
61
+ constructor(dataset, datasetOptions) {
62
+ // 设置默认值
63
+ dataset.withCredentials = dataset.withCredentials || false; // 请求认证
64
+ this.dataset = dataset;
65
+ this.datasetOptions = datasetOptions;
66
+ this.dataCache = null; // 缓存的是请求后的数据
67
+ this.sortDataCache = null;
68
+ this.statisticDataCache = null;
69
+ this.axisDatas = []; // 坐标data
70
+ this.serieDatas = []; // series data
71
+ this.gridAxis = { xAxis: [], yAxis: {} }; // 直角坐标系
72
+ this.radarAxis = {}; // 雷达图坐标系
73
+ this.radarMax = 0; // 雷达图坐标最大值
74
+ }
75
+
76
+ /**
77
+ * @function EchartsDataService.prototype.getDataOption
78
+ * @description 获取符合echart data数据格式的数据, 入口函数。
79
+ * @returns {Object} 带有请求的数据的promise对象
80
+ */
81
+ getDataOption(dataset, xBar = false) {
82
+ // 设置datasets的默认配置type,withCredentials
83
+ let promise = new Promise((resolve, reject) => {
84
+ // 请求数据,请求成功后,解析数据
85
+ const matchItem = this.datasetOptions.find(item => item.sort !== 'unsort');
86
+ const isStastic = this.datasetOptions.find(item => item.isStastic === true);
87
+ const maxFeatures = matchItem || isStastic ? '' : dataset.maxFeatures;
88
+ getFeatures({ ...dataset, maxFeatures })
89
+ .then(data => {
90
+ // 兼容三方服务接口返回的一个普通的对象
91
+ if (data.transformed && !!data.features.length) {
92
+ data = tranformSingleToMulti(data);
93
+ }
94
+ // 解析数据,生成dataOption
95
+ let options;
96
+ if (
97
+ this.dataset.type === 'iPortal' ||
98
+ this.dataset.type === 'iServer' ||
99
+ this.dataset.type === 'rest' ||
100
+ this.dataset.type === 'geoJSON'
101
+ ) {
102
+ options = this.formatChartData(this.datasetOptions, xBar, data);
103
+ }
104
+
105
+ resolve(options);
106
+ })
107
+ .catch(e => {
108
+ reject(e);
109
+ });
110
+ });
111
+ return promise;
112
+ }
113
+
114
+ /**
115
+ * @function EchartsDataService.prototype.formatChartData
116
+ * @description _requestData方法中返回的数据: 设置数据,转换数据格式。
117
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据
118
+ * @param {Object} datasetOptions - 数据解析的配置参数
119
+ * @returns {Object} 符合echart格式的数据
120
+ */
121
+ formatChartData(datasetOptions, xBar = false, data = this.dataCache) {
122
+ // 清除数据缓存
123
+ this._clearChartCache();
124
+ // 设置datasetOptions
125
+ this.setDatasetOptions(datasetOptions);
126
+ // 统计后的数据
127
+ let features;
128
+ const isStastic = datasetOptions.length && datasetOptions[0].isStastic;
129
+ if(isStastic) {
130
+ features = this._createStatisticData(data, datasetOptions, xBar);
131
+ this.statisticDataCache = features;
132
+ }
133
+ // 设置this.data
134
+ data = this._setData(data, xBar);
135
+ // 生成seriedata
136
+ datasetOptions.forEach(item => {
137
+ // 生成YData, XData
138
+ let fieldData = isStastic ? this._fieldsDataStatistic(features, item) : this._fieldsDataDefault(data, item);
139
+ // 解析YData, XData,生成EchartsOption的data
140
+ let serieData = this._createDataOption(fieldData, item);
141
+ // 设置坐标
142
+ this._createAxisData(fieldData, item);
143
+ if (!serieData.tooltip) {
144
+ serieData.tooltip = this._fixToolTip(data, item);
145
+ }
146
+ this.serieDatas.push(serieData);
147
+ });
148
+ let gridAxis = (this.gridAxis.xAxis.length > 0 || JSON.stringify(this.gridAxis.yAxis) !== '{}') && this.gridAxis;
149
+ let radarAxis = this.radarAxis;
150
+ let series = this.serieDatas;
151
+ return {
152
+ ...gridAxis,
153
+ ...radarAxis,
154
+ series
155
+ };
156
+ }
157
+
158
+ /**
159
+ * @function EchartsDataService.prototype._createStatisticData
160
+ * @description 对相同字段数据进行统计,生成统计后的对象数组
161
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据
162
+ * @param {Object} datasetOptions - 数据解析的配置参数
163
+ * @returns {Array} 统计后的对象数组
164
+ */
165
+ _createStatisticData(data, datasetOptions, xBar) {
166
+ const sortMatchItem = datasetOptions.find(item => item.sort && item.sort !== 'unsort');
167
+ const statisticFunction = datasetOptions[0].statisticFunction;
168
+ const xField = datasetOptions[0].xField;
169
+ const yFields = datasetOptions.map(item => item.yField);
170
+ const fields = data.fields; // 所有字段
171
+ const allFeatures = data.features;
172
+ const xFieldIndex = fields.indexOf(xField); // x字段的下标
173
+ const fieldValueIndex = this._getUniqFieldDatas(data, xFieldIndex);
174
+ const xData = this._stasticXData(fieldValueIndex);
175
+ const yDatas = [];
176
+ yFields.forEach(yField => {
177
+ const yFieldIndex = fields.indexOf(yField); // y字段的下标
178
+ const fieldValues = yFieldIndex < 0 ? [] : data.fieldValues[yFieldIndex]; // y字段的所有feature值
179
+ const yData = this._stasticYData(fieldValues, fieldValueIndex, statisticFunction, allFeatures);
180
+ yDatas.push(yData);
181
+ });
182
+ const statisticFieldCaptions = [xField].concat(yFields);
183
+ const statisticFieldValues = [xData].concat(yDatas);
184
+ let features = this._transformToObj(statisticFieldCaptions, statisticFieldValues);
185
+ if(sortMatchItem) {
186
+ features = orderBy(
187
+ features,
188
+ sortMatchItem.yField,
189
+ sortMatchItem.sort === 'ascending' ? 'asc' : 'desc'
190
+ );
191
+ xBar && features.reverse();
192
+ }
193
+ const maxLen = +this.dataset.maxFeatures;
194
+ if (maxLen && features.length > maxLen) {
195
+ features.length = maxLen;
196
+ }
197
+ return features;
198
+ }
199
+
200
+ /**
201
+ * @function EchartsDataService.prototype._transformToObj
202
+ * @description 将两个数组,转换成一个对象数组,
203
+ * 例如keys=['国家', '区域', '船只数量'], values=[['中国','俄罗斯','美国'], [1,2,3], [4,5,6]],最终转换为:
204
+ [{
205
+ "国家": "中国",
206
+ "区域": 1,
207
+ "船只数量": 4
208
+ },
209
+ {
210
+ "国家": "俄罗斯",
211
+ "区域": 2,
212
+ "船只数量": 5
213
+ },
214
+ {
215
+ "国家": "美国",
216
+ "区域": 3,
217
+ "船只数量": 6
218
+ }]
219
+ * @param {Array} keys - 作为对象键的数组
220
+ * @param {Array} values - 作为对象值的数组
221
+ * @returns {Array} 对象数组
222
+ */
223
+ _transformToObj(keys, values) {
224
+ var result = [];
225
+ for (var i = 0; i < values[0].length; i++) {
226
+ var obj = {};
227
+ for (var j = 0; j < keys.length; j++) {
228
+ obj[keys[j]] = values[j][i];
229
+ }
230
+ result.push(obj);
231
+ }
232
+ return result;
233
+ }
234
+ /**
235
+ * @function EchartsDataService.prototype.setDatasetOptions
236
+ * @private
237
+ * @description 设置datasetOptions
238
+ * @param {Array.<Chart-datasetOption>} datasetOptions - 数据解析的配置
239
+ */
240
+
241
+ setDatasetOptions(datasetOptions) {
242
+ this.datasetOptions = datasetOptions;
243
+ }
244
+
245
+ /**
246
+ * @function EchartsDataService.prototype._setData
247
+ * @private
248
+ * @description 给实例绑定data。
249
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据
250
+ */
251
+ _setData(data, xBar) {
252
+ let nextData = data;
253
+ if (data) {
254
+ let nextFeatures = filterInvalidData(this.datasetOptions, data.features);
255
+ // 只过滤空数据但不排序的原数据
256
+ this.dataCache = statisticsFeatures(nextFeatures);
257
+ nextFeatures = sortData(nextFeatures, this.datasetOptions, this.dataset.maxFeatures, xBar);
258
+ nextData = statisticsFeatures(nextFeatures);
259
+ this.sortDataCache = nextData;
260
+ }
261
+ return nextData;
262
+ }
263
+
264
+ /**
265
+ * @function EchartsDataService.prototype._clearChartCache
266
+ * @private
267
+ * @description 清除已经生成的chart数据的缓存。
268
+ */
269
+ _clearChartCache() {
270
+ this.axisDatas = []; // 坐标data
271
+ this.serieDatas = []; // series data
272
+ this.gridAxis = { xAxis: [], yAxis: {} }; // 直角坐标系
273
+ }
274
+
275
+ /**
276
+ * @function EchartsDataService.prototype._createSeriesData
277
+ * @private
278
+ * @description 生成chart的serie。
279
+ * @param {Object} fieldData - 解析后的数据{xData,yData}
280
+ * @param {Chart-datasetOption} datasetOption - 数据解析的配置
281
+ * @returns {Object} 配置好的serieData
282
+ */
283
+ _createDataOption(fieldData, datasetOption) {
284
+ let chartType = datasetOption.seriesType;
285
+ let XData = fieldData.xData;
286
+ let YData = fieldData.yData;
287
+ let serieData = {
288
+ type: chartType,
289
+ name: datasetOption.yField,
290
+ data: []
291
+ };
292
+ if (chartType === 'pie') {
293
+ YData.forEach((value, index) => {
294
+ serieData.data.push({
295
+ value,
296
+ name: XData[index]
297
+ });
298
+ });
299
+ } else if (chartType === 'radar') {
300
+ let yData = [...YData];
301
+ serieData.data.push({
302
+ value: [...YData],
303
+ name: datasetOption.yField
304
+ });
305
+ // 获取雷达图的max最大值
306
+ let maxValue = max(yData);
307
+ this.radarMax = Math.max(maxValue, this.radarMax);
308
+ } else {
309
+ // line bar scatter gauge
310
+ serieData.data = [...YData];
311
+ // 是否堆叠数据(line,bar,scatter)
312
+ if (datasetOption.isStack) {
313
+ serieData.stack = 1;
314
+ } else {
315
+ serieData.stack = 0;
316
+ }
317
+ }
318
+ return serieData;
319
+ }
320
+
321
+ /**
322
+ * @function EchartsDataService.prototype._fixToolTip
323
+ * @private
324
+ * @description 调整tooltip显示,Todo 考虑支持用户自定义tooltip内容
325
+ * @param {Object} data - 数据
326
+ * @param {Chart-datasetOption} datasetOption - 数据解析的配置
327
+ * @returns {Object} tooltip
328
+ */
329
+ _fixToolTip(data, datasetOption) {
330
+ if (data.transformed) {
331
+ if (datasetOption.seriesType === 'pie') {
332
+ return {
333
+ trigger: 'item',
334
+ formatter: '{b} : {c} ({d}%)'
335
+ };
336
+ }
337
+ return {
338
+ trigger: 'item',
339
+ formatter: '{b} : {c}'
340
+ };
341
+ }
342
+ return null;
343
+ }
344
+
345
+ /**
346
+ * @function EchartsDataService.prototype._createSeriesData
347
+ * @private
348
+ * @description 生成chart的serie。
349
+ * @param {Object} fieldData - 解析后的数据{xData,yData}
350
+ * @param {Chart-datasetOption} datasetOption - 数据解析的配置
351
+ * @returns {Object} 配置好的坐标data
352
+ */
353
+ _createAxisData(fieldData, datasetOption) {
354
+ let chartType = datasetOption.seriesType;
355
+ let XData = fieldData.xData;
356
+ let radarData = [];
357
+ let axisData;
358
+ if (chartType === 'radar' && XData) {
359
+ let radarMax = this.radarMax;
360
+ XData.forEach(text => {
361
+ radarData.push({
362
+ text,
363
+ max: radarMax
364
+ });
365
+ });
366
+ this.radarAxis = {
367
+ radar: {
368
+ indicator: radarData
369
+ }
370
+ };
371
+ axisData = this.radarAxis;
372
+ } else if (['bar', 'line', 'scatter', '2.5Bar'].find(item => item === chartType)) {
373
+ let data = XData && [...XData];
374
+ if (!this.gridAxis.xAxis) {
375
+ this.gridAxis.xAxis = [];
376
+ this.gridAxis.yAxis = {};
377
+ }
378
+ if (this.gridAxis.xAxis.length === 0) {
379
+ this.gridAxis.xAxis.push({
380
+ data
381
+ });
382
+ } else {
383
+ this.gridAxis.xAxis[0] = { data };
384
+ }
385
+
386
+ axisData = this.gridAxis;
387
+ } else {
388
+ axisData = {};
389
+ }
390
+ return axisData;
391
+ }
392
+
393
+ /**
394
+ * @function EchartsDataService.prototype._fieldsDataDefault
395
+ * @private
396
+ * @description 将请求回来的数据,转换成适用于chart配置的数据-不统计图表的情况。
397
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据
398
+ * @param {Chart-datasetOption} datasetOption - 数据解析的配置
399
+ * @returns {Object} 解析好的Ydata,xdata
400
+ */
401
+ _fieldsDataDefault(data, datasetOption) {
402
+ let fields, fieldValues, xFieldIndex, yFieldIndex, xData, yData, result;
403
+ let { yField, xField } = datasetOption;
404
+ fields = data.fields; // 所有x字段
405
+ xFieldIndex = fields.indexOf(xField); // x字段的下标
406
+ yFieldIndex = fields.indexOf(yField); // y字段的下标
407
+ fieldValues = yFieldIndex < 0 ? [] : data.fieldValues[yFieldIndex]; // y字段的所有feature值
408
+ // 如果不是统计图表
409
+ xData = this._getFieldDatas(data, xFieldIndex);
410
+ yData = [...fieldValues].map(item => tonumber(item));
411
+ result = { xData, yData };
412
+ return result;
413
+ }
414
+
415
+ /**
416
+ * @function EchartsDataService.prototype._fieldsDataStatistic
417
+ * @private
418
+ * @description 将请求回来的数据,转换成适用于chart配置的数据-统计图表的情况。
419
+ * @param {Array} features - 统计后的数据
420
+ * @param {Chart-datasetOption} datasetOption - 数据解析的配置
421
+ * @returns {Object} 解析好的Ydata,xdata
422
+ */
423
+ _fieldsDataStatistic(features, datasetOption) {
424
+ let xData, yData, result;
425
+ const { xField, yField } = datasetOption;
426
+ xData = features.map(obj => obj[xField]);
427
+ yData = features.map(obj => obj[yField]);
428
+ result = { xData, yData };
429
+ return result;
430
+ }
431
+
432
+ /**
433
+ * @function EchartsDataService.prototype._stasticXData
434
+ * @private
435
+ * @description 统计X字段数据,生成xData。
436
+ * @param {Object} fieldValueIndex - x字段的统计索引
437
+ * @returns {Array} 统计后的Xdata、
438
+ */
439
+ _stasticXData(fieldValueIndex) {
440
+ const xData = Array.from(fieldValueIndex.keys());
441
+ return xData;
442
+ }
443
+
444
+ /**
445
+ * @function EchartsDataService.prototype._stasticYData
446
+ * @private
447
+ * @description 统计数据,生成yData。
448
+ * @param {Object} fieldValues - y字段的所有feature值
449
+ * @param {Object} fieldValueIndex - x字段的统计索引
450
+ * @param {string|function} statisticFunction - 统计方式
451
+ * @param {Array} features - 所有features要素
452
+ * @returns {Array} 统计后的Ydata、
453
+ */
454
+ _stasticYData(fieldValues, fieldValueIndex, statisticFunction, features) {
455
+ let yData = [];
456
+ // 统计Y字段
457
+ for (const key of fieldValueIndex.keys()) {
458
+ let valueArr = [];
459
+ let featuresArr = [];
460
+ fieldValueIndex.get(key).forEach(index => {
461
+ // 清除字符串型的数字的逗号
462
+ let num = fieldValues[index] && clearNumberComma(fieldValues[index]);
463
+ valueArr.push(tonumber(num));
464
+ featuresArr.push(features[index]);
465
+ });
466
+ let result = this._processValue(valueArr, statisticFunction, featuresArr);
467
+ yData.push(result);
468
+ }
469
+ return yData;
470
+ }
471
+
472
+ /**
473
+ * @function EchartsDataService.prototype._processValue
474
+ * @private
475
+ * @description 根据统计方式,对y字段值进行统计。
476
+ * @param {Array} fieldValues - 待统计的y轴字段值
477
+ * @param {string|function} statisticFunction - 统计方式
478
+ * @param {Array} features - 待统计的要素
479
+ * @returns {Array} 统计后的Ydata
480
+ */
481
+ _processValue(fieldValues, statisticFunction, features) {
482
+ let result;
483
+ if(typeof (statisticFunction) === 'function') {
484
+ result = statisticFunction(fieldValues, features);
485
+ } else {
486
+ result = statisticFunctions[statisticFunction] ? statisticFunctions[statisticFunction](fieldValues) : statisticFunctions.sum(fieldValues);
487
+ }
488
+ return result;
489
+ }
490
+
491
+ /**
492
+ * @function EchartsDataService.prototype._getUniqFieldDatas
493
+ * @private
494
+ * @description 获取x轴字段要统计的属性值
495
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据的fieldValue
496
+ * @param {String} fieldIndexs - x字段索引值数组
497
+ * @returns {Object} 返回x轴字段要统计的属性值,返回值为eg:[fieldIndex:1, statiscIndex:{浇水地:[5,2,5,4], 林地:[5,2,5,4]...}]。
498
+ */
499
+ _getUniqFieldDatas(data, fieldIndex) {
500
+ const fieldValues = this._getFieldDatas(data, fieldIndex);
501
+ // 使用map而不是obj,是因为当X轴字段值为数字型时,生成对象的key会被转成string,对MD中统计的图表设置交互有影响:交互中的关联字段值不一样
502
+ const uniqFieldValues = new Map();
503
+ if (fieldValues) {
504
+ fieldValues.forEach((value, index) => {
505
+ if (!uniqFieldValues.get(value)) {
506
+ uniqFieldValues.set(value, [index]);
507
+ } else {
508
+ uniqFieldValues.get(value).push(index);
509
+ }
510
+ });
511
+ }
512
+ return uniqFieldValues;
513
+ }
514
+
515
+ /**
516
+ * @function EchartsDataService.prototype._getFieldDatas
517
+ * @private
518
+ * @description 。
519
+ * @param {Object} data - 从superMap的iserver,iportal中请求返回的数据的fieldValue
520
+ * @param {String} fieldIndex - x字段索引值
521
+ * @returns {Array} 返回的是一个数组[林地, 旱地, 林地,沼泽,旱地...]
522
+ */
523
+ _getFieldDatas(data, fieldIndex) {
524
+ // 获取x字段所有值,
525
+ return data.fieldValues[fieldIndex];
526
+ }
527
+ }
@@ -0,0 +1,130 @@
1
+ import { FetchRequest } from 'vue-iclient/static/libs/iclient-common/iclient-common';
2
+ import { Events } from 'vue-iclient/src/common/_types/event/Events';
3
+ import { getDataType } from 'vue-iclient/src/common/_utils/util';
4
+ import { statisticsFeatures } from 'vue-iclient/src/common/_utils/statistics';
5
+
6
+ export default class RestService extends Events {
7
+ constructor(options) {
8
+ super();
9
+ this.eventTypes = ['getdatafailed', 'getdatasucceeded'];
10
+ this.options = options || {};
11
+ }
12
+
13
+ setProxy(proxy) {
14
+ this.options.proxy = proxy;
15
+ }
16
+
17
+ /**
18
+ * @function RestService.prototype.getData
19
+ * @description 请求数据。
20
+ */
21
+ getData(data, queryInfo) {
22
+ if (!data) {
23
+ return;
24
+ }
25
+ // 如果是geojson
26
+ if (typeof data === 'object') {
27
+ this.transfromGeoJSON({ ...data }, queryInfo);
28
+ return;
29
+ }
30
+ // 如果是url, 就发送请求
31
+ let url = data;
32
+ FetchRequest.get(url, null, { withoutFormatSuffix: true, proxy: this.options.proxy })
33
+ .then(response => {
34
+ return response.json();
35
+ })
36
+ .then(data => {
37
+ if (!data) {
38
+ // 请求失败
39
+ this.triggerEvent('getdatafailed', {
40
+ data
41
+ });
42
+ } else {
43
+ const resData = Object.prototype.hasOwnProperty.call(data, 'data') ? data.data : data;
44
+ this.transfromGeoJSON(resData, queryInfo);
45
+ }
46
+ })
47
+ .catch(error => {
48
+ console.log(error);
49
+ this.triggerEvent('getdatafailed', {
50
+ error
51
+ });
52
+ });
53
+ }
54
+
55
+ transfromGeoJSON(resData, queryInfo) {
56
+ let generateData = {
57
+ type: 'FeatureCollection',
58
+ features: []
59
+ };
60
+ const dataType = getDataType(resData);
61
+ const limitLen = (queryInfo || {}).maxFeatures;
62
+ if (
63
+ dataType !== '[object Object]' ||
64
+ !resData.type ||
65
+ resData.type !== 'FeatureCollection' ||
66
+ getDataType(resData.features) !== '[object Array]'
67
+ ) {
68
+ generateData.features = this._generateData(resData, limitLen);
69
+ } else {
70
+ generateData = resData;
71
+ generateData.features = this._generateData(resData.features, limitLen, false);
72
+ }
73
+ if (this.transformed) {
74
+ generateData.transformed = this.transformed;
75
+ }
76
+ generateData.totalCount = generateData.features.length;
77
+ const triggerData = Object.assign({}, generateData, statisticsFeatures(generateData.features));
78
+ this.triggerEvent('getdatasucceeded', triggerData);
79
+ }
80
+
81
+ _generateData(data, limitLen, generateTransformed = true) {
82
+ const dataType = getDataType(data);
83
+ let features = [];
84
+ let subData;
85
+ switch (dataType) {
86
+ case '[object Number]':
87
+ case '[object String]':
88
+ let feature = {
89
+ properties: {
90
+ value: data
91
+ }
92
+ };
93
+ features.push(feature);
94
+ break;
95
+ case '[object Array]':
96
+ subData = limitLen && !isNaN(+limitLen) && limitLen < data.length ? data.slice(0, limitLen) : data;
97
+ features = subData.map(item => {
98
+ if (
99
+ getDataType(item) === '[object Object]' &&
100
+ Object.prototype.hasOwnProperty.call(item, 'properties') &&
101
+ getDataType(item.properties) === '[object Object]'
102
+ ) {
103
+ return item;
104
+ } else {
105
+ let feature = {
106
+ properties: getDataType(item) === '[object Object]' ? item : { value: item }
107
+ };
108
+ return feature;
109
+ }
110
+ });
111
+ break;
112
+ case '[object Object]':
113
+ subData = data;
114
+ if (limitLen && !isNaN(+limitLen) && limitLen < Object.keys(data).length) {
115
+ subData = Object.fromEntries(Object.entries(data).slice(0, limitLen));
116
+ }
117
+ if (!Object.prototype.hasOwnProperty.call(subData, 'properties') || getDataType(subData.properties) !== '[object Object]') {
118
+ if (generateTransformed) {
119
+ this.transformed = true;
120
+ }
121
+ subData = {
122
+ properties: subData
123
+ };
124
+ }
125
+ features.push(subData);
126
+ break;
127
+ }
128
+ return features;
129
+ }
130
+ }