st-comp 0.0.277 → 0.0.279

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 (319) hide show
  1. package/README.md +19 -19
  2. package/es/ChartLayout.cjs +1 -1
  3. package/es/ChartLayout.js +1 -1
  4. package/es/ConfigProvider.cjs +1 -1
  5. package/es/ConfigProvider.js +3 -3
  6. package/es/Contextmenu.cjs +1 -1
  7. package/es/Contextmenu.js +7 -7
  8. package/es/CustomFunction.cjs +2 -2
  9. package/es/CustomFunction.js +514 -308
  10. package/es/FactorWarning.cjs +1 -1
  11. package/es/FactorWarning.js +37 -37
  12. package/es/HeatMap.cjs +1 -1
  13. package/es/HeatMap.js +7 -7
  14. package/es/Kline.cjs +1 -1
  15. package/es/Kline.js +18 -18
  16. package/es/KlineBasic.cjs +1 -1
  17. package/es/KlineBasic.js +93 -93
  18. package/es/KlineConfig.cjs +1 -1
  19. package/es/KlineConfig.js +17 -17
  20. package/es/KlineNew.cjs +1 -1
  21. package/es/KlineNew.js +14 -14
  22. package/es/KlinePlus.cjs +4 -4
  23. package/es/KlinePlus.js +760 -656
  24. package/es/LinearLegend.cjs +1 -1
  25. package/es/LinearLegend.js +1 -1
  26. package/es/Map.cjs +1 -1
  27. package/es/Map.js +1 -1
  28. package/es/MonacoEditor.cjs +1 -1
  29. package/es/MonacoEditor.js +18 -18
  30. package/es/Pagination.cjs +1 -1
  31. package/es/Pagination.js +76 -76
  32. package/es/PasswordPrompt.cjs +1 -1
  33. package/es/PasswordPrompt.js +2 -2
  34. package/es/Pie.cjs +2 -2
  35. package/es/Pie.js +14 -14
  36. package/es/Table.cjs +1 -1
  37. package/es/Table.js +22 -22
  38. package/es/TreeMap.cjs +1 -1
  39. package/es/TreeMap.js +4 -4
  40. package/es/User.cjs +1 -1
  41. package/es/User.js +73 -73
  42. package/es/VarSelectDialog.cjs +2 -2
  43. package/es/VarSelectDialog.js +21 -21
  44. package/es/VarietyAiHelper.cjs +4 -4
  45. package/es/VarietyAiHelper.js +139 -138
  46. package/es/VarietyAutoComplete.cjs +1 -1
  47. package/es/VarietyAutoComplete.js +16 -16
  48. package/es/VarietySearch.cjs +4 -4
  49. package/es/VarietySearch.js +861 -857
  50. package/es/{VarietySelect-6a166293.js → VarietySelect-41daac7b.js} +10 -10
  51. package/es/{VarietySelect-610903f0.cjs → VarietySelect-d58eee29.cjs} +1 -1
  52. package/es/VarietyTextCopy.cjs +2 -2
  53. package/es/VarietyTextCopy.js +25 -25
  54. package/es/VirtualTable.cjs +1 -1
  55. package/es/VirtualTable.js +6 -6
  56. package/es/{_initCloneObject-152b4f4e.js → _initCloneObject-5e73c9c8.js} +2 -2
  57. package/es/{_initCloneObject-76e116d0.cjs → _initCloneObject-a5832933.cjs} +1 -1
  58. package/es/aiTools-229609fb.cjs +2 -0
  59. package/es/aiTools-ce2f9281.js +115 -0
  60. package/es/aiTools.js +179 -176
  61. package/es/{config-provider-4c784baf.cjs → config-provider-06ea6b42.cjs} +1 -1
  62. package/es/{config-provider-7a3aca55.js → config-provider-88b637a8.js} +3 -3
  63. package/es/{dropdown-987c47fb.cjs → dropdown-4ce4c3e2.cjs} +1 -1
  64. package/es/{dropdown-01e09205.js → dropdown-72fbc15d.js} +2 -2
  65. package/es/{el-autocomplete-342ae823.js → el-autocomplete-6cafcdf1.js} +5 -5
  66. package/es/{el-autocomplete-16f66b34.cjs → el-autocomplete-e0857c5b.cjs} +1 -1
  67. package/es/{el-button-13dc915f.cjs → el-button-613e0bb2.cjs} +1 -1
  68. package/es/{el-button-314171a0.js → el-button-94d3de38.js} +3 -3
  69. package/es/{el-checkbox-5899681f.js → el-checkbox-6d4cb393.js} +3 -3
  70. package/es/{el-checkbox-bdf64663.cjs → el-checkbox-e90762df.cjs} +1 -1
  71. package/es/{el-dialog-0ef95df6.cjs → el-dialog-02942e22.cjs} +1 -1
  72. package/es/{el-dialog-86a3eec2.js → el-dialog-5e30161f.js} +4 -4
  73. package/es/{el-form-item-77ef6784.cjs → el-form-item-44f060d8.cjs} +1 -1
  74. package/es/{el-form-item-cda4d93c.js → el-form-item-9e8969ea.js} +5 -5
  75. package/es/{el-input-fa1445ad.js → el-input-342b2def.js} +13 -13
  76. package/es/{el-input-89222943.cjs → el-input-9a9a7f7f.cjs} +1 -1
  77. package/es/{el-input-number-d3338e5e.cjs → el-input-number-65c847d6.cjs} +1 -1
  78. package/es/{el-input-number-8f6dbf74.js → el-input-number-c22b803a.js} +35 -35
  79. package/es/{el-loading-84dde1a8.cjs → el-loading-8179b497.cjs} +1 -1
  80. package/es/{el-loading-9b671203.js → el-loading-bcc51e3d.js} +1 -1
  81. package/es/{el-menu-item-535fef90.js → el-menu-item-339baf6d.js} +21 -21
  82. package/es/{el-menu-item-4531fd0e.cjs → el-menu-item-83186444.cjs} +1 -1
  83. package/es/{el-message-box-621ed2f1.js → el-message-box-035b699c.js} +9 -9
  84. package/es/{el-message-box-f5717070.cjs → el-message-box-c62d3217.cjs} +1 -1
  85. package/es/{el-overlay-23de4324.js → el-overlay-3e17604b.js} +3 -3
  86. package/es/{el-overlay-151708cb.cjs → el-overlay-8f1da9e8.cjs} +1 -1
  87. package/es/{el-popconfirm-b8aa490e.cjs → el-popconfirm-4e32ec1b.cjs} +1 -1
  88. package/es/{el-popconfirm-bcff0aa5.js → el-popconfirm-f8a86e2c.js} +4 -4
  89. package/es/{el-popper-43ec37f4.cjs → el-popper-a4f3ae4d.cjs} +1 -1
  90. package/es/{el-popper-03988662.js → el-popper-fbd0dcea.js} +1 -1
  91. package/es/{el-segmented-db3a86be.js → el-segmented-56bd58a8.js} +2 -2
  92. package/es/{el-segmented-79a1367c.cjs → el-segmented-833ac177.cjs} +1 -1
  93. package/es/{el-select-4bd0010d.js → el-select-44fa547d.js} +8 -8
  94. package/es/{el-select-ec04e7ce.cjs → el-select-70806166.cjs} +1 -1
  95. package/es/{el-table-column-35e47229.cjs → el-table-column-3e2cdfca.cjs} +1 -1
  96. package/es/{el-table-column-7af2bec7.js → el-table-column-b74a857d.js} +9 -9
  97. package/es/{el-tag-bef9e83d.js → el-tag-66c83156.js} +2 -2
  98. package/es/{el-tag-5d5608e0.cjs → el-tag-9c2f329f.cjs} +1 -1
  99. package/es/{el-text-f998902c.js → el-text-034bd3f4.js} +1 -1
  100. package/es/{el-text-abf10fdf.cjs → el-text-6b2374bb.cjs} +1 -1
  101. package/es/index-00f6ca75.cjs +1 -0
  102. package/es/{index-a00e0534.cjs → index-185792a7.cjs} +1 -1
  103. package/es/{index-d1b554ac.js → index-1e2a38ab.js} +2 -2
  104. package/es/{index-0986e373.cjs → index-3153c1db.cjs} +1 -1
  105. package/es/{index-936e7dec.js → index-44a382a5.js} +2 -2
  106. package/es/{index-ce21e2ce.js → index-5216d5f5.js} +5 -5
  107. package/es/{index-7ed0999e.js → index-53cc4e43.js} +720 -716
  108. package/es/{index-cfcd60ca.cjs → index-5c0dd943.cjs} +1 -1
  109. package/es/{index-cfd00899.cjs → index-870b6c9d.cjs} +1 -1
  110. package/es/{index-a83ec4b7.js → index-8c2d7e05.js} +1 -1
  111. package/es/{index-8901a38c.cjs → index-94131fd7.cjs} +30 -30
  112. package/es/{index-db846633.cjs → index-9d16cea8.cjs} +1 -1
  113. package/es/{index-f3f6ee27.js → index-a33b2fb8.js} +178 -178
  114. package/es/{index-2d7ac156.cjs → index-a9246d17.cjs} +17 -17
  115. package/es/{index-60c69dd1.cjs → index-ac8dc53d.cjs} +1 -1
  116. package/es/{index-102edf6c.js → index-c5f2d372.js} +2 -2
  117. package/es/{index-6290ae0f.js → index-c6584658.js} +2 -2
  118. package/es/{index-5c44d71a.js → index-eb96e074.js} +149 -119
  119. package/es/{index-5ed42e9c.js → index-f034b910.js} +2 -2
  120. package/es/{index-c58e90e9.cjs → index-f58b2920.cjs} +1 -1
  121. package/es/{python-6cc6ec1b.js → python-8a1664e6.js} +18 -18
  122. package/es/{python-71f59893.cjs → python-a3db9620.cjs} +1 -1
  123. package/es/style.css +1 -1
  124. package/es/{use-form-common-props-02be4928.cjs → use-form-common-props-ac666630.cjs} +1 -1
  125. package/es/{use-form-common-props-76a09d89.js → use-form-common-props-ed72e914.js} +11 -11
  126. package/es/{use-global-config-31b3ec57.cjs → use-global-config-23472471.cjs} +1 -1
  127. package/es/{use-global-config-0f43458b.js → use-global-config-ee406d58.js} +2 -2
  128. package/es/{validator-ea292506.cjs → validator-366dbf39.cjs} +1 -1
  129. package/es/{validator-0e037618.js → validator-c60a8956.js} +1 -1
  130. package/es/{zh-cn-1227eb8a.js → zh-cn-b59a0910.js} +1 -1
  131. package/es/{zh-cn-0edc7234.cjs → zh-cn-c21d12d8.cjs} +1 -1
  132. package/lib/aiTools.js +179 -176
  133. package/lib/bundle.js +1 -1
  134. package/lib/bundle.umd.cjs +230 -230
  135. package/lib/{index-2a269748.js → index-62fa175a.js} +30149 -29800
  136. package/lib/{python-41da18e5.js → python-4a48fa39.js} +1 -1
  137. package/lib/style.css +1 -1
  138. package/package.json +53 -44
  139. package/auto-imports.d.ts +0 -13
  140. package/components.d.ts +0 -59
  141. package/es/aiTools-a3b095f6.js +0 -113
  142. package/es/aiTools-f36136a4.cjs +0 -2
  143. package/es/index-476c4459.cjs +0 -1
  144. package/index.html +0 -13
  145. package/packages/ChartLayout/index.ts +0 -8
  146. package/packages/ChartLayout/index.vue +0 -63
  147. package/packages/ConfigProvider/index.ts +0 -8
  148. package/packages/ConfigProvider/index.vue +0 -66
  149. package/packages/Contextmenu/index.ts +0 -8
  150. package/packages/Contextmenu/index.vue +0 -134
  151. package/packages/CustomFunction/components/ManageDialog.vue +0 -706
  152. package/packages/CustomFunction/index.ts +0 -8
  153. package/packages/CustomFunction/index.vue +0 -200
  154. package/packages/FactorWarning/index.ts +0 -8
  155. package/packages/FactorWarning/index.vue +0 -754
  156. package/packages/FactorWarning/tools.js +0 -10
  157. package/packages/HeatMap/index.ts +0 -8
  158. package/packages/HeatMap/index.vue +0 -141
  159. package/packages/Kline/components/Contextmenu/index.vue +0 -110
  160. package/packages/Kline/components/Tips/index.vue +0 -40
  161. package/packages/Kline/componentsNew/KlineSlide/index.vue +0 -155
  162. package/packages/Kline/componentsNew/KlineSub/index.vue +0 -297
  163. package/packages/Kline/componentsNew/KlineTips/index.vue +0 -66
  164. package/packages/Kline/componentsNew/KlineUtils/index.vue +0 -84
  165. package/packages/Kline/componentsNew/Tips/index.vue +0 -33
  166. package/packages/Kline/formatKlineData.ts +0 -109
  167. package/packages/Kline/images/buy.svg +0 -1
  168. package/packages/Kline/images/pen.png +0 -0
  169. package/packages/Kline/images/sell.svg +0 -1
  170. package/packages/Kline/images/t.svg +0 -1
  171. package/packages/Kline/index.ts +0 -16
  172. package/packages/Kline/index.vue +0 -891
  173. package/packages/Kline/option.ts +0 -539
  174. package/packages/Kline/type.d.ts +0 -219
  175. package/packages/Kline/utils.ts +0 -682
  176. package/packages/KlineBasic/api.js +0 -58
  177. package/packages/KlineBasic/components/AverageTips/index.vue +0 -33
  178. package/packages/KlineBasic/components/Contextmenu/index.vue +0 -105
  179. package/packages/KlineBasic/components/KlineSub/index.vue +0 -332
  180. package/packages/KlineBasic/components/KlineTips/index.vue +0 -99
  181. package/packages/KlineBasic/components/Tips/index.vue +0 -56
  182. package/packages/KlineBasic/index.ts +0 -8
  183. package/packages/KlineBasic/index.vue +0 -839
  184. package/packages/KlineBasic/utils.js +0 -258
  185. package/packages/KlineConfig/config.js +0 -46
  186. package/packages/KlineConfig/index.ts +0 -8
  187. package/packages/KlineConfig/index.vue +0 -356
  188. package/packages/KlineNew/components/KlineSlide/index.vue +0 -156
  189. package/packages/KlineNew/components/KlineSub/index.vue +0 -335
  190. package/packages/KlineNew/components/KlineTips/index.vue +0 -96
  191. package/packages/KlineNew/components/KlineUtils/index.vue +0 -341
  192. package/packages/KlineNew/components/Tips/index.vue +0 -33
  193. package/packages/KlineNew/index.ts +0 -14
  194. package/packages/KlinePlus/components/SliderChart.vue +0 -208
  195. package/packages/KlinePlus/components/Tips.vue +0 -36
  196. package/packages/KlinePlus/images/buy.svg +0 -1
  197. package/packages/KlinePlus/images/sell.svg +0 -1
  198. package/packages/KlinePlus/images/t.svg +0 -1
  199. package/packages/KlinePlus/index.ts +0 -8
  200. package/packages/KlinePlus/index.vue +0 -1067
  201. package/packages/KlinePlus/utils.js +0 -771
  202. package/packages/LinearLegend/index.ts +0 -8
  203. package/packages/LinearLegend/index.vue +0 -112
  204. package/packages/Map/China.json +0 -1
  205. package/packages/Map/index.ts +0 -8
  206. package/packages/Map/index.vue +0 -147
  207. package/packages/MonacoEditor/index.ts +0 -8
  208. package/packages/MonacoEditor/index.vue +0 -1141
  209. package/packages/MonacoEditor/tools.js +0 -18
  210. package/packages/Pagination/index.ts +0 -8
  211. package/packages/Pagination/index.vue +0 -87
  212. package/packages/PasswordPrompt/index.ts +0 -8
  213. package/packages/PasswordPrompt/index.vue +0 -267
  214. package/packages/Pie/index.ts +0 -8
  215. package/packages/Pie/index.vue +0 -148
  216. package/packages/Table/components/Button/index.vue +0 -61
  217. package/packages/Table/components/Formatter/index.vue +0 -26
  218. package/packages/Table/index.d.ts +0 -0
  219. package/packages/Table/index.ts +0 -8
  220. package/packages/Table/index.vue +0 -133
  221. package/packages/TreeMap/index.ts +0 -8
  222. package/packages/TreeMap/index.vue +0 -186
  223. package/packages/User/components/EditInfoDialog/Mobile.vue +0 -214
  224. package/packages/User/components/EditInfoDialog/index.vue +0 -161
  225. package/packages/User/components/EditPasswordDialog.vue +0 -168
  226. package/packages/User/components/SetPasswordDialog.vue +0 -160
  227. package/packages/User/index.ts +0 -8
  228. package/packages/User/index.vue +0 -117
  229. package/packages/VarSelectDialog/Mock.js +0 -495
  230. package/packages/VarSelectDialog/VarietySelect.vue +0 -78
  231. package/packages/VarSelectDialog/index.ts +0 -8
  232. package/packages/VarSelectDialog/index.vue +0 -323
  233. package/packages/VarietyAiHelper/images/like.png +0 -0
  234. package/packages/VarietyAiHelper/images/like_no.png +0 -0
  235. package/packages/VarietyAiHelper/index.ts +0 -8
  236. package/packages/VarietyAiHelper/index.vue +0 -910
  237. package/packages/VarietyAutoComplete/index.ts +0 -8
  238. package/packages/VarietyAutoComplete/index.vue +0 -89
  239. package/packages/VarietySearch/components/AddTag/index.vue +0 -268
  240. package/packages/VarietySearch/components/CommonIndicator/IndicatorTags.vue +0 -52
  241. package/packages/VarietySearch/components/CommonIndicator/index.vue +0 -697
  242. package/packages/VarietySearch/components/CommonIndicator/tools.js +0 -260
  243. package/packages/VarietySearch/components/CompositeOrder/index.vue +0 -260
  244. package/packages/VarietySearch/components/FactorScreen/FactorDescription.vue +0 -70
  245. package/packages/VarietySearch/components/FactorScreen/index.vue +0 -1158
  246. package/packages/VarietySearch/components/FactorScreen/tools.js +0 -34
  247. package/packages/VarietySearch/config.js +0 -539
  248. package/packages/VarietySearch/index.ts +0 -8
  249. package/packages/VarietySearch/index.vue +0 -688
  250. package/packages/VarietyTextCopy/index.ts +0 -8
  251. package/packages/VarietyTextCopy/index.vue +0 -136
  252. package/packages/VirtualTable/index.ts +0 -8
  253. package/packages/VirtualTable/index.vue +0 -241
  254. package/packages/index.ts +0 -59
  255. package/public/aiTools.js +0 -176
  256. package/public/talib.wasm +0 -0
  257. package/public/vite.svg +0 -1
  258. package/src/App.vue +0 -140
  259. package/src/assets/vue.svg +0 -1
  260. package/src/components/Dialog/index.vue +0 -16
  261. package/src/components/Kline/index.vue +0 -21
  262. package/src/components/Table/index.vue +0 -27
  263. package/src/main.ts +0 -17
  264. package/src/pages/ChartLayout/index.vue +0 -22
  265. package/src/pages/ConfigProvider/index.vue +0 -9
  266. package/src/pages/Contextmenu/index.vue +0 -46
  267. package/src/pages/CustomFunction/index.vue +0 -13
  268. package/src/pages/FactorWarning/index.vue +0 -203
  269. package/src/pages/HeatMap/index.vue +0 -128
  270. package/src/pages/Kline/index.vue +0 -12
  271. package/src/pages/KlineBasic/api.js +0 -48
  272. package/src/pages/KlineBasic/index.vue +0 -366
  273. package/src/pages/KlineBasic/indicator.js +0 -114
  274. package/src/pages/KlineConfig/index.vue +0 -20
  275. package/src/pages/KlineNew/components/KlineAction/components/ContextMenu/index.vue +0 -91
  276. package/src/pages/KlineNew/components/KlineAction/components/YearChart/index.vue +0 -532
  277. package/src/pages/KlineNew/components/KlineAction/images/pen.png +0 -0
  278. package/src/pages/KlineNew/components/KlineAction/index.vue +0 -716
  279. package/src/pages/KlineNew/components/KlineAction/mockApi/index.js +0 -13
  280. package/src/pages/KlineNew/components/KlineAction/utils.js +0 -571
  281. package/src/pages/KlineNew/components/KlineBasic/index.vue +0 -336
  282. package/src/pages/KlineNew/components/KlineBasic/utils.js +0 -46
  283. package/src/pages/KlineNew/components/KlineNew/index.vue +0 -316
  284. package/src/pages/KlineNew/components/KlineNew/utils.js +0 -31
  285. package/src/pages/KlineNew/components/KlineSlide/index.vue +0 -448
  286. package/src/pages/KlineNew/components/KlineSlide/utils.js +0 -78
  287. package/src/pages/KlineNew/components/KlineSlideNew/index.vue +0 -430
  288. package/src/pages/KlineNew/components/KlineSlideNew/utils.js +0 -78
  289. package/src/pages/KlineNew/index.vue +0 -92
  290. package/src/pages/KlinePlus/KlineDialog/MultiCycle.vue +0 -312
  291. package/src/pages/KlinePlus/KlineDialog/api.js +0 -108
  292. package/src/pages/KlinePlus/KlineDialog/index.vue +0 -582
  293. package/src/pages/KlinePlus/KlineDialog/indicator.js +0 -109
  294. package/src/pages/KlinePlus/KlineDialog/tools.js +0 -86
  295. package/src/pages/KlinePlus/index.vue +0 -30
  296. package/src/pages/KlinePlus/tradeLogMock.js +0 -1927
  297. package/src/pages/LinearLegend/index.vue +0 -92
  298. package/src/pages/Map/index.vue +0 -62
  299. package/src/pages/MonacoEditor/index.vue +0 -63
  300. package/src/pages/Pagination/index.vue +0 -24
  301. package/src/pages/PasswordPrompt/index.vue +0 -12
  302. package/src/pages/Pie/index.vue +0 -36
  303. package/src/pages/Table/index.vue +0 -117
  304. package/src/pages/TreeMap/index.vue +0 -542
  305. package/src/pages/User/index.vue +0 -24
  306. package/src/pages/VarSelectDialog/index.vue +0 -16
  307. package/src/pages/VarietyAiHelper/index.vue +0 -20
  308. package/src/pages/VarietyAutoComplete/index.vue +0 -19
  309. package/src/pages/VarietySearch/api.js +0 -70
  310. package/src/pages/VarietySearch/index.vue +0 -467
  311. package/src/pages/VarietyTextCopy/index.vue +0 -24
  312. package/src/pages/VirtualTable/demo.json +0 -6377
  313. package/src/pages/VirtualTable/index.vue +0 -79
  314. package/src/router/index.ts +0 -9
  315. package/src/router/routes.ts +0 -132
  316. package/src/style.css +0 -79
  317. package/src/vite-env.d.ts +0 -9
  318. package/tsconfig.json +0 -30
  319. package/tsconfig.node.json +0 -10
