st-comp 0.0.177 → 0.0.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/KlinePlus.cjs +3 -3
- package/es/KlinePlus.js +45 -45
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +1 -1
- package/lib/{index-00f44742.js → index-0f16f8b0.js} +3 -3
- package/lib/{python-1fd0288d.js → python-e9c32bc9.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/KlinePlus/index.vue +2 -2
package/es/KlinePlus.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";require("./base-bdc10baa.cjs");const Te=require("./el-loading-15a5501c.cjs"),ge=require("./el-empty-627ec09e.cjs");require("./el-tag-8d49d4d2.cjs");const je=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./el-popper-14a9d493.cjs");const t=require("vue"),I=require("./dayjs.min-19fb125f.cjs"),Ie=require("echarts"),H=require("./index-8901a38c.cjs"),oe=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-global-config-584b62f1.cjs");require("./use-form-common-props-592797e2.cjs");require("./index-02ca0096.cjs");require("./index-19fa1fcf.cjs");require("./index-a99a5307.cjs");require("./castArray-37eb9980.cjs");require("./index-5b81f4da.cjs");require("./index-d94bae37.cjs");require("./scroll-4769a65d.cjs");require("./debounce-9e323221.cjs");require("./_commonjsHelpers-87b0abe8.cjs");function Ye(a){const z=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const l in a)if(l!=="default"){const y=Object.getOwnPropertyDescriptor(a,l);Object.defineProperty(z,l,y.get?y:{enumerable:!0,get:()=>a[l]})}}return z.default=a,Object.freeze(z)}const Me=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:we}=H.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},ze=({startTime:a,endTime:z,cycle:l,type:y="end"})=>{const{maxValueSpan:d}=Z,A=Math.ceil((d+1e3)/pe[l]),Y=I.dayjs(a);if(I.dayjs(z).diff(Y,"day")<=A)return[a,z];if(y==="end")return[I.dayjs(z).subtract(A,"day").format("YYYY-MM-DD HH:mm:ss"),z];if(y==="middle"){const h=I.dayjs((I.dayjs(a).valueOf()+I.dayjs(z).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",h,A/2),[I.dayjs(h).subtract(A/2,"day").format("YYYY-MM-DD HH:mm:ss"),I.dayjs(h).add(A/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},fe=(a,z)=>{const l=a[z],y=z===0?a[z]:a[z-1];return l[0]===l[1]?l[0]>=y[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:l[1]>l[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},xe=(a,z,l)=>{var d,A,Y,D;const y=a.subIndicator.map(e=>{if(e.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:e.data.map((h,S)=>e.seriesColor==="kline"?{value:h,itemStyle:fe(a.data,S)}:e.seriesColor==="value"?{value:h,itemStyle:{color:h>=0?"#FF0000":"#00FFFF"}}:{value:h,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:z,endValue:l,maxValueSpan:Z.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:e=>{const{axisDimension:h,value:S}=e;if(h==="x")return null;if(e.axisIndex===1)return String(we(S))}}},xAxis:{type:"category",data:a.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((d=a.subIndicator[0])==null?void 0:d.leftYAxisRange)==="cover"?e=>e.min:null,max:((A=a.subIndicator[0])==null?void 0:A.leftYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((Y=a.subIndicator[0])==null?void 0:Y.rightYAxisRange)==="cover"?e=>e.min:null,max:((D=a.subIndicator[0])==null?void 0:D.rightYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:y}},de=(a,z,l="strict")=>{let y=0,d=a.length-1,A=-1;for(;y<=d;){let Y=Math.floor((y+d)/2);if(l==="strict"){if(a[Y]===z)return Y;a[Y]<z?y=Y+1:d=Y-1}else l==="gte"&&(a[Y]>=z?(A=Y,d=Y-1):y=Y+1)}return l==="strict"?-1:A},ye=(a,z)=>({data:[...a.data,...z.data.slice(1)],mainIndicator:a.mainIndicator.map((l,y)=>({...l,data:[...l.data,...z.mainIndicator[y].data.slice(1)]})),subIndicator:a.subIndicator.map((l,y)=>({...l,data:[...l.data,...z.subIndicator[y].data.slice(1)]})),time:[...a.time,...z.time.slice(1)]}),ne=(a,z,l)=>{switch(l){case"5":{let m=[...new Set(a.slice(-20).map(T=>{const n=new Date(T),s=String(n.getHours()).padStart(2,"0"),w=String(n.getMinutes()).padStart(2,"0"),v=String(n.getSeconds()).padStart(2,"0");return`${s}:${w}:${v}`}))];m.includes("00:00:00")&&(m.splice(m.indexOf("00:00:00"),1),m.push("24:00:00")),m=m.sort((T,n)=>new Date(`2000-01-30 ${T}`).getTime()-new Date(`2000-01-30 ${n}`).getTime());const g=new Date(z),N=g.getFullYear(),u=String(g.getMonth()+1).padStart(2,"0"),i=String(g.getDate()).padStart(2,"0"),O=String(g.getHours()).padStart(2,"0"),c=String(g.getMinutes()).padStart(2,"0"),o=String(g.getSeconds()).padStart(2,"0");if(`${O}:${c}:${o}`=="00:00:00")return`${N}-${u}-${i} 01:00:00`;{let T=null;for(let n=0;n<m.length;n++){const s=m[n].split(":");if(+`${s[0]}${s[1]}${s[2]}`>=+`${O}${c}${o}`){T=m[n];break}}if(T==="24:00:00"){const n=new Date(z);n.setDate(n.getDate()+1);const s=n.getFullYear(),w=String(n.getMonth()+1).padStart(2,"0"),v=String(n.getDate()).padStart(2,"0");return`${s}-${w}-${v} 00:00:00`}return`${N}-${u}-${i} ${T}`}}case"6":{const m=new Date(z),g=m.getHours();if(g>=4&&g<21){const N=m.getFullYear(),u=String(m.getMonth()+1).padStart(2,"0"),i=String(m.getDate()).padStart(2,"0");return`${N}-${u}-${i} 09:00:00`}else{const N=new Date(z);N.getHours()>=21&&N.setDate(N.getDate()+1);const u=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0"),c=`${u}-${i}-${O} 09:00:00`,o=de(a,c,"gte");return o===-1?c:a[o]}}case"7":{const m=new Date(z),g=new Date(m);g.setDate(m.getDate()-m.getDay()),g.setHours(0,0,0,0);const N=new Date(g);N.setDate(g.getDate()+5),N.setHours(23,59,59,0);const u=new Date(g);u.setDate(g.getDate()+12),u.setHours(9,0,0,0);const i=m<=N?N:u,O=i.getFullYear(),c=String(i.getMonth()+1).padStart(2,"0"),o=String(i.getDate()).padStart(2,"0");return`${O}-${c}-${o} 09:00:00`}case"8":{const m=new Date(z),g=new Date(m.getFullYear(),m.getMonth()+1,1),N=new Date(g);N.setDate(g.getDate()-1),N.setHours(9,0,0,0);const u=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0");return`${u}-${i}-${O} 09:00:00`}}const y=new Date(z),d=y.getFullYear(),A=y.getMonth(),Y=y.getDate(),D=y.getHours(),e=y.getMinutes(),h=y.getSeconds(),S=m=>{let g=null;const N=Math.floor(e/m);e%m===0&&h===0?g=e:g=(N+1)*m;const u=Math.floor(g/60),i=D+u,O=g%60,c=new Date(d,A,Y,i,O,0),o=R=>String(R).padStart(2,"0"),T=c.getFullYear(),n=o(c.getMonth()+1),s=o(c.getDate()),w=o(c.getHours()),v=o(c.getMinutes());return`${T}-${n}-${s} ${w}:${v}:00`};switch(l){case"1":return S(1);case"2":return S(5);case"3":return S(15);case"4":return S(30);default:throw new Error(`Unsupported cycle: ${z} ${l}`)}},ae=(a,z,l)=>{let y=null,d=null;const[A,Y]=z;switch(l){case"6":{y=a.find(D=>new Date(I.dayjs(D).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(A).getTime()),d=a.findLast(D=>new Date(I.dayjs(D).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(Y).getTime());break}case"7":{const D=I.dayjs(Y).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");y=a.find(e=>I.dayjs(e).endOf("week").add(1,"day").format("YYYY-MM-DD")===I.dayjs(A).endOf("week").add(1,"day").format("YYYY-MM-DD")),d=a.findLast(e=>new Date(e).getTime()<=new Date(D).getTime());break}case"8":{y=a.find(D=>I.dayjs(D).format("YYYY-MM")===I.dayjs(A).format("YYYY-MM")),d=a.findLast(D=>I.dayjs(D).format("YYYY-MM")===I.dayjs(Y).format("YYYY-MM"));break}default:y=a.find(D=>new Date(D).getTime()>=new Date(A).getTime()),d=a.findLast(D=>new Date(D).getTime()<=new Date(Y).getTime())}return[y,d]},Oe=(a,z,l,y,d)=>{const A=(g,N)=>{const{direction:u="",tradeAction:i="",tradeType:O=""}=g,c=O??u+i;switch(N){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(c);case 1:return O??u+i}},Y=(g,N,u,i)=>g.reduce((O,c)=>{var R;const o=A(c,0),T=g.filter(V=>V.klineTime===c.klineTime),n=[...new Set(T.map(V=>A(V,0)))];let s=null;n.length>1?s="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:s="image://"+new URL(Object.assign({"./images/buy.svg":Le,"./images/sell.svg":me,"./images/t.svg":Ae})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const w=de(u,c.klineTime),v=(R=i[w])==null?void 0:R[3];return N.forEach(V=>{var B;const K=o==="买"?0:1;V.range[K]===c.klineTime&&(V.rangeValue[K]=(B=i[w])==null?void 0:B[o==="买"?2:3])}),O.push({symbol:s,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[c.klineTime,v],silent:!0,animation:!1,customData:{tradeType:o,amount:c.amount,part:c.part,profitAndLoss:c.profitAndLoss,openPriceAll:c.openPriceAll,closePriceAll:c.closePriceAll}}),O},[]),D=(g,N,u,i)=>g.reduce((O,c,o)=>{const T=A(c,1),n=["开多","开空"].includes(T)?"top":"bottom",s=n==="top"?(c.openPriceAll/c.amount).toFixed(2):(c.closePriceAll/c.amount).toFixed(2);return N.forEach(w=>{(n==="top"?w.range[0]:w.range[1])===c.klineTime&&(w.rangeValue[n==="top"?0:1]=s)}),O.push({symbol:"triangle",symbolSize:[10,12],symbolRotate:n==="top"?180:0,symbolOffset:[0,0],label:{show:!0,position:n,color:"#fff",formatter:`${T} ${n==="top"?"+":"-"} ${c.amount}手 ${c.part?`(${c.part}份)`:""}`},itemStyle:{color:n==="top"?"#FF0000":"#389e0d"},coord:[c.klineTime,s],silent:!0,animation:!1,customData:{tradeType:T,amount:c.amount,part:c.part,profitAndLoss:c.profitAndLoss,openPriceAll:c.openPriceAll,closePriceAll:c.closePriceAll}}),O},[]),e=(g,N,u)=>{const{basePointData:i,baseLineData:O}=g.reduce((n,s)=>{const w={pointTime:s.openTime,tradeAction:"开",tradeDirection:s.tradeDirection?"空":"多",tradeType:`开${s.tradeDirection?"空":"多"}`,part:null,amount:s.tradeVolume,profitAndLoss:s.profitAndLoss,openPriceAll:s.openPrice*s.tradeVolume,closePriceAll:s.closePrice*s.tradeVolume,klineTime:ne(u,s.openTime,N)},v={pointTime:s.closeTime,tradeAction:"平",tradeDirection:s.tradeDirection?"空":"多",tradeType:`平${s.tradeDirection?"空":"多"}`,part:null,amount:s.tradeVolume,profitAndLoss:s.profitAndLoss,openPriceAll:s.openPrice*s.tradeVolume,closePriceAll:s.closePrice*s.tradeVolume,klineTime:ne(u,s.closeTime,N)},R={range:[w.klineTime,v.klineTime],rangeValue:[null,null],color:v.profitAndLoss>0?"#FF0000":"#389e0d"};return n.basePointData.push(w,v),n.baseLineData.push(R),n},{basePointData:[],baseLineData:[]}),o=[...i.reduce((n,s)=>{const w=JSON.parse(JSON.stringify(s)),v=w.klineTime+w.tradeType;if(n.has(v)){const R=n.get(v);w.amount+=R.amount,w.part+=R.part,w.profitAndLoss+=R.profitAndLoss,w.openPriceAll+=R.openPriceAll,w.closePriceAll+=R.closePriceAll}return n.set(v,w),n},new Map([])).values()].sort((n,s)=>new Date(n.klineTime)-new Date(s.klineTime)),T=O.filter(({range:n})=>n[0]!==n[1]);return{pointData:o,lineData:T}},{pointData:h,lineData:S}=e(a,z,y);return{tradePointData:(l===0?Y:D)(h,S,y,d),tradeLineData:S.map(({range:g,rangeValue:N,color:u})=>[{symbol:"none",coord:[g[0],N[0]],lineStyle:{color:u,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[g[1],N[1]],silent:!0,animation:!1}])}},Ce=(a,z)=>{let l=[];if(Number(z)<=5)l=a.map(({tradeDate:y,netPositionValue:d})=>[I.dayjs(y).format("YYYY-MM-DD HH:mm:ss"),d]);else if(Number(z)===6){const y=a.reduce((d,A)=>{const{tradeDate:Y,netPositionValue:D}=A;return d.set(I.dayjs(Y).format("YYYY-MM-DD 09:00:00"),D),d},new Map);l=Array.from(y,([d,A])=>[d,A])}else l=[];return{netPositionLineData:l}},ke=(a,z,l,y)=>{let d=[];if(["6","7","8"].includes(z)){const A=a.reduce((Y,D)=>{const e=ne(y,D.date,z),h=D[l===0?"simple":"compound"];return Y.set(e,h),Y},new Map);d=Array.from(A,([Y,D])=>[Y,D])}else d=[];return{tradeIncomeRateLineData:d}};const he={class:"tips"},be={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(a){return(z,l)=>(t.openBlock(),t.createElementBlock("div",he,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.data,(y,d)=>(t.openBlock(),t.createElementBlock("span",{key:d,class:"item",style:t.normalizeStyle({color:y.color})},t.toDisplayString(y.label)+" "+t.toDisplayString(y.value),5))),128))]))}},ie=oe._export_sfc(be,[["__scopeId","data-v-df1caefe"]]);const Ee={__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(a,{expose:z,emit:l}){const{request:y}=t.inject("stConfig");let d=null;const A=t.ref(null),Y=l,D=a,e=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),h=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:I.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:D.deleteFirstNumber,withoutPermission:D.withoutPermission},{body:u}=await y.post("/middleLayer/kline/getKline",N);u?e.value=u:e.value={data:[],mainIndicator:[],subIndicator:[],time:[]},g("init")},S=H.G(N=>{if(!N.dataZoomId)return;const u=d.getOption();if(u!=null&&u.dataZoom[0]){const{startValue:i,endValue:O}=d.getOption().dataZoom[0],{time:c}=e.value,o=`${c[i].split(" ")[0]} 00:00:00`,T=`${c[O].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${o} - ${T}`),Y("change",{startTime:o,endTime:T})}},200),m=H.G(({startTime:N,endTime:u})=>{g("reset",{startTime:N,endTime:u})},100),g=(N,u)=>{switch(N){case"init":{const{data:i,time:O}=e.value,{xAxisData:c,lineData:o}=i.reduce((n,s,w)=>(n.xAxisData.push(O[w].split(" ")[0]),n.lineData.push(s[1]),n),{xAxisData:[],lineData:[]}),T={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:c,show:!1},yAxis:{type:"value"},dataZoom:[{show:!0,startValue:0,endValue:0,textStyle:{color:"#ccc"}},{type:"inside",startValue:0,endValue:0}],series:[{data:o,type:"line"}]};if(d.setOption(T,!0),D.screenTimeRange.length){const[n,s]=D.screenTimeRange;m({startTime:n,endTime:s})}break}case"reset":{const{time:i}=e.value,O=I.dayjs(u.startTime).format("YYYY-MM-DD"),c=I.dayjs(u.endTime).format("YYYY-MM-DD");let o=-1,T=-1;for(let n=0;n<i.length;n++){const s=I.dayjs(i[n]).format("YYYY-MM-DD");if(o!==-1&&T!==-1)break;o===-1&&(new Date(s)===new Date(O)?o=n:new Date(s)>new Date(O)&&(o=n-1)),T===-1&&(new Date(s)===new Date(c)?T=n:new Date(s)>new Date(c)&&(T=n-1))}T===-1&&(T=i.length-1),d.dispatchAction({type:"dataZoom",startValue:o,endValue:T});break}}};return t.onMounted(()=>{t.nextTick(()=>{d=Me.init(A.value),d.on("datazoom",S),h()})}),t.watch(()=>D.screenTimeRange,N=>{const[u,i]=N;m({startTime:u,endTime:i})},{deep:!0}),t.onUnmounted(()=>{d.off("datazoom"),d.dispose()}),z({resize:H.G(()=>d.resize(),100)}),(N,u)=>(t.openBlock(),t.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:A},null,512))}},ve=oe._export_sfc(Ee,[["__scopeId","data-v-0c715da1"]]);const Se={class:"main-chart"},Qe={class:"indicator"},Pe={key:0,class:"screen-time-range"},Re={key:0,class:"sub-chart"},Fe={class:"indicator"},Ue={class:"title"},Ve={key:1,class:"slider-chart"},Be={__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(a,{expose:z}){const{round:l,formatValue:y}=H.x,{request:d}=t.inject("stConfig"),A=t.ref(),Y=t.ref(!1),D=t.ref(!1),e=a;let h=!1,S=!1,m=!1,g=!1,N=null,u=null,i=null;const O=t.ref(null),c=t.ref(null),o=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),T=t.ref(0),n=t.ref([]),s=t.ref(null),w=t.ref("VOL"),v=t.computed(()=>{const M=o.value.data[T.value];if(!M)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const r=[{label:"开",value:l(M[0])},{label:"高",value:l(M[3])},{label:"低",value:l(M[2])},{label:"收",value:l(M[1])}];M[4]!==null&&r.push({label:"额",value:y(M[4])});let j;return M[6]>0?j="red":M[6]<0&&(j="green"),r.push({label:"涨跌",value:`${l(M[6])}%`,color:j}),r}),R=t.computed(()=>{var M,r;return((r=(M=o.value)==null?void 0:M.mainIndicator)==null?void 0:r.map(j=>({label:j.key,value:l(j.data[T.value]),color:j.color})))||[]}),V=t.computed(()=>{var M,r;return((r=(M=o.value)==null?void 0:M.subIndicator)==null?void 0:r.map(j=>({label:j.key,color:j.color,value:j.data[T.value]||"-"})))||[]}),K=()=>{i||(i=Me.init(c.value),i.on("highlight",H.G(M=>{var r;M.dataIndex?T.value=M.dataIndex:T.value=((r=M.batch)==null?void 0:r[0].dataIndex)??-1},10)),i.on("datazoom",H.G(async()=>{var k;const{loadCheckCount:M}=Z,{startValue:r,endValue:j}=((k=i.getOption())==null?void 0:k.dataZoom[0])??{};m===!1&&g===!1&&r<M&&await re("history"),h===!1&&S===!1&&j>o.value.time.length-M&&await re("new"),ce(),se()})),i.on("globalout",()=>{const M=i.getOption();T.value=M.dataZoom[0].endValue}),i.getZr().on("contextmenu",()=>{var M;s.value=(M=o.value)==null?void 0:M.time[T.value]}),window.addEventListener("keydown",le),e.userKlineConfig.enable_subChart&&(u=Me.init(O.value),Me.connect([i,u])),N=H.D(c.value),N.listen(()=>{requestAnimationFrame(()=>{var M;i.resize(),u==null||u.resize(),(M=A.value)==null||M.resize()})}))},B=async({startTime:M,endTime:r})=>{m=!1,g=!1,h=!1,S=!1;try{Y.value=!0;const j={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:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(j,{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(j,{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(j,{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:k}=await d.post("/middleLayer/kline/getKline",j);o.value=k??{data:[],mainIndicator:[],subIndicator:[],time:[]};let f=-1,L=-1;for(let p=0;p<o.value.time.length;p++){const Q=I.dayjs(o.value.time[p]).format("YYYY-MM-DD");if(f!==-1&&L!==-1)break;f===-1&&(new Date(Q)===new Date(M)?f=p:new Date(Q)>new Date(M)&&(f=p-1)),L===-1&&(new Date(Q)===new Date(r)?L=p:new Date(Q)>new Date(r)&&(L=p-1))}L===-1&&(L=o.value.time.length-1),X({startValue:f===-1?0:f,endValue:L===-1?o.value.time.length-1:L})}finally{Y.value=!1}},re=async M=>{var Q,$;const{loadAddCount:r}=Z;switch(M){case"history":{m=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,endTime:o.value.time[0],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:P}=await d.post("/middleLayer/kline/getKline",F);o.value=ye(P,o.value),P.data.length<r&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),g=!0),m=!1;break}case"new":{h=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,startTime:o.value.time[o.value.time.length-1],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:P}=await d.post("/middleLayer/kline/getKline",F);o.value=ye(o.value,P),P.data.length<r&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),S=!0),h=!1;break}}const{startValue:j,endValue:k}=((Q=i.getOption())==null?void 0:Q.dataZoom[0])??{},f=($=i.getOption())==null?void 0:$.xAxis[0].data,L=o.value.time.findIndex(F=>new Date(F)>=new Date(f[j])),p=o.value.time.findIndex(F=>new Date(F)>=new Date(f[k]));X({startValue:L===-1?0:L,endValue:p===-1?o.value.time.length-1:p})},ce=()=>{var L;if(!o.value.time)return n.value=[];const{time:M}=o.value,{startValue:r,endValue:j}=((L=i.getOption())==null?void 0:L.dataZoom[0])??{},k=M[r],f=M[j];["6","7","8"].includes(e.cycle)?n.value=[I.dayjs(k).format("YYYY-MM-DD"),I.dayjs(f).format("YYYY-MM-DD")]:n.value=[k,f]},X=(M={startValue:0,endValue:0})=>{K();const{maxValueSpan:r}=Z,{time:j,data:k,mainIndicator:f}=o.value,L=M.endValue-M.startValue>r?M.endValue-r:M.startValue,p=M.endValue,Q=f.map(C=>({name:C.key,type:"line",silent:!0,symbol:"none",data:C.data,lineStyle:{width:C.width||1},itemStyle:{color:C.color}})),{netPositionLineData:$}=Ce(e.netPositionData,e.cycle),{tradeIncomeRateLineData:F}=ke(e.tradeIncomeRateData,e.cycle,e.incomeType,j),{tradePointData:P,tradeLineData:ee}=Oe(e.tradeLog,e.cycle,e.sellBuy,j,k);i.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:p,minValueSpan:Z.minValueSpan,maxValueSpan:Z.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:C=>{const{axisDimension:x,value:b}=C;return x==="x"?["6","7","8"].includes(e.cycle)?I.dayjs(b).format("YYYY-MM-DD"):b:String(l(b))}}},formatter:C=>{if(!(C!=null&&C.length))return null;let x="";if(C.forEach(E=>{if(E.seriesName==="netPosition"&&E.data!==null&&(x+=`<div>资产持仓净值: ${E.data[1]}</div>`),E.componentSubType==="candlestick")if(e.sellBuy===0){const W=P.filter(U=>(U==null?void 0:U.coord[0])===E.axisValue);let G=0,_=0;W.forEach(U=>{const{tradeType:q,amount:te}=U.customData;q==="买"&&(G+=te),q==="卖"&&(_+=te)}),G&&(x+=`<div>买: ${G}</div>`),_&&(x+=`<div>卖: ${_}</div>`)}else P.forEach(W=>{if((W==null?void 0:W.coord[0])===E.axisValue){const{tradeType:G,amount:_,profitAndLoss:U,openPriceAll:q,closePriceAll:te}=W.customData;let J=`<div>${G}: ${_}手</div>`;if(G.includes("开")&&(J+=`<div>开仓价: ${(q/_).toFixed(2)}</div>`),G.includes("平")){const Ne=(q/_).toFixed(2),ue=(te/_).toFixed(2);J+=`<div>平仓价: ${ue}</div>`,J+=`<div>盈亏: ${U==null?void 0:U.toFixed(2)}</div>`,J+=`<div>盈亏比率: ${((ue-Ne)/Ne*100).toFixed(2)} %</div>`}x+=J}})}),!x)return null;let b=C[0].axisValue;return["6","7","8"].includes(e.cycle)&&(b=I.dayjs(b).format("YYYY-MM-DD")),`
|
|
1
|
+
"use strict";require("./base-bdc10baa.cjs");const Te=require("./el-loading-15a5501c.cjs"),ge=require("./el-empty-627ec09e.cjs");require("./el-tag-8d49d4d2.cjs");const je=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./el-popper-14a9d493.cjs");const t=require("vue"),I=require("./dayjs.min-19fb125f.cjs"),Ie=require("echarts"),H=require("./index-8901a38c.cjs"),oe=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-global-config-584b62f1.cjs");require("./use-form-common-props-592797e2.cjs");require("./index-02ca0096.cjs");require("./index-19fa1fcf.cjs");require("./index-a99a5307.cjs");require("./castArray-37eb9980.cjs");require("./index-5b81f4da.cjs");require("./index-d94bae37.cjs");require("./scroll-4769a65d.cjs");require("./debounce-9e323221.cjs");require("./_commonjsHelpers-87b0abe8.cjs");function Ye(a){const z=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const s in a)if(s!=="default"){const y=Object.getOwnPropertyDescriptor(a,s);Object.defineProperty(z,s,y.get?y:{enumerable:!0,get:()=>a[s]})}}return z.default=a,Object.freeze(z)}const Me=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:we}=H.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},ze=({startTime:a,endTime:z,cycle:s,type:y="end"})=>{const{maxValueSpan:d}=Z,A=Math.ceil((d+1e3)/pe[s]),Y=I.dayjs(a);if(I.dayjs(z).diff(Y,"day")<=A)return[a,z];if(y==="end")return[I.dayjs(z).subtract(A,"day").format("YYYY-MM-DD HH:mm:ss"),z];if(y==="middle"){const b=I.dayjs((I.dayjs(a).valueOf()+I.dayjs(z).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",b,A/2),[I.dayjs(b).subtract(A/2,"day").format("YYYY-MM-DD HH:mm:ss"),I.dayjs(b).add(A/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},fe=(a,z)=>{const s=a[z],y=z===0?a[z]:a[z-1];return s[0]===s[1]?s[0]>=y[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:s[1]>s[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},xe=(a,z,s)=>{var d,A,Y,D;const y=a.subIndicator.map(e=>{if(e.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:e.data.map((b,S)=>e.seriesColor==="kline"?{value:b,itemStyle:fe(a.data,S)}:e.seriesColor==="value"?{value:b,itemStyle:{color:b>=0?"#FF0000":"#00FFFF"}}:{value:b,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:z,endValue:s,maxValueSpan:Z.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:e=>{const{axisDimension:b,value:S}=e;if(b==="x")return null;if(e.axisIndex===1)return String(we(S))}}},xAxis:{type:"category",data:a.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((d=a.subIndicator[0])==null?void 0:d.leftYAxisRange)==="cover"?e=>e.min:null,max:((A=a.subIndicator[0])==null?void 0:A.leftYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((Y=a.subIndicator[0])==null?void 0:Y.rightYAxisRange)==="cover"?e=>e.min:null,max:((D=a.subIndicator[0])==null?void 0:D.rightYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:y}},de=(a,z,s="strict")=>{let y=0,d=a.length-1,A=-1;for(;y<=d;){let Y=Math.floor((y+d)/2);if(s==="strict"){if(a[Y]===z)return Y;a[Y]<z?y=Y+1:d=Y-1}else s==="gte"&&(a[Y]>=z?(A=Y,d=Y-1):y=Y+1)}return s==="strict"?-1:A},ye=(a,z)=>({data:[...a.data,...z.data.slice(1)],mainIndicator:a.mainIndicator.map((s,y)=>({...s,data:[...s.data,...z.mainIndicator[y].data.slice(1)]})),subIndicator:a.subIndicator.map((s,y)=>({...s,data:[...s.data,...z.subIndicator[y].data.slice(1)]})),time:[...a.time,...z.time.slice(1)]}),ne=(a,z,s)=>{switch(s){case"5":{let m=[...new Set(a.slice(-20).map(T=>{const n=new Date(T),l=String(n.getHours()).padStart(2,"0"),w=String(n.getMinutes()).padStart(2,"0"),v=String(n.getSeconds()).padStart(2,"0");return`${l}:${w}:${v}`}))];m.includes("00:00:00")&&(m.splice(m.indexOf("00:00:00"),1),m.push("24:00:00")),m=m.sort((T,n)=>new Date(`2000-01-30 ${T}`).getTime()-new Date(`2000-01-30 ${n}`).getTime());const g=new Date(z),N=g.getFullYear(),u=String(g.getMonth()+1).padStart(2,"0"),i=String(g.getDate()).padStart(2,"0"),O=String(g.getHours()).padStart(2,"0"),c=String(g.getMinutes()).padStart(2,"0"),o=String(g.getSeconds()).padStart(2,"0");if(`${O}:${c}:${o}`=="00:00:00")return`${N}-${u}-${i} 01:00:00`;{let T=null;for(let n=0;n<m.length;n++){const l=m[n].split(":");if(+`${l[0]}${l[1]}${l[2]}`>=+`${O}${c}${o}`){T=m[n];break}}if(T==="24:00:00"){const n=new Date(z);n.setDate(n.getDate()+1);const l=n.getFullYear(),w=String(n.getMonth()+1).padStart(2,"0"),v=String(n.getDate()).padStart(2,"0");return`${l}-${w}-${v} 00:00:00`}return`${N}-${u}-${i} ${T}`}}case"6":{const m=new Date(z),g=m.getHours();if(g>=4&&g<21){const N=m.getFullYear(),u=String(m.getMonth()+1).padStart(2,"0"),i=String(m.getDate()).padStart(2,"0");return`${N}-${u}-${i} 09:00:00`}else{const N=new Date(z);N.getHours()>=21&&N.setDate(N.getDate()+1);const u=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0"),c=`${u}-${i}-${O} 09:00:00`,o=de(a,c,"gte");return o===-1?c:a[o]}}case"7":{const m=new Date(z),g=new Date(m);g.setDate(m.getDate()-m.getDay()),g.setHours(0,0,0,0);const N=new Date(g);N.setDate(g.getDate()+5),N.setHours(23,59,59,0);const u=new Date(g);u.setDate(g.getDate()+12),u.setHours(9,0,0,0);const i=m<=N?N:u,O=i.getFullYear(),c=String(i.getMonth()+1).padStart(2,"0"),o=String(i.getDate()).padStart(2,"0");return`${O}-${c}-${o} 09:00:00`}case"8":{const m=new Date(z),g=new Date(m.getFullYear(),m.getMonth()+1,1),N=new Date(g);N.setDate(g.getDate()-1),N.setHours(9,0,0,0);const u=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),O=String(N.getDate()).padStart(2,"0");return`${u}-${i}-${O} 09:00:00`}}const y=new Date(z),d=y.getFullYear(),A=y.getMonth(),Y=y.getDate(),D=y.getHours(),e=y.getMinutes(),b=y.getSeconds(),S=m=>{let g=null;const N=Math.floor(e/m);e%m===0&&b===0?g=e:g=(N+1)*m;const u=Math.floor(g/60),i=D+u,O=g%60,c=new Date(d,A,Y,i,O,0),o=R=>String(R).padStart(2,"0"),T=c.getFullYear(),n=o(c.getMonth()+1),l=o(c.getDate()),w=o(c.getHours()),v=o(c.getMinutes());return`${T}-${n}-${l} ${w}:${v}:00`};switch(s){case"1":return S(1);case"2":return S(5);case"3":return S(15);case"4":return S(30);default:throw new Error(`Unsupported cycle: ${z} ${s}`)}},ae=(a,z,s)=>{let y=null,d=null;const[A,Y]=z;switch(s){case"6":{y=a.find(D=>new Date(I.dayjs(D).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(A).getTime()),d=a.findLast(D=>new Date(I.dayjs(D).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(Y).getTime());break}case"7":{const D=I.dayjs(Y).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");y=a.find(e=>I.dayjs(e).endOf("week").add(1,"day").format("YYYY-MM-DD")===I.dayjs(A).endOf("week").add(1,"day").format("YYYY-MM-DD")),d=a.findLast(e=>new Date(e).getTime()<=new Date(D).getTime());break}case"8":{y=a.find(D=>I.dayjs(D).format("YYYY-MM")===I.dayjs(A).format("YYYY-MM")),d=a.findLast(D=>I.dayjs(D).format("YYYY-MM")===I.dayjs(Y).format("YYYY-MM"));break}default:y=a.find(D=>new Date(D).getTime()>=new Date(A).getTime()),d=a.findLast(D=>new Date(D).getTime()<=new Date(Y).getTime())}return[y,d]},Oe=(a,z,s,y,d)=>{const A=(g,N)=>{const{direction:u="",tradeAction:i="",tradeType:O=""}=g,c=O??u+i;switch(N){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(c);case 1:return O??u+i}},Y=(g,N,u,i)=>g.reduce((O,c)=>{var R;const o=A(c,0),T=g.filter(V=>V.klineTime===c.klineTime),n=[...new Set(T.map(V=>A(V,0)))];let l=null;n.length>1?l="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:l="image://"+new URL(Object.assign({"./images/buy.svg":Le,"./images/sell.svg":me,"./images/t.svg":Ae})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const w=de(u,c.klineTime),v=(R=i[w])==null?void 0:R[3];return N.forEach(V=>{var B;const K=o==="买"?0:1;V.range[K]===c.klineTime&&(V.rangeValue[K]=(B=i[w])==null?void 0:B[o==="买"?2:3])}),O.push({symbol:l,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[c.klineTime,v],silent:!0,animation:!1,customData:{tradeType:o,amount:c.amount,part:c.part,profitAndLoss:c.profitAndLoss,openPriceAll:c.openPriceAll,closePriceAll:c.closePriceAll}}),O},[]),D=(g,N,u,i)=>g.reduce((O,c,o)=>{const T=A(c,1),n=["开多","开空"].includes(T)?"top":"bottom",l=n==="top"?(c.openPriceAll/c.amount).toFixed(2):(c.closePriceAll/c.amount).toFixed(2);return N.forEach(w=>{(n==="top"?w.range[0]:w.range[1])===c.klineTime&&(w.rangeValue[n==="top"?0:1]=l)}),O.push({symbol:"triangle",symbolSize:[10,12],symbolRotate:n==="top"?180:0,symbolOffset:[0,0],label:{show:!0,position:n,color:"#fff",formatter:`${T} ${n==="top"?"+":"-"} ${c.amount}手 ${c.part?`(${c.part}份)`:""}`},itemStyle:{color:n==="top"?"#FF0000":"#389e0d"},coord:[c.klineTime,l],silent:!0,animation:!1,customData:{tradeType:T,amount:c.amount,part:c.part,profitAndLoss:c.profitAndLoss,openPriceAll:c.openPriceAll,closePriceAll:c.closePriceAll}}),O},[]),e=(g,N,u)=>{const{basePointData:i,baseLineData:O}=g.reduce((n,l)=>{const w={pointTime:l.openTime,tradeAction:"开",tradeDirection:l.tradeDirection?"空":"多",tradeType:`开${l.tradeDirection?"空":"多"}`,part:null,amount:l.tradeVolume,profitAndLoss:l.profitAndLoss,openPriceAll:l.openPrice*l.tradeVolume,closePriceAll:l.closePrice*l.tradeVolume,klineTime:ne(u,l.openTime,N)},v={pointTime:l.closeTime,tradeAction:"平",tradeDirection:l.tradeDirection?"空":"多",tradeType:`平${l.tradeDirection?"空":"多"}`,part:null,amount:l.tradeVolume,profitAndLoss:l.profitAndLoss,openPriceAll:l.openPrice*l.tradeVolume,closePriceAll:l.closePrice*l.tradeVolume,klineTime:ne(u,l.closeTime,N)},R={range:[w.klineTime,v.klineTime],rangeValue:[null,null],color:v.profitAndLoss>0?"#FF0000":"#389e0d"};return n.basePointData.push(w,v),n.baseLineData.push(R),n},{basePointData:[],baseLineData:[]}),o=[...i.reduce((n,l)=>{const w=JSON.parse(JSON.stringify(l)),v=w.klineTime+w.tradeType;if(n.has(v)){const R=n.get(v);w.amount+=R.amount,w.part+=R.part,w.profitAndLoss+=R.profitAndLoss,w.openPriceAll+=R.openPriceAll,w.closePriceAll+=R.closePriceAll}return n.set(v,w),n},new Map([])).values()].sort((n,l)=>new Date(n.klineTime)-new Date(l.klineTime)),T=O.filter(({range:n})=>n[0]!==n[1]);return{pointData:o,lineData:T}},{pointData:b,lineData:S}=e(a,z,y);return{tradePointData:(s===0?Y:D)(b,S,y,d),tradeLineData:S.map(({range:g,rangeValue:N,color:u})=>[{symbol:"none",coord:[g[0],N[0]],lineStyle:{color:u,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[g[1],N[1]],silent:!0,animation:!1}])}},Ce=(a,z)=>{let s=[];if(Number(z)<=5)s=a.map(({tradeDate:y,netPositionValue:d})=>[I.dayjs(y).format("YYYY-MM-DD HH:mm:ss"),d]);else if(Number(z)===6){const y=a.reduce((d,A)=>{const{tradeDate:Y,netPositionValue:D}=A;return d.set(I.dayjs(Y).format("YYYY-MM-DD 09:00:00"),D),d},new Map);s=Array.from(y,([d,A])=>[d,A])}else s=[];return{netPositionLineData:s}},ke=(a,z,s,y)=>{let d=[];if(["6","7","8"].includes(z)){const A=a.reduce((Y,D)=>{const e=ne(y,D.date,z),b=D[s===0?"simple":"compound"];return Y.set(e,b),Y},new Map);d=Array.from(A,([Y,D])=>[Y,D])}else d=[];return{tradeIncomeRateLineData:d}};const be={class:"tips"},he={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(a){return(z,s)=>(t.openBlock(),t.createElementBlock("div",be,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.data,(y,d)=>(t.openBlock(),t.createElementBlock("span",{key:d,class:"item",style:t.normalizeStyle({color:y.color})},t.toDisplayString(y.label)+" "+t.toDisplayString(y.value),5))),128))]))}},ie=oe._export_sfc(he,[["__scopeId","data-v-df1caefe"]]);const Ee={__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(a,{expose:z,emit:s}){const{request:y}=t.inject("stConfig");let d=null;const A=t.ref(null),Y=s,D=a,e=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),b=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:I.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:D.deleteFirstNumber,withoutPermission:D.withoutPermission},{body:u}=await y.post("/middleLayer/kline/getKline",N);u?e.value=u:e.value={data:[],mainIndicator:[],subIndicator:[],time:[]},g("init")},S=H.G(N=>{if(!N.dataZoomId)return;const u=d.getOption();if(u!=null&&u.dataZoom[0]){const{startValue:i,endValue:O}=d.getOption().dataZoom[0],{time:c}=e.value,o=`${c[i].split(" ")[0]} 00:00:00`,T=`${c[O].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${o} - ${T}`),Y("change",{startTime:o,endTime:T})}},200),m=H.G(({startTime:N,endTime:u})=>{g("reset",{startTime:N,endTime:u})},100),g=(N,u)=>{switch(N){case"init":{const{data:i,time:O}=e.value,{xAxisData:c,lineData:o}=i.reduce((n,l,w)=>(n.xAxisData.push(O[w].split(" ")[0]),n.lineData.push(l[1]),n),{xAxisData:[],lineData:[]}),T={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:c,show:!1},yAxis:{type:"value"},dataZoom:[{show:!0,startValue:0,endValue:0,textStyle:{color:"#ccc"}},{type:"inside",startValue:0,endValue:0}],series:[{data:o,type:"line"}]};if(d.setOption(T,!0),D.screenTimeRange.length){const[n,l]=D.screenTimeRange;m({startTime:n,endTime:l})}break}case"reset":{const{time:i}=e.value,O=I.dayjs(u.startTime).format("YYYY-MM-DD"),c=I.dayjs(u.endTime).format("YYYY-MM-DD");let o=-1,T=-1;for(let n=0;n<i.length;n++){const l=I.dayjs(i[n]).format("YYYY-MM-DD");if(o!==-1&&T!==-1)break;o===-1&&(new Date(l)===new Date(O)?o=n:new Date(l)>new Date(O)&&(o=n-1)),T===-1&&(new Date(l)===new Date(c)?T=n:new Date(l)>new Date(c)&&(T=n-1))}T===-1&&(T=i.length-1),d.dispatchAction({type:"dataZoom",startValue:o,endValue:T});break}}};return t.onMounted(()=>{t.nextTick(()=>{d=Me.init(A.value),d.on("datazoom",S),b()})}),t.watch(()=>D.screenTimeRange,N=>{const[u,i]=N;m({startTime:u,endTime:i})},{deep:!0}),t.onUnmounted(()=>{d.off("datazoom"),d.dispose()}),z({resize:H.G(()=>d.resize(),100)}),(N,u)=>(t.openBlock(),t.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:A},null,512))}},ve=oe._export_sfc(Ee,[["__scopeId","data-v-0c715da1"]]);const Se={class:"main-chart"},Qe={class:"indicator"},Pe={key:0,class:"screen-time-range"},Re={key:0,class:"sub-chart"},Fe={class:"indicator"},Ue={class:"title"},Ve={key:1,class:"slider-chart"},Be={__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(a,{expose:z}){const{round:s,formatValue:y}=H.x,{request:d}=t.inject("stConfig"),A=t.ref(),Y=t.ref(!1),D=t.ref(!1),e=a;let b=!1,S=!1,m=!1,g=!1,N=null,u=null,i=null;const O=t.ref(null),c=t.ref(null),o=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),T=t.ref(0),n=t.ref([]),l=t.ref(null),w=t.ref("VOL"),v=t.computed(()=>{const M=o.value.data[T.value];if(!M)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const r=[{label:"开",value:s(M[0])},{label:"高",value:s(M[3])},{label:"低",value:s(M[2])},{label:"收",value:s(M[1])}];M[4]!==null&&r.push({label:"额",value:y(M[4])});let j;return M[6]>0?j="red":M[6]<0&&(j="green"),r.push({label:"涨跌",value:`${s(M[6])}%`,color:j}),r}),R=t.computed(()=>{var M,r;return((r=(M=o.value)==null?void 0:M.mainIndicator)==null?void 0:r.map(j=>({label:j.key,value:s(j.data[T.value]),color:j.color})))||[]}),V=t.computed(()=>{var M,r;return((r=(M=o.value)==null?void 0:M.subIndicator)==null?void 0:r.map(j=>({label:j.key,color:j.color,value:j.data[T.value]||"-"})))||[]}),K=()=>{i||(i=Me.init(c.value),i.on("highlight",H.G(M=>{var r;M.dataIndex?T.value=M.dataIndex:T.value=((r=M.batch)==null?void 0:r[0].dataIndex)??-1},10)),i.on("datazoom",H.G(async()=>{var k;const{loadCheckCount:M}=Z,{startValue:r,endValue:j}=((k=i.getOption())==null?void 0:k.dataZoom[0])??{};m===!1&&g===!1&&r<M&&await re("history"),b===!1&&S===!1&&j>o.value.time.length-M&&await re("new"),ce(),se()})),i.on("globalout",()=>{const M=i.getOption();T.value=M.dataZoom[0].endValue}),i.getZr().on("contextmenu",()=>{var M;l.value=(M=o.value)==null?void 0:M.time[T.value]}),window.addEventListener("keydown",le),e.userKlineConfig.enable_subChart&&(u=Me.init(O.value),Me.connect([i,u])),N=H.D(c.value),N.listen(()=>{requestAnimationFrame(()=>{var M;i.resize(),u==null||u.resize(),(M=A.value)==null||M.resize()})}))},B=async({startTime:M,endTime:r})=>{m=!1,g=!1,b=!1,S=!1;try{Y.value=!0;const j={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:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(j,{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(j,{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(j,{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:k}=await d.post("/middleLayer/kline/getKline",j);o.value=k??{data:[],mainIndicator:[],subIndicator:[],time:[]};let f=-1,L=-1;for(let p=0;p<o.value.time.length;p++){const Q=I.dayjs(o.value.time[p]).format("YYYY-MM-DD");if(f!==-1&&L!==-1)break;f===-1&&(new Date(Q)===new Date(M)?f=p:new Date(Q)>new Date(M)&&(f=p-1)),L===-1&&(new Date(Q)===new Date(r)?L=p:new Date(Q)>new Date(r)&&(L=p-1))}L===-1&&(L=o.value.time.length-1),X({startValue:f===-1?0:f,endValue:L===-1?o.value.time.length-1:L})}finally{Y.value=!1}},re=async M=>{var Q,$;const{loadAddCount:r}=Z;switch(M){case"history":{m=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,endTime:o.value.time[0],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:P}=await d.post("/middleLayer/kline/getKline",F);o.value=ye(P,o.value),P.data.length<r&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),g=!0),m=!1;break}case"new":{b=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.varietyStock===1?e.rightType:0,contractType:e.varietyStock?null:e.klineType,startTime:o.value.time[o.value.time.length-1],limit:r,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:w.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:P}=await d.post("/middleLayer/kline/getKline",F);o.value=ye(o.value,P),P.data.length<r&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),S=!0),b=!1;break}}const{startValue:j,endValue:k}=((Q=i.getOption())==null?void 0:Q.dataZoom[0])??{},f=($=i.getOption())==null?void 0:$.xAxis[0].data,L=o.value.time.findIndex(F=>new Date(F)>=new Date(f[j])),p=o.value.time.findIndex(F=>new Date(F)>=new Date(f[k]));X({startValue:L===-1?0:L,endValue:p===-1?o.value.time.length-1:p})},ce=()=>{var L;if(!o.value.time)return n.value=[];const{time:M}=o.value,{startValue:r,endValue:j}=((L=i.getOption())==null?void 0:L.dataZoom[0])??{},k=M[r],f=M[j];["6","7","8"].includes(e.cycle)?n.value=[I.dayjs(k).format("YYYY-MM-DD"),I.dayjs(f).format("YYYY-MM-DD")]:n.value=[k,f]},X=(M={startValue:0,endValue:0})=>{K();const{maxValueSpan:r}=Z,{time:j,data:k,mainIndicator:f}=o.value,L=M.endValue-M.startValue>r?M.endValue-r:M.startValue,p=M.endValue,Q=f.map(C=>({name:C.key,type:"line",silent:!0,symbol:"none",data:C.data,lineStyle:{width:C.width||1},itemStyle:{color:C.color}})),{netPositionLineData:$}=Ce(e.netPositionData,e.cycle),{tradeIncomeRateLineData:F}=ke(e.tradeIncomeRateData,e.cycle,e.incomeType,j),{tradePointData:P,tradeLineData:ee}=Oe(e.tradeLog,e.cycle,e.sellBuy,j,k);i.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:p,minValueSpan:Z.minValueSpan,maxValueSpan:Z.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:C=>{const{axisDimension:x,value:h}=C;return x==="x"?["6","7","8"].includes(e.cycle)?I.dayjs(h).format("YYYY-MM-DD"):h:String(s(h))}}},formatter:C=>{if(!(C!=null&&C.length))return null;let x="";if(C.forEach(E=>{if(E.seriesName==="netPosition"&&E.data!==null&&(x+=`<div>资产持仓净值: ${E.data[1]}</div>`),E.componentSubType==="candlestick")if(e.sellBuy===0){const W=P.filter(U=>(U==null?void 0:U.coord[0])===E.axisValue);let G=0,_=0;W.forEach(U=>{const{tradeType:q,amount:te}=U.customData;q==="买"&&(G+=te),q==="卖"&&(_+=te)}),G&&(x+=`<div>买: ${G}</div>`),_&&(x+=`<div>卖: ${_}</div>`)}else P.forEach(W=>{if((W==null?void 0:W.coord[0])===E.axisValue){const{tradeType:G,amount:_,profitAndLoss:U,openPriceAll:q,closePriceAll:te}=W.customData;let J=`<div>${G}: ${_}手</div>`;if(G.includes("开")&&(J+=`<div>开仓价: ${(q/_).toFixed(2)}</div>`),G.includes("平")){const Ne=(q/_).toFixed(2),ue=(te/_).toFixed(2);J+=`<div>平仓价: ${ue}</div>`,J+=`<div>盈亏: ${U==null?void 0:U.toFixed(2)}</div>`,J+=`<div>盈亏比率: ${((ue-Ne)/Ne*100).toFixed(2)} %</div>`}x+=J}})}),!x)return null;let h=C[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;">${
|
|
3
|
+
<span style="font-weight: bold;">${h}</span>
|
|
4
4
|
${x}
|
|
5
5
|
</div>
|
|
6
|
-
`}},xAxis:{show:!0,type:"category",data:j,splitLine:{show:!1},axisLabel:{formatter:C=>["6","7","8"].includes(e.cycle)?I.dayjs(C).format("YYYY-MM-DD"):C}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:C=>{const{min:x,max:
|
|
6
|
+
`}},xAxis:{show:!0,type:"category",data:j,splitLine:{show:!1},axisLabel:{formatter:C=>["6","7","8"].includes(e.cycle)?I.dayjs(C).format("YYYY-MM-DD"):C}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:C=>{const{min:x,max:h}=C,E=Math.abs((h-x)/10);return s(x-E)},max:C=>{const{min:x,max:h}=C,E=Math.abs((h-x)/10);return s(h+E)}},{show:!1,min:C=>{const{min:x,max:h}=C,E=Math.abs((h-x)/10);return x-E},max:C=>{const{min:x,max:h}=C,E=Math.abs((h-x)/10);return h+E}}],series:[{type:"candlestick",name:"kLine",data:k,markPoint:{data:[...P]},markLine:{data:[...ee]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},{type:"line",name:"netPosition",data:$,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666666"},lineStyle:{width:2}},{type:"line",name:"tradeIncomeRate",data:F,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&&u.setOption(xe(o.value,L,p),!0),ce(),se(),T.value=p;{const C=[];if(e.userKlineConfig.enable_tradeLogBrush&&P.length){const[x,h]=[P[0].coord[0],P.at(-1).coord[0]],E=ae(j,[x,h],e.cycle);C.push({brushId:"开平仓范围",brushType:"lineX",xAxisIndex:0,coordRange:E})}if(e.syncBrushRange.cycleList.includes(e.cycle)){const{startTime:x,endTime:h}=e.syncBrushRange,E=ae(j,[x,h],e.cycle);C.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[x,h]=[I.dayjs(e.positionTime).format("YYYY-MM-DD 00:00:00"),I.dayjs(e.positionTime).format("YYYY-MM-DD 23:59:59")],E=ae(j,[x,h],e.cycle);C.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}})}i.dispatchAction({type:"brush",areas:C})}},se=()=>{var ee,C;const{data:M}=o.value,{startValue:r,endValue:j}=((ee=i.getOption())==null?void 0:ee.dataZoom[0])??{};let k=0,f=r;for(let x=r;x<=j;x++)Number(M[x][3])>=k&&(k=Number(M[x][3]),f=x);const L=i.getOption(),p=((C=L.series)==null?void 0:C.filter(x=>x.name!=="maxPrice"))||[],Q=j-r,$=(f-r)/Q;let F="right",P=`←${k}`;$>.7?(F="left",P=`${s(k)}→`):(F="right",P=`←${s(k)}`),i==null||i.setOption({...L,series:[...p,{type:"line",name:"maxPrice",markPoint:{symbol:"circle",symbolSize:1,itemStyle:{color:"transparent",borderColor:"transparent"},z:100,zlevel:10,label:{show:!0,position:F,formatter:P,color:"#fff",fontSize:12,padding:[4,-4]},data:[{name:"最高点",coord:[f,k]}]}}]},!0)},De=M=>{const[r,j]=ze({startTime:M.startTime,endTime:M.endTime,cycle:e.cycle});B({startTime:r,endTime:j})},le=({code:M,ctrlKey:r})=>{if(!(r||D.value))return;const{xAxis:j,dataZoom:k}=i.getOption(),{data:f}=(j==null?void 0:j[0])??{data:[]};let{startValue:L,endValue:p}=(k==null?void 0:k[0])??{};if(f!=null&&f.length){switch(M){case"ArrowUp":{if(p-L<5)return;const Q=Math.floor((p-L)/2)+1;L=L+Q,p-L<5&&(L=p-4);break}case"ArrowDown":{const Q=Math.min(500,p-L);L=L-Q-1;break}case"ArrowLeft":{L>0&&(L-=1,p-=1),T.value>0&&(T.value-=1);break}case"ArrowRight":{p<f.length-1&&(L+=1,p+=1),D.value&&T.value<f.length-1&&(T.value+=1);break}}i.dispatchAction({type:"dataZoom",startValue:L,endValue:p}),i.dispatchAction({type:"updateAxisPointer",seriesIndex:0,dataIndex:D.value?T.value:null}),i.dispatchAction({type:"highlight",dataIndex:D.value?T.value:p})}};return t.onMounted(()=>{const[M,r]=e.initTimeRange;B({startTime:M,endTime:r})}),t.watch(()=>[e.varietyCode,e.initTimeRange],()=>{const[M,r]=e.initTimeRange;B({startTime:M,endTime:r})},{deep:!0}),t.watch(()=>[e.cycle],()=>{var f;const{startValue:M,endValue:r}=((f=i.getOption())==null?void 0:f.dataZoom[0])??{},[j,k]=ze({startTime:o.value.time[M],endTime:o.value.time[r],cycle:e.cycle,type:"middle"});B({startTime:j,endTime:k})},{deep:!0}),t.watch(()=>{var M,r;return[e.mainIndicator,w.value,(M=e.indicatorStore)==null?void 0:M.filterIndicator,(r=e.indicatorStore)==null?void 0:r.customIndicator,e.rightType,e.klineType]},()=>{var f;const{startValue:M,endValue:r}=((f=i.getOption())==null?void 0:f.dataZoom[0])??{},[j,k]=[o.value.time[M],o.value.time[r]];B({startTime:j,endTime:k})},{deep:!0}),t.watch(()=>[e.sellBuy,e.tradeLog,e.netPositionData,e.incomeType,e.tradeIncomeRateData],()=>{var j;const{startValue:M,endValue:r}=((j=i.getOption())==null?void 0:j.dataZoom[0])??{};X({startValue:M,endValue:r})},{deep:!0}),t.onUnmounted(()=>{i.off("highlight"),i.off("globalout"),i.off("datazoom"),i.getZr().off("contextmenu"),window.removeEventListener("keydown",le),i.dispose(),u==null||u.dispose(),N.dispose(),N=null}),z({screenTimeRange:n,contextmenuKlineTime:l,reDraw:()=>{var j;const{startValue:M,endValue:r}=((j=i.getOption())==null?void 0:j.dataZoom[0])??{};X({startValue:M,endValue:r})}}),(M,r)=>{const j=je.ElOption,k=je.ElSelect,f=ge.ElEmpty,L=Te.vLoading;return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:"kline-plus",onMousemove:r[1]||(r[1]=p=>D.value=!0),onMouseout:r[2]||(r[2]=p=>D.value=!1)},[t.createElementVNode("div",Se,[t.createElementVNode("div",Qe,[t.createVNode(ie,{data:v.value},null,8,["data"]),t.createVNode(ie,{data:R.value},null,8,["data"])]),a.userKlineConfig.enable_showScreenTimeRange?(t.openBlock(),t.createElementBlock("span",Pe,t.toDisplayString(n.value[0])+" - "+t.toDisplayString(n.value[1]),1)):t.createCommentVNode("",!0),t.createElementVNode("div",{ref_key:"mainChartRef",ref:c,class:"chart"},null,512)]),a.userKlineConfig.enable_subChart?(t.openBlock(),t.createElementBlock("div",Re,[t.createElementVNode("div",Fe,[t.createElementVNode("div",Ue,[t.createElementVNode("span",null,t.toDisplayString(w.value),1),t.createVNode(k,{modelValue:w.value,"onUpdate:modelValue":r[0]||(r[0]=p=>w.value=p),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(a.indicatorStore.subIndicatorList,(p,Q)=>(t.openBlock(),t.createBlock(j,{key:Q,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t.createVNode(ie,{data:V.value},null,8,["data"])]),t.createElementVNode("div",{ref_key:"subChartRef",ref:O,class:"chart"},null,512)])):t.createCommentVNode("",!0),a.userKlineConfig.enable_sliderChart?(t.openBlock(),t.createElementBlock("div",Ve,[t.createVNode(ve,{ref_key:"sliderChartRef",ref:A,screenTimeRange:n.value,varietyCode:a.varietyCode,varietyStock:a.varietyStock,rightType:a.rightType,klineType:a.klineType,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission,onChange:De},null,8,["screenTimeRange","varietyCode","varietyStock","rightType","klineType","deleteFirstNumber","withoutPermission"])])):t.createCommentVNode("",!0),o.value.time.length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(f,{key:2,class:"empty",description:"暂无数据"}))],32)),[[L,Y.value]])}}},_e=oe._export_sfc(Be,[["__scopeId","data-v-1cb277d7"]]),He={install(a){a.component("st-klinePlus",_e)}};module.exports=He;
|
package/es/KlinePlus.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./base-d9284bf0.js";
|
|
2
|
-
import { v as
|
|
2
|
+
import { v as he } from "./el-loading-d4e403ab.js";
|
|
3
3
|
import { E as ke } from "./el-empty-412fc297.js";
|
|
4
4
|
import "./el-tag-7f391090.js";
|
|
5
5
|
import { E as ve, a as Ee } from "./el-select-d7a00294.js";
|
|
@@ -53,10 +53,10 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
53
53
|
if (d === "end")
|
|
54
54
|
return [g(y).subtract(m, "day").format("YYYY-MM-DD HH:mm:ss"), y];
|
|
55
55
|
if (d === "middle") {
|
|
56
|
-
const
|
|
57
|
-
return console.log("超过一屏数量上限, 进行中间时间计算",
|
|
58
|
-
g(
|
|
59
|
-
g(
|
|
56
|
+
const b = g((g(n).valueOf() + g(y).valueOf()) / 2).format("YYYY-MM-DD HH:mm:ss");
|
|
57
|
+
return console.log("超过一屏数量上限, 进行中间时间计算", b, m / 2), [
|
|
58
|
+
g(b).subtract(m / 2, "day").format("YYYY-MM-DD HH:mm:ss"),
|
|
59
|
+
g(b).add(m / 2, "day").format("YYYY-MM-DD HH:mm:ss")
|
|
60
60
|
];
|
|
61
61
|
}
|
|
62
62
|
}, Be = (n, y) => {
|
|
@@ -83,16 +83,16 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
83
83
|
type: "bar",
|
|
84
84
|
silent: !0,
|
|
85
85
|
symbol: "none",
|
|
86
|
-
data: e.data.map((
|
|
87
|
-
value:
|
|
86
|
+
data: e.data.map((b, E) => e.seriesColor === "kline" ? {
|
|
87
|
+
value: b,
|
|
88
88
|
itemStyle: Be(n.data, E)
|
|
89
89
|
} : e.seriesColor === "value" ? {
|
|
90
|
-
value:
|
|
90
|
+
value: b,
|
|
91
91
|
itemStyle: {
|
|
92
|
-
color:
|
|
92
|
+
color: b >= 0 ? "#FF0000" : "#00FFFF"
|
|
93
93
|
}
|
|
94
94
|
} : {
|
|
95
|
-
value:
|
|
95
|
+
value: b,
|
|
96
96
|
itemStyle: {
|
|
97
97
|
color: e.seriesColor
|
|
98
98
|
}
|
|
@@ -140,8 +140,8 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
140
140
|
label: {
|
|
141
141
|
rich: {},
|
|
142
142
|
formatter: (e) => {
|
|
143
|
-
const { axisDimension:
|
|
144
|
-
if (
|
|
143
|
+
const { axisDimension: b, value: E } = e;
|
|
144
|
+
if (b === "x")
|
|
145
145
|
return null;
|
|
146
146
|
if (e.axisIndex === 1)
|
|
147
147
|
return String(_e(E));
|
|
@@ -284,10 +284,10 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
284
284
|
return `${c}-${M}-${f} 09:00:00`;
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
const d = new Date(y), j = d.getFullYear(), m = d.getMonth(), I = d.getDate(), z = d.getHours(), e = d.getMinutes(),
|
|
287
|
+
const d = new Date(y), j = d.getFullYear(), m = d.getMonth(), I = d.getDate(), z = d.getHours(), e = d.getMinutes(), b = d.getSeconds(), E = (L) => {
|
|
288
288
|
let T = null;
|
|
289
289
|
const N = Math.floor(e / L);
|
|
290
|
-
e % L === 0 &&
|
|
290
|
+
e % L === 0 && b === 0 ? T = e : T = (N + 1) * L;
|
|
291
291
|
const c = Math.floor(T / 60), M = z + c, f = T % 60, r = new Date(j, m, I, M, f, 0), i = (P) => String(P).padStart(2, "0"), D = r.getFullYear(), a = i(r.getMonth() + 1), s = i(r.getDate()), A = i(r.getHours()), v = i(r.getMinutes());
|
|
292
292
|
return `${D}-${a}-${s} ${A}:${v}:00`;
|
|
293
293
|
};
|
|
@@ -472,9 +472,9 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
472
472
|
return a.set(v, A), a;
|
|
473
473
|
}, /* @__PURE__ */ new Map([])).values()].sort((a, s) => new Date(a.klineTime) - new Date(s.klineTime)), D = f.filter(({ range: a }) => a[0] !== a[1]);
|
|
474
474
|
return { pointData: i, lineData: D };
|
|
475
|
-
}, { pointData:
|
|
475
|
+
}, { pointData: b, lineData: E } = e(n, y, d);
|
|
476
476
|
return {
|
|
477
|
-
tradePointData: (u === 0 ? I : z)(
|
|
477
|
+
tradePointData: (u === 0 ? I : z)(b, E, d, j),
|
|
478
478
|
tradeLineData: E.map(({ range: T, rangeValue: N, color: c }) => [
|
|
479
479
|
{
|
|
480
480
|
symbol: "none",
|
|
@@ -508,8 +508,8 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
508
508
|
let j = [];
|
|
509
509
|
if (["6", "7", "8"].includes(y)) {
|
|
510
510
|
const m = n.reduce((I, z) => {
|
|
511
|
-
const e = je(d, z.date, y),
|
|
512
|
-
return I.set(e,
|
|
511
|
+
const e = je(d, z.date, y), b = z[u === 0 ? "simple" : "compound"];
|
|
512
|
+
return I.set(e, b), I;
|
|
513
513
|
}, /* @__PURE__ */ new Map());
|
|
514
514
|
j = Array.from(m, ([I, z]) => [I, z]);
|
|
515
515
|
} else
|
|
@@ -563,7 +563,7 @@ const Xe = {
|
|
|
563
563
|
mainIndicator: [],
|
|
564
564
|
subIndicator: [],
|
|
565
565
|
time: []
|
|
566
|
-
}),
|
|
566
|
+
}), b = async () => {
|
|
567
567
|
const N = {
|
|
568
568
|
varietyCode: z.varietyCode,
|
|
569
569
|
cycle: "6",
|
|
@@ -655,7 +655,7 @@ const Xe = {
|
|
|
655
655
|
};
|
|
656
656
|
return xe(() => {
|
|
657
657
|
Qe(() => {
|
|
658
|
-
j = Ne.init(m.value), j.on("datazoom", E),
|
|
658
|
+
j = Ne.init(m.value), j.on("datazoom", E), b();
|
|
659
659
|
});
|
|
660
660
|
}), te(
|
|
661
661
|
() => z.screenTimeRange,
|
|
@@ -724,7 +724,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
724
724
|
},
|
|
725
725
|
setup(n, { expose: y }) {
|
|
726
726
|
const { round: u, formatValue: d } = Oe, { request: j } = pe("stConfig"), m = F(), I = F(!1), z = F(!1), e = n;
|
|
727
|
-
let
|
|
727
|
+
let b = !1, E = !1, L = !1, T = !1, N = null, c = null, M = null;
|
|
728
728
|
const f = F(null), r = F(null), i = F({
|
|
729
729
|
data: [],
|
|
730
730
|
mainIndicator: [],
|
|
@@ -768,7 +768,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
768
768
|
ae(async () => {
|
|
769
769
|
var C;
|
|
770
770
|
const { loadCheckCount: t } = W, { startValue: o, endValue: l } = ((C = M.getOption()) == null ? void 0 : C.dataZoom[0]) ?? {};
|
|
771
|
-
L === !1 && T === !1 && o < t && await ye("history"),
|
|
771
|
+
L === !1 && T === !1 && o < t && await ye("history"), b === !1 && E === !1 && l > i.value.time.length - t && await ye("new"), de(), De();
|
|
772
772
|
})
|
|
773
773
|
), M.on("globalout", () => {
|
|
774
774
|
const t = M.getOption();
|
|
@@ -783,7 +783,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
783
783
|
});
|
|
784
784
|
}));
|
|
785
785
|
}, Z = async ({ startTime: t, endTime: o }) => {
|
|
786
|
-
L = !1, T = !1,
|
|
786
|
+
L = !1, T = !1, b = !1, E = !1;
|
|
787
787
|
try {
|
|
788
788
|
I.value = !0;
|
|
789
789
|
const l = {
|
|
@@ -848,7 +848,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
848
848
|
break;
|
|
849
849
|
}
|
|
850
850
|
case "new": {
|
|
851
|
-
|
|
851
|
+
b = !0;
|
|
852
852
|
const R = {
|
|
853
853
|
varietyCode: e.varietyCode,
|
|
854
854
|
cycle: e.cycle,
|
|
@@ -866,7 +866,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
866
866
|
deleteFirstNumber: e.deleteFirstNumber,
|
|
867
867
|
withoutPermission: e.withoutPermission
|
|
868
868
|
}, { body: Q } = await j.post("/middleLayer/kline/getKline", R);
|
|
869
|
-
i.value = me(i.value, Q), Q.data.length < o && (console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"), E = !0),
|
|
869
|
+
i.value = me(i.value, Q), Q.data.length < o && (console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"), E = !0), b = !1;
|
|
870
870
|
break;
|
|
871
871
|
}
|
|
872
872
|
}
|
|
@@ -923,8 +923,8 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
923
923
|
label: {
|
|
924
924
|
rich: {},
|
|
925
925
|
formatter: (O) => {
|
|
926
|
-
const { axisDimension: x, value:
|
|
927
|
-
return x === "x" ? ["6", "7", "8"].includes(e.cycle) ? g(
|
|
926
|
+
const { axisDimension: x, value: h } = O;
|
|
927
|
+
return x === "x" ? ["6", "7", "8"].includes(e.cycle) ? g(h).format("YYYY-MM-DD") : h : String(u(h));
|
|
928
928
|
}
|
|
929
929
|
}
|
|
930
930
|
},
|
|
@@ -955,10 +955,10 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
955
955
|
});
|
|
956
956
|
}), !x)
|
|
957
957
|
return null;
|
|
958
|
-
let
|
|
959
|
-
return ["6", "7", "8"].includes(e.cycle) && (
|
|
958
|
+
let h = O[0].axisValue;
|
|
959
|
+
return ["6", "7", "8"].includes(e.cycle) && (h = g(h).format("YYYY-MM-DD")), `
|
|
960
960
|
<div>
|
|
961
|
-
<span style="font-weight: bold;">${
|
|
961
|
+
<span style="font-weight: bold;">${h}</span>
|
|
962
962
|
${x}
|
|
963
963
|
</div>
|
|
964
964
|
`;
|
|
@@ -989,23 +989,23 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
989
989
|
}
|
|
990
990
|
},
|
|
991
991
|
min: (O) => {
|
|
992
|
-
const { min: x, max:
|
|
992
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
993
993
|
return u(x - k);
|
|
994
994
|
},
|
|
995
995
|
max: (O) => {
|
|
996
|
-
const { min: x, max:
|
|
997
|
-
return u(
|
|
996
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
997
|
+
return u(h + k);
|
|
998
998
|
}
|
|
999
999
|
},
|
|
1000
1000
|
{
|
|
1001
1001
|
show: !1,
|
|
1002
1002
|
min: (O) => {
|
|
1003
|
-
const { min: x, max:
|
|
1003
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
1004
1004
|
return x - k;
|
|
1005
1005
|
},
|
|
1006
1006
|
max: (O) => {
|
|
1007
|
-
const { min: x, max:
|
|
1008
|
-
return
|
|
1007
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
1008
|
+
return h + k;
|
|
1009
1009
|
}
|
|
1010
1010
|
}
|
|
1011
1011
|
],
|
|
@@ -1079,7 +1079,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1079
1079
|
{
|
|
1080
1080
|
const O = [];
|
|
1081
1081
|
if (e.userKlineConfig.enable_tradeLogBrush && Q.length) {
|
|
1082
|
-
const [x,
|
|
1082
|
+
const [x, h] = [Q[0].coord[0], Q.at(-1).coord[0]], k = le(l, [x, h], e.cycle);
|
|
1083
1083
|
O.push({
|
|
1084
1084
|
brushId: "开平仓范围",
|
|
1085
1085
|
brushType: "lineX",
|
|
@@ -1088,7 +1088,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1088
1088
|
});
|
|
1089
1089
|
}
|
|
1090
1090
|
if (e.syncBrushRange.cycleList.includes(e.cycle)) {
|
|
1091
|
-
const { startTime: x, endTime:
|
|
1091
|
+
const { startTime: x, endTime: h } = e.syncBrushRange, k = le(l, [x, h], e.cycle);
|
|
1092
1092
|
O.push({
|
|
1093
1093
|
brushId: "同步刷选范围",
|
|
1094
1094
|
brushType: "lineX",
|
|
@@ -1102,7 +1102,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1102
1102
|
});
|
|
1103
1103
|
}
|
|
1104
1104
|
if (e.positionTime) {
|
|
1105
|
-
const [x,
|
|
1105
|
+
const [x, h] = [g(e.positionTime).format("YYYY-MM-DD 00:00:00"), g(e.positionTime).format("YYYY-MM-DD 23:59:59")], k = le(l, [x, h], e.cycle);
|
|
1106
1106
|
O.push({
|
|
1107
1107
|
brushId: "强制定位高亮",
|
|
1108
1108
|
brushType: "lineX",
|
|
@@ -1128,7 +1128,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1128
1128
|
Number(t[x][3]) >= C && (C = Number(t[x][3]), p = x);
|
|
1129
1129
|
const Y = M.getOption(), w = ((O = Y.series) == null ? void 0 : O.filter((x) => x.name !== "maxPrice")) || [], S = l - o, J = (p - o) / S;
|
|
1130
1130
|
let R = "right", Q = `←${C}`;
|
|
1131
|
-
J > 0.7 ? (R = "left", Q = `${C}→`) : (R = "right", Q = `←${C}`), M == null || M.setOption(
|
|
1131
|
+
J > 0.7 ? (R = "left", Q = `${u(C)}→`) : (R = "right", Q = `←${u(C)}`), M == null || M.setOption(
|
|
1132
1132
|
{
|
|
1133
1133
|
...Y,
|
|
1134
1134
|
series: [
|
|
@@ -1168,7 +1168,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1168
1168
|
},
|
|
1169
1169
|
!0
|
|
1170
1170
|
);
|
|
1171
|
-
},
|
|
1171
|
+
}, be = (t) => {
|
|
1172
1172
|
const [o, l] = Le({
|
|
1173
1173
|
startTime: t.startTime,
|
|
1174
1174
|
endTime: t.endTime,
|
|
@@ -1270,7 +1270,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1270
1270
|
ne({ startValue: t, endValue: o });
|
|
1271
1271
|
}
|
|
1272
1272
|
}), (t, o) => {
|
|
1273
|
-
const l = ve, C = Ee, p = ke, Y =
|
|
1273
|
+
const l = ve, C = Ee, p = ke, Y = he;
|
|
1274
1274
|
return Pe((U(), H("div", {
|
|
1275
1275
|
class: "kline-plus",
|
|
1276
1276
|
onMousemove: o[1] || (o[1] = (w) => z.value = !0),
|
|
@@ -1329,7 +1329,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1329
1329
|
klineType: n.klineType,
|
|
1330
1330
|
deleteFirstNumber: e.deleteFirstNumber,
|
|
1331
1331
|
withoutPermission: e.withoutPermission,
|
|
1332
|
-
onChange:
|
|
1332
|
+
onChange: be
|
|
1333
1333
|
}, null, 8, ["screenTimeRange", "varietyCode", "varietyStock", "rightType", "klineType", "deleteFirstNumber", "withoutPermission"])
|
|
1334
1334
|
])) : se("", !0),
|
|
1335
1335
|
i.value.time.length ? se("", !0) : (U(), Ye(p, {
|
|
@@ -1342,11 +1342,11 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1342
1342
|
]);
|
|
1343
1343
|
};
|
|
1344
1344
|
}
|
|
1345
|
-
}, Nt = /* @__PURE__ */ ze(st, [["__scopeId", "data-v-
|
|
1345
|
+
}, Nt = /* @__PURE__ */ ze(st, [["__scopeId", "data-v-1cb277d7"]]), ht = {
|
|
1346
1346
|
install(n) {
|
|
1347
1347
|
n.component("st-klinePlus", Nt);
|
|
1348
1348
|
}
|
|
1349
1349
|
};
|
|
1350
1350
|
export {
|
|
1351
|
-
|
|
1351
|
+
ht as default
|
|
1352
1352
|
};
|