st-comp 0.0.176 → 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 +168 -165
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +43 -43
- package/lib/{index-5d22cd99.js → index-0f16f8b0.js} +439 -436
- package/lib/{python-0863213e.js → python-e9c32bc9.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/KlinePlus/index.vue +7 -4
- package/src/pages/KlinePlus/index.vue +4 -4
package/es/KlinePlus.js
CHANGED
|
@@ -5,9 +5,9 @@ import "./el-tag-7f391090.js";
|
|
|
5
5
|
import { E as ve, a as Ee } from "./el-select-d7a00294.js";
|
|
6
6
|
import "./el-scrollbar-45318df0.js";
|
|
7
7
|
import "./el-popper-e73466eb.js";
|
|
8
|
-
import { openBlock as U, createElementBlock as H, Fragment as Ae, renderList as we, normalizeStyle as Se, toDisplayString as Me, inject as pe, ref as F, onMounted as xe, nextTick as Qe, watch as te, onUnmounted as fe, computed as ce, withDirectives as Pe, createElementVNode as $, createVNode as ee, createCommentVNode as
|
|
8
|
+
import { openBlock as U, createElementBlock as H, Fragment as Ae, renderList as we, normalizeStyle as Se, toDisplayString as Me, inject as pe, ref as F, onMounted as xe, nextTick as Qe, watch as te, onUnmounted as fe, computed as ce, withDirectives as Pe, createElementVNode as $, createVNode as ee, createCommentVNode as se, withCtx as Re, createBlock as Ye } from "vue";
|
|
9
9
|
import { d as g } from "./dayjs.min-54a4e095.js";
|
|
10
|
-
import * as
|
|
10
|
+
import * as Ne from "echarts";
|
|
11
11
|
import { x as Oe, G as ae, D as Fe } from "./index-7ed0999e.js";
|
|
12
12
|
import { _ as ze } from "./_plugin-vue_export-helper-dad06003.js";
|
|
13
13
|
import "./use-global-config-c7f0a7e3.js";
|
|
@@ -228,20 +228,20 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
228
228
|
let L = [
|
|
229
229
|
...new Set(
|
|
230
230
|
n.slice(-20).map((D) => {
|
|
231
|
-
const a = new Date(D),
|
|
232
|
-
return `${
|
|
231
|
+
const a = new Date(D), s = String(a.getHours()).padStart(2, "0"), A = String(a.getMinutes()).padStart(2, "0"), v = String(a.getSeconds()).padStart(2, "0");
|
|
232
|
+
return `${s}:${A}:${v}`;
|
|
233
233
|
})
|
|
234
234
|
)
|
|
235
235
|
];
|
|
236
236
|
L.includes("00:00:00") && (L.splice(L.indexOf("00:00:00"), 1), L.push("24:00:00")), L = L.sort((D, a) => (/* @__PURE__ */ new Date(`2000-01-30 ${D}`)).getTime() - (/* @__PURE__ */ new Date(`2000-01-30 ${a}`)).getTime());
|
|
237
|
-
const T = new Date(y),
|
|
238
|
-
if (`${
|
|
239
|
-
return `${
|
|
237
|
+
const T = new Date(y), N = T.getFullYear(), c = String(T.getMonth() + 1).padStart(2, "0"), M = String(T.getDate()).padStart(2, "0"), f = String(T.getHours()).padStart(2, "0"), r = String(T.getMinutes()).padStart(2, "0"), i = String(T.getSeconds()).padStart(2, "0");
|
|
238
|
+
if (`${f}:${r}:${i}` == "00:00:00")
|
|
239
|
+
return `${N}-${c}-${M} 01:00:00`;
|
|
240
240
|
{
|
|
241
241
|
let D = null;
|
|
242
242
|
for (let a = 0; a < L.length; a++) {
|
|
243
|
-
const
|
|
244
|
-
if (+`${
|
|
243
|
+
const s = L[a].split(":");
|
|
244
|
+
if (+`${s[0]}${s[1]}${s[2]}` >= +`${f}${r}${i}`) {
|
|
245
245
|
D = L[a];
|
|
246
246
|
break;
|
|
247
247
|
}
|
|
@@ -249,47 +249,47 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
249
249
|
if (D === "24:00:00") {
|
|
250
250
|
const a = new Date(y);
|
|
251
251
|
a.setDate(a.getDate() + 1);
|
|
252
|
-
const
|
|
253
|
-
return `${
|
|
252
|
+
const s = a.getFullYear(), A = String(a.getMonth() + 1).padStart(2, "0"), v = String(a.getDate()).padStart(2, "0");
|
|
253
|
+
return `${s}-${A}-${v} 00:00:00`;
|
|
254
254
|
}
|
|
255
|
-
return `${
|
|
255
|
+
return `${N}-${c}-${M} ${D}`;
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
case "6": {
|
|
259
259
|
const L = new Date(y), T = L.getHours();
|
|
260
260
|
if (T >= 4 && T < 21) {
|
|
261
|
-
const
|
|
262
|
-
return `${
|
|
261
|
+
const N = L.getFullYear(), c = String(L.getMonth() + 1).padStart(2, "0"), M = String(L.getDate()).padStart(2, "0");
|
|
262
|
+
return `${N}-${c}-${M} 09:00:00`;
|
|
263
263
|
} else {
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
const c =
|
|
264
|
+
const N = new Date(y);
|
|
265
|
+
N.getHours() >= 21 && N.setDate(N.getDate() + 1);
|
|
266
|
+
const c = N.getFullYear(), M = String(N.getMonth() + 1).padStart(2, "0"), f = String(N.getDate()).padStart(2, "0"), r = `${c}-${M}-${f} 09:00:00`, i = Ce(n, r, "gte");
|
|
267
267
|
return i === -1 ? r : n[i];
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
case "7": {
|
|
271
271
|
const L = new Date(y), T = new Date(L);
|
|
272
272
|
T.setDate(L.getDate() - L.getDay()), T.setHours(0, 0, 0, 0);
|
|
273
|
-
const
|
|
274
|
-
|
|
273
|
+
const N = new Date(T);
|
|
274
|
+
N.setDate(T.getDate() + 5), N.setHours(23, 59, 59, 0);
|
|
275
275
|
const c = new Date(T);
|
|
276
276
|
c.setDate(T.getDate() + 12), c.setHours(9, 0, 0, 0);
|
|
277
|
-
const M = L <=
|
|
278
|
-
return `${
|
|
277
|
+
const M = L <= N ? N : c, f = M.getFullYear(), r = String(M.getMonth() + 1).padStart(2, "0"), i = String(M.getDate()).padStart(2, "0");
|
|
278
|
+
return `${f}-${r}-${i} 09:00:00`;
|
|
279
279
|
}
|
|
280
280
|
case "8": {
|
|
281
|
-
const L = new Date(y), T = new Date(L.getFullYear(), L.getMonth() + 1, 1),
|
|
282
|
-
|
|
283
|
-
const c =
|
|
284
|
-
return `${c}-${M}-${
|
|
281
|
+
const L = new Date(y), T = new Date(L.getFullYear(), L.getMonth() + 1, 1), N = new Date(T);
|
|
282
|
+
N.setDate(T.getDate() - 1), N.setHours(9, 0, 0, 0);
|
|
283
|
+
const c = N.getFullYear(), M = String(N.getMonth() + 1).padStart(2, "0"), f = String(N.getDate()).padStart(2, "0");
|
|
284
|
+
return `${c}-${M}-${f} 09:00:00`;
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
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
|
-
const
|
|
290
|
-
e % L === 0 && b === 0 ? T = e : T = (
|
|
291
|
-
const c = Math.floor(T / 60), M = z + c,
|
|
292
|
-
return `${D}-${a}-${
|
|
289
|
+
const N = Math.floor(e / L);
|
|
290
|
+
e % L === 0 && b === 0 ? T = e : T = (N + 1) * L;
|
|
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
|
+
return `${D}-${a}-${s} ${A}:${v}:00`;
|
|
293
293
|
};
|
|
294
294
|
switch (u) {
|
|
295
295
|
case "1":
|
|
@@ -325,9 +325,9 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
325
325
|
}
|
|
326
326
|
return [d, j];
|
|
327
327
|
}, $e = (n, y, u, d, j) => {
|
|
328
|
-
const m = (T,
|
|
329
|
-
const { direction: c = "", tradeAction: M = "", tradeType:
|
|
330
|
-
switch (
|
|
328
|
+
const m = (T, N) => {
|
|
329
|
+
const { direction: c = "", tradeAction: M = "", tradeType: f = "" } = T, r = f ?? c + M;
|
|
330
|
+
switch (N) {
|
|
331
331
|
case 0:
|
|
332
332
|
return (/* @__PURE__ */ new Map([
|
|
333
333
|
["开多", "买"],
|
|
@@ -336,20 +336,20 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
336
336
|
["平空", "买"]
|
|
337
337
|
])).get(r);
|
|
338
338
|
case 1:
|
|
339
|
-
return
|
|
339
|
+
return f ?? c + M;
|
|
340
340
|
}
|
|
341
|
-
}, I = (T,
|
|
341
|
+
}, I = (T, N, c, M) => T.reduce((f, r) => {
|
|
342
342
|
var P;
|
|
343
343
|
const i = m(r, 0), D = T.filter((_) => _.klineTime === r.klineTime), a = [...new Set(D.map((_) => m(_, 0)))];
|
|
344
|
-
let
|
|
345
|
-
a.length > 1 ?
|
|
346
|
-
const A = Ce(c, r.klineTime),
|
|
347
|
-
return
|
|
344
|
+
let s = null;
|
|
345
|
+
a.length > 1 ? s = "image://" + new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", self.location).href : s = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": Ue, "./images/sell.svg": Ve, "./images/t.svg": He }))[`./images/${i === "买" ? "buy" : "sell"}.svg`], self.location).href;
|
|
346
|
+
const A = Ce(c, r.klineTime), v = (P = M[A]) == null ? void 0 : P[3];
|
|
347
|
+
return N.forEach((_) => {
|
|
348
348
|
var Z;
|
|
349
349
|
const ie = i === "买" ? 0 : 1;
|
|
350
350
|
_.range[ie] === r.klineTime && (_.rangeValue[ie] = (Z = M[A]) == null ? void 0 : Z[i === "买" ? 2 : 3]);
|
|
351
|
-
}),
|
|
352
|
-
symbol:
|
|
351
|
+
}), f.push({
|
|
352
|
+
symbol: s,
|
|
353
353
|
symbolSize: 25,
|
|
354
354
|
symbolRotate: 0,
|
|
355
355
|
symbolOffset: [0, 0],
|
|
@@ -357,7 +357,7 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
357
357
|
show: !1,
|
|
358
358
|
position: "top"
|
|
359
359
|
},
|
|
360
|
-
coord: [r.klineTime,
|
|
360
|
+
coord: [r.klineTime, v],
|
|
361
361
|
silent: !0,
|
|
362
362
|
animation: !1,
|
|
363
363
|
customData: {
|
|
@@ -373,12 +373,12 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
373
373
|
closePriceAll: r.closePriceAll
|
|
374
374
|
// 收仓价
|
|
375
375
|
}
|
|
376
|
-
}),
|
|
377
|
-
}, []), z = (T,
|
|
378
|
-
const D = m(r, 1), a = ["开多", "开空"].includes(D) ? "top" : "bottom",
|
|
379
|
-
return
|
|
380
|
-
(a === "top" ? A.range[0] : A.range[1]) === r.klineTime && (A.rangeValue[a === "top" ? 0 : 1] =
|
|
381
|
-
}),
|
|
376
|
+
}), f;
|
|
377
|
+
}, []), z = (T, N, c, M) => T.reduce((f, r, i) => {
|
|
378
|
+
const D = m(r, 1), a = ["开多", "开空"].includes(D) ? "top" : "bottom", s = a === "top" ? (r.openPriceAll / r.amount).toFixed(2) : (r.closePriceAll / r.amount).toFixed(2);
|
|
379
|
+
return N.forEach((A) => {
|
|
380
|
+
(a === "top" ? A.range[0] : A.range[1]) === r.klineTime && (A.rangeValue[a === "top" ? 0 : 1] = s);
|
|
381
|
+
}), f.push({
|
|
382
382
|
symbol: "triangle",
|
|
383
383
|
symbolSize: [10, 12],
|
|
384
384
|
symbolRotate: a === "top" ? 180 : 0,
|
|
@@ -390,7 +390,7 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
390
390
|
formatter: `${D} ${a === "top" ? "+" : "-"} ${r.amount}手 ${r.part ? `(${r.part}份)` : ""}`
|
|
391
391
|
},
|
|
392
392
|
itemStyle: { color: a === "top" ? "#FF0000" : "#389e0d" },
|
|
393
|
-
coord: [r.klineTime,
|
|
393
|
+
coord: [r.klineTime, s],
|
|
394
394
|
silent: !0,
|
|
395
395
|
animation: !1,
|
|
396
396
|
customData: {
|
|
@@ -406,56 +406,56 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
406
406
|
closePriceAll: r.closePriceAll
|
|
407
407
|
// 收仓价
|
|
408
408
|
}
|
|
409
|
-
}),
|
|
410
|
-
}, []), e = (T,
|
|
411
|
-
const { basePointData: M, baseLineData:
|
|
412
|
-
(a,
|
|
409
|
+
}), f;
|
|
410
|
+
}, []), e = (T, N, c) => {
|
|
411
|
+
const { basePointData: M, baseLineData: f } = T.reduce(
|
|
412
|
+
(a, s) => {
|
|
413
413
|
const A = {
|
|
414
|
-
pointTime:
|
|
414
|
+
pointTime: s.openTime,
|
|
415
415
|
// 交易时间
|
|
416
416
|
tradeAction: "开",
|
|
417
417
|
// 交易行为
|
|
418
|
-
tradeDirection:
|
|
418
|
+
tradeDirection: s.tradeDirection ? "空" : "多",
|
|
419
419
|
// 交易方向 1:空, 0:多
|
|
420
|
-
tradeType: `开${
|
|
420
|
+
tradeType: `开${s.tradeDirection ? "空" : "多"}`,
|
|
421
421
|
part: null,
|
|
422
422
|
// 份数,
|
|
423
|
-
amount:
|
|
423
|
+
amount: s.tradeVolume,
|
|
424
424
|
// 手数
|
|
425
|
-
profitAndLoss:
|
|
425
|
+
profitAndLoss: s.profitAndLoss,
|
|
426
426
|
// 盈亏
|
|
427
|
-
openPriceAll:
|
|
427
|
+
openPriceAll: s.openPrice * s.tradeVolume,
|
|
428
428
|
// 开仓总价
|
|
429
|
-
closePriceAll:
|
|
429
|
+
closePriceAll: s.closePrice * s.tradeVolume,
|
|
430
430
|
// 平仓总价
|
|
431
|
-
klineTime: je(c,
|
|
431
|
+
klineTime: je(c, s.openTime, N)
|
|
432
432
|
// K线时间
|
|
433
|
-
},
|
|
434
|
-
pointTime:
|
|
433
|
+
}, v = {
|
|
434
|
+
pointTime: s.closeTime,
|
|
435
435
|
// 交易时间
|
|
436
436
|
tradeAction: "平",
|
|
437
437
|
// 交易行为
|
|
438
|
-
tradeDirection:
|
|
438
|
+
tradeDirection: s.tradeDirection ? "空" : "多",
|
|
439
439
|
// 交易方向 1:空, 0:多
|
|
440
|
-
tradeType: `平${
|
|
440
|
+
tradeType: `平${s.tradeDirection ? "空" : "多"}`,
|
|
441
441
|
part: null,
|
|
442
442
|
// 份数,
|
|
443
|
-
amount:
|
|
443
|
+
amount: s.tradeVolume,
|
|
444
444
|
// 手数
|
|
445
|
-
profitAndLoss:
|
|
445
|
+
profitAndLoss: s.profitAndLoss,
|
|
446
446
|
// 盈亏
|
|
447
|
-
openPriceAll:
|
|
447
|
+
openPriceAll: s.openPrice * s.tradeVolume,
|
|
448
448
|
// 开仓总价
|
|
449
|
-
closePriceAll:
|
|
449
|
+
closePriceAll: s.closePrice * s.tradeVolume,
|
|
450
450
|
// 平仓总价
|
|
451
|
-
klineTime: je(c,
|
|
451
|
+
klineTime: je(c, s.closeTime, N)
|
|
452
452
|
// K线时间
|
|
453
453
|
}, P = {
|
|
454
|
-
range: [A.klineTime,
|
|
454
|
+
range: [A.klineTime, v.klineTime],
|
|
455
455
|
rangeValue: [null, null],
|
|
456
|
-
color:
|
|
456
|
+
color: v.profitAndLoss > 0 ? "#FF0000" : "#389e0d"
|
|
457
457
|
};
|
|
458
|
-
return a.basePointData.push(A,
|
|
458
|
+
return a.basePointData.push(A, v), a.baseLineData.push(P), a;
|
|
459
459
|
},
|
|
460
460
|
{
|
|
461
461
|
basePointData: [],
|
|
@@ -463,29 +463,29 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
|
|
|
463
463
|
baseLineData: []
|
|
464
464
|
// 连线数据
|
|
465
465
|
}
|
|
466
|
-
), i = [...M.reduce((a,
|
|
467
|
-
const A = JSON.parse(JSON.stringify(
|
|
468
|
-
if (a.has(
|
|
469
|
-
const P = a.get(
|
|
466
|
+
), i = [...M.reduce((a, s) => {
|
|
467
|
+
const A = JSON.parse(JSON.stringify(s)), v = A.klineTime + A.tradeType;
|
|
468
|
+
if (a.has(v)) {
|
|
469
|
+
const P = a.get(v);
|
|
470
470
|
A.amount += P.amount, A.part += P.part, A.profitAndLoss += P.profitAndLoss, A.openPriceAll += P.openPriceAll, A.closePriceAll += P.closePriceAll;
|
|
471
471
|
}
|
|
472
|
-
return a.set(
|
|
473
|
-
}, /* @__PURE__ */ new Map([])).values()].sort((a,
|
|
472
|
+
return a.set(v, A), a;
|
|
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
475
|
}, { pointData: b, lineData: E } = e(n, y, d);
|
|
476
476
|
return {
|
|
477
477
|
tradePointData: (u === 0 ? I : z)(b, E, d, j),
|
|
478
|
-
tradeLineData: E.map(({ range: T, rangeValue:
|
|
478
|
+
tradeLineData: E.map(({ range: T, rangeValue: N, color: c }) => [
|
|
479
479
|
{
|
|
480
480
|
symbol: "none",
|
|
481
|
-
coord: [T[0],
|
|
481
|
+
coord: [T[0], N[0]],
|
|
482
482
|
lineStyle: { color: c, width: 2, type: "solid" },
|
|
483
483
|
silent: !0,
|
|
484
484
|
animation: !1
|
|
485
485
|
},
|
|
486
486
|
{
|
|
487
487
|
symbol: "none",
|
|
488
|
-
coord: [T[1],
|
|
488
|
+
coord: [T[1], N[1]],
|
|
489
489
|
silent: !0,
|
|
490
490
|
animation: !1
|
|
491
491
|
}
|
|
@@ -564,7 +564,7 @@ const Xe = {
|
|
|
564
564
|
subIndicator: [],
|
|
565
565
|
time: []
|
|
566
566
|
}), b = async () => {
|
|
567
|
-
const
|
|
567
|
+
const N = {
|
|
568
568
|
varietyCode: z.varietyCode,
|
|
569
569
|
cycle: "6",
|
|
570
570
|
right: z.varietyStock === 1 ? z.rightType : 0,
|
|
@@ -575,23 +575,23 @@ const Xe = {
|
|
|
575
575
|
endTime: g().format("YYYY-MM-DD 23:59:59"),
|
|
576
576
|
deleteFirstNumber: z.deleteFirstNumber,
|
|
577
577
|
withoutPermission: z.withoutPermission
|
|
578
|
-
}, { body: c } = await d.post("/middleLayer/kline/getKline",
|
|
578
|
+
}, { body: c } = await d.post("/middleLayer/kline/getKline", N);
|
|
579
579
|
c ? e.value = c : e.value = { data: [], mainIndicator: [], subIndicator: [], time: [] }, T("init");
|
|
580
|
-
}, E = ae((
|
|
581
|
-
if (!
|
|
580
|
+
}, E = ae((N) => {
|
|
581
|
+
if (!N.dataZoomId)
|
|
582
582
|
return;
|
|
583
583
|
const c = j.getOption();
|
|
584
584
|
if (c != null && c.dataZoom[0]) {
|
|
585
|
-
const { startValue: M, endValue:
|
|
585
|
+
const { startValue: M, endValue: f } = j.getOption().dataZoom[0], { time: r } = e.value, i = `${r[M].split(" ")[0]} 00:00:00`, D = `${r[f].split(" ")[0]} 23:59:59`;
|
|
586
586
|
console.log(`检测到拖拽轴被拖动, 时间区间: ${i} - ${D}`), I("change", { startTime: i, endTime: D });
|
|
587
587
|
}
|
|
588
|
-
}, 200), L = ae(({ startTime:
|
|
589
|
-
T("reset", { startTime:
|
|
590
|
-
}, 100), T = (
|
|
591
|
-
switch (
|
|
588
|
+
}, 200), L = ae(({ startTime: N, endTime: c }) => {
|
|
589
|
+
T("reset", { startTime: N, endTime: c });
|
|
590
|
+
}, 100), T = (N, c) => {
|
|
591
|
+
switch (N) {
|
|
592
592
|
case "init": {
|
|
593
|
-
const { data: M, time:
|
|
594
|
-
(a,
|
|
593
|
+
const { data: M, time: f } = e.value, { xAxisData: r, lineData: i } = M.reduce(
|
|
594
|
+
(a, s, A) => (a.xAxisData.push(f[A].split(" ")[0]), a.lineData.push(s[1]), a),
|
|
595
595
|
{ xAxisData: [], lineData: [] }
|
|
596
596
|
), D = {
|
|
597
597
|
grid: {
|
|
@@ -630,19 +630,19 @@ const Xe = {
|
|
|
630
630
|
]
|
|
631
631
|
};
|
|
632
632
|
if (j.setOption(D, !0), z.screenTimeRange.length) {
|
|
633
|
-
const [a,
|
|
634
|
-
L({ startTime: a, endTime:
|
|
633
|
+
const [a, s] = z.screenTimeRange;
|
|
634
|
+
L({ startTime: a, endTime: s });
|
|
635
635
|
}
|
|
636
636
|
break;
|
|
637
637
|
}
|
|
638
638
|
case "reset": {
|
|
639
|
-
const { time: M } = e.value,
|
|
639
|
+
const { time: M } = e.value, f = g(c.startTime).format("YYYY-MM-DD"), r = g(c.endTime).format("YYYY-MM-DD");
|
|
640
640
|
let i = -1, D = -1;
|
|
641
641
|
for (let a = 0; a < M.length; a++) {
|
|
642
|
-
const
|
|
642
|
+
const s = g(M[a]).format("YYYY-MM-DD");
|
|
643
643
|
if (i !== -1 && D !== -1)
|
|
644
644
|
break;
|
|
645
|
-
i === -1 && (new Date(
|
|
645
|
+
i === -1 && (new Date(s) === new Date(f) ? i = a : new Date(s) > new Date(f) && (i = a - 1)), D === -1 && (new Date(s) === new Date(r) ? D = a : new Date(s) > new Date(r) && (D = a - 1));
|
|
646
646
|
}
|
|
647
647
|
D === -1 && (D = M.length - 1), j.dispatchAction({
|
|
648
648
|
type: "dataZoom",
|
|
@@ -655,12 +655,12 @@ const Xe = {
|
|
|
655
655
|
};
|
|
656
656
|
return xe(() => {
|
|
657
657
|
Qe(() => {
|
|
658
|
-
j =
|
|
658
|
+
j = Ne.init(m.value), j.on("datazoom", E), b();
|
|
659
659
|
});
|
|
660
660
|
}), te(
|
|
661
661
|
() => z.screenTimeRange,
|
|
662
|
-
(
|
|
663
|
-
const [c, M] =
|
|
662
|
+
(N) => {
|
|
663
|
+
const [c, M] = N;
|
|
664
664
|
L({ startTime: c, endTime: M });
|
|
665
665
|
},
|
|
666
666
|
{ deep: !0 }
|
|
@@ -668,7 +668,7 @@ const Xe = {
|
|
|
668
668
|
j.off("datazoom"), j.dispose();
|
|
669
669
|
}), y({
|
|
670
670
|
resize: ae(() => j.resize(), 100)
|
|
671
|
-
}), (
|
|
671
|
+
}), (N, c) => (U(), H("div", {
|
|
672
672
|
class: "chart",
|
|
673
673
|
ref_key: "sliderChartRef",
|
|
674
674
|
ref: m
|
|
@@ -684,7 +684,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
684
684
|
}, nt = { class: "indicator" }, ot = { class: "title" }, rt = {
|
|
685
685
|
key: 1,
|
|
686
686
|
class: "slider-chart"
|
|
687
|
-
},
|
|
687
|
+
}, st = {
|
|
688
688
|
__name: "index",
|
|
689
689
|
props: {
|
|
690
690
|
varietyCode: { type: String, required: !0 },
|
|
@@ -724,13 +724,13 @@ 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 b = !1, E = !1, L = !1, T = !1,
|
|
728
|
-
const
|
|
727
|
+
let b = !1, E = !1, L = !1, T = !1, N = null, c = null, M = null;
|
|
728
|
+
const f = F(null), r = F(null), i = F({
|
|
729
729
|
data: [],
|
|
730
730
|
mainIndicator: [],
|
|
731
731
|
subIndicator: [],
|
|
732
732
|
time: []
|
|
733
|
-
}), D = F(0), a = F([]),
|
|
733
|
+
}), D = F(0), a = F([]), s = F(null), A = F("VOL"), v = ce(() => {
|
|
734
734
|
const t = i.value.data[D.value];
|
|
735
735
|
if (!t)
|
|
736
736
|
return [
|
|
@@ -757,7 +757,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
757
757
|
var t, o;
|
|
758
758
|
return ((o = (t = i.value) == null ? void 0 : t.subIndicator) == null ? void 0 : o.map((l) => ({ label: l.key, color: l.color, value: l.data[D.value] || "-" }))) || [];
|
|
759
759
|
}), ie = () => {
|
|
760
|
-
M || (M =
|
|
760
|
+
M || (M = Ne.init(r.value), M.on(
|
|
761
761
|
"highlight",
|
|
762
762
|
ae((t) => {
|
|
763
763
|
var o;
|
|
@@ -775,8 +775,8 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
775
775
|
D.value = t.dataZoom[0].endValue;
|
|
776
776
|
}), M.getZr().on("contextmenu", () => {
|
|
777
777
|
var t;
|
|
778
|
-
|
|
779
|
-
}), window.addEventListener("keydown", Te), e.userKlineConfig.enable_subChart && (c =
|
|
778
|
+
s.value = (t = i.value) == null ? void 0 : t.time[D.value];
|
|
779
|
+
}), window.addEventListener("keydown", Te), e.userKlineConfig.enable_subChart && (c = Ne.init(f.value), Ne.connect([M, c])), N = Fe(r.value), N.listen(() => {
|
|
780
780
|
requestAnimationFrame(() => {
|
|
781
781
|
var t;
|
|
782
782
|
M.resize(), c == null || c.resize(), (t = m.value) == null || t.resize();
|
|
@@ -883,17 +883,17 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
883
883
|
["6", "7", "8"].includes(e.cycle) ? a.value = [g(C).format("YYYY-MM-DD"), g(p).format("YYYY-MM-DD")] : a.value = [C, p];
|
|
884
884
|
}, ne = (t = { startValue: 0, endValue: 0 }) => {
|
|
885
885
|
ie();
|
|
886
|
-
const { maxValueSpan: o } = W, { time: l, data: C, mainIndicator: p } = i.value, Y = t.endValue - t.startValue > o ? t.endValue - o : t.startValue, w = t.endValue, S = p.map((
|
|
887
|
-
name:
|
|
886
|
+
const { maxValueSpan: o } = W, { time: l, data: C, mainIndicator: p } = i.value, Y = t.endValue - t.startValue > o ? t.endValue - o : t.startValue, w = t.endValue, S = p.map((O) => ({
|
|
887
|
+
name: O.key,
|
|
888
888
|
type: "line",
|
|
889
889
|
silent: !0,
|
|
890
890
|
symbol: "none",
|
|
891
|
-
data:
|
|
891
|
+
data: O.data,
|
|
892
892
|
lineStyle: {
|
|
893
|
-
width:
|
|
893
|
+
width: O.width || 1
|
|
894
894
|
},
|
|
895
895
|
itemStyle: {
|
|
896
|
-
color:
|
|
896
|
+
color: O.color
|
|
897
897
|
}
|
|
898
898
|
})), { netPositionLineData: J } = We(e.netPositionData, e.cycle), { tradeIncomeRateLineData: R } = Je(e.tradeIncomeRateData, e.cycle, e.incomeType, l), { tradePointData: Q, tradeLineData: oe } = $e(e.tradeLog, e.cycle, e.sellBuy, l, C);
|
|
899
899
|
M.setOption(
|
|
@@ -922,44 +922,44 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
922
922
|
type: "cross",
|
|
923
923
|
label: {
|
|
924
924
|
rich: {},
|
|
925
|
-
formatter: (
|
|
926
|
-
const { axisDimension:
|
|
927
|
-
return
|
|
925
|
+
formatter: (O) => {
|
|
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
|
},
|
|
931
|
-
formatter: (
|
|
932
|
-
if (!(
|
|
931
|
+
formatter: (O) => {
|
|
932
|
+
if (!(O != null && O.length))
|
|
933
933
|
return null;
|
|
934
|
-
let
|
|
935
|
-
if (
|
|
936
|
-
if (
|
|
934
|
+
let x = "";
|
|
935
|
+
if (O.forEach((k) => {
|
|
936
|
+
if (k.seriesName === "netPosition" && k.data !== null && (x += `<div>资产持仓净值: ${k.data[1]}</div>`), k.componentSubType === "candlestick")
|
|
937
937
|
if (e.sellBuy === 0) {
|
|
938
|
-
const K = Q.filter((V) => (V == null ? void 0 : V.coord[0]) ===
|
|
938
|
+
const K = Q.filter((V) => (V == null ? void 0 : V.coord[0]) === k.axisValue);
|
|
939
939
|
let G = 0, B = 0;
|
|
940
940
|
K.forEach((V) => {
|
|
941
941
|
const { tradeType: q, amount: re } = V.customData;
|
|
942
942
|
q === "买" && (G += re), q === "卖" && (B += re);
|
|
943
|
-
}), G && (
|
|
943
|
+
}), G && (x += `<div>买: ${G}</div>`), B && (x += `<div>卖: ${B}</div>`);
|
|
944
944
|
} else
|
|
945
945
|
Q.forEach((K) => {
|
|
946
|
-
if ((K == null ? void 0 : K.coord[0]) ===
|
|
946
|
+
if ((K == null ? void 0 : K.coord[0]) === k.axisValue) {
|
|
947
947
|
const { tradeType: G, amount: B, profitAndLoss: V, openPriceAll: q, closePriceAll: re } = K.customData;
|
|
948
948
|
let X = `<div>${G}: ${B}手</div>`;
|
|
949
949
|
if (G.includes("开") && (X += `<div>开仓价: ${(q / B).toFixed(2)}</div>`), G.includes("平")) {
|
|
950
950
|
const ge = (q / B).toFixed(2), Ie = (re / B).toFixed(2);
|
|
951
951
|
X += `<div>平仓价: ${Ie}</div>`, X += `<div>盈亏: ${V == null ? void 0 : V.toFixed(2)}</div>`, X += `<div>盈亏比率: ${((Ie - ge) / ge * 100).toFixed(2)} %</div>`;
|
|
952
952
|
}
|
|
953
|
-
|
|
953
|
+
x += X;
|
|
954
954
|
}
|
|
955
955
|
});
|
|
956
|
-
}), !
|
|
956
|
+
}), !x)
|
|
957
957
|
return null;
|
|
958
|
-
let h =
|
|
958
|
+
let h = O[0].axisValue;
|
|
959
959
|
return ["6", "7", "8"].includes(e.cycle) && (h = g(h).format("YYYY-MM-DD")), `
|
|
960
960
|
<div>
|
|
961
961
|
<span style="font-weight: bold;">${h}</span>
|
|
962
|
-
${
|
|
962
|
+
${x}
|
|
963
963
|
</div>
|
|
964
964
|
`;
|
|
965
965
|
}
|
|
@@ -972,7 +972,7 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
972
972
|
show: !1
|
|
973
973
|
},
|
|
974
974
|
axisLabel: {
|
|
975
|
-
formatter: (
|
|
975
|
+
formatter: (O) => ["6", "7", "8"].includes(e.cycle) ? g(O).format("YYYY-MM-DD") : O
|
|
976
976
|
}
|
|
977
977
|
},
|
|
978
978
|
yAxis: [
|
|
@@ -988,21 +988,24 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
988
988
|
color: "#333"
|
|
989
989
|
}
|
|
990
990
|
},
|
|
991
|
-
min: (
|
|
992
|
-
const { min:
|
|
993
|
-
return u(
|
|
991
|
+
min: (O) => {
|
|
992
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
993
|
+
return u(x - k);
|
|
994
994
|
},
|
|
995
|
-
max: (
|
|
995
|
+
max: (O) => {
|
|
996
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
997
|
+
return u(h + k);
|
|
998
|
+
}
|
|
996
999
|
},
|
|
997
1000
|
{
|
|
998
1001
|
show: !1,
|
|
999
|
-
min: (
|
|
1000
|
-
const { min:
|
|
1001
|
-
return
|
|
1002
|
+
min: (O) => {
|
|
1003
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
1004
|
+
return x - k;
|
|
1002
1005
|
},
|
|
1003
|
-
max: (
|
|
1004
|
-
const { min:
|
|
1005
|
-
return h +
|
|
1006
|
+
max: (O) => {
|
|
1007
|
+
const { min: x, max: h } = O, k = Math.abs((h - x) / 10);
|
|
1008
|
+
return h + k;
|
|
1006
1009
|
}
|
|
1007
1010
|
}
|
|
1008
1011
|
],
|
|
@@ -1074,23 +1077,23 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1074
1077
|
!0
|
|
1075
1078
|
), e.userKlineConfig.enable_subChart && c.setOption(Ge(i.value, Y, w), !0), de(), De(), D.value = w;
|
|
1076
1079
|
{
|
|
1077
|
-
const
|
|
1080
|
+
const O = [];
|
|
1078
1081
|
if (e.userKlineConfig.enable_tradeLogBrush && Q.length) {
|
|
1079
|
-
const [
|
|
1080
|
-
|
|
1082
|
+
const [x, h] = [Q[0].coord[0], Q.at(-1).coord[0]], k = le(l, [x, h], e.cycle);
|
|
1083
|
+
O.push({
|
|
1081
1084
|
brushId: "开平仓范围",
|
|
1082
1085
|
brushType: "lineX",
|
|
1083
1086
|
xAxisIndex: 0,
|
|
1084
|
-
coordRange:
|
|
1087
|
+
coordRange: k
|
|
1085
1088
|
});
|
|
1086
1089
|
}
|
|
1087
1090
|
if (e.syncBrushRange.cycleList.includes(e.cycle)) {
|
|
1088
|
-
const { startTime:
|
|
1089
|
-
|
|
1091
|
+
const { startTime: x, endTime: h } = e.syncBrushRange, k = le(l, [x, h], e.cycle);
|
|
1092
|
+
O.push({
|
|
1090
1093
|
brushId: "同步刷选范围",
|
|
1091
1094
|
brushType: "lineX",
|
|
1092
1095
|
xAxisIndex: 0,
|
|
1093
|
-
coordRange:
|
|
1096
|
+
coordRange: k,
|
|
1094
1097
|
brushStyle: {
|
|
1095
1098
|
fill: "rgba(64, 158, 255, 0.2)",
|
|
1096
1099
|
stroke: "rgba(64, 158, 255, 0.8)",
|
|
@@ -1099,12 +1102,12 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1099
1102
|
});
|
|
1100
1103
|
}
|
|
1101
1104
|
if (e.positionTime) {
|
|
1102
|
-
const [
|
|
1103
|
-
|
|
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
|
+
O.push({
|
|
1104
1107
|
brushId: "强制定位高亮",
|
|
1105
1108
|
brushType: "lineX",
|
|
1106
1109
|
xAxisIndex: 0,
|
|
1107
|
-
coordRange:
|
|
1110
|
+
coordRange: k,
|
|
1108
1111
|
brushStyle: {
|
|
1109
1112
|
fill: "rgba(217, 179, 255, 0.2)",
|
|
1110
1113
|
stroke: "rgba(217, 179, 255, 0.8)",
|
|
@@ -1114,18 +1117,18 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1114
1117
|
}
|
|
1115
1118
|
M.dispatchAction({
|
|
1116
1119
|
type: "brush",
|
|
1117
|
-
areas:
|
|
1120
|
+
areas: O
|
|
1118
1121
|
});
|
|
1119
1122
|
}
|
|
1120
1123
|
}, De = () => {
|
|
1121
|
-
var oe,
|
|
1124
|
+
var oe, O;
|
|
1122
1125
|
const { data: t } = i.value, { startValue: o, endValue: l } = ((oe = M.getOption()) == null ? void 0 : oe.dataZoom[0]) ?? {};
|
|
1123
1126
|
let C = 0, p = o;
|
|
1124
|
-
for (let
|
|
1125
|
-
Number(t[
|
|
1126
|
-
const Y = M.getOption(), w = ((
|
|
1127
|
+
for (let x = o; x <= l; x++)
|
|
1128
|
+
Number(t[x][3]) >= C && (C = Number(t[x][3]), p = x);
|
|
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;
|
|
1127
1130
|
let R = "right", Q = `←${C}`;
|
|
1128
|
-
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(
|
|
1129
1132
|
{
|
|
1130
1133
|
...Y,
|
|
1131
1134
|
series: [
|
|
@@ -1257,10 +1260,10 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1257
1260
|
},
|
|
1258
1261
|
{ deep: !0 }
|
|
1259
1262
|
), fe(() => {
|
|
1260
|
-
M.off("highlight"), M.off("globalout"), M.off("datazoom"), M.getZr().off("contextmenu"), window.removeEventListener("keydown", Te), M.dispose(), c == null || c.dispose(),
|
|
1263
|
+
M.off("highlight"), M.off("globalout"), M.off("datazoom"), M.getZr().off("contextmenu"), window.removeEventListener("keydown", Te), M.dispose(), c == null || c.dispose(), N.dispose(), N = null;
|
|
1261
1264
|
}), y({
|
|
1262
1265
|
screenTimeRange: a,
|
|
1263
|
-
contextmenuKlineTime:
|
|
1266
|
+
contextmenuKlineTime: s,
|
|
1264
1267
|
reDraw: () => {
|
|
1265
1268
|
var l;
|
|
1266
1269
|
const { startValue: t, endValue: o } = ((l = M.getOption()) == null ? void 0 : l.dataZoom[0]) ?? {};
|
|
@@ -1275,10 +1278,10 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1275
1278
|
}, [
|
|
1276
1279
|
$("div", tt, [
|
|
1277
1280
|
$("div", Mt, [
|
|
1278
|
-
ee(ue, { data:
|
|
1281
|
+
ee(ue, { data: v.value }, null, 8, ["data"]),
|
|
1279
1282
|
ee(ue, { data: P.value }, null, 8, ["data"])
|
|
1280
1283
|
]),
|
|
1281
|
-
n.userKlineConfig.enable_showScreenTimeRange ? (U(), H("span", at, Me(a.value[0]) + " - " + Me(a.value[1]), 1)) :
|
|
1284
|
+
n.userKlineConfig.enable_showScreenTimeRange ? (U(), H("span", at, Me(a.value[0]) + " - " + Me(a.value[1]), 1)) : se("", !0),
|
|
1282
1285
|
$("div", {
|
|
1283
1286
|
ref_key: "mainChartRef",
|
|
1284
1287
|
ref: r,
|
|
@@ -1311,10 +1314,10 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1311
1314
|
]),
|
|
1312
1315
|
$("div", {
|
|
1313
1316
|
ref_key: "subChartRef",
|
|
1314
|
-
ref:
|
|
1317
|
+
ref: f,
|
|
1315
1318
|
class: "chart"
|
|
1316
1319
|
}, null, 512)
|
|
1317
|
-
])) :
|
|
1320
|
+
])) : se("", !0),
|
|
1318
1321
|
n.userKlineConfig.enable_sliderChart ? (U(), H("div", rt, [
|
|
1319
1322
|
ee(et, {
|
|
1320
1323
|
ref_key: "sliderChartRef",
|
|
@@ -1328,8 +1331,8 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1328
1331
|
withoutPermission: e.withoutPermission,
|
|
1329
1332
|
onChange: be
|
|
1330
1333
|
}, null, 8, ["screenTimeRange", "varietyCode", "varietyStock", "rightType", "klineType", "deleteFirstNumber", "withoutPermission"])
|
|
1331
|
-
])) :
|
|
1332
|
-
i.value.time.length ?
|
|
1334
|
+
])) : se("", !0),
|
|
1335
|
+
i.value.time.length ? se("", !0) : (U(), Ye(p, {
|
|
1333
1336
|
key: 2,
|
|
1334
1337
|
class: "empty",
|
|
1335
1338
|
description: "暂无数据"
|
|
@@ -1339,9 +1342,9 @@ const tt = { class: "main-chart" }, Mt = { class: "indicator" }, at = {
|
|
|
1339
1342
|
]);
|
|
1340
1343
|
};
|
|
1341
1344
|
}
|
|
1342
|
-
},
|
|
1345
|
+
}, Nt = /* @__PURE__ */ ze(st, [["__scopeId", "data-v-1cb277d7"]]), ht = {
|
|
1343
1346
|
install(n) {
|
|
1344
|
-
n.component("st-klinePlus",
|
|
1347
|
+
n.component("st-klinePlus", Nt);
|
|
1345
1348
|
}
|
|
1346
1349
|
};
|
|
1347
1350
|
export {
|