@@ -1,341 +0,0 @@
1
- <template></template>
2
-
3
- <script setup lang="ts">
4
- import * as talib from "talib.js";
5
-
6
- let isInit = false; // 是否初始化
7
- let loading = true; // 初始化loading
8
- let requestPromise: any[] = []; // 用于存储loading中的计算请求
9
-
10
- // 导出数据长度处理
11
- const sliceData = (data: any[], length: number) => {
12
- return data.length > length ? data.slice(data.length - length) : data;
13
- };
14
-
15
- defineExpose({
16
- // 注册计算指标线方法
17
- initTalib: async () => {
18
- if (!isInit) {
19
- // 未初始化
20
- isInit = true;
21
- await talib.init("./talib.wasm");
22
- loading = false;
23
- requestPromise.forEach((resolve) => {
24
- resolve();
25
- });
26
- } else if (loading) {
27
- // 正在初始化
28
- return new Promise((resolve) => {
29
- requestPromise.push(resolve);
30
- });
31
- }
32
- },
33
- // 键盘事件处理
34
- handleKeyDown: (e: any, params: any) => {
35
- let { startValue, endValue, maxIndex } = params;
36
- if (e.code === "ArrowLeft") {
37
- // 左按键
38
- if (startValue === 0) {
39
- return;
40
- }
41
- startValue = startValue - 1;
42
- endValue = endValue - 1;
43
- } else if (e.code === "ArrowRight") {
44
- // 右按键
45
- if (endValue === maxIndex) {
46
- return;
47
- }
48
- startValue = startValue + 1;
49
- endValue = endValue + 1;
50
- } else if (e.code === "ArrowUp") {
51
- // 上按键-放大 最少保持5条数据
52
- if (endValue - startValue < 5) {
53
- return;
54
- }
55
- const diff = Math.floor((endValue - startValue) / 2) + 1;
56
- startValue = startValue + diff;
57
- if (endValue - startValue < 5) {
58
- startValue = endValue - 4;
59
- }
60
- } else if (e.code === "ArrowDown") {
61
- // 下按键-缩小
62
- const diff = Math.min(500, endValue - startValue);
63
- startValue = startValue - diff - 1;
64
- }
65
- return {
66
- startValue,
67
- endValue,
68
- };
69
- },
70
- // 根据时间解析dataZoom
71
- getDataZoomInfoByTime: (params: any) => {
72
- const { showStartTime, showEndTime, xAxisData, maxShowDays } = params;
73
- let startValue = -1;
74
- let endValue = -1;
75
- let dayPerTime: any = {};
76
- xAxisData.forEach((time: any, index: number) => {
77
- const date = time.split(" ")[0];
78
- dayPerTime[date] = dayPerTime[date] || 0;
79
- dayPerTime[date] += 1;
80
- if (new Date(time) >= new Date(showStartTime) && startValue === -1) {
81
- startValue = index;
82
- }
83
- if (new Date(time) <= new Date(showEndTime)) {
84
- endValue = index;
85
- }
86
- });
87
- return {
88
- startValue,
89
- endValue,
90
- maxValueSpan: Math.max(...Object.values(dayPerTime)) * maxShowDays,
91
- };
92
- },
93
- /**
94
- * @description: 计算绘图数据(拖动轴使用)
95
- * @returns: {
96
- * originData, // 原始格式的K线数据 [时间, 开, 高, 低, 收, 交易量, 交易总额]
97
- * candlestickData, // 整理格式后的K线数据 [开, 收, 低, 高, 昨收, 交易总额]
98
- * mainIndicatorData, // 主图指标线数据
99
- * subIndicatorData, // 副图指标线数据
100
- * xAxisData, // 便捷数据 - K线时间轴
101
- * startTime, // 便捷数据 - K线首根时间
102
- * endTime // 便捷数据 - K线末根时间
103
- * length, // 便捷数据 - K线长度
104
- * }
105
- */
106
- formatDataBySlide: (params: any) => {
107
- // 1.解构入参
108
- const { originDrawData, addData, startTime, endTime } = params;
109
- const { mainIndicator, mainIndicatorList, subIndicator, subIndicatorList, config, timeRange } = params;
110
- const { loadAddCount, preLoadCount } = config;
111
-
112
- // 2.初始化K线基础返回数据
113
- // =============================================================================================================
114
- let originData: any[] = [];
115
- let candlestickData: any[] = [];
116
- let xAxisData: any[] = [];
117
- let indicatorKlineData: any[] = []; // 由于指标线的特性, 计算时会用到渲染范围之外的K线, 所以用这个参数保留最全的数据
118
- // [重新加载||历史加载||后续加载]
119
- if (startTime && endTime) {
120
- // 重新加载
121
- originData = addData.filter((item: any) => {
122
- return new Date(item[0]) >= new Date(startTime) && new Date(item[0]) <= new Date(endTime);
123
- });
124
- indicatorKlineData = [...addData];
125
- } else if (endTime) {
126
- // 历史加载
127
- originData = [
128
- ...addData.filter((item: any, index: number) => {
129
- return (
130
- index >= addData.length - loadAddCount &&
131
- new Date(timeRange[0]) <= new Date(item[0]) &&
132
- new Date(item[0]) <= new Date(timeRange[1])
133
- );
134
- }),
135
- ...originDrawData.originData,
136
- ];
137
- indicatorKlineData = [...addData, ...originDrawData.originData];
138
- } else if (startTime) {
139
- // 后续加载
140
- originData = [
141
- ...originDrawData.originData,
142
- ...addData.filter((item: any, index: number) => {
143
- return (
144
- index >= preLoadCount &&
145
- new Date(timeRange[0]) <= new Date(item[0]) &&
146
- new Date(item[0]) <= new Date(timeRange[1])
147
- );
148
- }),
149
- ];
150
- indicatorKlineData = originData;
151
- }
152
- originData.forEach((item, index) => {
153
- candlestickData.push([item[1], item[4], item[3], item[2], index === 0 ? 0 : originData[index - 1][4], item[6]]);
154
- xAxisData.push(item[0]);
155
- });
156
- // =============================================================================================================
157
-
158
- // 3.初始化指标线基础返回数据
159
- // =============================================================================================================
160
- let mainIndicatorData = [];
161
- let subIndicatorData = [];
162
- const indicatorParams: { [key: string]: any[] } = {
163
- time: [],
164
- open: [],
165
- close: [],
166
- high: [],
167
- low: [],
168
- originData: indicatorKlineData,
169
- };
170
- // 由于指标线数据是纯值数组, 没有二位数组的时间让echarts固定渲染, 意味着它的数据渲染顺序必须与渲染的K线相呼应
171
- // 所以我们要从indicatorKlineData中抽出来originData的开始结束索引, 用于后面切割生成的指标线数据
172
- let startIndex: null | number = null;
173
- let endIndex: null | number = null;
174
- indicatorKlineData.forEach((item: any, index: number) => {
175
- indicatorParams.time.push(item[0]);
176
- indicatorParams.open.push(item[1]);
177
- indicatorParams.close.push(item[4]);
178
- indicatorParams.high.push(item[2]);
179
- indicatorParams.low.push(item[3]);
180
- if (item[0] === originData[0][0]) {
181
- startIndex = index;
182
- }
183
- if (item[0] === originData[originData.length - 1][0]) {
184
- endIndex = index + 1;
185
- }
186
- });
187
- // 3.1.主图指标线计算
188
- mainIndicatorData = mainIndicatorList
189
- .find(({ value }: { value: any }) => value === mainIndicator)
190
- .config.map((item: any) => {
191
- const { calculationFn } = item;
192
- const otherIndicatorParams = { time: [], open: [], close: [], high: [], low: [], originData: [] };
193
- return {
194
- ...item,
195
- data: calculationFn
196
- ? calculationFn(talib, indicatorParams, otherIndicatorParams).slice(startIndex, endIndex)
197
- : [],
198
- };
199
- });
200
- // 3.2.副图指标线计算
201
- subIndicatorData = subIndicatorList
202
- .find(({ value }: { value: any }) => value === subIndicator)
203
- .config.reduce((result: any[], item: any) => {
204
- const { source, calculationFn } = item;
205
- if (source === "calculation") {
206
- return [
207
- ...result,
208
- {
209
- ...item,
210
- data: calculationFn ? calculationFn(talib, indicatorParams).slice(startIndex, endIndex) : [],
211
- },
212
- ];
213
- }
214
- return result;
215
- }, []);
216
- // =============================================================================================================
217
-
218
- return {
219
- originData,
220
- candlestickData,
221
- mainIndicatorData,
222
- subIndicatorData,
223
- xAxisData,
224
- startTime: originData[0][0],
225
- endTime: originData[originData.length - 1][0],
226
- length: originData.length,
227
- };
228
- },
229
- // 计算绘图数据(根据长度使用)
230
- formatDataByCount: (formatDataParams: any) => {
231
- const { originDrawData, addData, mainIndicator, mainIndicatorList, subIndicator, subIndicatorList, config } =
232
- formatDataParams;
233
- let drawData: any = {};
234
- const { addCount, preLoadCount } = config;
235
-
236
- const time: any[] = []; // 新增数据全部时间数据,用于计算指标线
237
- const open: any[] = []; // 新增数据全部开盘价,用于指标线计算
238
- const close: any[] = []; // 新增数据全部收盘价,用于指标线计算
239
- const high: any[] = []; // 新增数据全部最高价,用于指标线计算
240
- const low: any[] = []; // 新增数据全部最低价,用于指标线计算
241
- let xAxisData: any[] = []; // 用于绘图的x轴时间数据
242
- let candlestickData: any[] = []; // 用于绘图的k线图数据
243
-
244
- const originData = addData.filter((item: any, index: number) => {
245
- // 赋值
246
- time.push(item[0]);
247
- open.push(item[1]);
248
- close.push(item[4]);
249
- high.push(item[2]);
250
- low.push(item[3]);
251
- xAxisData.push(item[0]);
252
- candlestickData.push([item[1], item[4], item[3], item[2], index === 0 ? 0 : addData[index - 1][4], item[6]]);
253
- if (addData.length >= addCount + preLoadCount - 1) {
254
- // 还有未加载数据
255
- return index >= preLoadCount;
256
- } else {
257
- // 全部剩余数据
258
- return true;
259
- }
260
- });
261
- xAxisData = sliceData(xAxisData, originData.length);
262
- candlestickData = sliceData(candlestickData, originData.length);
263
- // 指标线相关计算
264
- const indicatorFormatData = { time, open, close, high, low, originData: addData };
265
- const mainIndicatorConfig = mainIndicatorList.find((item: any) => item.value === mainIndicator).config;
266
- const mainIndicatorData = mainIndicatorConfig.map((item: any) => ({
267
- ...item,
268
- data: sliceData(
269
- item.calculationFn
270
- ? item.calculationFn(talib, indicatorFormatData, {
271
- time: [],
272
- open: [],
273
- close: [],
274
- high: [],
275
- low: [],
276
- originData: [],
277
- })
278
- : [],
279
- xAxisData.length
280
- ),
281
- }));
282
- let subIndicatorData = [];
283
- if (subIndicator && subIndicatorList) {
284
- const subIndicatorConfig = subIndicatorList.find((item: any) => item.value === subIndicator).config;
285
- subIndicatorData = subIndicatorConfig.reduce((res: any[], item: any) => {
286
- if (item.source === "calculation") {
287
- return [
288
- ...res,
289
- {
290
- ...item,
291
- data: sliceData(
292
- item.calculationFn ? item.calculationFn(talib, indicatorFormatData) : [],
293
- xAxisData.length
294
- ),
295
- },
296
- ];
297
- }
298
- return res;
299
- }, []);
300
- }
301
- // 根据不同情况处理数据
302
- if (originDrawData.length) {
303
- // 加载历史数据
304
- drawData = {
305
- originData: [...originData, ...originDrawData.originData], // 原数据
306
- xAxisData: [...xAxisData, ...originDrawData.xAxisData], // 时间数据
307
- candlestickData: [...candlestickData, ...originDrawData.candlestickData], // k线数据
308
- mainIndicatorData: originDrawData.mainIndicatorData.map((item: any, index: number) => {
309
- return {
310
- ...item,
311
- data: [...mainIndicatorData[index].data, ...item.data],
312
- };
313
- }), // 主图指标线数据
314
- subIndicatorData: originDrawData.subIndicatorData.map((item: any, index: number) => {
315
- return {
316
- ...item,
317
- data: [...subIndicatorData[index].data, ...item.data],
318
- };
319
- }), // 副图数据
320
- };
321
- } else {
322
- // 首屏数据
323
- drawData = {
324
- originData, // 原数据
325
- xAxisData, // 时间数据
326
- candlestickData, // k线数据
327
- mainIndicatorData, // 主图指标线数据
328
- subIndicatorData, // 副图数据
329
- };
330
- }
331
- // 添加一些字段,用于方便使用
332
- drawData.length = drawData.xAxisData.length;
333
- drawData.startTime = drawData.xAxisData[0];
334
- drawData.endTime = drawData.xAxisData[drawData.length - 1];
335
- return drawData;
336
- },
337
- fn: () => {},
338
- });
339
- </script>
340
-
341
- <style lang="scss" scoped></style>
@@ -1,33 +0,0 @@
1
- <template>
2
- <div class="kline-tips">
3
- <div
4
- v-for="(item, index) in data"
5
- :key="index"
6
- class="kline-tips-item"
7
- :style="{ color: item.color }"
8
- >{{ item.label }} {{ item.value }}</div>
9
- </div>
10
- </template>
11
-
12
- <script setup lang="ts">
13
- defineProps({
14
- // 提示数据
15
- data: {
16
- type: Array,
17
- require: true,
18
- },
19
- })
20
- </script>
21
-
22
- <style lang="scss" scoped>
23
- .kline-tips {
24
- width: 100%;
25
- color: #fff;
26
- font-size: 12px;
27
- line-height: 1.5;
28
- &-item {
29
- display: inline-block;
30
- margin-right: 10px;
31
- }
32
- }
33
- </style>
@@ -1,14 +0,0 @@
1
- import { App } from "vue";
2
- import KlineUtils from "./components/KlineUtils/index.vue"
3
- import KlineTips from "./components/KlineTips/index.vue"
4
- import KlineSub from "./components/KlineSub/index.vue"
5
- import KlineSlide from "./components/KlineSlide/index.vue"
6
-
7
- export default {
8
- install(app: App) {
9
- app.component("st-klineUtils", KlineUtils);
10
- app.component("st-klineSub", KlineSub);
11
- app.component("st-klineTips", KlineTips);
12
- app.component("st-klineSlide", KlineSlide);
13
- },
14
- }
@@ -1,208 +0,0 @@
1
- <!-- 图表: 拖拽轴 -->
2
- <script setup>
3
- import dayjs from "dayjs";
4
- import * as echarts from "echarts";
5
- import { debounce } from "st-func";
6
- import { ref, onMounted, onUnmounted, watch, nextTick, inject } from "vue";
7
-
8
- const { request } = inject("stConfig"); // 组件库全局配置
9
-
10
- let sliderChartIns = null;
11
- const sliderChartRef = ref(null);
12
-
13
- const emit = defineEmits(["change"]);
14
- const props = defineProps({
15
- // K线当屏时间范围
16
- screenTimeRange: { type: Array, required: true },
17
- // 品种代码
18
- varietyCode: { type: String, required: true },
19
- // 品种市场类型: 0-期货, 1-股票, 2-期权
20
- varietyStock: { type: Number, required: true },
21
- // 复权选项 [股票]
22
- rightType: { type: [Number, null], default: null },
23
- // 常用选项 [期货]
24
- klineType: { type: [Number, null], default: null },
25
-
26
- // 业务系统相关
27
- deleteFirstNumber: { type: Number, default: 1 }, // 绩效标记
28
- withoutPermission: { type: Number, default: 0 }, // 三方标记(不需要token授权)
29
- });
30
- const klineData = ref({
31
- data: [], // <[开 收 低 高 成交额 涨跌值 涨跌百分比]>
32
- mainIndicator: [],
33
- subIndicator: [],
34
- time: [],
35
- });
36
-
37
- // 获取日线数据
38
- const getData = async () => {
39
- const params = {
40
- varietyCode: props.varietyCode,
41
- cycle: "6",
42
- right: props.varietyStock === 1 ? props.rightType : 0, // 复权方式
43
- contractType: props.varietyStock ? null : props.klineType, // 合约类型
44
- startTime: "1999-01-01 00:00:00",
45
- endTime: dayjs().format("YYYY-MM-DD 23:59:59"),
46
- deleteFirstNumber: props.deleteFirstNumber,
47
- withoutPermission: props.withoutPermission,
48
- };
49
- const { body } = await request.post("/middleLayer/kline/getKline", params);
50
- if (body) {
51
- klineData.value = body;
52
- } else {
53
- klineData.value = { data: [], mainIndicator: [], subIndicator: [], time: [] };
54
- }
55
-
56
- draw("init");
57
- };
58
- // 拖动拖拽轴事件
59
- const handleDataZoomChange = debounce((params) => {
60
- if (!params.dataZoomId) return;
61
- const option = sliderChartIns.getOption();
62
- if (option?.dataZoom[0]) {
63
- const { startValue, endValue } = sliderChartIns.getOption().dataZoom[0];
64
- const { time } = klineData.value;
65
- const startTime = `${time[startValue].split(" ")[0]} 00:00:00`;
66
- const endTime = `${time[endValue].split(" ")[0]} 23:59:59`;
67
- console.log(`检测到拖拽轴被拖动, 时间区间: ${startTime} - ${endTime}`);
68
- emit("change", { startTime, endTime });
69
- } else {
70
- // 未检测到, 便不执行后续逻辑
71
- }
72
- }, 200);
73
- // 重置拖拽轴位置
74
- const reset = debounce(({ startTime, endTime }) => {
75
- draw("reset", { startTime, endTime });
76
- }, 100);
77
-
78
- // 绘制
79
- const draw = (type, params) => {
80
- switch (type) {
81
- // 重渲染
82
- case "init": {
83
- const { data, time } = klineData.value;
84
- const { xAxisData, lineData } = data.reduce(
85
- (result, item, index) => {
86
- result.xAxisData.push(time[index].split(" ")[0]);
87
- result.lineData.push(item[1]);
88
- return result;
89
- },
90
- { xAxisData: [], lineData: [] }
91
- );
92
- const option = {
93
- grid: {
94
- height: 0,
95
- left: "100px",
96
- right: "80px",
97
- },
98
- xAxis: {
99
- type: "category",
100
- data: xAxisData,
101
- show: false,
102
- },
103
- yAxis: {
104
- type: "value",
105
- },
106
- dataZoom: [
107
- {
108
- show: true,
109
- startValue: 0,
110
- endValue: 0,
111
- textStyle: {
112
- color: "#ccc",
113
- },
114
- },
115
- {
116
- type: "inside",
117
- startValue: 0,
118
- endValue: 0,
119
- },
120
- ],
121
- series: [
122
- {
123
- data: lineData,
124
- type: "line",
125
- },
126
- ],
127
- };
128
- sliderChartIns.setOption(option, true);
129
-
130
- // 避免K线主体数据加载快于拖拽轴, 在这里检测一下, 如果K线已加载了那么就重定位一下
131
- if (props.screenTimeRange.length) {
132
- const [startTime, endTime] = props.screenTimeRange;
133
- reset({ startTime, endTime });
134
- }
135
- break;
136
- }
137
- // 根据时间, 更新拖拽轴定位
138
- case "reset": {
139
- const { time } = klineData.value;
140
- const startTime = dayjs(params.startTime).format("YYYY-MM-DD");
141
- const endTime = dayjs(params.endTime).format("YYYY-MM-DD");
142
- let startValue = -1;
143
- let endValue = -1;
144
- for (let index = 0; index < time.length; index++) {
145
- const day = dayjs(time[index]).format("YYYY-MM-DD");
146
- // 跳出循环
147
- if (startValue !== -1 && endValue !== -1) break;
148
- // 找寻对应开始时间的索引
149
- if (startValue === -1) {
150
- if (new Date(day) === new Date(startTime)) startValue = index;
151
- else if (new Date(day) > new Date(startTime)) startValue = index - 1;
152
- }
153
- // 找寻对应结束时间的索引
154
- if (endValue === -1) {
155
- if (new Date(day) === new Date(endTime)) endValue = index;
156
- else if (new Date(day) > new Date(endTime)) endValue = index - 1;
157
- }
158
- }
159
- // 如果没找到结束索引, 直接拉到最后
160
- if (endValue === -1) endValue = time.length - 1;
161
- sliderChartIns.dispatchAction({
162
- type: "dataZoom",
163
- startValue,
164
- endValue,
165
- });
166
- break;
167
- }
168
- }
169
- };
170
-
171
- onMounted(() => {
172
- nextTick(() => {
173
- sliderChartIns = echarts.init(sliderChartRef.value);
174
- sliderChartIns.on("datazoom", handleDataZoomChange);
175
- getData();
176
- });
177
- });
178
- // 监控: [当屏首末时间] => 拖拽轴重定位
179
- watch(
180
- () => props.screenTimeRange,
181
- (newValue) => {
182
- const [startTime, endTime] = newValue;
183
- reset({ startTime, endTime });
184
- },
185
- { deep: true }
186
- );
187
- onUnmounted(() => {
188
- sliderChartIns.off("datazoom");
189
- sliderChartIns.dispose();
190
- });
191
- defineExpose({
192
- resize: debounce(() => sliderChartIns.resize(), 100),
193
- });
194
- </script>
195
-
196
- <template>
197
- <div
198
- class="chart"
199
- ref="sliderChartRef"
200
- />
201
- </template>
202
-
203
- <style lang="scss" scoped>
204
- .chart {
205
- width: 100%;
206
- height: 100%;
207
- }
208
- </style>
@@ -1,36 +0,0 @@
1
- <script setup>
2
- const props = defineProps({
3
- data: {
4
- type: Array,
5
- default: () => [],
6
- },
7
- });
8
- </script>
9
-
10
- <template>
11
- <div class="tips">
12
- <span
13
- v-for="(item, index) in data"
14
- :key="index"
15
- class="item"
16
- :style="{ color: item.color }"
17
- >
18
- {{ item.label }} {{ item.value }}
19
- </span>
20
- </div>
21
- </template>
22
-
23
- <style lang="scss" scoped>
24
- .tips {
25
- color: white;
26
- font-size: 12px;
27
- display: flex;
28
- flex-wrap: wrap;
29
- align-items: center;
30
- .item {
31
- display: flex;
32
- align-items: center;
33
- margin-right: 6px;
34
- }
35
- }
36
- </style>
@@ -1 +0,0 @@
1
- <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1683703238725" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2625" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M198.016 109.738667A77.866667 77.866667 0 0 0 170.666667 167.68l0.512 418.944c0 22.869333 6.4 48 19.029333 75.306667 12.672 27.221333 27.989333 48.938667 45.952 64.938666l211.157333 188.202667c17.066667 15.488 40.576 23.978667 64.938667 23.594667 25.685333-0.085333 47.36-7.936 64.981333-23.594667l211.2-188.202667c17.92-16 33.194667-37.632 45.866667-64.938666 12.672-27.306667 18.773333-52.224 18.517333-74.922667L853.333333 167.253333c0-22.272-8.96-41.472-26.837333-57.472-17.578667-15.616-39.338667-23.893333-64.938667-24.405333l-499.029333 0.469333a93.312 93.312 0 0 0-64.512 23.893334z" fill="#FF0000" p-id="2626"></path><path d="M170.709333 167.722667c0.128-21.76 9.984-42.666667 27.392-57.941334a93.312 93.312 0 0 1 64.469334-23.893333L761.6 85.333333c25.6 0.554667 47.36 8.789333 64.938667 24.405334 17.92 16 26.88 35.2 26.88 57.472l-0.554667 419.84c0.298667 22.698667-5.845333 47.616-18.517333 74.922666-12.629333 27.306667-27.946667 48.896-45.824 64.896l-211.242667 188.202667c-17.578667 15.701333-39.253333 23.509333-64.938667 23.594667a94.72 94.72 0 0 1-64.981333-23.594667l-211.157333-188.16c-17.92-16.042667-33.28-37.717333-45.909334-64.981333-12.672-27.306667-19.029333-52.394667-19.029333-75.306667L170.666667 167.722667z m42.666667 0.256l0.554667 418.688c0 16.213333 4.821333 35.328 15.018666 57.344 10.368 22.272 22.357333 39.210667 35.626667 51.072l211.413333 188.416c8.96 8.106667 21.888 12.8 36.224 12.544 15.530667-0.042667 27.093333-4.266667 36.693334-12.8l211.157333-188.117334c13.312-11.946667 25.301333-28.842667 35.584-51.072 10.112-21.845333 14.762667-40.576 14.506667-57.045333l0.554666-419.754667c0-9.898667-3.584-17.621333-12.458666-25.6a54.698667 54.698667 0 0 0-36.608-13.610666l-499.626667 0.469333a51.328 51.328 0 0 0-35.754667 13.312 36.565333 36.565333 0 0 0-12.501333 21.461333l-0.426667 4.693334z" fill="#AE0000" p-id="2627"></path><path d="M384 654.122667h153.514667c96.768 0 142.762667-48.981333 142.762666-117.077334 0-59.733333-33.450667-88.405333-84.821333-97.962666v-1.792c48.981333-15.530667 66.901333-46.592 66.901333-89.6 0-65.109333-40.618667-103.338667-134.997333-103.338667H384v409.770667z m72.874667-54.954667v-131.413333h66.304c51.968 0 80.042667 17.92 80.042666 65.109333 0 44.8-26.282667 66.304-75.861333 66.304h-70.485333z m0-180.394667V298.709333h60.330666c47.189333 0 72.277333 14.933333 72.277334 59.136 0 46.592-32.256 60.928-75.264 60.928h-57.344z" fill="#FFFFFF" p-id="2628"></path></svg>
@@ -1 +0,0 @@
1
- <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1683703241664" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2777" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M198.016 109.738667A77.866667 77.866667 0 0 0 170.666667 167.68l0.512 418.944c0 22.869333 6.4 48 19.029333 75.306667 12.672 27.221333 27.989333 48.938667 45.952 64.938666l211.157333 188.202667c17.066667 15.488 40.576 23.978667 64.938667 23.594667 25.685333-0.085333 47.36-7.936 64.981333-23.594667l211.2-188.202667c17.92-16 33.194667-37.632 45.866667-64.938666 12.672-27.306667 18.773333-52.224 18.517333-74.922667L853.333333 167.253333c0-22.272-8.96-41.472-26.837333-57.472-17.578667-15.616-39.338667-23.893333-64.938667-24.405333l-499.029333 0.469333a93.312 93.312 0 0 0-64.512 23.893334z" fill="#54AB30" p-id="2778"></path><path d="M170.666667 167.68c0.128-21.76 9.941333-42.666667 27.349333-57.941333a93.312 93.312 0 0 1 64.512-23.893334L761.557333 85.333333c25.6 0.554667 47.36 8.789333 64.938667 24.405334 17.92 16 26.837333 35.2 26.837333 57.472l-0.512 419.84c0.298667 22.656-5.845333 47.616-18.517333 74.88-12.672 27.306667-27.946667 48.938667-45.866667 64.938666l-211.2 188.202667c-17.621333 15.658667-39.253333 23.509333-64.981333 23.594667a94.72 94.72 0 0 1-64.938667-23.594667l-211.2-188.202667c-17.92-16-33.237333-37.717333-45.909333-64.938666-12.629333-27.306667-19.029333-52.437333-19.029333-75.306667L170.666667 167.68z m42.624 0.256l0.554666 418.688c0 16.170667 4.864 35.328 15.061334 57.344 10.368 22.272 22.314667 39.168 35.626666 51.029333l211.413334 188.416c8.96 8.106667 21.888 12.8 36.224 12.586667 15.530667-0.042667 27.093333-4.266667 36.693333-12.8l211.114667-188.16c13.354667-11.946667 25.301333-28.842667 35.626666-51.072 10.112-21.76 14.762667-40.533333 14.506667-57.002667L810.666667 167.210667c0-9.898667-3.584-17.621333-12.501334-25.6A54.698667 54.698667 0 0 0 761.6 128l-499.626667 0.469333a51.328 51.328 0 0 0-35.754666 13.269334 36.565333 36.565333 0 0 0-12.501334 21.504l-0.426666 4.693333z" fill="#388D14" p-id="2779"></path><path d="M506.453333 674.730667c99.157333 0 146.346667-48.384 146.346667-126.037334 0-72.874667-38.826667-99.754667-103.338667-118.272l-38.229333-11.946666c-40.618667-11.349333-52.565333-25.088-52.565333-57.344 0-32.853333 23.893333-50.773333 66.901333-50.773334 45.397333 0 78.848 9.557333 104.533333 20.309334V273.322667c-22.698667-11.946667-51.968-22.101333-105.728-22.101334-92.586667 0-137.386667 47.189333-137.386666 116.48 0 69.290667 35.242667 100.352 93.184 116.48l38.826666 10.752c44.8 13.738667 59.733333 26.88 59.733334 60.928 0 37.034667-23.296 59.733333-78.250667 59.733334-44.8 0-83.626667-10.752-116.48-25.088v57.941333c28.074667 14.933333 68.693333 26.282667 122.453333 26.282667z" fill="#FFFFFF" p-id="2780"></path></svg>
@@ -1 +0,0 @@
1
- <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1683703228202" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3078" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M198.016 109.738667A77.866667 77.866667 0 0 0 170.666667 167.68l0.512 418.944c0 22.869333 6.4 48 19.029333 75.306667 12.672 27.221333 27.989333 48.938667 45.952 64.938666l211.157333 188.202667c17.066667 15.488 40.576 23.978667 64.938667 23.594667 25.685333-0.085333 47.36-7.936 64.981333-23.594667l211.2-188.202667c17.92-16 33.194667-37.632 45.866667-64.938666 12.672-27.306667 18.773333-52.224 18.517333-74.922667L853.333333 167.253333c0-22.272-8.96-41.472-26.837333-57.472-17.578667-15.616-39.338667-23.893333-64.938667-24.405333l-499.029333 0.469333a93.312 93.312 0 0 0-64.512 23.893334z" fill="#C880FF" p-id="3079"></path><path d="M170.666667 167.68c0.128-21.76 9.941333-42.666667 27.349333-57.941333a93.312 93.312 0 0 1 64.512-23.893334L761.557333 85.333333c25.6 0.554667 47.36 8.789333 64.938667 24.405334 17.92 16 26.837333 35.2 26.837333 57.472l-0.512 419.84c0.298667 22.656-5.845333 47.616-18.517333 74.88-12.672 27.306667-27.946667 48.938667-45.866667 64.938666l-211.2 188.202667c-17.621333 15.658667-39.253333 23.509333-64.981333 23.594667a94.72 94.72 0 0 1-64.938667-23.594667l-211.2-188.202667c-17.92-16-33.237333-37.717333-45.909333-64.938666-12.629333-27.306667-19.029333-52.437333-19.029333-75.306667L170.666667 167.68z m42.624 0.256l0.554666 418.688c0 16.170667 4.864 35.328 15.061334 57.344 10.368 22.272 22.314667 39.168 35.626666 51.029333l211.413334 188.416c8.96 8.106667 21.888 12.8 36.224 12.586667 15.530667-0.042667 27.093333-4.266667 36.693333-12.8l211.114667-188.16c13.354667-11.946667 25.301333-28.842667 35.626666-51.072 10.112-21.76 14.762667-40.533333 14.506667-57.002667L810.666667 167.210667c0-9.898667-3.584-17.621333-12.501334-25.6A54.698667 54.698667 0 0 0 761.6 128l-499.626667 0.469333a51.328 51.328 0 0 0-35.754666 13.269334 36.565333 36.565333 0 0 0-12.501334 21.504l-0.426666 4.693333z" fill="#AE44FF" p-id="3080"></path><path d="M475.306667 658.218667h73.472V306.389333h116.48V248.448h-307.626667v57.941333h117.674667z" fill="#FFFFFF" p-id="3081"></path></svg>
@@ -1,8 +0,0 @@
1
- import { App } from "vue";
2
- import StKlinePlus from "./index.vue";
3
-
4
- export default {
5
- install(app: App) {
6
- app.component("st-klinePlus", StKlinePlus);
7
- },
8
- }