st-comp 0.0.171 → 0.0.172
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 +182 -192
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +2 -2
- package/lib/{index-42745784.js → index-d9f6d2bc.js} +16 -26
- package/lib/{python-bea23b43.js → python-e8bc0c16.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/KlinePlus/components/SliderChart.vue +4 -19
- package/packages/KlinePlus/index.vue +5 -5
package/es/KlinePlus.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";require("./base-bdc10baa.cjs");const De=require("./el-loading-15a5501c.cjs"),Te=require("./el-empty-627ec09e.cjs");require("./el-tag-8d49d4d2.cjs");const ue=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./el-popper-14a9d493.cjs");const t=require("vue"),Y=require("./dayjs.min-19fb125f.cjs"),ge=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 Ie(M){const u=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const r in M)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(M,r);Object.defineProperty(u,r,s.get?s:{enumerable:!0,get:()=>M[r]})}}return u.default=M,Object.freeze(u)}const te=Ie(ge),Ye="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",Le="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",me="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",{round:Ae}=H.x,Z={minValueSpan:5,maxValueSpan:2e3,loadCheckCount:500,loadAddCount:2e3},we={1:240,2:48,3:16,4:8,5:4,6:1,7:.2,8:.033},je=({startTime:M,endTime:u,cycle:r,type:s="end"})=>{const{maxValueSpan:y}=Z,L=Math.ceil((y+1e3)/we[r]),I=Y.dayjs(M);if(Y.dayjs(u).diff(I,"day")<=L)return[M,u];if(s==="end")return[Y.dayjs(u).subtract(L,"day").format("YYYY-MM-DD HH:mm:ss"),u];if(s==="middle"){const C=Y.dayjs((Y.dayjs(M).valueOf()+Y.dayjs(u).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",C,L/2),[Y.dayjs(C).subtract(L/2,"day").format("YYYY-MM-DD HH:mm:ss"),Y.dayjs(C).add(L/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},pe=(M,u)=>{const r=M[u],s=u===0?M[u]:M[u-1];return r[0]===r[1]?r[0]>=s[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:r[1]>r[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},fe=(M,u,r)=>{var y,L,I,D;const s=M.subIndicator.map(e=>{if(e.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:e.data.map((C,S)=>e.seriesColor==="kline"?{value:C,itemStyle:pe(M.data,S)}:e.seriesColor==="value"?{value:C,itemStyle:{color:C>=0?"#FF0000":"#00FFFF"}}:{value:C,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:u,endValue:r,maxValueSpan:Z.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:e=>{const{axisDimension:C,value:S}=e;if(C==="x")return null;if(e.axisIndex===1)return String(Ae(S))}}},xAxis:{type:"category",data:M.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((y=M.subIndicator[0])==null?void 0:y.leftYAxisRange)==="cover"?e=>e.min:null,max:((L=M.subIndicator[0])==null?void 0:L.leftYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((I=M.subIndicator[0])==null?void 0:I.rightYAxisRange)==="cover"?e=>e.min:null,max:((D=M.subIndicator[0])==null?void 0:D.rightYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:s}},ie=(M,u,r="strict")=>{let s=0,y=M.length-1,L=-1;for(;s<=y;){let I=Math.floor((s+y)/2);if(r==="strict"){if(M[I]===u)return I;M[I]<u?s=I+1:y=I-1}else r==="gte"&&(M[I]>=u?(L=I,y=I-1):s=I+1)}return r==="strict"?-1:L},ze=(M,u)=>({data:[...M.data,...u.data.slice(1)],mainIndicator:M.mainIndicator.map((r,s)=>({...r,data:[...r.data,...u.mainIndicator[s].data.slice(1)]})),subIndicator:M.subIndicator.map((r,s)=>({...r,data:[...r.data,...u.subIndicator[s].data.slice(1)]})),time:[...M.time,...u.time.slice(1)]}),ne=(M,u,r)=>{switch(r){case"5":{let m=[...new Set(M.slice(-20).map(T=>{const n=new Date(T),l=String(n.getHours()).padStart(2,"0"),A=String(n.getMinutes()).padStart(2,"0"),h=String(n.getSeconds()).padStart(2,"0");return`${l}:${A}:${h}`}))];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(u),N=g.getFullYear(),z=String(g.getMonth()+1).padStart(2,"0"),i=String(g.getDate()).padStart(2,"0"),f=String(g.getHours()).padStart(2,"0"),j=String(g.getMinutes()).padStart(2,"0"),o=String(g.getSeconds()).padStart(2,"0");if(`${f}:${j}:${o}`=="00:00:00")return`${N}-${z}-${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]}`>=+`${f}${j}${o}`){T=m[n];break}}if(T==="24:00:00"){const n=new Date(u);n.setDate(n.getDate()+1);const l=n.getFullYear(),A=String(n.getMonth()+1).padStart(2,"0"),h=String(n.getDate()).padStart(2,"0");return`${l}-${A}-${h} 00:00:00`}return`${N}-${z}-${i} ${T}`}}case"6":{const m=new Date(u),g=m.getHours();if(g>=4&&g<21){const N=m.getFullYear(),z=String(m.getMonth()+1).padStart(2,"0"),i=String(m.getDate()).padStart(2,"0");return`${N}-${z}-${i} 09:00:00`}else{const N=new Date(u);N.getHours()>=21&&N.setDate(N.getDate()+1);const z=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),f=String(N.getDate()).padStart(2,"0"),j=`${z}-${i}-${f} 09:00:00`,o=ie(M,j,"gte");return o===-1?j:M[o]}}case"7":{const m=new Date(u),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 z=new Date(g);z.setDate(g.getDate()+12),z.setHours(9,0,0,0);const i=m<=N?N:z,f=i.getFullYear(),j=String(i.getMonth()+1).padStart(2,"0"),o=String(i.getDate()).padStart(2,"0");return`${f}-${j}-${o} 09:00:00`}case"8":{const m=new Date(u),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 z=N.getFullYear(),i=String(N.getMonth()+1).padStart(2,"0"),f=String(N.getDate()).padStart(2,"0");return`${z}-${i}-${f} 09:00:00`}}const s=new Date(u),y=s.getFullYear(),L=s.getMonth(),I=s.getDate(),D=s.getHours(),e=s.getMinutes(),C=s.getSeconds(),S=m=>{let g=null;const N=Math.floor(e/m);e%m===0&&C===0?g=e:g=(N+1)*m;const z=Math.floor(g/60),i=D+z,f=g%60,j=new Date(y,L,I,i,f,0),o=Q=>String(Q).padStart(2,"0"),T=j.getFullYear(),n=o(j.getMonth()+1),l=o(j.getDate()),A=o(j.getHours()),h=o(j.getMinutes());return`${T}-${n}-${l} ${A}:${h}:00`};switch(r){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: ${u} ${r}`)}},Me=(M,u,r)=>{let s=null,y=null;const[L,I]=u;switch(r){case"6":{s=M.find(D=>new Date(Y.dayjs(D).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(L).getTime()),y=M.findLast(D=>new Date(Y.dayjs(D).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(I).getTime());break}case"7":{const D=Y.dayjs(I).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");s=M.find(e=>Y.dayjs(e).endOf("week").add(1,"day").format("YYYY-MM-DD")===Y.dayjs(L).endOf("week").add(1,"day").format("YYYY-MM-DD")),y=M.findLast(e=>new Date(e).getTime()<=new Date(D).getTime());break}case"8":{s=M.find(D=>Y.dayjs(D).format("YYYY-MM")===Y.dayjs(L).format("YYYY-MM")),y=M.findLast(D=>Y.dayjs(D).format("YYYY-MM")===Y.dayjs(I).format("YYYY-MM"));break}default:s=M.find(D=>new Date(D).getTime()>=new Date(L).getTime()),y=M.findLast(D=>new Date(D).getTime()<=new Date(I).getTime())}return[s,y]},xe=M=>{const u=[];return M.reduce((r,s)=>{const y=`${s.coord[0]}+${s.label.position}`,L=s.label.position==="top"?-16:16,I=r.get(y);return I?(r.set(y,I+1),s.symbolOffset[1]=L*(I+1)):(r.set(y,1),s.symbolOffset[1]=s.label.position==="top"?-7:7),u.push(s),r},new Map),u},Oe=(M,u,r,s,y)=>{const L=(g,N)=>{const{direction:z="",tradeAction:i="",tradeType:f=""}=g,j=f??z+i;switch(N){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(j);case 1:return f??z+i}},I=(g,N,z,i)=>g.reduce((f,j)=>{var Q;const o=L(j,0),T=g.filter(R=>R.klineTime===j.klineTime),n=[...new Set(T.map(R=>L(R,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":Ye,"./images/sell.svg":Le,"./images/t.svg":me})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const A=ie(z,j.klineTime),h=(Q=i[A])==null?void 0:Q[3];return N.forEach(R=>{var B;const W=o==="买"?0:1;R.range[W]===j.klineTime&&(R.rangeValue[W]=(B=i[A])==null?void 0:B[o==="买"?2:3])}),f.push({symbol:l,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[j.klineTime,h],silent:!0,animation:!1,customData:{tradeType:o,amount:j.amount,part:j.part,profitAndLoss:j.profitAndLoss,openPriceAll:j.openPriceAll,closePriceAll:j.closePriceAll}}),f},[]),D=(g,N,z,i)=>g.reduce((f,j,o)=>{var h,Q;const T=L(j,1),n=["开多","开空"].includes(T)?"top":"bottom",l=ie(z,j.klineTime),A=n==="top"?(h=i[l])==null?void 0:h[3]:(Q=i[l])==null?void 0:Q[2];return N.forEach(R=>{(n==="top"?R.range[0]:R.range[1])===j.klineTime&&(R.rangeValue[n==="top"?0:1]=A)}),f.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"?"+":"-"} ${j.amount}手 ${j.part?`(${j.part}份)`:""}`},itemStyle:{color:n==="top"?"#FF0000":"#389e0d"},coord:[j.klineTime,A],silent:!0,animation:!1,customData:{tradeType:T,amount:j.amount,part:j.part,profitAndLoss:j.profitAndLoss,openPriceAll:j.openPriceAll,closePriceAll:j.closePriceAll}}),f},[]),e=(g,N,z)=>{const{basePointData:i,baseLineData:f}=g.reduce((n,l)=>{const A={pointTime:l.openTime,klineTime:ne(z,l.openTime,N),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},h={pointTime:l.closeTime,klineTime:ne(z,l.closeTime,N),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};return n.basePointData.push(A,h),n.baseLineData.push({range:[A.klineTime,h.klineTime],rangeValue:[null,null],color:h.profitAndLoss>0?"#FF0000":"#389e0d"}),n},{basePointData:[],baseLineData:[]}),o=[...i.reduce((n,l)=>{const A=JSON.parse(JSON.stringify(l)),h=A.klineTime+A.tradeType;if(n.has(h)){const Q=n.get(h);A.amount+=Q.amount,A.part+=Q.part,A.profitAndLoss+=Q.profitAndLoss,A.openPriceAll+=Q.openPriceAll,A.closePriceAll+=Q.closePriceAll}return n.set(h,A),n},new Map([])).values()].sort((n,l)=>new Date(n.klineTime)-new Date(l.klineTime)),T=f.filter(({range:n})=>n[0]!==n[1]);return{pointData:o,lineData:T}},{pointData:C,lineData:S}=e(M,u,s);return{tradePointData:(r===0?I:D)(C,S,s,y),tradeLineData:S.map(({range:g,rangeValue:N,color:z})=>[{symbol:"none",coord:[g[0],N[0]],lineStyle:{color:z,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[g[1],N[1]],silent:!0,animation:!1}])}},Ce=(M,u)=>{let r=[];if(Number(u)<=5)r=M.map(({tradeDate:s,netPositionValue:y})=>[Y.dayjs(s).format("YYYY-MM-DD HH:mm:ss"),y]);else if(Number(u)===6){const s=M.reduce((y,L)=>{const{tradeDate:I,netPositionValue:D}=L;return y.set(Y.dayjs(I).format("YYYY-MM-DD 09:00:00"),D),y},new Map);r=Array.from(s,([y,L])=>[y,L])}else r=[];return{netPositionLineData:r}},be=(M,u,r,s)=>{let y=[];if(["6","7","8"].includes(u)){const L=M.reduce((I,D)=>{const e=ne(s,D.date,u),C=D[r===0?"simple":"compound"];return I.set(e,C),I},new Map);y=Array.from(L,([I,D])=>[I,D])}else y=[];return{tradeIncomeRateLineData:y}};const ke={class:"tips"},he={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(M){return(u,r)=>(t.openBlock(),t.createElementBlock("div",ke,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(M.data,(s,y)=>(t.openBlock(),t.createElementBlock("span",{key:y,class:"item",style:t.normalizeStyle({color:s.color})},t.toDisplayString(s.label)+" "+t.toDisplayString(s.value),5))),128))]))}},ae=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,required:!0},klineType:{type:Number,required:!0},deleteFirstNumber:{type:Number,default:1},withoutPermission:{type:Number,default:0}},emits:["change"],setup(M,{expose:u,emit:r}){const{request:s}=t.inject("stConfig");let y=null;const L=t.ref(null),I=r,D=M,e=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),C=async()=>{const N={varietyCode:D.varietyCode,cycle:"6",startTime:"1999-01-01 00:00:00",endTime:Y.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:D.deleteFirstNumber,withoutPermission:D.withoutPermission};switch(D.varietyStock){case 0:{Object.assign(N,{contractType:D.klineType});break}case 1:{Object.assign(N,{right:D.rightType});break}}const{body:z}=await s.post("/middleLayer/kline/getKline",N);z?e.value=z:e.value={data:[],mainIndicator:[],subIndicator:[],time:[]},g("init")},S=H.G(N=>{if(!N.dataZoomId)return;const z=y.getOption();if(z!=null&&z.dataZoom[0]){const{startValue:i,endValue:f}=y.getOption().dataZoom[0],{time:j}=e.value,o=`${j[i].split(" ")[0]} 00:00:00`,T=`${j[f].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${o} - ${T}`),I("change",{startTime:o,endTime:T})}},200),m=H.G(({startTime:N,endTime:z})=>{g("reset",{startTime:N,endTime:z})},100),g=(N,z)=>{switch(N){case"init":{const{data:i,time:f}=e.value,{xAxisData:j,lineData:o}=i.reduce((n,l,A)=>(n.xAxisData.push(f[A].split(" ")[0]),n.lineData.push(l[1]),n),{xAxisData:[],lineData:[]}),T={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:j,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(y.setOption(T,!0),D.screenTimeRange.length){const[n,l]=D.screenTimeRange;m({startTime:n,endTime:l})}break}case"reset":{const{time:i}=e.value,f=Y.dayjs(z.startTime).format("YYYY-MM-DD"),j=Y.dayjs(z.endTime).format("YYYY-MM-DD");let o=-1,T=-1;for(let n=0;n<i.length;n++){const l=Y.dayjs(i[n]).format("YYYY-MM-DD");if(o!==-1&&T!==-1)break;o===-1&&(new Date(l)===new Date(f)?o=n:new Date(l)>new Date(f)&&(o=n-1)),T===-1&&(new Date(l)===new Date(j)?T=n:new Date(l)>new Date(j)&&(T=n-1))}T===-1&&(T=i.length-1),y.dispatchAction({type:"dataZoom",startValue:o,endValue:T});break}}};return t.onMounted(()=>{t.nextTick(()=>{y=te.init(L.value),y.on("datazoom",S),C()})}),t.watch(()=>D.screenTimeRange,N=>{const[z,i]=N;m({startTime:z,endTime:i})},{deep:!0}),t.onUnmounted(()=>{y.off("datazoom"),y.dispose()}),u({resize:H.G(()=>y.resize(),100)}),(N,z)=>(t.openBlock(),t.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:L},null,512))}},ve=oe._export_sfc(Ee,[["__scopeId","data-v-5ab1ed2a"]]);const Se={class:"main-chart"},Qe={class:"indicator"},Pe={key:0,class:"screen-time-range"},Re={key:0,class:"sub-chart"},Ue={class:"indicator"},Fe={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,default:null},klineType:{type:Number,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(M,{expose:u}){const{round:r,formatValue:s}=H.x,{request:y}=t.inject("stConfig"),L=t.ref(),I=t.ref(!1),D=t.ref(!1),e=M;let C=!1,S=!1,m=!1,g=!1,N=null,z=null,i=null;const f=t.ref(null),j=t.ref(null),o=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),T=t.ref(0),n=t.ref([]),l=t.ref(null),A=t.ref("VOL"),h=t.computed(()=>{const a=o.value.data[T.value];if(!a)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const c=[{label:"开",value:r(a[0])},{label:"高",value:r(a[3])},{label:"低",value:r(a[2])},{label:"收",value:r(a[1])}];a[4]!==null&&c.push({label:"额",value:s(a[4])});let d;return a[6]>0?d="red":a[6]<0&&(d="green"),c.push({label:"涨跌",value:`${r(a[6])}%`,color:d}),c}),Q=t.computed(()=>{var a,c;return((c=(a=o.value)==null?void 0:a.mainIndicator)==null?void 0:c.map(d=>({label:d.key,value:r(d.data[T.value]),color:d.color})))||[]}),R=t.computed(()=>{var a,c;return((c=(a=o.value)==null?void 0:a.subIndicator)==null?void 0:c.map(d=>({label:d.key,color:d.color,value:d.data[T.value]||"-"})))||[]}),W=()=>{i||(i=te.init(j.value),i.on("highlight",H.G(a=>{var c;a.dataIndex?T.value=a.dataIndex:T.value=((c=a.batch)==null?void 0:c[0].dataIndex)??-1},10)),i.on("datazoom",H.G(async()=>{var b;const{loadCheckCount:a}=Z,{startValue:c,endValue:d}=((b=i.getOption())==null?void 0:b.dataZoom[0])??{};m===!1&&g===!1&&c<a&&await re("history"),C===!1&&S===!1&&d>o.value.time.length-a&&await re("new"),se()})),i.on("globalout",()=>{const a=i.getOption();T.value=a.dataZoom[0].endValue}),i.getZr().on("contextmenu",()=>{var a;l.value=(a=o.value)==null?void 0:a.time[T.value]}),window.addEventListener("keydown",ce),e.userKlineConfig.enable_subChart&&(z=te.init(f.value),te.connect([i,z])),N=H.D(j.value),N.listen(()=>{requestAnimationFrame(()=>{var a;i.resize(),z==null||z.resize(),(a=L.value)==null||a.resize()})}))},B=async({startTime:a,endTime:c})=>{m=!1,g=!1,C=!1,S=!1;try{I.value=!0;const d={varietyCode:e.varietyCode,cycle:e.cycle,right:e.rightType,contractType:e.varietyStock?null:e.klineType,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(d,{startTime:Y.dayjs(a).subtract(1,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(1,"day").format("YYYY-MM-DD HH:mm:ss")}):["6","7"].includes(e.cycle)?Object.assign(d,{startTime:Y.dayjs(a).subtract(50,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(50,"day").format("YYYY-MM-DD HH:mm:ss")}):Object.assign(d,{startTime:Y.dayjs(a).subtract(10,"month").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(10,"month").format("YYYY-MM-DD HH:mm:ss")});const{body:b}=await y.post("/middleLayer/kline/getKline",d);o.value=b??{data:[],mainIndicator:[],subIndicator:[],time:[]};let x=-1,w=-1;for(let p=0;p<o.value.time.length;p++){const P=Y.dayjs(o.value.time[p]).format("YYYY-MM-DD");if(x!==-1&&w!==-1)break;x===-1&&(new Date(P)===new Date(a)?x=p:new Date(P)>new Date(a)&&(x=p-1)),w===-1&&(new Date(P)===new Date(c)?w=p:new Date(P)>new Date(c)&&(w=p-1))}w===-1&&(w=o.value.time.length-1),K({startValue:x===-1?0:x,endValue:w===-1?o.value.time.length-1:w})}finally{I.value=!1}},re=async a=>{var P,X;const{loadAddCount:c}=Z;switch(a){case"history":{m=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.rightType,contractType:e.varietyStock?null:e.klineType,endTime:o.value.time[0],limit:c,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:U}=await y.post("/middleLayer/kline/getKline",F);o.value=ze(U,o.value),U.data.length<c&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),g=!0),m=!1;break}case"new":{C=!0;const F={varietyCode:e.varietyCode,cycle:e.cycle,right:e.rightType,contractType:e.varietyStock?null:e.klineType,startTime:o.value.time[o.value.time.length-1],limit:c,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:U}=await y.post("/middleLayer/kline/getKline",F);o.value=ze(o.value,U),U.data.length<c&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),S=!0),C=!1;break}}const{startValue:d,endValue:b}=((P=i.getOption())==null?void 0:P.dataZoom[0])??{},x=(X=i.getOption())==null?void 0:X.xAxis[0].data,w=o.value.time.findIndex(F=>new Date(F)>=new Date(x[d])),p=o.value.time.findIndex(F=>new Date(F)>=new Date(x[b]));K({startValue:w===-1?0:w,endValue:p===-1?o.value.time.length-1:p})},se=()=>{var w;if(!o.value.time)return n.value=[];const{time:a}=o.value,{startValue:c,endValue:d}=((w=i.getOption())==null?void 0:w.dataZoom[0])??{},b=a[c],x=a[d];["6","7","8"].includes(e.cycle)?n.value=[Y.dayjs(b).format("YYYY-MM-DD"),Y.dayjs(x).format("YYYY-MM-DD")]:n.value=[b,x]},K=(a={startValue:0,endValue:0})=>{W();const{maxValueSpan:c}=Z,{time:d,data:b,mainIndicator:x}=o.value,w=a.endValue-a.startValue>c?a.endValue-c:a.startValue,p=a.endValue,P=x.map(O=>({name:O.key,type:"line",silent:!0,symbol:"none",data:O.data,lineStyle:{width:O.width||1},itemStyle:{color:O.color}})),{netPositionLineData:X}=Ce(e.netPositionData,e.cycle),{tradeIncomeRateLineData:F}=be(e.tradeIncomeRateData,e.cycle,e.incomeType,d),{tradePointData:U,tradeLineData:de}=Oe(e.tradeLog,e.cycle,e.sellBuy,d,b);i.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:w,endValue:p,minValueSpan:Z.minValueSpan,maxValueSpan:Z.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:O=>{const{axisDimension:k,value:E}=O;return k==="x"?["6","7","8"].includes(e.cycle)?Y.dayjs(E).format("YYYY-MM-DD"):E:String(r(E))}}},formatter:O=>{if(!(O!=null&&O.length))return null;let k="";if(O.forEach(v=>{if(v.seriesName==="netPosition"&&v.data!==null&&(k+=`<div>资产持仓净值: ${v.data[1]}</div>`),v.componentSubType==="candlestick")if(e.sellBuy===0){const $=U.filter(V=>(V==null?void 0:V.coord[0])===v.axisValue);let G=0,_=0;$.forEach(V=>{const{tradeType:q,amount:ee}=V.customData;q==="买"&&(G+=ee),q==="卖"&&(_+=ee)}),G&&(k+=`<div>买: ${G}</div>`),_&&(k+=`<div>卖: ${_}</div>`)}else U.forEach($=>{if(($==null?void 0:$.coord[0])===v.axisValue){const{tradeType:G,amount:_,profitAndLoss:V,openPriceAll:q,closePriceAll:ee}=$.customData;let J=`<div>${G}: ${_}手</div>`;if(G.includes("开")&&(J+=`<div>开仓价: ${(q/_).toFixed(2)}</div>`),G.includes("平")){const Ne=(q/_).toFixed(2),le=(ee/_).toFixed(2);J+=`<div>平仓价: ${le}</div>`,J+=`<div>盈亏: ${V==null?void 0:V.toFixed(2)}</div>`,J+=`<div>盈亏比率: ${((le-Ne)/Ne*100).toFixed(2)} %</div>`}k+=J}})}),!k)return null;let E=O[0].axisValue;return["6","7","8"].includes(e.cycle)&&(E=Y.dayjs(E).format("YYYY-MM-DD")),`
|
|
1
|
+
"use strict";require("./base-bdc10baa.cjs");const De=require("./el-loading-15a5501c.cjs"),Te=require("./el-empty-627ec09e.cjs");require("./el-tag-8d49d4d2.cjs");const ue=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./el-popper-14a9d493.cjs");const t=require("vue"),Y=require("./dayjs.min-19fb125f.cjs"),ge=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 Ie(M){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const r in M)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(M,r);Object.defineProperty(l,r,s.get?s:{enumerable:!0,get:()=>M[r]})}}return l.default=M,Object.freeze(l)}const te=Ie(ge),Ye="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",Le="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",me="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",{round:Ae}=H.x,Z={minValueSpan:5,maxValueSpan:2e3,loadCheckCount:500,loadAddCount:2e3},we={1:240,2:48,3:16,4:8,5:4,6:1,7:.2,8:.033},je=({startTime:M,endTime:l,cycle:r,type:s="end"})=>{const{maxValueSpan:y}=Z,L=Math.ceil((y+1e3)/we[r]),I=Y.dayjs(M);if(Y.dayjs(l).diff(I,"day")<=L)return[M,l];if(s==="end")return[Y.dayjs(l).subtract(L,"day").format("YYYY-MM-DD HH:mm:ss"),l];if(s==="middle"){const C=Y.dayjs((Y.dayjs(M).valueOf()+Y.dayjs(l).valueOf())/2).format("YYYY-MM-DD HH:mm:ss");return console.log("超过一屏数量上限, 进行中间时间计算",C,L/2),[Y.dayjs(C).subtract(L/2,"day").format("YYYY-MM-DD HH:mm:ss"),Y.dayjs(C).add(L/2,"day").format("YYYY-MM-DD HH:mm:ss")]}},pe=(M,l)=>{const r=M[l],s=l===0?M[l]:M[l-1];return r[0]===r[1]?r[0]>=s[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:r[1]>r[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}},fe=(M,l,r)=>{var y,L,I,D;const s=M.subIndicator.map(e=>{if(e.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:e.data.map((C,S)=>e.seriesColor==="kline"?{value:C,itemStyle:pe(M.data,S)}:e.seriesColor==="value"?{value:C,itemStyle:{color:C>=0?"#FF0000":"#00FFFF"}}:{value:C,itemStyle:{color:e.seriesColor}})};if(e.series==="line")return{xAxisIndex:0,yAxisIndex:e.yAxis==="right"?2:1,name:e.key,type:"line",silent:!0,symbol:"none",data:e.data,lineStyle:{width:1},itemStyle:{color:e.color}}});return{animation:!1,grid:{top:"10px",left:"60px",right:"20px",bottom:"10px"},dataZoom:[{type:"inside",startValue:l,endValue:r,maxValueSpan:Z.maxValueSpan}],tooltip:{show:!1},axisPointer:{show:!0,triggerTooltip:!1,label:{rich:{},formatter:e=>{const{axisDimension:C,value:S}=e;if(C==="x")return null;if(e.axisIndex===1)return String(Ae(S))}}},xAxis:{type:"category",data:M.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!1}},yAxis:[{position:"right"},{position:"left",min:((y=M.subIndicator[0])==null?void 0:y.leftYAxisRange)==="cover"?e=>e.min:null,max:((L=M.subIndicator[0])==null?void 0:L.leftYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:((I=M.subIndicator[0])==null?void 0:I.rightYAxisRange)==="cover"?e=>e.min:null,max:((D=M.subIndicator[0])==null?void 0:D.rightYAxisRange)==="cover"?e=>e.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:s}},ie=(M,l,r="strict")=>{let s=0,y=M.length-1,L=-1;for(;s<=y;){let I=Math.floor((s+y)/2);if(r==="strict"){if(M[I]===l)return I;M[I]<l?s=I+1:y=I-1}else r==="gte"&&(M[I]>=l?(L=I,y=I-1):s=I+1)}return r==="strict"?-1:L},ze=(M,l)=>({data:[...M.data,...l.data.slice(1)],mainIndicator:M.mainIndicator.map((r,s)=>({...r,data:[...r.data,...l.mainIndicator[s].data.slice(1)]})),subIndicator:M.subIndicator.map((r,s)=>({...r,data:[...r.data,...l.subIndicator[s].data.slice(1)]})),time:[...M.time,...l.time.slice(1)]}),ne=(M,l,r)=>{switch(r){case"5":{let m=[...new Set(M.slice(-20).map(T=>{const n=new Date(T),N=String(n.getHours()).padStart(2,"0"),A=String(n.getMinutes()).padStart(2,"0"),b=String(n.getSeconds()).padStart(2,"0");return`${N}:${A}:${b}`}))];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(l),u=g.getFullYear(),z=String(g.getMonth()+1).padStart(2,"0"),i=String(g.getDate()).padStart(2,"0"),f=String(g.getHours()).padStart(2,"0"),j=String(g.getMinutes()).padStart(2,"0"),o=String(g.getSeconds()).padStart(2,"0");if(`${f}:${j}:${o}`=="00:00:00")return`${u}-${z}-${i} 01:00:00`;{let T=null;for(let n=0;n<m.length;n++){const N=m[n].split(":");if(+`${N[0]}${N[1]}${N[2]}`>=+`${f}${j}${o}`){T=m[n];break}}if(T==="24:00:00"){const n=new Date(l);n.setDate(n.getDate()+1);const N=n.getFullYear(),A=String(n.getMonth()+1).padStart(2,"0"),b=String(n.getDate()).padStart(2,"0");return`${N}-${A}-${b} 00:00:00`}return`${u}-${z}-${i} ${T}`}}case"6":{const m=new Date(l),g=m.getHours();if(g>=4&&g<21){const u=m.getFullYear(),z=String(m.getMonth()+1).padStart(2,"0"),i=String(m.getDate()).padStart(2,"0");return`${u}-${z}-${i} 09:00:00`}else{const u=new Date(l);u.getHours()>=21&&u.setDate(u.getDate()+1);const z=u.getFullYear(),i=String(u.getMonth()+1).padStart(2,"0"),f=String(u.getDate()).padStart(2,"0"),j=`${z}-${i}-${f} 09:00:00`,o=ie(M,j,"gte");return o===-1?j:M[o]}}case"7":{const m=new Date(l),g=new Date(m);g.setDate(m.getDate()-m.getDay()),g.setHours(0,0,0,0);const u=new Date(g);u.setDate(g.getDate()+5),u.setHours(23,59,59,0);const z=new Date(g);z.setDate(g.getDate()+12),z.setHours(9,0,0,0);const i=m<=u?u:z,f=i.getFullYear(),j=String(i.getMonth()+1).padStart(2,"0"),o=String(i.getDate()).padStart(2,"0");return`${f}-${j}-${o} 09:00:00`}case"8":{const m=new Date(l),g=new Date(m.getFullYear(),m.getMonth()+1,1),u=new Date(g);u.setDate(g.getDate()-1),u.setHours(9,0,0,0);const z=u.getFullYear(),i=String(u.getMonth()+1).padStart(2,"0"),f=String(u.getDate()).padStart(2,"0");return`${z}-${i}-${f} 09:00:00`}}const s=new Date(l),y=s.getFullYear(),L=s.getMonth(),I=s.getDate(),D=s.getHours(),e=s.getMinutes(),C=s.getSeconds(),S=m=>{let g=null;const u=Math.floor(e/m);e%m===0&&C===0?g=e:g=(u+1)*m;const z=Math.floor(g/60),i=D+z,f=g%60,j=new Date(y,L,I,i,f,0),o=Q=>String(Q).padStart(2,"0"),T=j.getFullYear(),n=o(j.getMonth()+1),N=o(j.getDate()),A=o(j.getHours()),b=o(j.getMinutes());return`${T}-${n}-${N} ${A}:${b}:00`};switch(r){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: ${l} ${r}`)}},Me=(M,l,r)=>{let s=null,y=null;const[L,I]=l;switch(r){case"6":{s=M.find(D=>new Date(Y.dayjs(D).format("YYYY-MM-DD 23:59:59")).getTime()>=new Date(L).getTime()),y=M.findLast(D=>new Date(Y.dayjs(D).format("YYYY-MM-DD 00:00:00")).getTime()<=new Date(I).getTime());break}case"7":{const D=Y.dayjs(I).endOf("week").add(1,"day").format("YYYY-MM-DD 23:59:59");s=M.find(e=>Y.dayjs(e).endOf("week").add(1,"day").format("YYYY-MM-DD")===Y.dayjs(L).endOf("week").add(1,"day").format("YYYY-MM-DD")),y=M.findLast(e=>new Date(e).getTime()<=new Date(D).getTime());break}case"8":{s=M.find(D=>Y.dayjs(D).format("YYYY-MM")===Y.dayjs(L).format("YYYY-MM")),y=M.findLast(D=>Y.dayjs(D).format("YYYY-MM")===Y.dayjs(I).format("YYYY-MM"));break}default:s=M.find(D=>new Date(D).getTime()>=new Date(L).getTime()),y=M.findLast(D=>new Date(D).getTime()<=new Date(I).getTime())}return[s,y]},xe=M=>{const l=[];return M.reduce((r,s)=>{const y=`${s.coord[0]}+${s.label.position}`,L=s.label.position==="top"?-16:16,I=r.get(y);return I?(r.set(y,I+1),s.symbolOffset[1]=L*(I+1)):(r.set(y,1),s.symbolOffset[1]=s.label.position==="top"?-7:7),l.push(s),r},new Map),l},Oe=(M,l,r,s,y)=>{const L=(g,u)=>{const{direction:z="",tradeAction:i="",tradeType:f=""}=g,j=f??z+i;switch(u){case 0:return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(j);case 1:return f??z+i}},I=(g,u,z,i)=>g.reduce((f,j)=>{var Q;const o=L(j,0),T=g.filter(R=>R.klineTime===j.klineTime),n=[...new Set(T.map(R=>L(R,0)))];let N=null;n.length>1?N="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:N="image://"+new URL(Object.assign({"./images/buy.svg":Ye,"./images/sell.svg":Le,"./images/t.svg":me})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const A=ie(z,j.klineTime),b=(Q=i[A])==null?void 0:Q[3];return u.forEach(R=>{var B;const W=o==="买"?0:1;R.range[W]===j.klineTime&&(R.rangeValue[W]=(B=i[A])==null?void 0:B[o==="买"?2:3])}),f.push({symbol:N,symbolSize:25,symbolRotate:0,symbolOffset:[0,0],label:{show:!1,position:"top"},coord:[j.klineTime,b],silent:!0,animation:!1,customData:{tradeType:o,amount:j.amount,part:j.part,profitAndLoss:j.profitAndLoss,openPriceAll:j.openPriceAll,closePriceAll:j.closePriceAll}}),f},[]),D=(g,u,z,i)=>g.reduce((f,j,o)=>{var b,Q;const T=L(j,1),n=["开多","开空"].includes(T)?"top":"bottom",N=ie(z,j.klineTime),A=n==="top"?(b=i[N])==null?void 0:b[3]:(Q=i[N])==null?void 0:Q[2];return u.forEach(R=>{(n==="top"?R.range[0]:R.range[1])===j.klineTime&&(R.rangeValue[n==="top"?0:1]=A)}),f.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"?"+":"-"} ${j.amount}手 ${j.part?`(${j.part}份)`:""}`},itemStyle:{color:n==="top"?"#FF0000":"#389e0d"},coord:[j.klineTime,A],silent:!0,animation:!1,customData:{tradeType:T,amount:j.amount,part:j.part,profitAndLoss:j.profitAndLoss,openPriceAll:j.openPriceAll,closePriceAll:j.closePriceAll}}),f},[]),e=(g,u,z)=>{const{basePointData:i,baseLineData:f}=g.reduce((n,N)=>{const A={pointTime:N.openTime,klineTime:ne(z,N.openTime,u),tradeAction:"开",tradeDirection:N.tradeDirection?"空":"多",tradeType:`开${N.tradeDirection?"空":"多"}`,part:null,amount:N.tradeVolume,profitAndLoss:N.profitAndLoss,openPriceAll:N.openPrice*N.tradeVolume,closePriceAll:N.closePrice*N.tradeVolume},b={pointTime:N.closeTime,klineTime:ne(z,N.closeTime,u),tradeAction:"平",tradeDirection:N.tradeDirection?"空":"多",tradeType:`平${N.tradeDirection?"空":"多"}`,part:null,amount:N.tradeVolume,profitAndLoss:N.profitAndLoss,openPriceAll:N.openPrice*N.tradeVolume,closePriceAll:N.closePrice*N.tradeVolume};return n.basePointData.push(A,b),n.baseLineData.push({range:[A.klineTime,b.klineTime],rangeValue:[null,null],color:b.profitAndLoss>0?"#FF0000":"#389e0d"}),n},{basePointData:[],baseLineData:[]}),o=[...i.reduce((n,N)=>{const A=JSON.parse(JSON.stringify(N)),b=A.klineTime+A.tradeType;if(n.has(b)){const Q=n.get(b);A.amount+=Q.amount,A.part+=Q.part,A.profitAndLoss+=Q.profitAndLoss,A.openPriceAll+=Q.openPriceAll,A.closePriceAll+=Q.closePriceAll}return n.set(b,A),n},new Map([])).values()].sort((n,N)=>new Date(n.klineTime)-new Date(N.klineTime)),T=f.filter(({range:n})=>n[0]!==n[1]);return{pointData:o,lineData:T}},{pointData:C,lineData:S}=e(M,l,s);return{tradePointData:(r===0?I:D)(C,S,s,y),tradeLineData:S.map(({range:g,rangeValue:u,color:z})=>[{symbol:"none",coord:[g[0],u[0]],lineStyle:{color:z,width:2,type:"solid"},silent:!0,animation:!1},{symbol:"none",coord:[g[1],u[1]],silent:!0,animation:!1}])}},Ce=(M,l)=>{let r=[];if(Number(l)<=5)r=M.map(({tradeDate:s,netPositionValue:y})=>[Y.dayjs(s).format("YYYY-MM-DD HH:mm:ss"),y]);else if(Number(l)===6){const s=M.reduce((y,L)=>{const{tradeDate:I,netPositionValue:D}=L;return y.set(Y.dayjs(I).format("YYYY-MM-DD 09:00:00"),D),y},new Map);r=Array.from(s,([y,L])=>[y,L])}else r=[];return{netPositionLineData:r}},ke=(M,l,r,s)=>{let y=[];if(["6","7","8"].includes(l)){const L=M.reduce((I,D)=>{const e=ne(s,D.date,l),C=D[r===0?"simple":"compound"];return I.set(e,C),I},new Map);y=Array.from(L,([I,D])=>[I,D])}else y=[];return{tradeIncomeRateLineData:y}};const he={class:"tips"},be={__name:"Tips",props:{data:{type:Array,default:()=>[]}},setup(M){return(l,r)=>(t.openBlock(),t.createElementBlock("div",he,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(M.data,(s,y)=>(t.openBlock(),t.createElementBlock("span",{key:y,class:"item",style:t.normalizeStyle({color:s.color})},t.toDisplayString(s.label)+" "+t.toDisplayString(s.value),5))),128))]))}},ae=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(M,{expose:l,emit:r}){const{request:s}=t.inject("stConfig");let y=null;const L=t.ref(null),I=r,D=M,e=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),C=async()=>{const u={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:Y.dayjs().format("YYYY-MM-DD 23:59:59"),deleteFirstNumber:D.deleteFirstNumber,withoutPermission:D.withoutPermission},{body:z}=await s.post("/middleLayer/kline/getKline",u);z?e.value=z:e.value={data:[],mainIndicator:[],subIndicator:[],time:[]},g("init")},S=H.G(u=>{if(!u.dataZoomId)return;const z=y.getOption();if(z!=null&&z.dataZoom[0]){const{startValue:i,endValue:f}=y.getOption().dataZoom[0],{time:j}=e.value,o=`${j[i].split(" ")[0]} 00:00:00`,T=`${j[f].split(" ")[0]} 23:59:59`;console.log(`检测到拖拽轴被拖动, 时间区间: ${o} - ${T}`),I("change",{startTime:o,endTime:T})}},200),m=H.G(({startTime:u,endTime:z})=>{g("reset",{startTime:u,endTime:z})},100),g=(u,z)=>{switch(u){case"init":{const{data:i,time:f}=e.value,{xAxisData:j,lineData:o}=i.reduce((n,N,A)=>(n.xAxisData.push(f[A].split(" ")[0]),n.lineData.push(N[1]),n),{xAxisData:[],lineData:[]}),T={grid:{height:0,left:"100px",right:"80px"},xAxis:{type:"category",data:j,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(y.setOption(T,!0),D.screenTimeRange.length){const[n,N]=D.screenTimeRange;m({startTime:n,endTime:N})}break}case"reset":{const{time:i}=e.value,f=Y.dayjs(z.startTime).format("YYYY-MM-DD"),j=Y.dayjs(z.endTime).format("YYYY-MM-DD");let o=-1,T=-1;for(let n=0;n<i.length;n++){const N=Y.dayjs(i[n]).format("YYYY-MM-DD");if(o!==-1&&T!==-1)break;o===-1&&(new Date(N)===new Date(f)?o=n:new Date(N)>new Date(f)&&(o=n-1)),T===-1&&(new Date(N)===new Date(j)?T=n:new Date(N)>new Date(j)&&(T=n-1))}T===-1&&(T=i.length-1),y.dispatchAction({type:"dataZoom",startValue:o,endValue:T});break}}};return t.onMounted(()=>{t.nextTick(()=>{y=te.init(L.value),y.on("datazoom",S),C()})}),t.watch(()=>D.screenTimeRange,u=>{const[z,i]=u;m({startTime:z,endTime:i})},{deep:!0}),t.onUnmounted(()=>{y.off("datazoom"),y.dispose()}),l({resize:H.G(()=>y.resize(),100)}),(u,z)=>(t.openBlock(),t.createElementBlock("div",{class:"chart",ref_key:"sliderChartRef",ref:L},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"},Ue={class:"indicator"},Fe={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(M,{expose:l}){const{round:r,formatValue:s}=H.x,{request:y}=t.inject("stConfig"),L=t.ref(),I=t.ref(!1),D=t.ref(!1),e=M;let C=!1,S=!1,m=!1,g=!1,u=null,z=null,i=null;const f=t.ref(null),j=t.ref(null),o=t.ref({data:[],mainIndicator:[],subIndicator:[],time:[]}),T=t.ref(0),n=t.ref([]),N=t.ref(null),A=t.ref("VOL"),b=t.computed(()=>{const a=o.value.data[T.value];if(!a)return[{label:"开",value:"-"},{label:"高",value:"-"},{label:"低",value:"-"},{label:"收",value:"-"},{label:"额",value:"-"},{label:"涨跌",value:"-"}];const c=[{label:"开",value:r(a[0])},{label:"高",value:r(a[3])},{label:"低",value:r(a[2])},{label:"收",value:r(a[1])}];a[4]!==null&&c.push({label:"额",value:s(a[4])});let d;return a[6]>0?d="red":a[6]<0&&(d="green"),c.push({label:"涨跌",value:`${r(a[6])}%`,color:d}),c}),Q=t.computed(()=>{var a,c;return((c=(a=o.value)==null?void 0:a.mainIndicator)==null?void 0:c.map(d=>({label:d.key,value:r(d.data[T.value]),color:d.color})))||[]}),R=t.computed(()=>{var a,c;return((c=(a=o.value)==null?void 0:a.subIndicator)==null?void 0:c.map(d=>({label:d.key,color:d.color,value:d.data[T.value]||"-"})))||[]}),W=()=>{i||(i=te.init(j.value),i.on("highlight",H.G(a=>{var c;a.dataIndex?T.value=a.dataIndex:T.value=((c=a.batch)==null?void 0:c[0].dataIndex)??-1},10)),i.on("datazoom",H.G(async()=>{var k;const{loadCheckCount:a}=Z,{startValue:c,endValue:d}=((k=i.getOption())==null?void 0:k.dataZoom[0])??{};m===!1&&g===!1&&c<a&&await re("history"),C===!1&&S===!1&&d>o.value.time.length-a&&await re("new"),se()})),i.on("globalout",()=>{const a=i.getOption();T.value=a.dataZoom[0].endValue}),i.getZr().on("contextmenu",()=>{var a;N.value=(a=o.value)==null?void 0:a.time[T.value]}),window.addEventListener("keydown",ce),e.userKlineConfig.enable_subChart&&(z=te.init(f.value),te.connect([i,z])),u=H.D(j.value),u.listen(()=>{requestAnimationFrame(()=>{var a;i.resize(),z==null||z.resize(),(a=L.value)==null||a.resize()})}))},B=async({startTime:a,endTime:c})=>{m=!1,g=!1,C=!1,S=!1;try{I.value=!0;const d={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:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission};["1","2","3","4","5"].includes(e.cycle)?Object.assign(d,{startTime:Y.dayjs(a).subtract(1,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(1,"day").format("YYYY-MM-DD HH:mm:ss")}):["6","7"].includes(e.cycle)?Object.assign(d,{startTime:Y.dayjs(a).subtract(50,"day").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(50,"day").format("YYYY-MM-DD HH:mm:ss")}):Object.assign(d,{startTime:Y.dayjs(a).subtract(10,"month").format("YYYY-MM-DD HH:mm:ss"),endTime:Y.dayjs(c).add(10,"month").format("YYYY-MM-DD HH:mm:ss")});const{body:k}=await y.post("/middleLayer/kline/getKline",d);o.value=k??{data:[],mainIndicator:[],subIndicator:[],time:[]};let x=-1,w=-1;for(let p=0;p<o.value.time.length;p++){const P=Y.dayjs(o.value.time[p]).format("YYYY-MM-DD");if(x!==-1&&w!==-1)break;x===-1&&(new Date(P)===new Date(a)?x=p:new Date(P)>new Date(a)&&(x=p-1)),w===-1&&(new Date(P)===new Date(c)?w=p:new Date(P)>new Date(c)&&(w=p-1))}w===-1&&(w=o.value.time.length-1),K({startValue:x===-1?0:x,endValue:w===-1?o.value.time.length-1:w})}finally{I.value=!1}},re=async a=>{var P,X;const{loadAddCount:c}=Z;switch(a){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:c,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:U}=await y.post("/middleLayer/kline/getKline",F);o.value=ze(U,o.value),U.data.length<c&&(console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"),g=!0),m=!1;break}case"new":{C=!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:c,mainIndicatorList:e.indicatorStore.getIndicatorParams(e.mainIndicator),subIndicator:A.value,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission},{body:U}=await y.post("/middleLayer/kline/getKline",F);o.value=ze(o.value,U),U.data.length<c&&(console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"),S=!0),C=!1;break}}const{startValue:d,endValue:k}=((P=i.getOption())==null?void 0:P.dataZoom[0])??{},x=(X=i.getOption())==null?void 0:X.xAxis[0].data,w=o.value.time.findIndex(F=>new Date(F)>=new Date(x[d])),p=o.value.time.findIndex(F=>new Date(F)>=new Date(x[k]));K({startValue:w===-1?0:w,endValue:p===-1?o.value.time.length-1:p})},se=()=>{var w;if(!o.value.time)return n.value=[];const{time:a}=o.value,{startValue:c,endValue:d}=((w=i.getOption())==null?void 0:w.dataZoom[0])??{},k=a[c],x=a[d];["6","7","8"].includes(e.cycle)?n.value=[Y.dayjs(k).format("YYYY-MM-DD"),Y.dayjs(x).format("YYYY-MM-DD")]:n.value=[k,x]},K=(a={startValue:0,endValue:0})=>{W();const{maxValueSpan:c}=Z,{time:d,data:k,mainIndicator:x}=o.value,w=a.endValue-a.startValue>c?a.endValue-c:a.startValue,p=a.endValue,P=x.map(O=>({name:O.key,type:"line",silent:!0,symbol:"none",data:O.data,lineStyle:{width:O.width||1},itemStyle:{color:O.color}})),{netPositionLineData:X}=Ce(e.netPositionData,e.cycle),{tradeIncomeRateLineData:F}=ke(e.tradeIncomeRateData,e.cycle,e.incomeType,d),{tradePointData:U,tradeLineData:de}=Oe(e.tradeLog,e.cycle,e.sellBuy,d,k);i.setOption({animation:!1,grid:{top:"40px",left:"60px",right:"20px",bottom:"20px"},dataZoom:[{type:"inside",startValue:w,endValue:p,minValueSpan:Z.minValueSpan,maxValueSpan:Z.maxValueSpan}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:O=>{const{axisDimension:h,value:E}=O;return h==="x"?["6","7","8"].includes(e.cycle)?Y.dayjs(E).format("YYYY-MM-DD"):E:String(r(E))}}},formatter:O=>{if(!(O!=null&&O.length))return null;let h="";if(O.forEach(v=>{if(v.seriesName==="netPosition"&&v.data!==null&&(h+=`<div>资产持仓净值: ${v.data[1]}</div>`),v.componentSubType==="candlestick")if(e.sellBuy===0){const $=U.filter(V=>(V==null?void 0:V.coord[0])===v.axisValue);let G=0,_=0;$.forEach(V=>{const{tradeType:q,amount:ee}=V.customData;q==="买"&&(G+=ee),q==="卖"&&(_+=ee)}),G&&(h+=`<div>买: ${G}</div>`),_&&(h+=`<div>卖: ${_}</div>`)}else U.forEach($=>{if(($==null?void 0:$.coord[0])===v.axisValue){const{tradeType:G,amount:_,profitAndLoss:V,openPriceAll:q,closePriceAll:ee}=$.customData;let J=`<div>${G}: ${_}手</div>`;if(G.includes("开")&&(J+=`<div>开仓价: ${(q/_).toFixed(2)}</div>`),G.includes("平")){const Ne=(q/_).toFixed(2),le=(ee/_).toFixed(2);J+=`<div>平仓价: ${le}</div>`,J+=`<div>盈亏: ${V==null?void 0:V.toFixed(2)}</div>`,J+=`<div>盈亏比率: ${((le-Ne)/Ne*100).toFixed(2)} %</div>`}h+=J}})}),!h)return null;let E=O[0].axisValue;return["6","7","8"].includes(e.cycle)&&(E=Y.dayjs(E).format("YYYY-MM-DD")),`
|
|
2
2
|
<div>
|
|
3
3
|
<span style="font-weight: bold;">${E}</span>
|
|
4
|
-
${
|
|
4
|
+
${h}
|
|
5
5
|
</div>
|
|
6
|
-
`}},xAxis:{show:!0,type:"category",data:d,splitLine:{show:!1},axisLabel:{formatter:O=>["6","7","8"].includes(e.cycle)?Y.dayjs(O).format("YYYY-MM-DD"):O}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:O=>{const{min:
|
|
6
|
+
`}},xAxis:{show:!0,type:"category",data:d,splitLine:{show:!1},axisLabel:{formatter:O=>["6","7","8"].includes(e.cycle)?Y.dayjs(O).format("YYYY-MM-DD"):O}},yAxis:[{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:O=>{const{min:h,max:E}=O,v=Math.abs((E-h)/10);return r(h-v)},max:O=>r(O.max)},{show:!1,min:O=>{const{min:h,max:E}=O,v=Math.abs((E-h)/10);return h-v},max:O=>{const{min:h,max:E}=O,v=Math.abs((E-h)/10);return E+v}}],series:[{type:"candlestick",data:k,markPoint:{data:xe([...U])},markLine:{data:[...de]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},...P,{type:"line",name:"netPosition",data:X,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}}],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&&z.setOption(fe(o.value,w,p),!0),se(),T.value=p;{const O=[];if(e.userKlineConfig.enable_tradeLogBrush&&U.length){const[h,E]=[U[0].coord[0],U.at(-1).coord[0]],v=Me(d,[h,E],e.cycle);O.push({brushId:"开平仓范围",brushType:"lineX",xAxisIndex:0,coordRange:v})}if(e.syncBrushRange.cycleList.includes(e.cycle)){const{startTime:h,endTime:E}=e.syncBrushRange,v=Me(d,[h,E],e.cycle);O.push({brushId:"同步刷选范围",brushType:"lineX",xAxisIndex:0,coordRange:v,brushStyle:{fill:"rgba(64, 158, 255, 0.2)",stroke:"rgba(64, 158, 255, 0.8)",lineWidth:1}})}if(e.positionTime){const[h,E]=[Y.dayjs(e.positionTime).format("YYYY-MM-DD 00:00:00"),Y.dayjs(e.positionTime).format("YYYY-MM-DD 23:59:59")],v=Me(d,[h,E],e.cycle);O.push({brushId:"强制定位高亮",brushType:"lineX",xAxisIndex:0,coordRange:v,brushStyle:{fill:"rgba(217, 179, 255, 0.2)",stroke:"rgba(217, 179, 255, 0.8)",lineWidth:1}})}i.dispatchAction({type:"brush",areas:O})}},ye=a=>{const[c,d]=je({startTime:a.startTime,endTime:a.endTime,cycle:e.cycle});B({startTime:c,endTime:d})},ce=({code:a,ctrlKey:c})=>{if(!(c||D.value))return;const{xAxis:d,dataZoom:k}=i.getOption(),{data:x}=(d==null?void 0:d[0])??{data:[]};let{startValue:w,endValue:p}=(k==null?void 0:k[0])??{};if(x!=null&&x.length){switch(a){case"ArrowUp":{if(p-w<5)return;const P=Math.floor((p-w)/2)+1;w=w+P,p-w<5&&(w=p-4);break}case"ArrowDown":{const P=Math.min(500,p-w);w=w-P-1;break}case"ArrowLeft":{w>0&&(w-=1,p-=1),T.value>0&&(T.value-=1);break}case"ArrowRight":{p<x.length-1&&(w+=1,p+=1),D.value&&T.value<x.length-1&&(T.value+=1);break}}i.dispatchAction({type:"dataZoom",startValue:w,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[a,c]=e.initTimeRange;B({startTime:a,endTime:c})}),t.watch(()=>[e.varietyCode,e.initTimeRange],()=>{const[a,c]=e.initTimeRange;B({startTime:a,endTime:c})},{deep:!0}),t.watch(()=>[e.cycle],()=>{var x;const{startValue:a,endValue:c}=((x=i.getOption())==null?void 0:x.dataZoom[0])??{},[d,k]=je({startTime:o.value.time[a],endTime:o.value.time[c],cycle:e.cycle,type:"middle"});B({startTime:d,endTime:k})},{deep:!0}),t.watch(()=>{var a,c;return[e.mainIndicator,A.value,(a=e.indicatorStore)==null?void 0:a.filterIndicator,(c=e.indicatorStore)==null?void 0:c.customIndicator,e.rightType,e.klineType]},()=>{var x;const{startValue:a,endValue:c}=((x=i.getOption())==null?void 0:x.dataZoom[0])??{},[d,k]=[o.value.time[a],o.value.time[c]];B({startTime:d,endTime:k})},{deep:!0}),t.watch(()=>[e.sellBuy,e.tradeLog,e.netPositionData,e.incomeType,e.tradeIncomeRateData],()=>{var d;const{startValue:a,endValue:c}=((d=i.getOption())==null?void 0:d.dataZoom[0])??{};K({startValue:a,endValue:c})},{deep:!0}),t.onUnmounted(()=>{i.off("highlight"),i.off("globalout"),i.off("datazoom"),i.getZr().off("contextmenu"),window.removeEventListener("keydown",ce),i.dispose(),z==null||z.dispose(),u.dispose(),u=null}),l({screenTimeRange:n,contextmenuKlineTime:N,reDraw:()=>{var d;const{startValue:a,endValue:c}=((d=i.getOption())==null?void 0:d.dataZoom[0])??{};K({startValue:a,endValue:c})}}),(a,c)=>{const d=ue.ElOption,k=ue.ElSelect,x=Te.ElEmpty,w=De.vLoading;return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:"kline-plus",onMousemove:c[1]||(c[1]=p=>D.value=!0),onMouseout:c[2]||(c[2]=p=>D.value=!1)},[t.createElementVNode("div",Se,[t.createElementVNode("div",Qe,[t.createVNode(ae,{data:b.value},null,8,["data"]),t.createVNode(ae,{data:Q.value},null,8,["data"])]),M.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:j,class:"chart"},null,512)]),M.userKlineConfig.enable_subChart?(t.openBlock(),t.createElementBlock("div",Re,[t.createElementVNode("div",Ue,[t.createElementVNode("div",Fe,[t.createElementVNode("span",null,t.toDisplayString(A.value),1),t.createVNode(k,{modelValue:A.value,"onUpdate:modelValue":c[0]||(c[0]=p=>A.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(M.indicatorStore.subIndicatorList,(p,P)=>(t.openBlock(),t.createBlock(d,{key:P,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t.createVNode(ae,{data:R.value},null,8,["data"])]),t.createElementVNode("div",{ref_key:"subChartRef",ref:f,class:"chart"},null,512)])):t.createCommentVNode("",!0),M.userKlineConfig.enable_sliderChart?(t.openBlock(),t.createElementBlock("div",Ve,[t.createVNode(ve,{ref_key:"sliderChartRef",ref:L,screenTimeRange:n.value,varietyCode:M.varietyCode,varietyStock:M.varietyStock,rightType:M.rightType,klineType:M.klineType,deleteFirstNumber:e.deleteFirstNumber,withoutPermission:e.withoutPermission,onChange:ye},null,8,["screenTimeRange","varietyCode","varietyStock","rightType","klineType","deleteFirstNumber","withoutPermission"])])):t.createCommentVNode("",!0),o.value.time.length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(x,{key:2,class:"empty",description:"暂无数据"}))],32)),[[w,I.value]])}}},_e=oe._export_sfc(Be,[["__scopeId","data-v-366a34a3"]]),He={install(M){M.component("st-klinePlus",_e)}};module.exports=He;
|