st-comp 0.0.247 → 0.0.249

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 (170) hide show
  1. package/components.d.ts +1 -0
  2. package/es/ChartLayout.js +4 -4
  3. package/es/CustomFunction.cjs +2 -2
  4. package/es/CustomFunction.js +72 -70
  5. package/es/FactorWarning.cjs +1 -1
  6. package/es/FactorWarning.js +36 -35
  7. package/es/Kline.cjs +1 -1
  8. package/es/Kline.js +20 -19
  9. package/es/KlineBasic.cjs +1 -1
  10. package/es/KlineBasic.js +30 -28
  11. package/es/KlineConfig.cjs +1 -1
  12. package/es/KlineConfig.js +50 -49
  13. package/es/KlineNew.cjs +1 -1
  14. package/es/KlineNew.js +19 -18
  15. package/es/KlinePlus.cjs +4 -4
  16. package/es/KlinePlus.js +590 -575
  17. package/es/MonacoEditor.cjs +1 -1
  18. package/es/MonacoEditor.js +28 -26
  19. package/es/Pagination.cjs +1 -1
  20. package/es/Pagination.js +77 -76
  21. package/es/PasswordPrompt.cjs +1 -1
  22. package/es/PasswordPrompt.js +3 -3
  23. package/es/Table.cjs +1 -1
  24. package/es/Table.js +38 -37
  25. package/es/User.cjs +1 -1
  26. package/es/User.js +143 -141
  27. package/es/VarSelectDialog.cjs +2 -2
  28. package/es/VarSelectDialog.js +29 -27
  29. package/es/VarietyAiHelper.cjs +4 -0
  30. package/es/VarietyAiHelper.js +270 -0
  31. package/es/VarietyAutoComplete.cjs +1 -1
  32. package/es/VarietyAutoComplete.js +13 -12
  33. package/es/VarietySearch.cjs +10 -10
  34. package/es/VarietySearch.js +70 -68
  35. package/es/{VarietySelect-2fd501da.cjs → VarietySelect-5c845562.cjs} +1 -1
  36. package/es/{VarietySelect-5a9dd50b.js → VarietySelect-9f267958.js} +4 -4
  37. package/es/VarietyTextCopy.cjs +1 -1
  38. package/es/VarietyTextCopy.js +24 -22
  39. package/es/VirtualTable.cjs +1 -1
  40. package/es/VirtualTable.js +70 -70
  41. package/es/{_initCloneObject-3823a101.cjs → _initCloneObject-2b82e9f7.cjs} +1 -1
  42. package/es/{_initCloneObject-c34c65bc.js → _initCloneObject-69c8ae23.js} +3 -3
  43. package/es/aiTools.js +36 -0
  44. package/es/{base-a5af3db3.js → base-29f73b05.js} +2 -2
  45. package/es/{castArray-7741a212.js → castArray-609a313e.js} +1 -1
  46. package/es/{config-provider-2182708a.cjs → config-provider-2ae47cc8.cjs} +1 -1
  47. package/es/{config-provider-06a63185.js → config-provider-7860903c.js} +4 -4
  48. package/es/{debounce-8d53f4dd.js → debounce-a09ce9a3.js} +1 -1
  49. package/es/{dropdown-302f71e7.js → dropdown-497442b7.js} +20 -19
  50. package/es/dropdown-eba9eaf5.cjs +1 -0
  51. package/es/{el-autocomplete-ed75a659.js → el-autocomplete-27c60cc8.js} +18 -17
  52. package/es/el-autocomplete-b59eb529.cjs +1 -0
  53. package/es/{el-button-68baab7b.cjs → el-button-974ff9e9.cjs} +1 -1
  54. package/es/{el-button-d09ff85f.js → el-button-e2c63c08.js} +4 -4
  55. package/es/el-checkbox-08185353.cjs +1 -0
  56. package/es/{el-checkbox-64648e02.js → el-checkbox-71ebd862.js} +4 -4
  57. package/es/el-dialog-1b185570.cjs +1 -0
  58. package/es/{el-dialog-6a80e3d8.js → el-dialog-eedcfd3e.js} +6 -6
  59. package/es/{el-divider-4e059794.js → el-divider-523e5874.js} +1 -1
  60. package/es/{el-empty-33cb66f1.js → el-empty-f5a1607a.js} +3 -3
  61. package/es/{el-form-item-4eca95be.js → el-form-item-bdcfd297.js} +8 -8
  62. package/es/{el-form-item-4076e55f.cjs → el-form-item-c997b4fa.cjs} +1 -1
  63. package/es/{el-input-cae60510.js → el-input-d47281da.js} +68 -68
  64. package/es/el-input-fa18ef84.cjs +1 -0
  65. package/es/el-input-number-3d94fa58.cjs +1 -0
  66. package/es/{el-input-number-c2499410.js → el-input-number-c8018cb1.js} +15 -15
  67. package/es/{el-loading-c738468d.js → el-loading-0cd81d05.js} +2 -2
  68. package/es/{el-loading-05826e64.cjs → el-loading-969a79ca.cjs} +1 -1
  69. package/es/el-menu-item-26071fd6.cjs +1 -0
  70. package/es/{el-menu-item-f904f685.js → el-menu-item-dac65bb3.js} +18 -17
  71. package/es/el-message-0ea8fbf8.cjs +1 -0
  72. package/es/el-message-4ed993c7.js +1 -0
  73. package/es/el-message-box-31e0aa98.cjs +1 -0
  74. package/es/{el-message-box-05d8cf39.js → el-message-box-fea4fca8.js} +11 -11
  75. package/es/{el-overlay-cc9bc792.js → el-overlay-1ee0338d.js} +19 -19
  76. package/es/el-overlay-ea65cb05.cjs +1 -0
  77. package/es/{el-popconfirm-a6f66a0e.js → el-popconfirm-089b8bec.js} +21 -20
  78. package/es/el-popconfirm-9e232436.cjs +1 -0
  79. package/es/el-popper-2d3914e4.cjs +1 -0
  80. package/es/el-popper-c9b3d3cf.js +1662 -0
  81. package/es/el-segmented-140ac042.cjs +1 -0
  82. package/es/{el-segmented-51b1c797.js → el-segmented-9d3a9e11.js} +4 -4
  83. package/es/el-select-a11f33e8.cjs +1 -0
  84. package/es/{el-select-1b149fab.js → el-select-e51e11c1.js} +44 -43
  85. package/es/{el-table-column-3e30ebae.js → el-table-column-05d292a8.js} +25 -24
  86. package/es/el-table-column-98570a4d.cjs +14 -0
  87. package/es/{el-tag-0a25efdf.js → el-tag-17cd04a1.js} +13 -13
  88. package/es/el-tag-6d8e653e.cjs +1 -0
  89. package/es/{el-text-73d899ff.js → el-text-2710fff3.js} +2 -2
  90. package/es/{el-text-1470de46.cjs → el-text-a18106cb.cjs} +1 -1
  91. package/es/{index-42e59bf5.js → index-0ee486ad.js} +3 -3
  92. package/es/index-0f79095c.js +440 -0
  93. package/es/{index-6806997d.js → index-1d9b50de.js} +3 -3
  94. package/es/index-28e03bad.cjs +1 -0
  95. package/es/{index-269b22da.cjs → index-299ee017.cjs} +1 -1
  96. package/es/{index-cebc7160.cjs → index-33f80550.cjs} +1 -1
  97. package/es/{index-4f48940d.cjs → index-37b8d3c6.cjs} +1 -1
  98. package/es/{index-2375023e.cjs → index-5befc414.cjs} +4 -4
  99. package/es/{index-696b6a94.cjs → index-6b99def3.cjs} +1 -1
  100. package/es/index-6ca95c8a.cjs +1 -0
  101. package/es/index-7dce9f59.cjs +1 -0
  102. package/es/{index-960806da.js → index-8391a3df.js} +3 -3
  103. package/es/{index-ac98a4d8.js → index-8f9d0d17.js} +16 -15
  104. package/es/{index-94e43e0d.js → index-95e5d454.js} +3 -3
  105. package/es/{index-4194c942.js → index-b0117ba2.js} +2 -2
  106. package/es/{index-6e967429.js → index-bcd895a0.js} +3 -3
  107. package/es/{index-87b4bf61.js → index-c2b9bbfd.js} +95 -65
  108. package/es/{index-54d289d1.js → index-c71e37dc.js} +11 -11
  109. package/es/{index-d77a7336.js → index-de24705f.js} +1 -1
  110. package/es/index-e8eeea22.cjs +1 -0
  111. package/es/{index-ee977f79.cjs → index-eb99b188.cjs} +1 -1
  112. package/es/{el-message-0df23ae7.js → index-f30561d3.js} +17 -17
  113. package/es/{python-c67c8901.cjs → python-27ece6fa.cjs} +2 -2
  114. package/es/{python-a914569a.js → python-656db04f.js} +30 -28
  115. package/es/{raf-80ef0c0a.js → raf-744cf95a.js} +1 -1
  116. package/es/{scroll-679bd6bf.js → scroll-6799bafc.js} +1 -1
  117. package/es/style.css +1 -1
  118. package/es/{use-form-common-props-47e50c10.js → use-form-common-props-cb0ca65c.js} +41 -41
  119. package/es/{use-form-common-props-344056f9.cjs → use-form-common-props-d3ed62c6.cjs} +1 -1
  120. package/es/{use-global-config-cf78ebac.cjs → use-global-config-c80f33a4.cjs} +1 -1
  121. package/es/{use-global-config-f52caea0.js → use-global-config-cdaeca54.js} +4 -4
  122. package/es/{validator-3cad04b2.cjs → validator-07160325.cjs} +1 -1
  123. package/es/{validator-94c04152.js → validator-4ab9774f.js} +1 -1
  124. package/es/{vnode-5ddb7ed1.js → vnode-a83e6de8.js} +1 -1
  125. package/es/{zh-cn-aabfaa94.cjs → zh-cn-6a0f844c.cjs} +1 -1
  126. package/es/{zh-cn-4921961d.js → zh-cn-8a6390a4.js} +2 -2
  127. package/lib/aiTools.js +36 -0
  128. package/lib/bundle.js +1 -1
  129. package/lib/bundle.umd.cjs +188 -185
  130. package/lib/{index-750ede1b.js → index-6ac0579e.js} +20224 -19939
  131. package/lib/{python-e34a2958.js → python-0432340a.js} +1 -1
  132. package/lib/style.css +1 -1
  133. package/package.json +1 -1
  134. package/packages/KlinePlus/index.vue +88 -62
  135. package/packages/VarietyAiHelper/index.ts +8 -0
  136. package/packages/VarietyAiHelper/index.vue +430 -0
  137. package/packages/index.ts +2 -0
  138. package/public/aiTools.js +36 -0
  139. package/src/App.vue +21 -0
  140. package/src/pages/KlineNew/components/KlineAction/mockApi/index.js +1 -1
  141. package/src/pages/KlineNew/components/KlineBasic/utils.js +1 -1
  142. package/src/pages/KlineNew/components/KlineSlide/utils.js +1 -1
  143. package/src/pages/KlinePlus/KlineDialog/MultiCycle.vue +312 -0
  144. package/src/pages/KlinePlus/KlineDialog/api.js +108 -0
  145. package/src/pages/KlinePlus/KlineDialog/index.vue +582 -0
  146. package/src/pages/KlinePlus/KlineDialog/indicator.js +109 -0
  147. package/src/pages/KlinePlus/KlineDialog/tools.js +86 -0
  148. package/src/pages/KlinePlus/index.vue +23 -209
  149. package/src/pages/VarietyAiHelper/index.vue +20 -0
  150. package/src/pages/VarietySearch/index.vue +75 -51
  151. package/src/router/routes.ts +5 -0
  152. package/es/dropdown-89b74bc9.cjs +0 -1
  153. package/es/el-autocomplete-b9a3054a.cjs +0 -1
  154. package/es/el-checkbox-b982e2ef.cjs +0 -1
  155. package/es/el-dialog-ad7309e9.cjs +0 -1
  156. package/es/el-input-172c49f8.cjs +0 -1
  157. package/es/el-input-number-c2e71528.cjs +0 -1
  158. package/es/el-menu-item-7f986598.cjs +0 -1
  159. package/es/el-message-a86c0efa.cjs +0 -1
  160. package/es/el-message-box-40ff2af5.cjs +0 -1
  161. package/es/el-overlay-d7a6e4a9.cjs +0 -1
  162. package/es/el-popconfirm-737a015b.cjs +0 -1
  163. package/es/el-popper-7ba87e05.cjs +0 -1
  164. package/es/el-popper-a38874f4.js +0 -2094
  165. package/es/el-segmented-3fd66a0e.cjs +0 -1
  166. package/es/el-select-12f6deb7.cjs +0 -1
  167. package/es/el-table-column-516a0ed9.cjs +0 -14
  168. package/es/el-tag-789f05d3.cjs +0 -1
  169. package/es/index-8de94a49.cjs +0 -1
  170. package/es/index-c04f444f.cjs +0 -1
package/es/KlinePlus.cjs CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";require("./base-ef747d02.cjs");const Te=require("./el-loading-05826e64.cjs"),ge=require("./el-empty-1697ded8.cjs");require("./el-tag-789f05d3.cjs");const ze=require("./el-select-12f6deb7.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./el-popper-7ba87e05.cjs");const t=require("vue"),L=require("./dayjs.min-2c20abe6.cjs"),Ie=require("echarts"),G=require("./index-8901a38c.cjs"),se=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-global-config-cf78ebac.cjs");require("./use-form-common-props-344056f9.cjs");require("./index-9780a537.cjs");require("./index-cebc7160.cjs");require("./index-bb833443.cjs");require("./index-4f48940d.cjs");require("./index-8de94a49.cjs");require("./index-696b6a94.cjs");require("./castArray-35947698.cjs");require("./index-c04f444f.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");function Ye(i){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const c in i)if(c!=="default"){const s=Object.getOwnPropertyDescriptor(i,c);Object.defineProperty(l,c,s.get?s:{enumerable:!0,get:()=>i[c]})}}return l.default=i,Object.freeze(l)}const ae=Ye(Ie),Le="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",me="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",Ae="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",{round:fe}=G.x,Z={minValueSpan:5,maxValueSpan:2e3,loadCheckCount:500,loadAddCount:2e3},pe={1:240,2:48,3:16,4:8,5:4,6:1,7:.2,8:.033},ye=({startTime:i,endTime:l,cycle:c,type:s="end"})=>{const{maxValueSpan:z}=Z,p=Math.ceil((z+1e3)/pe[c]),T=L.dayjs(i);if(L.dayjs(l).diff(T,"day")<=p)return[i,l];if(s==="end")return[L.dayjs(l).subtract(p,"day").format("YYYY-MM-DD HH:mm:ss"),l];if(s==="middle"){const k=L.dayjs((L.dayjs(i).valueOf()+L.dayjs(l).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",k,p/2),[L.dayjs(k).subtract(p/2,"day").format("YYYY-MM-DD HH:mm:ss"),L.dayjs(k).add(p/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},we=(i,l)=>{const c=i[l],s=l===0?i[l]:i[l-1];return c[0]===c[1]?c[0]>=s[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:c[1]>c[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},xe=(i,l,c)=>{var z,p,T,D;const s=i.subIndicator.map(e=>{if(e.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:e.data.map((k,P)=>e.seriesColor==="kline"?{value:k,itemStyle:we(i.data,P)}:e.seriesColor==="value"?{value:k,itemStyle:{color:k>=0?"#FF0000":"#00FFFF"}}:{value:k,itemStyle:{color:e.seriesColor}})};if(e.series==="line")return{xAxisIndex:0,yAxisIndex:e.yAxis==="right"?2:1,name:e.key,type:"line",silent:!0,symbol:"none",data:e.data,lineStyle:{width:1},itemStyle:{color:e.color}}});return{animation:!1,grid:{top:"10px",left:"60px",right:"20px",bottom:"10px"},dataZoom:[{type:"inside",startValue:l,endValue:c,maxValueSpan:Z.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:e=>{const{axisDimension:k,value:P}=e;if(k==="x")return null;if(e.axisIndex===1)return String(fe(P))}}},xAxis:{type:"category",data:i.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((z=i.subIndicator[0])==null?void 0:z.leftYAxisRange)==="cover"?e=>e.min:null,max:((p=i.subIndicator[0])==null?void 0:p.leftYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((T=i.subIndicator[0])==null?void 0:T.rightYAxisRange)==="cover"?e=>e.min:null,max:((D=i.subIndicator[0])==null?void 0:D.rightYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:s}},oe=(i,l,c="strict")=>{let s=0,z=i.length-1,p=-1;for(;s<=z;){let T=Math.floor((s+z)/2);if(c==="strict"){if(i[T]===l)return T;i[T]<l?s=T+1:z=T-1}else c==="gte"&&(i[T]>=l?(p=T,z=T-1):s=T+1)}return c==="strict"?-1:p},Oe=i=>{const l=[];return i.reduce((c,s)=>{const z=`${s.coord[0]}+${s.label.position}`,p=s.label.position==="top"?-16:16,T=c.get(z);return T?(c.set(z,T+1),s.symbolOffset[1]=p*(T+1)):(c.set(z,1),s.symbolOffset[1]=s.label.position==="top"?-7:7),l.push(s),c},new Map),l},de=(i,l)=>({data:[...i.data,...l.data.slice(1)],mainIndicator:i.mainIndicator.map((c,s)=>({...c,data:[...c.data,...l.mainIndicator[s].data.slice(1)]})),subIndicator:i.subIndicator.map((c,s)=>({...c,data:[...c.data,...l.subIndicator[s].data.slice(1)]})),time:[...i.time,...l.time.slice(1)]}),re=(i,l,c)=>{switch(c){case"5":{let I=[...new Set(i.slice(-20).map(y=>{const o=new Date(y),g=String(o.getHours()).padStart(2,"0"),d=String(o.getMinutes()).padStart(2,"0"),C=String(o.getSeconds()).padStart(2,"0");return`${g}:${d}:${C}`}))];I.includes("00:00:00")&&(I.splice(I.indexOf("00:00:00"),1),I.push("24:00:00")),I=I.sort((y,o)=>new Date(`2000-01-30 ${y}`).getTime()-new Date(`2000-01-30 ${o}`).getTime());const x=new Date(l),N=x.getFullYear(),j=String(x.getMonth()+1).padStart(2,"0"),n=String(x.getDate()).padStart(2,"0"),O=String(x.getHours()).padStart(2,"0"),m=String(x.getMinutes()).padStart(2,"0"),M=String(x.getSeconds()).padStart(2,"0");if(`${O}:${m}:${M}`=="00:00:00")return`${N}-${j}-${n} 01:00:00`;{let y=null;for(let o=0;o<I.length;o++){const g=I[o].split(":");if(+`${g[0]}${g[1]}${g[2]}`>=+`${O}${m}${M}`){y=I[o];break}}if(y==="24:00:00"){const o=new Date(l);o.setDate(o.getDate()+1);const g=o.getFullYear(),d=String(o.getMonth()+1).padStart(2,"0"),C=String(o.getDate()).padStart(2,"0");return`${g}-${d}-${C} 00:00:00`}return`${N}-${j}-${n} ${y}`}}case"6":{const I=new Date(l),x=I.getHours();if(x>=4&&x<21){const N=I.getFullYear(),j=String(I.getMonth()+1).padStart(2,"0"),n=String(I.getDate()).padStart(2,"0");return`${N}-${j}-${n} 09:00:00`}else{const N=new Date(l);N.getHours()>=21&&N.setDate(N.getDate()+1);const j=N.getFullYear(),n=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0"),m=`${j}-${n}-${O} 09:00:00`,M=oe(i,m,"gte");return M===-1?m:i[M]}}case"7":{const I=new Date(l),x=new Date(I);x.setDate(I.getDate()-I.getDay()),x.setHours(0,0,0,0);const N=new Date(x);N.setDate(x.getDate()+5),N.setHours(23,59,59,0);const j=new Date(x);j.setDate(x.getDate()+12),j.setHours(9,0,0,0);const n=I<=N?N:j,O=n.getFullYear(),m=String(n.getMonth()+1).padStart(2,"0"),M=String(n.getDate()).padStart(2,"0");return`${O}-${m}-${M} 09:00:00`}case"8":{const I=new Date(l),x=new Date(I.getFullYear(),I.getMonth()+1,1),N=new Date(x);N.setDate(x.getDate()-1),N.setHours(9,0,0,0);const j=N.getFullYear(),n=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0");return`${j}-${n}-${O} 09:00:00`}}const s=new Date(l),z=s.getFullYear(),p=s.getMonth(),T=s.getDate(),D=s.getHours(),e=s.getMinutes(),k=s.getSeconds(),P=I=>{let x=null;const N=Math.floor(e/I);e%I===0&&k===0?x=e:x=(N+1)*I;const j=Math.floor(x/60),n=D+j,O=x%60,m=new Date(z,p,T,n,O,0),M=S=>String(S).padStart(2,"0"),y=m.getFullYear(),o=M(m.getMonth()+1),g=M(m.getDate()),d=M(m.getHours()),C=M(m.getMinutes());return`${y}-${o}-${g} ${d}:${C}:00`};switch(c){case"1":return P(1);case"2":return P(5);case"3":return P(15);case"4":return P(30);default:throw new Error(`Unsupported cycle: ${l} ${c}`)}},ie=(i,l,c)=>{let s=null,z=null;const[p,T]=l;switch(c){case"6":{s=i.find(D=>new Date(L.dayjs(D).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(p).getTime()),z=i.findLast(D=>new Date(L.dayjs(D).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(T).getTime());break}case"7":{const D=L.dayjs(T).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");s=i.find(e=>L.dayjs(e).endOf("week").add(1,"day").format("YYYY-MM-DD")===L.dayjs(p).endOf("week").add(1,"day").format("YYYY-MM-DD")),z=i.findLast(e=>new Date(e).getTime()<=new Date(D).getTime());break}case"8":{s=i.find(D=>L.dayjs(D).format("YYYY-MM")===L.dayjs(p).format("YYYY-MM")),z=i.findLast(D=>L.dayjs(D).format("YYYY-MM")===L.dayjs(T).format("YYYY-MM"));break}default:s=i.find(D=>new Date(D).getTime()>=new Date(p).getTime()),z=i.findLast(D=>new Date(D).getTime()<=new Date(T).getTime())}return[s,z]},Ce=(i,l,c,s,z,p)=>{const T=(N,j)=>{const{direction:n="",tradeAction:O="",tradeType:m=""}=N,M=m??n+O;switch(j){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(M);case 1:return m??n+O}},D=(N,j,n,O)=>N.reduce((m,M)=>{var F;const y=T(M,0),o=N.filter(B=>B.klineTime===M.klineTime),g=[...new Set(o.map(B=>T(B,0)))];let d=null;g.length>1?d="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:d="image://"+new URL(Object.assign({"./images/buy.svg":Le,"./images/sell.svg":me,"./images/t.svg":Ae})[`./images/${y==="买"?"buy":"sell"}.svg`],self.location).href;const C=oe(n,M.klineTime),S=(F=O[C])==null?void 0:F[3];return j.forEach(B=>{var W;const U=y==="买"?0:1;B.range[U]===M.klineTime&&(B.rangeValue[U]=(W=O[C])==null?void 0:W[y==="买"?2:3])}),m.push({symbol:d,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[M.klineTime,S],silent:!0,animation:!1,customData:{tradeType:y,amount:M.amount,part:M.part,profitAndLoss:M.profitAndLoss,openPriceAll:M.openPriceAll,closePriceAll:M.closePriceAll}}),m},[]),e=(N,j,n,O)=>{const{sellBuyByPrice:m}=p,M=N.reduce((y,o,g)=>{var F,B;const d=T(o,1),C=["开多","开空"].includes(d)?"top":"bottom";let S=null;if(m)S=C==="top"?(o.openPriceAll/o.amount).toFixed(2):(o.closePriceAll/o.amount).toFixed(2);else{const U=oe(n,o.klineTime);S=C==="top"?(F=O[U])==null?void 0:F[3]:(B=O[U])==null?void 0:B[2]}return j.forEach(U=>{(C==="top"?U.range[0]:U.range[1])===o.klineTime&&(U.rangeValue[C==="top"?0:1]=S)}),y.push({symbol:"triangle",symbolSize:[10,12],symbolRotate:C==="top"?180:0,symbolOffset:[0,0],label:{show:!0,position:C,color:"#fff",formatter:`${d} ${C==="top"?"+":"-"} ${o.amount}手 ${o.part?`(${o.part}份)`:""}`},itemStyle:{color:C==="top"?"#FF0000":"#389e0d"},coord:[o.klineTime,S],silent:!0,animation:!1,customData:{tradeType:d,amount:o.amount,part:o.part,profitAndLoss:o.profitAndLoss,openPriceAll:o.openPriceAll,closePriceAll:o.closePriceAll}}),y},[]);return m?M:Oe(M)},k=(N,j,n)=>{const{basePointData:O,baseLineData:m}=N.reduce((g,d)=>{const C={pointTime:d.openTime,tradeAction:"开",tradeDirection:d.tradeDirection?"空":"多",tradeType:`开${d.tradeDirection?"空":"多"}`,part:null,amount:d.tradeVolume,profitAndLoss:d.profitAndLoss,openPriceAll:d.openPrice*d.tradeVolume,closePriceAll:d.closePrice*d.tradeVolume,klineTime:re(n,d.openTime,j)},S={pointTime:d.closeTime,tradeAction:"平",tradeDirection:d.tradeDirection?"空":"多",tradeType:`平${d.tradeDirection?"空":"多"}`,part:null,amount:d.tradeVolume,profitAndLoss:d.profitAndLoss,openPriceAll:d.openPrice*d.tradeVolume,closePriceAll:d.closePrice*d.tradeVolume,klineTime:re(n,d.closeTime,j)},F={range:[C.klineTime,S.klineTime],rangeValue:[null,null],color:S.profitAndLoss>0?"#FF0000":"#389e0d"};return g.basePointData.push(C,S),g.baseLineData.push(F),g},{basePointData:[],baseLineData:[]}),y=[...O.reduce((g,d)=>{const C=JSON.parse(JSON.stringify(d)),S=C.klineTime+C.tradeType;if(g.has(S)){const F=g.get(S);C.amount+=F.amount,C.part+=F.part,C.profitAndLoss+=F.profitAndLoss,C.openPriceAll+=F.openPriceAll,C.closePriceAll+=F.closePriceAll}return g.set(S,C),g},new Map([])).values()].sort((g,d)=>new Date(g.klineTime)-new Date(d.klineTime)),o=m.filter(({range:g})=>g[0]!==g[1]);return{pointData:y,lineData:o}},{pointData:P,lineData:I}=k(i,l,s);return{tradePointData:(c===0?D:e)(P,I,s,z),tradeLineData:I.map(({range:N,rangeValue:j,color:n})=>[{symbol:"none",coord:[N[0],j[0]],lineStyle:{color:n,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[N[1],j[1]],silent:!0,animation:!1}])}},be=(i,l)=>{let c=[];if(Number(l)<=5)c=i.map(({tradeDate:s,netPositionValue:z})=>[L.dayjs(s).format("YYYY-MM-DD HH:mm:ss"),z]);else if(Number(l)===6){const s=i.reduce((z,p)=>{const{tradeDate:T,netPositionValue:D}=p;return z.set(L.dayjs(T).format("YYYY-MM-DD 09:00:00"),D),z},new Map);c=Array.from(s,([z,p])=>[z,p])}else c=[];return{netPositionLineData:c}},he=(i,l,c,s)=>{let z=[];if(["6","7","8"].includes(l)){const p=i.reduce((T,D)=>{const e=re(s,D.date,l),k=D[c===0?"simple":"compound"];return T.set(e,k),T},new Map);z=Array.from(p,([T,D])=>[T,D])}else z=[];return{tradeIncomeRateLineData:z}};const ke={class:"tips"},Ee={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(i){return(l,c)=>(t.openBlock(),t.createElementBlock("div",ke,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.data,(s,z)=>(t.openBlock(),t.createElementBlock("span",{key:z,class:"item",style:t.normalizeStyle({color:s.color})},t.toDisplayString(s.label)+" "+t.toDisplayString(s.value),5))),128))]))}},ne=se._export_sfc(Ee,[["__scopeId","data-v-df1caefe"]]);const ve={__name:"SliderChart",props:{screenTimeRange:{type:Array,required:!0},varietyCode:{type:String,required:!0},varietyStock:{type:Number,required:!0},rightType:{type:[Number,null],default:null},klineType:{type:[Number,null],default:null},deleteFirstNumber:{type:Number,default:1},withoutPermission:{type:Number,default:0}},emits:["change"],setup(i,{expose:l,emit:c}){const{request:s}=t.inject("stConfig");let z=null;const p=t.ref(null),T=c,D=i,e=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),k=async()=>{const N={varietyCode:D.varietyCode,cycle:"6",right:D.varietyStock===1?D.rightType:0,contractType:D.varietyStock?null:D.klineType,startTime:"1999-01-01 00:00:00",endTime:L.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:D.deleteFirstNumber,withoutPermission:D.withoutPermission},{body:j}=await s.post("/middleLayer/kline/getKline",N);j?e.value=j:e.value={data:[],mainIndicator:[],subIndicator:[],time:[]},x("init")},P=G.G(N=>{if(!N.dataZoomId)return;const j=z.getOption();if(j!=null&&j.dataZoom[0]){const{startValue:n,endValue:O}=z.getOption().dataZoom[0],{time:m}=e.value,M=`${m[n].split(" ")[0]} 00:00:00`,y=`${m[O].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${M} - ${y}`),T("change",{startTime:M,endTime:y})}},200),I=G.G(({startTime:N,endTime:j})=>{x("reset",{startTime:N,endTime:j})},100),x=(N,j)=>{switch(N){case"init":{const{data:n,time:O}=e.value,{xAxisData:m,lineData:M}=n.reduce((o,g,d)=>(o.xAxisData.push(O[d].split(" ")[0]),o.lineData.push(g[1]),o),{xAxisData:[],lineData:[]}),y={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:m,show:!1},yAxis:{type:"value"},dataZoom:[{show:!0,startValue:0,endValue:0,textStyle:{color:"#ccc"}},{type:"inside",startValue:0,endValue:0}],series:[{data:M,type:"line"}]};if(z.setOption(y,!0),D.screenTimeRange.length){const[o,g]=D.screenTimeRange;I({startTime:o,endTime:g})}break}case"reset":{const{time:n}=e.value,O=L.dayjs(j.startTime).format("YYYY-MM-DD"),m=L.dayjs(j.endTime).format("YYYY-MM-DD");let M=-1,y=-1;for(let o=0;o<n.length;o++){const g=L.dayjs(n[o]).format("YYYY-MM-DD");if(M!==-1&&y!==-1)break;M===-1&&(new Date(g)===new Date(O)?M=o:new Date(g)>new Date(O)&&(M=o-1)),y===-1&&(new Date(g)===new Date(m)?y=o:new Date(g)>new Date(m)&&(y=o-1))}y===-1&&(y=n.length-1),z.dispatchAction({type:"dataZoom",startValue:M,endValue:y});break}}};return t.onMounted(()=>{t.nextTick(()=>{z=ae.init(p.value),z.on("datazoom",P),k()})}),t.watch(()=>D.screenTimeRange,N=>{const[j,n]=N;I({startTime:j,endTime:n})},{deep:!0}),t.onUnmounted(()=>{z.off("datazoom"),z.dispose()}),l({resize:G.G(()=>z.resize(),100)}),(N,j)=>(t.openBlock(),t.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:p},null,512))}},Se=se._export_sfc(ve,[["__scopeId","data-v-0c715da1"]]);const Qe={class:"main-chart"},Pe={class:"indicator"},Re={key:0,class:"screen-time-range"},Fe={key:0,class:"sub-chart"},Ue={class:"indicator"},Ve={class:"title"},Be={key:1,class:"slider-chart"},_e={__name:"index",props:{varietyCode:{type:String,required:!0},varietyStock:{type:Number,required:!0},indicatorStore:{type:Object,required:!0},userKlineConfig:{type:Object,required:!0},cycle:{type:String,required:!0},sellBuy:{type:Number,default:1},rightType:{type:[Number,null],default:null},klineType:{type:[Number,null],default:null},incomeType:{type:Number,default:0},initTimeRange:{type:Array,required:!0},mainIndicator:{type:String,required:!0},tradeLog:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},tradeIncomeRateData:{type:Array,default:()=>[]},positionTime:{type:[String,null],default:null},syncBrushRange:{type:Object,default:()=>({cycleList:[],startTime:null,endTime:null})},deleteFirstNumber:{type:Number,default:1},withoutPermission:{type:Number,default:0}},setup(i,{expose:l}){const{round:c,formatValue:s}=G.x,{request:z}=t.inject("stConfig"),p=t.ref(),T=t.ref(!1),D=t.ref(!1),e=i;let k=!1,P=!1,I=!1,x=!1,N=null,j=null,n=null;const O=t.ref(null),m=t.ref(null),M=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),y=t.ref(0),o=t.ref([]),g=t.ref(null),d=t.ref("VOL"),C=t.computed(()=>{const a=M.value.data[y.value];if(!a)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const r=[{label:"开",value:a[0]},{label:"高",value:a[3]},{label:"低",value:a[2]},{label:"收",value:a[1]}];a[4]!==null&&r.push({label:"额",value:s(a[4])});let u;return a[6]>0?u="red":a[6]<0&&(u="green"),r.push({label:"涨跌",value:`${c(a[6])}%`,color:u}),r}),S=t.computed(()=>{var a,r;return((r=(a=M.value)==null?void 0:a.mainIndicator)==null?void 0:r.map(u=>({label:u.key,value:c(u.data[y.value]),color:u.color})))||[]}),F=t.computed(()=>{var a,r;return((r=(a=M.value)==null?void 0:a.subIndicator)==null?void 0:r.map(u=>({label:u.key,color:u.color,value:u.data[y.value]||"-"})))||[]}),B=()=>{n||(n=ae.init(m.value),n.on("highlight",G.G(a=>{var r;a.dataIndex?y.value=a.dataIndex:y.value=((r=a.batch)==null?void 0:r[0].dataIndex)??-1},10)),n.on("datazoom",G.G(async()=>{var b;const{loadCheckCount:a}=Z,{startValue:r,endValue:u}=((b=n.getOption())==null?void 0:b.dataZoom[0])??{};I===!1&&x===!1&&r<a&&await W("history"),k===!1&&P===!1&&u>M.value.time.length-a&&await W("new"),ce(),le()})),n.on("globalout",()=>{const a=n.getOption();y.value=a.dataZoom[0].endValue}),n.getZr().on("contextmenu",()=>{var a;g.value=(a=M.value)==null?void 0:a.time[y.value]}),window.addEventListener("keydown",Ne),e.userKlineConfig.enable_subChart&&(j=ae.init(O.value),ae.connect([n,j])),N=G.D(m.value),N.listen(()=>{requestAnimationFrame(()=>{var a;n.resize(),j==null||j.resize(),(a=p.value)==null||a.resize()})}))},U=async({startTime:a,endTime:r})=>{I=!1,x=!1,k=!1,P=!1;try{T.value=!0;const u={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:d.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(u,{startTime:L.dayjs(a).subtract(1,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:L.dayjs(r).add(1,"day").format("YYYY-MM-DD HH:mm:ss")}):["6","7"].includes(e.cycle)?Object.assign(u,{startTime:L.dayjs(a).subtract(50,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:L.dayjs(r).add(50,"day").format("YYYY-MM-DD HH:mm:ss")}):Object.assign(u,{startTime:L.dayjs(a).subtract(10,"month").format("YYYY-MM-DD HH:mm:ss"),endTime:L.dayjs(r).add(10,"month").format("YYYY-MM-DD HH:mm:ss")});const{body:b}=await z.post("/middleLayer/kline/getKline",u);M.value=b??{data:[],mainIndicator:[],subIndicator:[],time:[]};let f=-1,Y=-1;for(let w=0;w<M.value.time.length;w++){const Q=L.dayjs(M.value.time[w]).format("YYYY-MM-DD");if(f!==-1&&Y!==-1)break;f===-1&&(new Date(Q)===new Date(a)?f=w:new Date(Q)>new Date(a)&&(f=w-1)),Y===-1&&(new Date(Q)===new Date(r)?Y=w:new Date(Q)>new Date(r)&&(Y=w-1))}Y===-1&&(Y=M.value.time.length-1),ee({startValue:f===-1?0:f,endValue:Y===-1?M.value.time.length-1:Y})}finally{T.value=!1}},W=async a=>{var Q,q;const{loadAddCount:r}=Z;switch(a){case"history":{I=!0;const V={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,endTime:M.value.time[0],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:d.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:R}=await z.post("/middleLayer/kline/getKline",V);M.value=de(R,M.value),R.data.length<r&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),x=!0),I=!1;break}case"new":{k=!0;const V={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,startTime:M.value.time[M.value.time.length-1],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:d.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:R}=await z.post("/middleLayer/kline/getKline",V);M.value=de(M.value,R),R.data.length<r&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),P=!0),k=!1;break}}const{startValue:u,endValue:b}=((Q=n.getOption())==null?void 0:Q.dataZoom[0])??{},f=(q=n.getOption())==null?void 0:q.xAxis[0].data,Y=M.value.time.findIndex(V=>new Date(V)>=new Date(f[u])),w=M.value.time.findIndex(V=>new Date(V)>=new Date(f[b]));ee({startValue:Y===-1?0:Y,endValue:w===-1?M.value.time.length-1:w})},ce=()=>{var Y;if(!M.value.time.length)return o.value=[];const{time:a}=M.value,{startValue:r,endValue:u}=((Y=n.getOption())==null?void 0:Y.dataZoom[0])??{},b=a[r],f=a[u];["6","7","8"].includes(e.cycle)?o.value=[L.dayjs(b).format("YYYY-MM-DD"),L.dayjs(f).format("YYYY-MM-DD")]:o.value=[b,f]},ee=(a={startValue:0,endValue:0})=>{B();const{maxValueSpan:r}=Z,{time:u,data:b,mainIndicator:f}=M.value,Y=a.endValue-a.startValue>r?a.endValue-r:a.startValue,w=a.endValue,Q=f.map(A=>({name:A.key,type:"line",silent:!0,symbol:"none",data:A.data,lineStyle:{width:A.width||1},itemStyle:{color:A.color}})),{netPositionLineData:q}=be(e.netPositionData,e.cycle),{tradeIncomeRateLineData:V}=he(e.tradeIncomeRateData,e.cycle,e.incomeType,u),{tradePointData:R,tradeLineData:te}=Ce(e.tradeLog,e.cycle,e.sellBuy,u,b,e.userKlineConfig);n.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:Y,endValue:w,minValueSpan:Z.minValueSpan,maxValueSpan:Z.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:A=>{const{axisDimension:h,value:E}=A;return h==="x"?["6","7","8"].includes(e.cycle)?L.dayjs(E).format("YYYY-MM-DD"):E:String(c(E))}}},formatter:A=>{if(!(A!=null&&A.length))return null;let h="";if(A.forEach(v=>{if(v.seriesName==="netPosition"&&v.data!==null&&(h+=`<div>资产持仓净值: ${v.data[1]}</div>`),v.componentSubType==="candlestick")if(e.sellBuy===0){const J=R.filter(_=>(_==null?void 0:_.coord[0])===v.axisValue);let $=0,H=0;J.forEach(_=>{const{tradeType:K,amount:Me}=_.customData;K==="买"&&($+=Me),K==="卖"&&(H+=Me)}),$&&(h+=`<div>买: ${$}</div>`),H&&(h+=`<div>卖: ${H}</div>`)}else R.forEach(J=>{if((J==null?void 0:J.coord[0])===v.axisValue){const{tradeType:$,amount:H,profitAndLoss:_,openPriceAll:K,closePriceAll:Me}=J.customData;let X=`<div>${$}: ${H}手</div>`;if($.includes("开")&&(X+=`<div>开仓价: ${(K/H).toFixed(2)}</div>`),$.includes("平")){const ue=(K/H).toFixed(2),je=(Me/H).toFixed(2);X+=`<div>平仓价: ${je}</div>`,X+=`<div>盈亏: ${_==null?void 0:_.toFixed(2)}</div>`,X+=`<div>盈亏比率: ${((je-ue)/ue*100).toFixed(2)} %</div>`}h+=X}})}),!h)return null;let E=A[0].axisValue;return["6","7","8"].includes(e.cycle)&&(E=L.dayjs(E).format("YYYY-MM-DD")),`
1
+ "use strict";require("./base-ef747d02.cjs");const ge=require("./el-loading-969a79ca.cjs"),Ie=require("./el-empty-1697ded8.cjs");require("./el-tag-6d8e653e.cjs");const ye=require("./el-select-a11f33e8.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./el-popper-2d3914e4.cjs");const a=require("vue"),I=require("./dayjs.min-2c20abe6.cjs"),Ye=require("echarts"),Z=require("./index-8901a38c.cjs"),ce=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-global-config-c80f33a4.cjs");require("./use-form-common-props-d3ed62c6.cjs");require("./index-9780a537.cjs");require("./index-33f80550.cjs");require("./index-bb833443.cjs");require("./index-37b8d3c6.cjs");require("./index-28e03bad.cjs");require("./index-e8eeea22.cjs");require("./index-6b99def3.cjs");require("./castArray-35947698.cjs");require("./index-7dce9f59.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");function Le(n){const N=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const l in n)if(l!=="default"){const c=Object.getOwnPropertyDescriptor(n,l);Object.defineProperty(N,l,c.get?c:{enumerable:!0,get:()=>n[l]})}}return N.default=n,Object.freeze(N)}const ie=Le(Ye),me="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",Ae="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",fe="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",{round:pe}=Z.x,q={minValueSpan:5,maxValueSpan:2e3,loadCheckCount:500,loadAddCount:2e3},we={1:240,2:48,3:16,4:8,5:4,6:1,7:.2,8:.033},de=({startTime:n,endTime:N,cycle:l,type:c="end"})=>{const{maxValueSpan:u}=q,A=Math.ceil((u+1e3)/we[l]),d=I.dayjs(n);if(I.dayjs(N).diff(d,"day")<=A)return[n,N];if(c==="end")return[I.dayjs(N).subtract(A,"day").format("YYYY-MM-DD HH:mm:ss"),N];if(c==="middle"){const v=I.dayjs((I.dayjs(n).valueOf()+I.dayjs(N).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",v,A/2),[I.dayjs(v).subtract(A/2,"day").format("YYYY-MM-DD HH:mm:ss"),I.dayjs(v).add(A/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},xe=(n,N)=>{const l=n[N],c=N===0?n[N]:n[N-1];return l[0]===l[1]?l[0]>=c[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:l[1]>l[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},Oe=(n,N,l)=>{var u,A,d,e;const c=n.subIndicator.map(D=>{if(D.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:D.data.map((v,P)=>D.seriesColor==="kline"?{value:v,itemStyle:xe(n.data,P)}:D.seriesColor==="value"?{value:v,itemStyle:{color:v>=0?"#FF0000":"#00FFFF"}}:{value:v,itemStyle:{color:D.seriesColor}})};if(D.series==="line")return{xAxisIndex:0,yAxisIndex:D.yAxis==="right"?2:1,name:D.key,type:"line",silent:!0,symbol:"none",data:D.data,lineStyle:{width:1},itemStyle:{color:D.color}}});return{animation:!1,grid:{top:"10px",left:"60px",right:"20px",bottom:"10px"},dataZoom:[{type:"inside",startValue:N,endValue:l,maxValueSpan:q.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:D=>{const{axisDimension:v,value:P}=D;if(v==="x")return null;if(D.axisIndex===1)return String(pe(P))}}},xAxis:{type:"category",data:n.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((u=n.subIndicator[0])==null?void 0:u.leftYAxisRange)==="cover"?D=>D.min:null,max:((A=n.subIndicator[0])==null?void 0:A.leftYAxisRange)==="cover"?D=>D.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((d=n.subIndicator[0])==null?void 0:d.rightYAxisRange)==="cover"?D=>D.min:null,max:((e=n.subIndicator[0])==null?void 0:e.rightYAxisRange)==="cover"?D=>D.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:c}},re=(n,N,l="strict")=>{let c=0,u=n.length-1,A=-1;for(;c<=u;){let d=Math.floor((c+u)/2);if(l==="strict"){if(n[d]===N)return d;n[d]<N?c=d+1:u=d-1}else l==="gte"&&(n[d]>=N?(A=d,u=d-1):c=d+1)}return l==="strict"?-1:A},Ce=n=>{const N=[];return n.reduce((l,c)=>{const u=`${c.coord[0]}+${c.label.position}`,A=c.label.position==="top"?-16:16,d=l.get(u);return d?(l.set(u,d+1),c.symbolOffset[1]=A*(d+1)):(l.set(u,1),c.symbolOffset[1]=c.label.position==="top"?-7:7),N.push(c),l},new Map),N},De=(n,N)=>({data:[...n.data,...N.data.slice(1)],mainIndicator:n.mainIndicator.map((l,c)=>({...l,data:[...l.data,...N.mainIndicator[c].data.slice(1)]})),subIndicator:n.subIndicator.map((l,c)=>({...l,data:[...l.data,...N.subIndicator[c].data.slice(1)]})),time:[...n.time,...N.time.slice(1)]}),se=(n,N,l)=>{switch(l){case"5":{let Y=[...new Set(n.slice(-20).map(j=>{const o=new Date(j),g=String(o.getHours()).padStart(2,"0"),z=String(o.getMinutes()).padStart(2,"0"),O=String(o.getSeconds()).padStart(2,"0");return`${g}:${z}:${O}`}))];Y.includes("00:00:00")&&(Y.splice(Y.indexOf("00:00:00"),1),Y.push("24:00:00")),Y=Y.sort((j,o)=>new Date(`2000-01-30 ${j}`).getTime()-new Date(`2000-01-30 ${o}`).getTime());const f=new Date(N),s=f.getFullYear(),t=String(f.getMonth()+1).padStart(2,"0"),T=String(f.getDate()).padStart(2,"0"),x=String(f.getHours()).padStart(2,"0"),p=String(f.getMinutes()).padStart(2,"0"),i=String(f.getSeconds()).padStart(2,"0");if(`${x}:${p}:${i}`=="00:00:00")return`${s}-${t}-${T} 01:00:00`;{let j=null;for(let o=0;o<Y.length;o++){const g=Y[o].split(":");if(+`${g[0]}${g[1]}${g[2]}`>=+`${x}${p}${i}`){j=Y[o];break}}if(j==="24:00:00"){const o=new Date(N);o.setDate(o.getDate()+1);const g=o.getFullYear(),z=String(o.getMonth()+1).padStart(2,"0"),O=String(o.getDate()).padStart(2,"0");return`${g}-${z}-${O} 00:00:00`}return`${s}-${t}-${T} ${j}`}}case"6":{const Y=new Date(N),f=Y.getHours();if(f>=4&&f<21){const s=Y.getFullYear(),t=String(Y.getMonth()+1).padStart(2,"0"),T=String(Y.getDate()).padStart(2,"0");return`${s}-${t}-${T} 09:00:00`}else{const s=new Date(N);s.getHours()>=21&&s.setDate(s.getDate()+1);const t=s.getFullYear(),T=String(s.getMonth()+1).padStart(2,"0"),x=String(s.getDate()).padStart(2,"0"),p=`${t}-${T}-${x} 09:00:00`,i=re(n,p,"gte");return i===-1?p:n[i]}}case"7":{const Y=new Date(N),f=new Date(Y);f.setDate(Y.getDate()-Y.getDay()),f.setHours(0,0,0,0);const s=new Date(f);s.setDate(f.getDate()+5),s.setHours(23,59,59,0);const t=new Date(f);t.setDate(f.getDate()+12),t.setHours(9,0,0,0);const T=Y<=s?s:t,x=T.getFullYear(),p=String(T.getMonth()+1).padStart(2,"0"),i=String(T.getDate()).padStart(2,"0");return`${x}-${p}-${i} 09:00:00`}case"8":{const Y=new Date(N),f=new Date(Y.getFullYear(),Y.getMonth()+1,1),s=new Date(f);s.setDate(f.getDate()-1),s.setHours(9,0,0,0);const t=s.getFullYear(),T=String(s.getMonth()+1).padStart(2,"0"),x=String(s.getDate()).padStart(2,"0");return`${t}-${T}-${x} 09:00:00`}}const c=new Date(N),u=c.getFullYear(),A=c.getMonth(),d=c.getDate(),e=c.getHours(),D=c.getMinutes(),v=c.getSeconds(),P=Y=>{let f=null;const s=Math.floor(D/Y);D%Y===0&&v===0?f=D:f=(s+1)*Y;const t=Math.floor(f/60),T=e+t,x=f%60,p=new Date(u,A,d,T,x,0),i=Q=>String(Q).padStart(2,"0"),j=p.getFullYear(),o=i(p.getMonth()+1),g=i(p.getDate()),z=i(p.getHours()),O=i(p.getMinutes());return`${j}-${o}-${g} ${z}:${O}:00`};switch(l){case"1":return P(1);case"2":return P(5);case"3":return P(15);case"4":return P(30);default:throw new Error(`Unsupported cycle: ${N} ${l}`)}},ne=(n,N,l)=>{let c=null,u=null;const[A,d]=N;switch(l){case"6":{c=n.find(e=>new Date(I.dayjs(e).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(A).getTime()),u=n.findLast(e=>new Date(I.dayjs(e).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(d).getTime());break}case"7":{const e=I.dayjs(d).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");c=n.find(D=>I.dayjs(D).endOf("week").add(1,"day").format("YYYY-MM-DD")===I.dayjs(A).endOf("week").add(1,"day").format("YYYY-MM-DD")),u=n.findLast(D=>new Date(D).getTime()<=new Date(e).getTime());break}case"8":{c=n.find(e=>I.dayjs(e).format("YYYY-MM")===I.dayjs(A).format("YYYY-MM")),u=n.findLast(e=>I.dayjs(e).format("YYYY-MM")===I.dayjs(d).format("YYYY-MM"));break}default:c=n.find(e=>new Date(e).getTime()>=new Date(A).getTime()),u=n.findLast(e=>new Date(e).getTime()<=new Date(d).getTime())}return[c,u]},ke=(n,N,l,c,u,A)=>{const d=(s,t)=>{const{direction:T="",tradeAction:x="",tradeType:p=""}=s,i=p??T+x;switch(t){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(i);case 1:return p??T+x}},e=(s,t,T,x)=>s.reduce((p,i)=>{var F;const j=d(i,0),o=s.filter(V=>V.klineTime===i.klineTime),g=[...new Set(o.map(V=>d(V,0)))];let z=null;g.length>1?z="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:z="image://"+new URL(Object.assign({"./images/buy.svg":me,"./images/sell.svg":Ae,"./images/t.svg":fe})[`./images/${j==="买"?"buy":"sell"}.svg`],self.location).href;const O=re(T,i.klineTime),Q=(F=x[O])==null?void 0:F[3];return t.forEach(V=>{var J;const R=j==="买"?0:1;V.range[R]===i.klineTime&&(V.rangeValue[R]=(J=x[O])==null?void 0:J[j==="买"?2:3])}),p.push({symbol:z,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[i.klineTime,Q],silent:!0,animation:!1,customData:{tradeType:j,amount:i.amount,part:i.part,profitAndLoss:i.profitAndLoss,openPriceAll:i.openPriceAll,closePriceAll:i.closePriceAll}}),p},[]),D=(s,t,T,x)=>{const{sellBuyByPrice:p}=A,i=s.reduce((j,o,g)=>{var F,V;const z=d(o,1),O=["开多","开空"].includes(z)?"top":"bottom";let Q=null;if(p)Q=O==="top"?(o.openPriceAll/o.amount).toFixed(2):(o.closePriceAll/o.amount).toFixed(2);else{const R=re(T,o.klineTime);Q=O==="top"?(F=x[R])==null?void 0:F[3]:(V=x[R])==null?void 0:V[2]}return t.forEach(R=>{(O==="top"?R.range[0]:R.range[1])===o.klineTime&&(R.rangeValue[O==="top"?0:1]=Q)}),j.push({symbol:"triangle",symbolSize:[10,12],symbolRotate:O==="top"?180:0,symbolOffset:[0,0],label:{show:!0,position:O,color:"#fff",formatter:`${z} ${O==="top"?"+":"-"} ${o.amount}手 ${o.part?`(${o.part}份)`:""}`},itemStyle:{color:O==="top"?"#FF0000":"#389e0d"},coord:[o.klineTime,Q],silent:!0,animation:!1,customData:{tradeType:z,amount:o.amount,part:o.part,profitAndLoss:o.profitAndLoss,openPriceAll:o.openPriceAll,closePriceAll:o.closePriceAll}}),j},[]);return p?i:Ce(i)},v=(s,t,T)=>{const{basePointData:x,baseLineData:p}=s.reduce((g,z)=>{const O={pointTime:z.openTime,tradeAction:"开",tradeDirection:z.tradeDirection?"空":"多",tradeType:`开${z.tradeDirection?"空":"多"}`,part:null,amount:z.tradeVolume,profitAndLoss:z.profitAndLoss,openPriceAll:z.openPrice*z.tradeVolume,closePriceAll:z.closePrice*z.tradeVolume,klineTime:se(T,z.openTime,t)},Q={pointTime:z.closeTime,tradeAction:"平",tradeDirection:z.tradeDirection?"空":"多",tradeType:`平${z.tradeDirection?"空":"多"}`,part:null,amount:z.tradeVolume,profitAndLoss:z.profitAndLoss,openPriceAll:z.openPrice*z.tradeVolume,closePriceAll:z.closePrice*z.tradeVolume,klineTime:se(T,z.closeTime,t)},F={range:[O.klineTime,Q.klineTime],rangeValue:[null,null],color:Q.profitAndLoss>0?"#FF0000":"#389e0d"};return g.basePointData.push(O,Q),g.baseLineData.push(F),g},{basePointData:[],baseLineData:[]}),j=[...x.reduce((g,z)=>{const O=JSON.parse(JSON.stringify(z)),Q=O.klineTime+O.tradeType;if(g.has(Q)){const F=g.get(Q);O.amount+=F.amount,O.part+=F.part,O.profitAndLoss+=F.profitAndLoss,O.openPriceAll+=F.openPriceAll,O.closePriceAll+=F.closePriceAll}return g.set(Q,O),g},new Map([])).values()].sort((g,z)=>new Date(g.klineTime)-new Date(z.klineTime)),o=p.filter(({range:g})=>g[0]!==g[1]);return{pointData:j,lineData:o}},{pointData:P,lineData:Y}=v(n,N,c);return{tradePointData:(l===0?e:D)(P,Y,c,u),tradeLineData:Y.map(({range:s,rangeValue:t,color:T})=>[{symbol:"none",coord:[s[0],t[0]],lineStyle:{color:T,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[s[1],t[1]],silent:!0,animation:!1}])}},be=(n,N)=>{let l=[];if(Number(N)<=5)l=n.map(({tradeDate:c,netPositionValue:u})=>[I.dayjs(c).format("YYYY-MM-DD HH:mm:ss"),u]);else if(Number(N)===6){const c=n.reduce((u,A)=>{const{tradeDate:d,netPositionValue:e}=A;return u.set(I.dayjs(d).format("YYYY-MM-DD 09:00:00"),e),u},new Map);l=Array.from(c,([u,A])=>[u,A])}else l=[];return{netPositionLineData:l}},he=(n,N,l,c)=>{let u=[];if(["6","7","8"].includes(N)){const A=n.reduce((d,e)=>{const D=se(c,e.date,N),v=e[l===0?"simple":"compound"];return d.set(D,v),d},new Map);u=Array.from(A,([d,e])=>[d,e])}else u=[];return{tradeIncomeRateLineData:u}};const ve={class:"tips"},Ee={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(n){return(N,l)=>(a.openBlock(),a.createElementBlock("div",ve,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.data,(c,u)=>(a.openBlock(),a.createElementBlock("span",{key:u,class:"item",style:a.normalizeStyle({color:c.color})},a.toDisplayString(c.label)+" "+a.toDisplayString(c.value),5))),128))]))}},oe=ce._export_sfc(Ee,[["__scopeId","data-v-df1caefe"]]);const Se={__name:"SliderChart",props:{screenTimeRange:{type:Array,required:!0},varietyCode:{type:String,required:!0},varietyStock:{type:Number,required:!0},rightType:{type:[Number,null],default:null},klineType:{type:[Number,null],default:null},deleteFirstNumber:{type:Number,default:1},withoutPermission:{type:Number,default:0}},emits:["change"],setup(n,{expose:N,emit:l}){const{request:c}=a.inject("stConfig");let u=null;const A=a.ref(null),d=l,e=n,D=a.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),v=async()=>{const s={varietyCode:e.varietyCode,cycle:"6",right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,startTime:"1999-01-01 00:00:00",endTime:I.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:t}=await c.post("/middleLayer/kline/getKline",s);t?D.value=t:D.value={data:[],mainIndicator:[],subIndicator:[],time:[]},f("init")},P=Z.G(s=>{if(!s.dataZoomId)return;const t=u.getOption();if(t!=null&&t.dataZoom[0]){const{startValue:T,endValue:x}=u.getOption().dataZoom[0],{time:p}=D.value,i=`${p[T].split(" ")[0]} 00:00:00`,j=`${p[x].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${i} - ${j}`),d("change",{startTime:i,endTime:j})}},200),Y=Z.G(({startTime:s,endTime:t})=>{f("reset",{startTime:s,endTime:t})},100),f=(s,t)=>{switch(s){case"init":{const{data:T,time:x}=D.value,{xAxisData:p,lineData:i}=T.reduce((o,g,z)=>(o.xAxisData.push(x[z].split(" ")[0]),o.lineData.push(g[1]),o),{xAxisData:[],lineData:[]}),j={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:p,show:!1},yAxis:{type:"value"},dataZoom:[{show:!0,startValue:0,endValue:0,textStyle:{color:"#ccc"}},{type:"inside",startValue:0,endValue:0}],series:[{data:i,type:"line"}]};if(u.setOption(j,!0),e.screenTimeRange.length){const[o,g]=e.screenTimeRange;Y({startTime:o,endTime:g})}break}case"reset":{const{time:T}=D.value,x=I.dayjs(t.startTime).format("YYYY-MM-DD"),p=I.dayjs(t.endTime).format("YYYY-MM-DD");let i=-1,j=-1;for(let o=0;o<T.length;o++){const g=I.dayjs(T[o]).format("YYYY-MM-DD");if(i!==-1&&j!==-1)break;i===-1&&(new Date(g)===new Date(x)?i=o:new Date(g)>new Date(x)&&(i=o-1)),j===-1&&(new Date(g)===new Date(p)?j=o:new Date(g)>new Date(p)&&(j=o-1))}j===-1&&(j=T.length-1),u.dispatchAction({type:"dataZoom",startValue:i,endValue:j});break}}};return a.onMounted(()=>{a.nextTick(()=>{u=ie.init(A.value),u.on("datazoom",P),v()})}),a.watch(()=>e.screenTimeRange,s=>{const[t,T]=s;Y({startTime:t,endTime:T})},{deep:!0}),a.onUnmounted(()=>{u.off("datazoom"),u.dispose()}),N({resize:Z.G(()=>u.resize(),100)}),(s,t)=>(a.openBlock(),a.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:A},null,512))}},Qe=ce._export_sfc(Se,[["__scopeId","data-v-0c715da1"]]);const Pe={class:"main-chart"},Fe={class:"indicator"},Re={key:0,class:"screen-time-range"},Ue={key:0,class:"sub-chart"},Ve={class:"indicator"},Be={class:"title"},_e={key:1,class:"slider-chart"},He={__name:"index",props:{varietyCode:{type:String,required:!0},varietyStock:{type:Number,required:!0},indicatorStore:{type:Object,required:!0},userKlineConfig:{type:Object,required:!0},cycle:{type:String,required:!0},sellBuy:{type:Number,default:1},rightType:{type:[Number,null],default:null},klineType:{type:[Number,null],default:null},incomeType:{type:Number,default:0},initTimeRange:{type:Array,required:!0},mainIndicator:{type:String,required:!0},tradeLog:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},tradeIncomeRateData:{type:Array,default:()=>[]},positionTime:{type:[String,null],default:null},syncBrushRange:{type:Object,default:()=>({cycleList:[],startTime:null,endTime:null})},deleteFirstNumber:{type:Number,default:1},withoutPermission:{type:Number,default:0}},setup(n,{expose:N}){const{round:l,formatValue:c}=Z.x,{request:u}=a.inject("stConfig"),A=a.ref(!1),d=a.ref(!1),e=n;let D=!1,v=!1,P=!1,Y=!1,f=null,s=null,t=null;const T=a.ref(null),x=a.ref(null),p=a.ref(null),i=a.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),j=a.ref(0),o=a.ref([]),g=a.ref(null),z=a.ref("VOL"),O=a.computed(()=>{const M=i.value.data[j.value];if(!M)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const r=[{label:"开",value:M[0]},{label:"高",value:M[3]},{label:"低",value:M[2]},{label:"收",value:M[1]}];M[4]!==null&&r.push({label:"额",value:c(M[4])});let y;return M[6]>0?y="red":M[6]<0&&(y="green"),r.push({label:"涨跌",value:`${l(M[6])}%`,color:y}),r}),Q=a.computed(()=>{var M,r;return((r=(M=i.value)==null?void 0:M.mainIndicator)==null?void 0:r.map(y=>({label:y.key,value:l(y.data[j.value]),color:y.color})))||[]}),F=a.computed(()=>{var M,r;return((r=(M=i.value)==null?void 0:M.subIndicator)==null?void 0:r.map(y=>({label:y.key,color:y.color,value:y.data[j.value]||"-"})))||[]}),V=()=>{if(!T.value)return console.warn("[K线] 主图DOM元素不存在,取消初始化"),!1;if(t)return!0;try{return t=ie.init(T.value),t.on("highlight",Z.G(M=>{var r;M.dataIndex?j.value=M.dataIndex:j.value=((r=M.batch)==null?void 0:r[0].dataIndex)??-1},10)),t.on("datazoom",Z.G(async()=>{var C;const{loadCheckCount:M}=q,{startValue:r,endValue:y}=((C=t.getOption())==null?void 0:C.dataZoom[0])??{};P===!1&&Y===!1&&r<M&&await J("history"),D===!1&&v===!1&&y>i.value.time.length-M&&await J("new"),le(),Ne()})),t.on("globalout",()=>{if(t){const M=t.getOption();j.value=M.dataZoom[0].endValue}}),t.getZr().on("contextmenu",()=>{var M;g.value=(M=i.value)==null?void 0:M.time[j.value]}),window.addEventListener("keydown",ue),e.userKlineConfig.enable_subChart&&x.value&&(s=ie.init(x.value),ie.connect([t,s])),T.value&&(f=Z.D(T.value),f.listen(()=>{requestAnimationFrame(()=>{var M;t==null||t.resize(),s==null||s.resize(),(M=p.value)==null||M.resize()})})),!0}catch(M){return console.error("[st-klinePlus]: 初始化异常:",M),!1}},R=async({startTime:M,endTime:r})=>{P=!1,Y=!1,D=!1,v=!1;try{A.value=!0;const y={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:z.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(y,{startTime:I.dayjs(M).subtract(1,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:I.dayjs(r).add(1,"day").format("YYYY-MM-DD HH:mm:ss")}):["6","7"].includes(e.cycle)?Object.assign(y,{startTime:I.dayjs(M).subtract(50,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:I.dayjs(r).add(50,"day").format("YYYY-MM-DD HH:mm:ss")}):Object.assign(y,{startTime:I.dayjs(M).subtract(10,"month").format("YYYY-MM-DD HH:mm:ss"),endTime:I.dayjs(r).add(10,"month").format("YYYY-MM-DD HH:mm:ss")});const{body:C}=await u.post("/middleLayer/kline/getKline",y);i.value=C??{data:[],mainIndicator:[],subIndicator:[],time:[]};let L=-1,m=-1;for(let w=0;w<i.value.time.length;w++){const S=I.dayjs(i.value.time[w]).format("YYYY-MM-DD");if(L!==-1&&m!==-1)break;L===-1&&(new Date(S)===new Date(M)?L=w:new Date(S)>new Date(M)&&(L=w-1)),m===-1&&(new Date(S)===new Date(r)?m=w:new Date(S)>new Date(r)&&(m=w-1))}m===-1&&(m=i.value.time.length-1),Me({startValue:L===-1?0:L,endValue:m===-1?i.value.time.length-1:m})}finally{A.value=!1}},J=async M=>{var S,K;const{loadAddCount:r}=q;switch(M){case"history":{P=!0;const U={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,endTime:i.value.time[0],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:z.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:B}=await u.post("/middleLayer/kline/getKline",U);i.value=De(B,i.value),B.data.length<r&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),Y=!0),P=!1;break}case"new":{D=!0;const U={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,startTime:i.value.time[i.value.time.length-1],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:z.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:B}=await u.post("/middleLayer/kline/getKline",U);i.value=De(i.value,B),B.data.length<r&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),v=!0),D=!1;break}}const{startValue:y,endValue:C}=((S=t.getOption())==null?void 0:S.dataZoom[0])??{},L=(K=t.getOption())==null?void 0:K.xAxis[0].data,m=i.value.time.findIndex(U=>new Date(U)>=new Date(L[y])),w=i.value.time.findIndex(U=>new Date(U)>=new Date(L[C]));Me({startValue:m===-1?0:m,endValue:w===-1?i.value.time.length-1:w})},le=()=>{var m;if(!i.value.time.length)return o.value=[];const{time:M}=i.value,{startValue:r,endValue:y}=((m=t.getOption())==null?void 0:m.dataZoom[0])??{},C=M[r],L=M[y];["6","7","8"].includes(e.cycle)?o.value=[I.dayjs(C).format("YYYY-MM-DD"),I.dayjs(L).format("YYYY-MM-DD")]:o.value=[C,L]},Me=(M={startValue:0,endValue:0})=>{if(!V()||!t)return console.warn("[st-klinePlus]: 图表未准备就绪, 跳过绘制");if(!i.value.time.length)return console.warn("[st-klinePlus]: 图表无数据, 跳过绘制");const{maxValueSpan:y}=q,{time:C,data:L,mainIndicator:m}=i.value,w=M.endValue-M.startValue>y?M.endValue-y:M.startValue,S=M.endValue,K=m.map(k=>({name:k.key,type:"line",silent:!0,symbol:"none",data:k.data,lineStyle:{width:k.width||1},itemStyle:{color:k.color}})),{netPositionLineData:U}=be(e.netPositionData,e.cycle),{tradeIncomeRateLineData:B}=he(e.tradeIncomeRateData,e.cycle,e.incomeType,C),{tradePointData:_,tradeLineData:H}=ke(e.tradeLog,e.cycle,e.sellBuy,C,L,e.userKlineConfig);t.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:w,endValue:S,minValueSpan:q.minValueSpan,maxValueSpan:q.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:k=>{const{axisDimension:b,value:h}=k;return b==="x"?["6","7","8"].includes(e.cycle)?I.dayjs(h).format("YYYY-MM-DD"):h:String(l(h))}}},formatter:k=>{if(!(k!=null&&k.length))return null;let b="";if(k.forEach(E=>{if(E.seriesName==="netPosition"&&E.data!==null&&(b+=`<div>资产持仓净值: ${E.data[1]}</div>`),E.componentSubType==="candlestick")if(e.sellBuy===0){const X=_.filter(G=>(G==null?void 0:G.coord[0])===E.axisValue);let W=0,$=0;X.forEach(G=>{const{tradeType:ee,amount:ae}=G.customData;ee==="买"&&(W+=ae),ee==="卖"&&($+=ae)}),W&&(b+=`<div>买: ${W}</div>`),$&&(b+=`<div>卖: ${$}</div>`)}else _.forEach(X=>{if((X==null?void 0:X.coord[0])===E.axisValue){const{tradeType:W,amount:$,profitAndLoss:G,openPriceAll:ee,closePriceAll:ae}=X.customData;let te=`<div>${W}: ${$}手</div>`;if(W.includes("开")&&(te+=`<div>开仓价: ${(ee/$).toFixed(2)}</div>`),W.includes("平")){const je=(ee/$).toFixed(2),ze=(ae/$).toFixed(2);te+=`<div>平仓价: ${ze}</div>`,te+=`<div>盈亏: ${G==null?void 0:G.toFixed(2)}</div>`,te+=`<div>盈亏比率: ${((ze-je)/je*100).toFixed(2)} %</div>`}b+=te}})}),!b)return null;let h=k[0].axisValue;return["6","7","8"].includes(e.cycle)&&(h=I.dayjs(h).format("YYYY-MM-DD")),`
2
2
  <div>
3
- <span style="font-weight: bold;">${E}</span>
4
- ${h}
3
+ <span style="font-weight: bold;">${h}</span>
4
+ ${b}
5
5
  </div>
6
- `}},xAxis:{show:!0,type:"category",data:u,splitLine:{show:!1},axisLabel:{formatter:A=>["6","7","8"].includes(e.cycle)?L.dayjs(A).format("YYYY-MM-DD"):A}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:A=>{const{min:h,max:E}=A,v=Math.abs((E-h)/10);return c(h-v)},max:A=>{const{min:h,max:E}=A,v=Math.abs((E-h)/10);return c(E+v)}},{show:!1,min:A=>{const{min:h,max:E}=A,v=Math.abs((E-h)/10);return h-v},max:A=>{const{min:h,max:E}=A,v=Math.abs((E-h)/10);return E+v}}],series:[{type:"candlestick",name:"kLine",data:b,markPoint:{data:[...R]},markLine:{data:[...te]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},{type:"line",name:"netPosition",data:q,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666666"},lineStyle:{width:2}},{type:"line",name:"tradeIncomeRate",data:V,symbol:"none",yAxisIndex:1,connectNulls:!1,itemStyle:{color:"#666666"},lineStyle:{width:2}},...Q],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:2},brushStyle:{color:"rgba(255,255,255,0.1)",borderColor:"rgba(255,255,255,0.4)"}}},!0),e.userKlineConfig.enable_subChart&&j.setOption(xe(M.value,Y,w),!0),ce(),le(),y.value=w;{const A=[];if(e.userKlineConfig.enable_tradeLogBrush&&R.length){const[h,E]=[R[0].coord[0],R.at(-1).coord[0]],v=ie(u,[h,E],e.cycle);A.push({brushId:"开平仓范围",brushType:"lineX",xAxisIndex:0,coordRange:v})}if(e.syncBrushRange.cycleList.includes(e.cycle)){const{startTime:h,endTime:E}=e.syncBrushRange,v=ie(u,[h,E],e.cycle);A.push({brushId:"同步刷选范围",brushType:"lineX",xAxisIndex:0,coordRange:v,brushStyle:{fill:"rgba(64, 158, 255, 0.2)",stroke:"rgba(64, 158, 255, 0.8)",lineWidth:1}})}if(e.positionTime){const[h,E]=[L.dayjs(e.positionTime).format("YYYY-MM-DD 00:00:00"),L.dayjs(e.positionTime).format("YYYY-MM-DD 23:59:59")],v=ie(u,[h,E],e.cycle);A.push({brushId:"强制定位高亮",brushType:"lineX",xAxisIndex:0,coordRange:v,brushStyle:{fill:"rgba(217, 179, 255, 0.2)",stroke:"rgba(217, 179, 255, 0.8)",lineWidth:1}})}n.dispatchAction({type:"brush",areas:A})}},le=()=>{var te;if(!e.userKlineConfig.enable_showScreenMaxPrice||!M.value.time.length)return;const{data:a}=M.value,r=n.getOption(),{startValue:u,endValue:b}=(r==null?void 0:r.dataZoom[0])??{};let f=0,Y=u;for(let A=u;A<=b;A++)Number(a[A][3])>=f&&(f=Number(a[A][3]),Y=A);const w=((te=r.series)==null?void 0:te.filter(A=>A.name!=="maxPrice"))||[],Q=b-u,q=(Y-u)/Q;let V="right",R=`←${f}`;q>.7?(V="left",R=`${c(f)}→`):(V="right",R=`←${c(f)}`),n==null||n.setOption({series:[...w,{type:"line",name:"maxPrice",data:[],lineStyle:{opacity:0},markPoint:{symbol:"circle",symbolSize:1,itemStyle:{color:"transparent",borderColor:"transparent"},z:100,zlevel:10,label:{show:!0,position:V,formatter:R,color:"#fff",fontSize:12,padding:[4,-4]},data:[{name:"最高点",coord:[Y,f]}]}}]},{notMerge:!1,replaceMerge:[]})},De=a=>{const[r,u]=ye({startTime:a.startTime,endTime:a.endTime,cycle:e.cycle});U({startTime:r,endTime:u})},Ne=({code:a,ctrlKey:r})=>{if(!(r||D.value))return;const{xAxis:u,dataZoom:b}=n.getOption(),{data:f}=(u==null?void 0:u[0])??{data:[]};let{startValue:Y,endValue:w}=(b==null?void 0:b[0])??{};if(f!=null&&f.length){switch(a){case"ArrowUp":{if(w-Y<5)return;const Q=Math.floor((w-Y)/2)+1;Y=Y+Q,w-Y<5&&(Y=w-4);break}case"ArrowDown":{const Q=Math.min(500,w-Y);Y=Y-Q-1;break}case"ArrowLeft":{Y>0&&(Y-=1,w-=1),y.value>0&&(y.value-=1);break}case"ArrowRight":{w<f.length-1&&(Y+=1,w+=1),D.value&&y.value<f.length-1&&(y.value+=1);break}}n.dispatchAction({type:"dataZoom",startValue:Y,endValue:w}),n.dispatchAction({type:"updateAxisPointer",seriesIndex:0,dataIndex:D.value?y.value:null}),n.dispatchAction({type:"highlight",dataIndex:D.value?y.value:w})}};return t.onMounted(()=>{const[a,r]=e.initTimeRange;U({startTime:a,endTime:r})}),t.watch(()=>[e.varietyCode,e.initTimeRange],()=>{const[a,r]=e.initTimeRange;U({startTime:a,endTime:r})},{deep:!0}),t.watch(()=>[e.cycle],()=>{var f;const{startValue:a,endValue:r}=((f=n.getOption())==null?void 0:f.dataZoom[0])??{},[u,b]=ye({startTime:M.value.time[a],endTime:M.value.time[r],cycle:e.cycle,type:"middle"});U({startTime:u,endTime:b})},{deep:!0}),t.watch(()=>{var a,r;return[e.mainIndicator,d.value,(a=e.indicatorStore)==null?void 0:a.filterIndicator,(r=e.indicatorStore)==null?void 0:r.customIndicator,e.rightType,e.klineType]},()=>{var f;const{startValue:a,endValue:r}=((f=n.getOption())==null?void 0:f.dataZoom[0])??{},[u,b]=[M.value.time[a],M.value.time[r]];U({startTime:u,endTime:b})},{deep:!0}),t.watch(()=>[e.sellBuy,e.tradeLog,e.netPositionData,e.incomeType,e.tradeIncomeRateData],()=>{var u;const{startValue:a,endValue:r}=((u=n.getOption())==null?void 0:u.dataZoom[0])??{};ee({startValue:a,endValue:r})},{deep:!0}),t.onUnmounted(()=>{n.off("highlight"),n.off("globalout"),n.off("datazoom"),n.getZr().off("contextmenu"),window.removeEventListener("keydown",Ne),n.dispose(),j==null||j.dispose(),N.dispose(),N=null}),l({screenTimeRange:o,contextmenuKlineTime:g,reDraw:()=>{var u;const{startValue:a,endValue:r}=((u=n.getOption())==null?void 0:u.dataZoom[0])??{};ee({startValue:a,endValue:r})}}),(a,r)=>{const u=ze.ElOption,b=ze.ElSelect,f=ge.ElEmpty,Y=Te.vLoading;return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:"kline-plus",onMousemove:r[1]||(r[1]=w=>D.value=!0),onMouseout:r[2]||(r[2]=w=>D.value=!1)},[t.createElementVNode("div",Qe,[t.createElementVNode("div",Pe,[t.createVNode(ne,{data:C.value},null,8,["data"]),t.createVNode(ne,{data:S.value},null,8,["data"])]),i.userKlineConfig.enable_showScreenTimeRange?(t.openBlock(),t.createElementBlock("span",Re,t.toDisplayString(o.value[0])+" - "+t.toDisplayString(o.value[1]),1)):t.createCommentVNode("",!0),t.createElementVNode("div",{ref_key:"mainChartRef",ref:m,class:"chart"},null,512)]),i.userKlineConfig.enable_subChart?(t.openBlock(),t.createElementBlock("div",Fe,[t.createElementVNode("div",Ue,[t.createElementVNode("div",Ve,[t.createElementVNode("span",null,t.toDisplayString(d.value),1),t.createVNode(b,{modelValue:d.value,"onUpdate:modelValue":r[0]||(r[0]=w=>d.value=w),style:{width:"100px","margin-right":"4px",height:"25px"},size:"small",class:"element-dark","popper-class":"element-dark"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.indicatorStore.subIndicatorList,(w,Q)=>(t.openBlock(),t.createBlock(u,{key:Q,label:w.label,value:w.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t.createVNode(ne,{data:F.value},null,8,["data"])]),t.createElementVNode("div",{ref_key:"subChartRef",ref:O,class:"chart"},null,512)])):t.createCommentVNode("",!0),i.userKlineConfig.enable_sliderChart?(t.openBlock(),t.createElementBlock("div",Be,[t.createVNode(Se,{ref_key:"sliderChartRef",ref:p,screenTimeRange:o.value,varietyCode:i.varietyCode,varietyStock:i.varietyStock,rightType:i.rightType,klineType:i.klineType,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission,onChange:De},null,8,["screenTimeRange","varietyCode","varietyStock","rightType","klineType","deleteFirstNumber","withoutPermission"])])):t.createCommentVNode("",!0),M.value.time.length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(f,{key:2,class:"empty",description:"暂无数据"}))],32)),[[Y,T.value]])}}},He=se._export_sfc(_e,[["__scopeId","data-v-c68664f6"]]),Ge={install(i){i.component("st-klinePlus",He)}};module.exports=Ge;
6
+ `}},xAxis:{show:!0,type:"category",data:C,splitLine:{show:!1},axisLabel:{formatter:k=>["6","7","8"].includes(e.cycle)?I.dayjs(k).format("YYYY-MM-DD"):k}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:k=>{const{min:b,max:h}=k,E=Math.abs((h-b)/10);return l(b-E)},max:k=>{const{min:b,max:h}=k,E=Math.abs((h-b)/10);return l(h+E)}},{show:!1,min:k=>{const{min:b,max:h}=k,E=Math.abs((h-b)/10);return b-E},max:k=>{const{min:b,max:h}=k,E=Math.abs((h-b)/10);return h+E}}],series:[{type:"candlestick",name:"kLine",data:L,markPoint:{data:[..._]},markLine:{data:[...H]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},{type:"line",name:"netPosition",data:U,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666666"},lineStyle:{width:2}},{type:"line",name:"tradeIncomeRate",data:B,symbol:"none",yAxisIndex:1,connectNulls:!1,itemStyle:{color:"#666666"},lineStyle:{width:2}},...K],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:2},brushStyle:{color:"rgba(255,255,255,0.1)",borderColor:"rgba(255,255,255,0.4)"}}},!0),e.userKlineConfig.enable_subChart&&s.setOption(Oe(i.value,w,S),!0),le(),Ne(),j.value=S;{const k=[];if(e.userKlineConfig.enable_tradeLogBrush&&_.length){const[b,h]=[_[0].coord[0],_.at(-1).coord[0]],E=ne(C,[b,h],e.cycle);k.push({brushId:"开平仓范围",brushType:"lineX",xAxisIndex:0,coordRange:E})}if(e.syncBrushRange.cycleList.includes(e.cycle)){const{startTime:b,endTime:h}=e.syncBrushRange,E=ne(C,[b,h],e.cycle);k.push({brushId:"同步刷选范围",brushType:"lineX",xAxisIndex:0,coordRange:E,brushStyle:{fill:"rgba(64, 158, 255, 0.2)",stroke:"rgba(64, 158, 255, 0.8)",lineWidth:1}})}if(e.positionTime){const[b,h]=[I.dayjs(e.positionTime).format("YYYY-MM-DD 00:00:00"),I.dayjs(e.positionTime).format("YYYY-MM-DD 23:59:59")],E=ne(C,[b,h],e.cycle);k.push({brushId:"强制定位高亮",brushType:"lineX",xAxisIndex:0,coordRange:E,brushStyle:{fill:"rgba(217, 179, 255, 0.2)",stroke:"rgba(217, 179, 255, 0.8)",lineWidth:1}})}t.dispatchAction({type:"brush",areas:k})}},Ne=()=>{var _;if(!e.userKlineConfig.enable_showScreenMaxPrice||!i.value.time.length)return;const{data:M}=i.value,r=t.getOption(),{startValue:y,endValue:C}=(r==null?void 0:r.dataZoom[0])??{};let L=0,m=y;for(let H=y;H<=C;H++)Number(M[H][3])>=L&&(L=Number(M[H][3]),m=H);const w=((_=r.series)==null?void 0:_.filter(H=>H.name!=="maxPrice"))||[],S=C-y,K=(m-y)/S;let U="right",B=`←${L}`;K>.7?(U="left",B=`${l(L)}→`):(U="right",B=`←${l(L)}`),t==null||t.setOption({series:[...w,{type:"line",name:"maxPrice",data:[],lineStyle:{opacity:0},markPoint:{symbol:"circle",symbolSize:1,itemStyle:{color:"transparent",borderColor:"transparent"},z:100,zlevel:10,label:{show:!0,position:U,formatter:B,color:"#fff",fontSize:12,padding:[4,-4]},data:[{name:"最高点",coord:[m,L]}]}}]},{notMerge:!1,replaceMerge:[]})},Te=M=>{const[r,y]=de({startTime:M.startTime,endTime:M.endTime,cycle:e.cycle});R({startTime:r,endTime:y})},ue=({code:M,ctrlKey:r})=>{if(!t||!(r||d.value))return;const{xAxis:y,dataZoom:C}=t.getOption(),{data:L}=(y==null?void 0:y[0])??{data:[]};let{startValue:m,endValue:w}=(C==null?void 0:C[0])??{};if(L!=null&&L.length){switch(M){case"ArrowUp":{if(w-m<5)return;const S=Math.floor((w-m)/2)+1;m=m+S,w-m<5&&(m=w-4);break}case"ArrowDown":{const S=Math.min(500,w-m);m=m-S-1;break}case"ArrowLeft":{m>0&&(m-=1,w-=1),j.value>0&&(j.value-=1);break}case"ArrowRight":{w<L.length-1&&(m+=1,w+=1),d.value&&j.value<L.length-1&&(j.value+=1);break}}t.dispatchAction({type:"dataZoom",startValue:m,endValue:w}),t.dispatchAction({type:"updateAxisPointer",seriesIndex:0,dataIndex:d.value?j.value:null}),t.dispatchAction({type:"highlight",dataIndex:d.value?j.value:w})}};return a.onMounted(()=>{const[M,r]=e.initTimeRange;R({startTime:M,endTime:r})}),a.watch(()=>[e.varietyCode,e.initTimeRange],()=>{const[M,r]=e.initTimeRange;R({startTime:M,endTime:r})},{deep:!0}),a.watch(()=>[e.cycle],()=>{var L;const{startValue:M,endValue:r}=((L=t.getOption())==null?void 0:L.dataZoom[0])??{},[y,C]=de({startTime:i.value.time[M],endTime:i.value.time[r],cycle:e.cycle,type:"middle"});R({startTime:y,endTime:C})},{deep:!0}),a.watch(()=>{var M,r;return[e.mainIndicator,z.value,(M=e.indicatorStore)==null?void 0:M.filterIndicator,(r=e.indicatorStore)==null?void 0:r.customIndicator,e.rightType,e.klineType]},()=>{var L;const{startValue:M,endValue:r}=((L=t.getOption())==null?void 0:L.dataZoom[0])??{},[y,C]=[i.value.time[M],i.value.time[r]];R({startTime:y,endTime:C})},{deep:!0}),a.watch(()=>[e.sellBuy,e.tradeLog,e.netPositionData,e.incomeType,e.tradeIncomeRateData],()=>{var y;const{startValue:M,endValue:r}=((y=t.getOption())==null?void 0:y.dataZoom[0])??{};Me({startValue:M,endValue:r})},{deep:!0}),a.onUnmounted(()=>{var M;t==null||t.off("highlight"),t==null||t.off("globalout"),t==null||t.off("datazoom"),(M=t==null?void 0:t.getZr())==null||M.off("contextmenu"),window.removeEventListener("keydown",ue),t==null||t.dispose(),s==null||s.dispose(),f==null||f.dispose(),f=null}),N({screenTimeRange:o,contextmenuKlineTime:g,reDraw:()=>{var y;const{startValue:M,endValue:r}=((y=t.getOption())==null?void 0:y.dataZoom[0])??{};Me({startValue:M,endValue:r})}}),(M,r)=>{const y=ye.ElOption,C=ye.ElSelect,L=Ie.ElEmpty,m=ge.vLoading;return a.withDirectives((a.openBlock(),a.createElementBlock("div",{class:"kline-plus",onMousemove:r[1]||(r[1]=w=>d.value=!0),onMouseout:r[2]||(r[2]=w=>d.value=!1)},[a.createElementVNode("div",Pe,[a.createElementVNode("div",Fe,[a.createVNode(oe,{data:O.value},null,8,["data"]),a.createVNode(oe,{data:Q.value},null,8,["data"])]),n.userKlineConfig.enable_showScreenTimeRange?(a.openBlock(),a.createElementBlock("span",Re,a.toDisplayString(o.value[0])+" - "+a.toDisplayString(o.value[1]),1)):a.createCommentVNode("",!0),a.createElementVNode("div",{ref_key:"mainChartRef",ref:T,class:"chart"},null,512)]),n.userKlineConfig.enable_subChart?(a.openBlock(),a.createElementBlock("div",Ue,[a.createElementVNode("div",Ve,[a.createElementVNode("div",Be,[a.createElementVNode("span",null,a.toDisplayString(z.value),1),a.createVNode(C,{modelValue:z.value,"onUpdate:modelValue":r[0]||(r[0]=w=>z.value=w),style:{width:"100px","margin-right":"4px",height:"25px"},size:"small",class:"element-dark","popper-class":"element-dark"},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.indicatorStore.subIndicatorList,(w,S)=>(a.openBlock(),a.createBlock(y,{key:S,label:w.label,value:w.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),a.createVNode(oe,{data:F.value},null,8,["data"])]),a.createElementVNode("div",{ref_key:"subChartRef",ref:x,class:"chart"},null,512)])):a.createCommentVNode("",!0),n.userKlineConfig.enable_sliderChart?(a.openBlock(),a.createElementBlock("div",_e,[a.createVNode(Qe,{ref_key:"sliderChartRef",ref:p,screenTimeRange:o.value,varietyCode:n.varietyCode,varietyStock:n.varietyStock,rightType:n.rightType,klineType:n.klineType,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission,onChange:Te},null,8,["screenTimeRange","varietyCode","varietyStock","rightType","klineType","deleteFirstNumber","withoutPermission"])])):a.createCommentVNode("",!0),i.value.time.length?a.createCommentVNode("",!0):(a.openBlock(),a.createBlock(L,{key:2,class:"empty",description:"暂无数据"}))],32)),[[m,A.value]])}}},Ge=ce._export_sfc(He,[["__scopeId","data-v-9e2ef99d"]]),$e={install(n){n.component("st-klinePlus",Ge)}};module.exports=$e;