st-comp 0.0.93 → 0.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/components.d.ts +13 -0
  2. package/es/ChartLayout.cjs +1 -1
  3. package/es/ChartLayout.js +2 -2
  4. package/es/Dialog.cjs +1 -5
  5. package/es/Dialog.js +45 -711
  6. package/es/FactorWarning.cjs +1 -1
  7. package/es/FactorWarning.js +463 -1
  8. package/es/Kline.cjs +1 -1
  9. package/es/Kline.js +92 -91
  10. package/es/KlineNew.cjs +1 -1
  11. package/es/KlineNew.js +10 -9
  12. package/es/Pagination.cjs +1 -1
  13. package/es/Pagination.js +106 -104
  14. package/es/Table.cjs +1 -20
  15. package/es/Table.js +361 -4253
  16. package/es/VarietySearch.cjs +1 -1
  17. package/es/VarietySearch.js +2522 -1
  18. package/es/VirtualTable.cjs +3 -3
  19. package/es/VirtualTable.js +249 -254
  20. package/es/base-6e64c2e6.js +762 -0
  21. package/es/base-8776b83e.cjs +9 -0
  22. package/es/castArray-59d5ae43.cjs +1 -0
  23. package/es/castArray-8ec29ca6.js +10 -0
  24. package/es/config-provider-76ef1b35.cjs +1 -0
  25. package/es/config-provider-f4278c8e.js +46 -0
  26. package/es/{el-button-9476b767.js → el-button-4c7ae9df.js} +52 -52
  27. package/es/{el-button-ed961332.cjs → el-button-65e4598f.cjs} +1 -1
  28. package/es/{el-empty-f4c08c01.js → el-empty-05e13b3c.js} +3 -3
  29. package/es/{el-empty-7adcc7f0.cjs → el-empty-dfe11c21.cjs} +1 -1
  30. package/es/el-icon-0ea8fbf8.cjs +1 -0
  31. package/es/el-icon-4ed993c7.js +1 -0
  32. package/es/el-input-11327619.cjs +9 -0
  33. package/es/el-input-f4898cfa.js +544 -0
  34. package/es/el-overlay-9d9c6ba9.cjs +5 -0
  35. package/es/el-overlay-d7af7dda.js +678 -0
  36. package/es/el-popover-4a4a4b02.cjs +1 -0
  37. package/es/el-popover-dc9c7ff7.js +133 -0
  38. package/es/el-radio-group-a31fb7c0.js +1743 -0
  39. package/es/el-radio-group-cc2d6c87.cjs +12 -0
  40. package/es/{el-scrollbar-ffb7b9c1.js → el-scrollbar-a00aca2f.js} +48 -48
  41. package/es/{el-scrollbar-586be9bd.cjs → el-scrollbar-f197b544.cjs} +1 -1
  42. package/es/el-select-5dbb0da3.cjs +1 -0
  43. package/es/el-select-b9cf452e.js +1360 -0
  44. package/es/el-table-column-1e15361e.cjs +20 -0
  45. package/es/el-table-column-675f51e6.js +3795 -0
  46. package/es/el-tag-c9d5baa7.cjs +1 -0
  47. package/es/{el-tag-7549c103.js → el-tag-f878b1f1.js} +126 -119
  48. package/es/{focus-trap-5fc152a0.js → focus-trap-2677bd39.js} +35 -34
  49. package/es/focus-trap-5f42842b.cjs +1 -0
  50. package/es/raf-32ed81f4.js +6 -0
  51. package/es/{raf-c4bba516.cjs → raf-7c366b55.cjs} +1 -1
  52. package/es/{scroll-38e17abc.cjs → scroll-22a00b05.cjs} +1 -1
  53. package/es/{scroll-c6e51ef8.js → scroll-9b9249e9.js} +5 -5
  54. package/es/style.css +1 -1
  55. package/es/use-form-item-67e7ef93.cjs +3 -0
  56. package/es/use-form-item-bfc7dddf.js +669 -0
  57. package/es/use-global-config-89daeba3.js +110 -0
  58. package/es/use-global-config-f9103903.cjs +1 -0
  59. package/es/{vnode-40f9df3c.cjs → vnode-69f3ca85.cjs} +1 -1
  60. package/es/{vnode-f4b846cb.js → vnode-aa3448ec.js} +1 -1
  61. package/es/zh-cn-720e514b.cjs +1 -0
  62. package/es/{zh-cn-e36dfbf4.js → zh-cn-e662dc89.js} +6 -45
  63. package/lib/bundle.js +1 -1
  64. package/lib/bundle.umd.cjs +174 -174
  65. package/lib/{index-4635557b.js → index-5d6aca6c.js} +27787 -27281
  66. package/lib/{python-aa056c80.js → python-dae8be67.js} +1 -1
  67. package/lib/style.css +1 -1
  68. package/package.json +1 -1
  69. package/packages/VarietySearch/components/CommonIndicator/index.vue +270 -112
  70. package/packages/VarietySearch/config.js +12 -1
  71. package/packages/VarietySearch/index.vue +8 -0
  72. package/es/base-8aa55db5.js +0 -725
  73. package/es/base-b187e78f.cjs +0 -9
  74. package/es/el-select-a6cf0236.js +0 -1893
  75. package/es/el-select-eaa79c54.cjs +0 -9
  76. package/es/el-tag-5a8b728a.cjs +0 -1
  77. package/es/focus-trap-ea1e7a19.cjs +0 -1
  78. package/es/raf-3a2b250a.js +0 -6
  79. package/es/use-form-item-bd4b9eeb.js +0 -531
  80. package/es/use-form-item-c25c7251.cjs +0 -3
  81. package/es/use-global-config-2d21cd56.js +0 -110
  82. package/es/use-global-config-bce8cdd8.cjs +0 -1
  83. package/es/zh-cn-a61d484e.cjs +0 -1
@@ -1 +1,2522 @@
1
-
1
+ import { b as ge, d as me, N as mt, i as ce, e as vt, u as Se, _ as ye, s as Oe, t as ft, w as Ee, k as xe, o as He, c as gt, v as Ie, x as yt, j as bt, y as _t } from "./base-6e64c2e6.js";
2
+ import { b as kt, c as Ke, e as Me, a as Ue, d as ht } from "./el-radio-group-a31fb7c0.js";
3
+ import { b as Vt, c as Ot, E as xt, a as It } from "./el-table-column-675f51e6.js";
4
+ import { defineComponent as oe, useAttrs as $t, ref as N, computed as P, onMounted as Ge, openBlock as i, createBlock as U, unref as y, withCtx as r, createElementVNode as v, normalizeClass as W, normalizeStyle as $e, createVNode as a, createElementBlock as O, Fragment as L, renderList as K, renderSlot as ne, createTextVNode as C, toDisplayString as G, mergeProps as wt, withKeys as ie, withModifiers as we, createSlots as Ce, Transition as Qe, withDirectives as We, vShow as Je, resolveDynamicComponent as Ze, shallowReactive as Ct, watch as ve, createCommentVNode as M, isVNode as Xe, render as ze, mergeModels as De, useModel as Fe, pushScopeId as qe, popScopeId as Ne } from "vue";
5
+ import "./el-tooltip-4ed993c7.js";
6
+ import { a as Tt, E as et, b as St } from "./el-tag-f878b1f1.js";
7
+ import { d as Et, o as Mt, a as Ut, u as Dt } from "./el-scrollbar-a00aca2f.js";
8
+ import { E as tt } from "./el-overlay-d7af7dda.js";
9
+ import { u as Ft, E as Le } from "./el-input-f4898cfa.js";
10
+ import { b as lt, E as nt, a as ot } from "./el-select-b9cf452e.js";
11
+ import "./el-icon-4ed993c7.js";
12
+ import { E as at } from "./el-button-4c7ae9df.js";
13
+ import { h as qt, E as fe, l as Nt, c as Lt, j as Pt, i as Rt, T as Ae, k as zt, p as Be, n as At, o as Bt } from "./use-form-item-bfc7dddf.js";
14
+ import { _ as Pe } from "./_plugin-vue_export-helper-dad06003.js";
15
+ import { m as jt } from "./typescript-7ae59c4c.js";
16
+ import { u as Yt } from "./use-global-config-89daeba3.js";
17
+ import { U as pe, I as Te, C as st, E as Ht } from "./focus-trap-2677bd39.js";
18
+ import { m as je } from "./config-provider-f4278c8e.js";
19
+ import "./castArray-8ec29ca6.js";
20
+ import "./_commonjsHelpers-10dfc225.js";
21
+ import "./raf-32ed81f4.js";
22
+ import "./vnode-aa3448ec.js";
23
+ import "./scroll-9b9249e9.js";
24
+ import "./index-657047bb.js";
25
+ const Kt = () => Math.floor(Math.random() * 1e4), Gt = ge({
26
+ valueKey: {
27
+ type: String,
28
+ default: "value"
29
+ },
30
+ modelValue: {
31
+ type: [String, Number],
32
+ default: ""
33
+ },
34
+ debounce: {
35
+ type: Number,
36
+ default: 300
37
+ },
38
+ placement: {
39
+ type: me(String),
40
+ values: [
41
+ "top",
42
+ "top-start",
43
+ "top-end",
44
+ "bottom",
45
+ "bottom-start",
46
+ "bottom-end"
47
+ ],
48
+ default: "bottom-start"
49
+ },
50
+ fetchSuggestions: {
51
+ type: me([Function, Array]),
52
+ default: mt
53
+ },
54
+ popperClass: {
55
+ type: String,
56
+ default: ""
57
+ },
58
+ triggerOnFocus: {
59
+ type: Boolean,
60
+ default: !0
61
+ },
62
+ selectWhenUnmatched: {
63
+ type: Boolean,
64
+ default: !1
65
+ },
66
+ hideLoading: {
67
+ type: Boolean,
68
+ default: !1
69
+ },
70
+ label: {
71
+ type: String
72
+ },
73
+ teleported: Tt.teleported,
74
+ highlightFirstItem: {
75
+ type: Boolean,
76
+ default: !1
77
+ },
78
+ fitInputWidth: {
79
+ type: Boolean,
80
+ default: !1
81
+ },
82
+ clearable: {
83
+ type: Boolean,
84
+ default: !1
85
+ },
86
+ disabled: {
87
+ type: Boolean,
88
+ default: !1
89
+ },
90
+ name: String
91
+ }), Qt = {
92
+ [pe]: (s) => ce(s),
93
+ [Te]: (s) => ce(s),
94
+ [st]: (s) => ce(s),
95
+ focus: (s) => s instanceof FocusEvent,
96
+ blur: (s) => s instanceof FocusEvent,
97
+ clear: () => !0,
98
+ select: (s) => vt(s)
99
+ }, Wt = ["aria-expanded", "aria-owns"], Jt = { key: 0 }, Zt = ["id", "aria-selected", "onClick"], ut = "ElAutocomplete", Xt = oe({
100
+ name: ut,
101
+ inheritAttrs: !1
102
+ }), el = /* @__PURE__ */ oe({
103
+ ...Xt,
104
+ props: Gt,
105
+ emits: Qt,
106
+ setup(s, { expose: f, emit: u }) {
107
+ const l = s, b = Ft(), x = $t(), t = qt(), S = Se("autocomplete"), T = N(), z = N(), V = N(), d = N();
108
+ let E = !1, q = !1;
109
+ const w = N([]), $ = N(-1), p = N(""), e = N(!1), n = N(!1), c = N(!1), k = P(() => S.b(String(Kt()))), g = P(() => x.style), h = P(() => (w.value.length > 0 || c.value) && e.value), I = P(() => !l.hideLoading && c.value), m = P(() => T.value ? Array.from(T.value.$el.querySelectorAll("input")) : []), B = () => {
110
+ h.value && (p.value = `${T.value.$el.offsetWidth}px`);
111
+ }, j = () => {
112
+ $.value = -1;
113
+ }, o = Et(async (_) => {
114
+ if (n.value)
115
+ return;
116
+ const F = (J) => {
117
+ c.value = !1, !n.value && (Oe(J) ? (w.value = J, $.value = l.highlightFirstItem ? 0 : -1) : ft(ut, "autocomplete suggestions must be an array"));
118
+ };
119
+ if (c.value = !0, Oe(l.fetchSuggestions))
120
+ F(l.fetchSuggestions);
121
+ else {
122
+ const J = await l.fetchSuggestions(_, F);
123
+ Oe(J) && F(J);
124
+ }
125
+ }, l.debounce), le = (_) => {
126
+ const F = !!_;
127
+ if (u(Te, _), u(pe, _), n.value = !1, e.value || (e.value = F), !l.triggerOnFocus && !_) {
128
+ n.value = !0, w.value = [];
129
+ return;
130
+ }
131
+ o(_);
132
+ }, R = (_) => {
133
+ var F;
134
+ t.value || (((F = _.target) == null ? void 0 : F.tagName) !== "INPUT" || m.value.includes(document.activeElement)) && (e.value = !0);
135
+ }, A = (_) => {
136
+ u(st, _);
137
+ }, re = (_) => {
138
+ q ? q = !1 : (e.value = !0, u("focus", _), l.triggerOnFocus && !E && o(String(l.modelValue)));
139
+ }, be = (_) => {
140
+ setTimeout(() => {
141
+ var F;
142
+ if ((F = V.value) != null && F.isFocusInsideContent()) {
143
+ q = !0;
144
+ return;
145
+ }
146
+ e.value && X(), u("blur", _);
147
+ });
148
+ }, D = () => {
149
+ e.value = !1, u(pe, ""), u("clear");
150
+ }, Z = async () => {
151
+ h.value && $.value >= 0 && $.value < w.value.length ? _e(w.value[$.value]) : l.selectWhenUnmatched && (u("select", { value: l.modelValue }), w.value = [], $.value = -1);
152
+ }, H = (_) => {
153
+ h.value && (_.preventDefault(), _.stopPropagation(), X());
154
+ }, X = () => {
155
+ e.value = !1;
156
+ }, dt = () => {
157
+ var _;
158
+ (_ = T.value) == null || _.focus();
159
+ }, pt = () => {
160
+ var _;
161
+ (_ = T.value) == null || _.blur();
162
+ }, _e = async (_) => {
163
+ u(Te, _[l.valueKey]), u(pe, _[l.valueKey]), u("select", _), w.value = [], $.value = -1;
164
+ }, ke = (_) => {
165
+ if (!h.value || c.value)
166
+ return;
167
+ if (_ < 0) {
168
+ $.value = -1;
169
+ return;
170
+ }
171
+ _ >= w.value.length && (_ = w.value.length - 1);
172
+ const F = z.value.querySelector(`.${S.be("suggestion", "wrap")}`), se = F.querySelectorAll(`.${S.be("suggestion", "list")} li`)[_], he = F.scrollTop, { offsetTop: Re, scrollHeight: Ve } = se;
173
+ Re + Ve > he + F.clientHeight && (F.scrollTop += Ve), Re < he && (F.scrollTop -= Ve), $.value = _, T.value.ref.setAttribute("aria-activedescendant", `${k.value}-item-${$.value}`);
174
+ };
175
+ return Mt(d, () => {
176
+ h.value && X();
177
+ }), Ge(() => {
178
+ T.value.ref.setAttribute("role", "textbox"), T.value.ref.setAttribute("aria-autocomplete", "list"), T.value.ref.setAttribute("aria-controls", "id"), T.value.ref.setAttribute("aria-activedescendant", `${k.value}-item-${$.value}`), E = T.value.ref.hasAttribute("readonly");
179
+ }), f({
180
+ highlightedIndex: $,
181
+ activated: e,
182
+ loading: c,
183
+ inputRef: T,
184
+ popperRef: V,
185
+ suggestions: w,
186
+ handleSelect: _e,
187
+ handleKeyEnter: Z,
188
+ focus: dt,
189
+ blur: pt,
190
+ close: X,
191
+ highlight: ke
192
+ }), (_, F) => (i(), U(y(et), {
193
+ ref_key: "popperRef",
194
+ ref: V,
195
+ visible: y(h),
196
+ placement: _.placement,
197
+ "fallback-placements": ["bottom-start", "top-start"],
198
+ "popper-class": [y(S).e("popper"), _.popperClass],
199
+ teleported: _.teleported,
200
+ "gpu-acceleration": !1,
201
+ pure: "",
202
+ "manual-mode": "",
203
+ effect: "light",
204
+ trigger: "click",
205
+ transition: `${y(S).namespace.value}-zoom-in-top`,
206
+ persistent: "",
207
+ role: "listbox",
208
+ onBeforeShow: B,
209
+ onHide: j
210
+ }, {
211
+ content: r(() => [
212
+ v("div", {
213
+ ref_key: "regionRef",
214
+ ref: z,
215
+ class: W([y(S).b("suggestion"), y(S).is("loading", y(I))]),
216
+ style: $e({
217
+ [_.fitInputWidth ? "width" : "minWidth"]: p.value,
218
+ outline: "none"
219
+ }),
220
+ role: "region"
221
+ }, [
222
+ a(y(St), {
223
+ id: y(k),
224
+ tag: "ul",
225
+ "wrap-class": y(S).be("suggestion", "wrap"),
226
+ "view-class": y(S).be("suggestion", "list"),
227
+ role: "listbox"
228
+ }, {
229
+ default: r(() => [
230
+ y(I) ? (i(), O("li", Jt, [
231
+ a(y(fe), {
232
+ class: W(y(S).is("loading"))
233
+ }, {
234
+ default: r(() => [
235
+ a(y(Nt))
236
+ ]),
237
+ _: 1
238
+ }, 8, ["class"])
239
+ ])) : (i(!0), O(L, { key: 1 }, K(w.value, (J, se) => (i(), O("li", {
240
+ id: `${y(k)}-item-${se}`,
241
+ key: se,
242
+ class: W({ highlighted: $.value === se }),
243
+ role: "option",
244
+ "aria-selected": $.value === se,
245
+ onClick: (he) => _e(J)
246
+ }, [
247
+ ne(_.$slots, "default", { item: J }, () => [
248
+ C(G(J[_.valueKey]), 1)
249
+ ])
250
+ ], 10, Zt))), 128))
251
+ ]),
252
+ _: 3
253
+ }, 8, ["id", "wrap-class", "view-class"])
254
+ ], 6)
255
+ ]),
256
+ default: r(() => [
257
+ v("div", {
258
+ ref_key: "listboxRef",
259
+ ref: d,
260
+ class: W([y(S).b(), _.$attrs.class]),
261
+ style: $e(y(g)),
262
+ role: "combobox",
263
+ "aria-haspopup": "listbox",
264
+ "aria-expanded": y(h),
265
+ "aria-owns": y(k)
266
+ }, [
267
+ a(y(Le), wt({
268
+ ref_key: "inputRef",
269
+ ref: T
270
+ }, y(b), {
271
+ clearable: _.clearable,
272
+ disabled: y(t),
273
+ name: _.name,
274
+ "model-value": _.modelValue,
275
+ onInput: le,
276
+ onChange: A,
277
+ onFocus: re,
278
+ onBlur: be,
279
+ onClear: D,
280
+ onKeydown: [
281
+ F[0] || (F[0] = ie(we((J) => ke($.value - 1), ["prevent"]), ["up"])),
282
+ F[1] || (F[1] = ie(we((J) => ke($.value + 1), ["prevent"]), ["down"])),
283
+ ie(Z, ["enter"]),
284
+ ie(X, ["tab"]),
285
+ ie(H, ["esc"])
286
+ ],
287
+ onMousedown: R
288
+ }), Ce({ _: 2 }, [
289
+ _.$slots.prepend ? {
290
+ name: "prepend",
291
+ fn: r(() => [
292
+ ne(_.$slots, "prepend")
293
+ ])
294
+ } : void 0,
295
+ _.$slots.append ? {
296
+ name: "append",
297
+ fn: r(() => [
298
+ ne(_.$slots, "append")
299
+ ])
300
+ } : void 0,
301
+ _.$slots.prefix ? {
302
+ name: "prefix",
303
+ fn: r(() => [
304
+ ne(_.$slots, "prefix")
305
+ ])
306
+ } : void 0,
307
+ _.$slots.suffix ? {
308
+ name: "suffix",
309
+ fn: r(() => [
310
+ ne(_.$slots, "suffix")
311
+ ])
312
+ } : void 0
313
+ ]), 1040, ["clearable", "disabled", "name", "model-value", "onKeydown"])
314
+ ], 14, Wt)
315
+ ]),
316
+ _: 3
317
+ }, 8, ["visible", "placement", "popper-class", "teleported", "transition"]));
318
+ }
319
+ });
320
+ var tl = /* @__PURE__ */ ye(el, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/autocomplete/src/autocomplete.vue"]]);
321
+ const ll = Ee(tl), nl = ge({
322
+ value: {
323
+ type: [String, Number],
324
+ default: ""
325
+ },
326
+ max: {
327
+ type: Number,
328
+ default: 99
329
+ },
330
+ isDot: Boolean,
331
+ hidden: Boolean,
332
+ type: {
333
+ type: String,
334
+ values: ["primary", "success", "warning", "info", "danger"],
335
+ default: "danger"
336
+ }
337
+ }), ol = ["textContent"], al = oe({
338
+ name: "ElBadge"
339
+ }), sl = /* @__PURE__ */ oe({
340
+ ...al,
341
+ props: nl,
342
+ setup(s, { expose: f }) {
343
+ const u = s, l = Se("badge"), b = P(() => u.isDot ? "" : xe(u.value) && xe(u.max) ? u.max < u.value ? `${u.max}+` : `${u.value}` : `${u.value}`);
344
+ return f({
345
+ content: b
346
+ }), (x, t) => (i(), O("div", {
347
+ class: W(y(l).b())
348
+ }, [
349
+ ne(x.$slots, "default"),
350
+ a(Qe, {
351
+ name: `${y(l).namespace.value}-zoom-in-center`,
352
+ persisted: ""
353
+ }, {
354
+ default: r(() => [
355
+ We(v("sup", {
356
+ class: W([
357
+ y(l).e("content"),
358
+ y(l).em("content", x.type),
359
+ y(l).is("fixed", !!x.$slots.default),
360
+ y(l).is("dot", x.isDot)
361
+ ]),
362
+ textContent: G(y(b))
363
+ }, null, 10, ol), [
364
+ [Je, !x.hidden && (y(b) || x.isDot)]
365
+ ])
366
+ ]),
367
+ _: 1
368
+ }, 8, ["name"])
369
+ ], 2));
370
+ }
371
+ });
372
+ var ul = /* @__PURE__ */ ye(sl, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);
373
+ const rl = Ee(ul), il = ge({
374
+ type: {
375
+ type: String,
376
+ values: ["primary", "success", "info", "warning", "danger", ""],
377
+ default: ""
378
+ },
379
+ size: {
380
+ type: String,
381
+ values: Lt,
382
+ default: ""
383
+ },
384
+ truncated: {
385
+ type: Boolean
386
+ },
387
+ tag: {
388
+ type: String,
389
+ default: "span"
390
+ }
391
+ }), cl = oe({
392
+ name: "ElText"
393
+ }), dl = /* @__PURE__ */ oe({
394
+ ...cl,
395
+ props: il,
396
+ setup(s) {
397
+ const f = s, u = Pt(), l = Se("text"), b = P(() => [
398
+ l.b(),
399
+ l.m(f.type),
400
+ l.m(u.value),
401
+ l.is("truncated", f.truncated)
402
+ ]);
403
+ return (x, t) => (i(), U(Ze(x.tag), {
404
+ class: W(y(b))
405
+ }, {
406
+ default: r(() => [
407
+ ne(x.$slots, "default")
408
+ ]),
409
+ _: 3
410
+ }, 8, ["class"]));
411
+ }
412
+ });
413
+ var pl = /* @__PURE__ */ ye(dl, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/text/src/text.vue"]]);
414
+ const ml = Ee(pl), rt = ["success", "info", "warning", "error"], Q = jt({
415
+ customClass: "",
416
+ center: !1,
417
+ dangerouslyUseHTMLString: !1,
418
+ duration: 3e3,
419
+ icon: void 0,
420
+ id: "",
421
+ message: "",
422
+ onClose: void 0,
423
+ showClose: !1,
424
+ type: "info",
425
+ offset: 16,
426
+ zIndex: 0,
427
+ grouping: !1,
428
+ repeatNum: 1,
429
+ appendTo: He ? document.body : void 0
430
+ }), vl = ge({
431
+ customClass: {
432
+ type: String,
433
+ default: Q.customClass
434
+ },
435
+ center: {
436
+ type: Boolean,
437
+ default: Q.center
438
+ },
439
+ dangerouslyUseHTMLString: {
440
+ type: Boolean,
441
+ default: Q.dangerouslyUseHTMLString
442
+ },
443
+ duration: {
444
+ type: Number,
445
+ default: Q.duration
446
+ },
447
+ icon: {
448
+ type: Rt,
449
+ default: Q.icon
450
+ },
451
+ id: {
452
+ type: String,
453
+ default: Q.id
454
+ },
455
+ message: {
456
+ type: me([
457
+ String,
458
+ Object,
459
+ Function
460
+ ]),
461
+ default: Q.message
462
+ },
463
+ onClose: {
464
+ type: me(Function),
465
+ required: !1
466
+ },
467
+ showClose: {
468
+ type: Boolean,
469
+ default: Q.showClose
470
+ },
471
+ type: {
472
+ type: String,
473
+ values: rt,
474
+ default: Q.type
475
+ },
476
+ offset: {
477
+ type: Number,
478
+ default: Q.offset
479
+ },
480
+ zIndex: {
481
+ type: Number,
482
+ default: Q.zIndex
483
+ },
484
+ grouping: {
485
+ type: Boolean,
486
+ default: Q.grouping
487
+ },
488
+ repeatNum: {
489
+ type: Number,
490
+ default: Q.repeatNum
491
+ }
492
+ }), fl = {
493
+ destroy: () => !0
494
+ }, te = Ct([]), gl = (s) => {
495
+ const f = te.findIndex((b) => b.id === s), u = te[f];
496
+ let l;
497
+ return f > 0 && (l = te[f - 1]), { current: u, prev: l };
498
+ }, yl = (s) => {
499
+ const { prev: f } = gl(s);
500
+ return f ? f.vm.exposed.bottom.value : 0;
501
+ }, bl = (s, f) => te.findIndex((l) => l.id === s) > 0 ? 20 : f, _l = ["id"], kl = ["innerHTML"], hl = oe({
502
+ name: "ElMessage"
503
+ }), Vl = /* @__PURE__ */ oe({
504
+ ...hl,
505
+ props: vl,
506
+ emits: fl,
507
+ setup(s, { expose: f }) {
508
+ const u = s, { Close: l } = zt, { ns: b, zIndex: x } = Yt("message"), { currentZIndex: t, nextZIndex: S } = x, T = N(), z = N(!1), V = N(0);
509
+ let d;
510
+ const E = P(() => u.type ? u.type === "error" ? "danger" : u.type : "info"), q = P(() => {
511
+ const I = u.type;
512
+ return { [b.bm("icon", I)]: I && Ae[I] };
513
+ }), w = P(() => u.icon || Ae[u.type] || ""), $ = P(() => yl(u.id)), p = P(() => bl(u.id, u.offset) + $.value), e = P(() => V.value + p.value), n = P(() => ({
514
+ top: `${p.value}px`,
515
+ zIndex: t.value
516
+ }));
517
+ function c() {
518
+ u.duration !== 0 && ({ stop: d } = gt(() => {
519
+ g();
520
+ }, u.duration));
521
+ }
522
+ function k() {
523
+ d == null || d();
524
+ }
525
+ function g() {
526
+ z.value = !1;
527
+ }
528
+ function h({ code: I }) {
529
+ I === Ht.esc && g();
530
+ }
531
+ return Ge(() => {
532
+ c(), S(), z.value = !0;
533
+ }), ve(() => u.repeatNum, () => {
534
+ k(), c();
535
+ }), Ut(document, "keydown", h), Dt(T, () => {
536
+ V.value = T.value.getBoundingClientRect().height;
537
+ }), f({
538
+ visible: z,
539
+ bottom: e,
540
+ close: g
541
+ }), (I, m) => (i(), U(Qe, {
542
+ name: y(b).b("fade"),
543
+ onBeforeLeave: I.onClose,
544
+ onAfterLeave: m[0] || (m[0] = (B) => I.$emit("destroy")),
545
+ persisted: ""
546
+ }, {
547
+ default: r(() => [
548
+ We(v("div", {
549
+ id: I.id,
550
+ ref_key: "messageRef",
551
+ ref: T,
552
+ class: W([
553
+ y(b).b(),
554
+ { [y(b).m(I.type)]: I.type && !I.icon },
555
+ y(b).is("center", I.center),
556
+ y(b).is("closable", I.showClose),
557
+ I.customClass
558
+ ]),
559
+ style: $e(y(n)),
560
+ role: "alert",
561
+ onMouseenter: k,
562
+ onMouseleave: c
563
+ }, [
564
+ I.repeatNum > 1 ? (i(), U(y(rl), {
565
+ key: 0,
566
+ value: I.repeatNum,
567
+ type: y(E),
568
+ class: W(y(b).e("badge"))
569
+ }, null, 8, ["value", "type", "class"])) : M("v-if", !0),
570
+ y(w) ? (i(), U(y(fe), {
571
+ key: 1,
572
+ class: W([y(b).e("icon"), y(q)])
573
+ }, {
574
+ default: r(() => [
575
+ (i(), U(Ze(y(w))))
576
+ ]),
577
+ _: 1
578
+ }, 8, ["class"])) : M("v-if", !0),
579
+ ne(I.$slots, "default", {}, () => [
580
+ I.dangerouslyUseHTMLString ? (i(), O(L, { key: 1 }, [
581
+ M(" Caution here, message could've been compromised, never use user's input as message "),
582
+ v("p", {
583
+ class: W(y(b).e("content")),
584
+ innerHTML: I.message
585
+ }, null, 10, kl)
586
+ ], 2112)) : (i(), O("p", {
587
+ key: 0,
588
+ class: W(y(b).e("content"))
589
+ }, G(I.message), 3))
590
+ ]),
591
+ I.showClose ? (i(), U(y(fe), {
592
+ key: 2,
593
+ class: W(y(b).e("closeBtn")),
594
+ onClick: we(g, ["stop"])
595
+ }, {
596
+ default: r(() => [
597
+ a(y(l))
598
+ ]),
599
+ _: 1
600
+ }, 8, ["class", "onClick"])) : M("v-if", !0)
601
+ ], 46, _l), [
602
+ [Je, z.value]
603
+ ])
604
+ ]),
605
+ _: 3
606
+ }, 8, ["name", "onBeforeLeave"]));
607
+ }
608
+ });
609
+ var Ol = /* @__PURE__ */ ye(Vl, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);
610
+ let xl = 1;
611
+ const it = (s) => {
612
+ const f = !s || ce(s) || Xe(s) || Ie(s) ? { message: s } : s, u = {
613
+ ...Q,
614
+ ...f
615
+ };
616
+ if (!u.appendTo)
617
+ u.appendTo = document.body;
618
+ else if (ce(u.appendTo)) {
619
+ let l = document.querySelector(u.appendTo);
620
+ yt(l) || (bt("ElMessage", "the appendTo option is not an HTMLElement. Falling back to document.body."), l = document.body), u.appendTo = l;
621
+ }
622
+ return u;
623
+ }, Il = (s) => {
624
+ const f = te.indexOf(s);
625
+ if (f === -1)
626
+ return;
627
+ te.splice(f, 1);
628
+ const { handler: u } = s;
629
+ u.close();
630
+ }, $l = ({ appendTo: s, ...f }, u) => {
631
+ const l = `message_${xl++}`, b = f.onClose, x = document.createElement("div"), t = {
632
+ ...f,
633
+ id: l,
634
+ onClose: () => {
635
+ b == null || b(), Il(V);
636
+ },
637
+ onDestroy: () => {
638
+ ze(null, x);
639
+ }
640
+ }, S = a(Ol, t, Ie(t.message) || Xe(t.message) ? {
641
+ default: Ie(t.message) ? t.message : () => t.message
642
+ } : null);
643
+ S.appContext = u || ue._context, ze(S, x), s.appendChild(x.firstElementChild);
644
+ const T = S.component, V = {
645
+ id: l,
646
+ vnode: S,
647
+ vm: T,
648
+ handler: {
649
+ close: () => {
650
+ T.exposed.visible.value = !1;
651
+ }
652
+ },
653
+ props: S.component.props
654
+ };
655
+ return V;
656
+ }, ue = (s = {}, f) => {
657
+ if (!He)
658
+ return { close: () => {
659
+ } };
660
+ if (xe(je.max) && te.length >= je.max)
661
+ return { close: () => {
662
+ } };
663
+ const u = it(s);
664
+ if (u.grouping && te.length) {
665
+ const b = te.find(({ vnode: x }) => {
666
+ var t;
667
+ return ((t = x.props) == null ? void 0 : t.message) === u.message;
668
+ });
669
+ if (b)
670
+ return b.props.repeatNum += 1, b.props.type = u.type, b.handler;
671
+ }
672
+ const l = $l(u, f);
673
+ return te.push(l), l.handler;
674
+ };
675
+ rt.forEach((s) => {
676
+ ue[s] = (f = {}, u) => {
677
+ const l = it(f);
678
+ return ue({ ...l, type: s }, u);
679
+ };
680
+ });
681
+ function wl(s) {
682
+ for (const f of te)
683
+ (!s || s === f.props.type) && f.handler.close();
684
+ }
685
+ ue.closeAll = wl;
686
+ ue._context = null;
687
+ const ee = _t(ue, "$message");
688
+ const Ye = {
689
+ // 品种市场 [选项: 前端默认]
690
+ varietyMarket: {
691
+ show: !0,
692
+ options: [
693
+ { label: "ETF", value: 2, memo: [] },
694
+ { label: "A股", value: 3, memo: [4, 6, 12, 14, 15] },
695
+ { label: "期货", value: 4, memo: [1, 2, 3, 5, 7, 8, 9, 10] },
696
+ { label: "港股", value: 5, memo: [4, 6, 14] },
697
+ { label: "外盘", value: 6, memo: [1, 2, 3, 5, 7, 8, 9, 10] },
698
+ { label: "美股", value: 7, memo: [4, 6, 14] },
699
+ { label: "期权", value: 8, memo: [11] }
700
+ ]
701
+ },
702
+ // 常用选项 [选项: 前端默认]
703
+ commonOption: {
704
+ show: !0,
705
+ options: [
706
+ { label: "个股", value: 14 },
707
+ { label: "期货主连", value: 1 },
708
+ { label: "期货主力", value: 2 },
709
+ { label: "期货加权", value: 3 },
710
+ { label: "常用股票指数", value: 4 },
711
+ { label: "期货收益率指数", value: 5 },
712
+ { label: "行业板块指数", value: 6 },
713
+ { label: "次主力合约", value: 7 },
714
+ { label: "期货次主连", value: 8 },
715
+ { label: "期货板块收益率指数", value: 9 },
716
+ { label: "期货板块加权指数", value: 10 },
717
+ { label: "期权", value: 11 },
718
+ { label: "价差板块指数", value: 12 },
719
+ { label: "概念板块指数", value: 15 }
720
+ ]
721
+ },
722
+ // 上市板块 [选项: 接口获取**!]
723
+ marketIds: {
724
+ show: !0,
725
+ options: [
726
+ // { label: "沪深主板", value: 1, varietyMarketIds: "3" },
727
+ // { label: "创业板", value: 2, varietyMarketIds: "3" },
728
+ // { label: "科创板", value: 4, varietyMarketIds: "3" },
729
+ // { label: "新三板", value: 8, varietyMarketIds: "3" },
730
+ // { label: "沪股通", value: 1024, varietyMarketIds: "3" },
731
+ // { label: "深股通", value: 2048, varietyMarketIds: "3" },
732
+ // { label: "沪港通", value: 4096, varietyMarketIds: "5" },
733
+ // { label: "深港通", value: 8192, varietyMarketIds: "5" },
734
+ ]
735
+ },
736
+ // 自定标签 [选项: 接口获取**!]
737
+ customTag: {
738
+ show: !0,
739
+ options: []
740
+ },
741
+ // 因子筛选 [选项: 接口获取**!]
742
+ factorScreen: {
743
+ show: !0,
744
+ // SQL功能是否展示
745
+ sqlShow: !1,
746
+ // 周期功能是否展示
747
+ cycleShow: !0,
748
+ // 周期默认值
749
+ cycleDefault: null,
750
+ cycleOptions: [],
751
+ // 周期下拉框数据源
752
+ factorOptions: [],
753
+ // 因子下拉框数据源
754
+ factorDescriptions: []
755
+ // 因子使用说明数据源
756
+ },
757
+ // 常用指标 [选项: 前端默认]
758
+ commonIndicator: {
759
+ show: !0,
760
+ options: [
761
+ // 总市值
762
+ {
763
+ key: "marketCapital",
764
+ label: "总市值",
765
+ parent: {
766
+ varietyMarketIds: [3, 5, 7],
767
+ commonOptionIds: [4, 6, 12, 14, 15]
768
+ },
769
+ // 便捷选项
770
+ convenientOptions: [
771
+ { range: [null, 10], unit: ["亿", "亿"], text: "≤10亿" },
772
+ { range: [null, 25], unit: ["亿", "亿"], text: "≤25亿" },
773
+ { range: [null, 50], unit: ["亿", "亿"], text: "≤50亿" },
774
+ { range: [20, 50], unit: ["亿", "亿"], text: "20亿~50亿" },
775
+ { range: [100, null], unit: ["亿", "亿"], text: "≥100亿" },
776
+ { range: [200, null], unit: ["亿", "亿"], text: "≥200亿" },
777
+ { range: [500, null], unit: ["亿", "亿"], text: "≥500亿" },
778
+ { range: [1e3, null], unit: ["亿", "亿"], text: "≥1000亿" }
779
+ ],
780
+ // 默认选中单位
781
+ defaultUnit: ["亿", "亿"],
782
+ // 单位下拉框选项
783
+ unitOptions: ["元", "千万", "亿"]
784
+ },
785
+ // 流通市值
786
+ {
787
+ key: "floatMarketCapital",
788
+ label: "流通市值",
789
+ parent: {
790
+ varietyMarketIds: [3, 5, 7],
791
+ commonOptionIds: [4, 6, 12, 14, 15]
792
+ },
793
+ // 便捷选项
794
+ convenientOptions: [
795
+ { range: [null, 5], unit: ["亿", "亿"], text: "≤5亿" },
796
+ { range: [null, 20], unit: ["亿", "亿"], text: "≤20亿" },
797
+ { range: [null, 50], unit: ["亿", "亿"], text: "≤50亿" },
798
+ { range: [null, 100], unit: ["亿", "亿"], text: "≤100亿" },
799
+ { range: [100, null], unit: ["亿", "亿"], text: "≥100亿" },
800
+ { range: [200, null], unit: ["亿", "亿"], text: "≥200亿" },
801
+ { range: [500, null], unit: ["亿", "亿"], text: "≥500亿" },
802
+ { range: [1e3, null], unit: ["亿", "亿"], text: "≥1000亿" }
803
+ ],
804
+ // 默认选中单位
805
+ defaultUnit: ["亿", "亿"],
806
+ // 单位下拉框选项
807
+ unitOptions: ["元", "千万", "亿"]
808
+ },
809
+ // 总股本
810
+ {
811
+ key: "totalShares",
812
+ label: "总股本",
813
+ parent: {
814
+ varietyMarketIds: [3, 5, 7],
815
+ commonOptionIds: [4, 6, 12, 14, 15]
816
+ },
817
+ // 便捷选项
818
+ convenientOptions: [
819
+ { range: [null, 5], unit: ["亿", "亿"], text: "≤5亿" },
820
+ { range: [null, 10], unit: ["亿", "亿"], text: "≤10亿" },
821
+ { range: [null, 75], unit: ["亿", "亿"], text: "≤75亿" },
822
+ { range: [10, 75], unit: ["亿", "亿"], text: "10亿~75亿" },
823
+ { range: [100, null], unit: ["亿", "亿"], text: "≥100亿" }
824
+ ],
825
+ // 默认选中单位
826
+ defaultUnit: ["亿", "亿"],
827
+ // 单位下拉框选项
828
+ unitOptions: ["元", "千万", "亿"]
829
+ },
830
+ // 流通股本
831
+ {
832
+ key: "freeFloatShares",
833
+ label: "流通股本",
834
+ parent: {
835
+ varietyMarketIds: [3, 5, 7],
836
+ commonOptionIds: [4, 6, 12, 14, 15]
837
+ },
838
+ // 便捷选项
839
+ convenientOptions: [
840
+ { range: [null, 5], unit: ["千万", "千万"], text: "≤5千万" },
841
+ { range: [5, 3], unit: ["千万", "亿"], text: "5千万~3亿" },
842
+ { range: [null, 5], unit: ["亿", "亿"], text: "≤5亿" },
843
+ { range: [null, 10], unit: ["亿", "亿"], text: "≤10亿" },
844
+ { range: [8, 30], unit: ["亿", "亿"], text: "8亿~30亿" },
845
+ { range: [30, null], unit: ["亿", "亿"], text: "≥30亿" }
846
+ ],
847
+ // 默认选中单位
848
+ defaultUnit: ["亿", "亿"],
849
+ // 单位下拉框选项
850
+ unitOptions: ["元", "千万", "亿"]
851
+ },
852
+ // 换手率(实)
853
+ {
854
+ key: "turnoverRate",
855
+ label: "换手率(实)",
856
+ parent: {
857
+ varietyMarketIds: [3, 5, 7],
858
+ commonOptionIds: [4, 6, 12, 14, 15]
859
+ },
860
+ // 便捷选项
861
+ convenientOptions: [
862
+ { range: [null, 1], unit: ["%", "%"], text: "≤1%" },
863
+ { range: [1, 5], unit: ["%", "%"], text: "1%~5%" },
864
+ { range: [5, 10], unit: ["%", "%"], text: "5%~10%" },
865
+ { range: [10, null], unit: ["%", "%"], text: "≥10%" }
866
+ ],
867
+ // 默认选中单位
868
+ defaultUnit: ["%", "%"],
869
+ // 单位下拉框选项
870
+ unitOptions: ["%"]
871
+ },
872
+ // 市盈率
873
+ {
874
+ key: "peTtm",
875
+ label: "市盈率",
876
+ parent: {
877
+ varietyMarketIds: [3, 5, 7],
878
+ commonOptionIds: [4, 6, 12, 14, 15]
879
+ },
880
+ // 便捷选项
881
+ convenientOptions: [
882
+ { range: [null, 0], unit: [], text: "亏损" },
883
+ { range: [0, null], unit: [], text: "≥0" },
884
+ { range: [0, 20], unit: [], text: "0~20" },
885
+ { range: [20, 40], unit: [], text: "20~40" },
886
+ { range: [40, 100], unit: [], text: "40~100" },
887
+ { range: [100, null], unit: [], text: "≥100" }
888
+ ],
889
+ // 默认选中单位
890
+ defaultUnit: [],
891
+ // 单位下拉框选项
892
+ unitOptions: []
893
+ },
894
+ // 每股净收益
895
+ {
896
+ key: "eps",
897
+ label: "每股净收益",
898
+ parent: {
899
+ varietyMarketIds: [3, 5, 7],
900
+ commonOptionIds: [4, 6, 12, 14, 15]
901
+ },
902
+ // 便捷选项
903
+ convenientOptions: [
904
+ { range: [null, 0], unit: ["元", "元"], text: "≤0" },
905
+ { range: [0, null], unit: ["元", "元"], text: "≥0" },
906
+ { range: [0.2, null], unit: ["元", "元"], text: "≥0.2元" },
907
+ { range: [0.5, null], unit: ["元", "元"], text: "≥0.5元" },
908
+ { range: [1, null], unit: ["元", "元"], text: "≥1元" },
909
+ { range: [2, null], unit: ["元", "元"], text: "≥2元" }
910
+ ],
911
+ // 默认选中单位
912
+ defaultUnit: ["元", "元"],
913
+ // 单位下拉框选项
914
+ unitOptions: ["元"]
915
+ },
916
+ // 是否ST
917
+ {
918
+ key: "st",
919
+ label: "是否ST",
920
+ parent: {
921
+ varietyMarketIds: [3, 5, 7],
922
+ commonOptionIds: [4, 6, 12, 14, 15]
923
+ },
924
+ type: "custom"
925
+ },
926
+ // 市净率
927
+ {
928
+ key: "pb",
929
+ label: "市净率",
930
+ parent: {
931
+ varietyMarketIds: [3, 5, 7],
932
+ commonOptionIds: [4, 6, 12, 14, 15]
933
+ },
934
+ // 便捷选项
935
+ convenientOptions: [
936
+ { range: [0, null], unit: [], text: "≥0" },
937
+ { range: [0, 1], unit: [], text: "0~1" },
938
+ { range: [1, 2], unit: [], text: "1~2" },
939
+ { range: [0, 3], unit: [], text: "0~3" },
940
+ { range: [3, null], unit: [], text: "≥3" }
941
+ ],
942
+ // 默认选中单位
943
+ defaultUnit: [],
944
+ // 单位下拉框选项
945
+ unitOptions: []
946
+ },
947
+ // 成交额
948
+ {
949
+ key: "mnShr",
950
+ label: "成交额",
951
+ parent: {
952
+ varietyMarketIds: [3, 5, 7],
953
+ commonOptionIds: [4, 6, 12, 14, 15]
954
+ },
955
+ // 便捷选项
956
+ convenientOptions: [
957
+ { range: [0, 1], unit: ["亿", "亿"], text: "0~1亿" },
958
+ { range: [0, 5], unit: ["亿", "亿"], text: "0~5亿" },
959
+ { range: [0, 10], unit: ["亿", "亿"], text: "0~10亿" },
960
+ { range: [10, null], unit: ["亿", "亿"], text: "≥10亿" },
961
+ { range: [50, null], unit: ["亿", "亿"], text: "≥50亿" },
962
+ { range: [100, null], unit: ["亿", "亿"], text: "≥100亿" }
963
+ ],
964
+ // 默认选中单位
965
+ defaultUnit: ["亿", "亿"],
966
+ // 单位下拉框选项
967
+ unitOptions: ["元", "千万", "亿"]
968
+ },
969
+ // 净资产收益率roe
970
+ {
971
+ key: "roe",
972
+ label: "净资产收益率roe",
973
+ parent: {
974
+ varietyMarketIds: [3, 5, 7],
975
+ commonOptionIds: [4, 6, 12, 14, 15]
976
+ },
977
+ // 便捷选项
978
+ convenientOptions: [
979
+ { range: [null, 0], unit: ["%", "%"], text: "<0" },
980
+ { range: [0, null], unit: ["%", "%"], text: ">0" },
981
+ { range: [10, null], unit: ["%", "%"], text: ">10%" },
982
+ { range: [15, null], unit: ["%", "%"], text: ">15%" },
983
+ { range: [20, null], unit: ["%", "%"], text: ">20%" },
984
+ { range: [30, null], unit: ["%", "%"], text: ">30%" }
985
+ ],
986
+ // 默认选中单位
987
+ defaultUnit: ["%", "%"],
988
+ // 单位下拉框选项
989
+ unitOptions: ["%"]
990
+ },
991
+ // 净利润
992
+ {
993
+ key: "tFeaturelncomes",
994
+ label: "净利润",
995
+ parent: {
996
+ varietyMarketIds: [3, 5, 7],
997
+ commonOptionIds: [4, 6, 12, 14, 15]
998
+ },
999
+ type: "custom"
1000
+ },
1001
+ // 股息率
1002
+ {
1003
+ key: "dividendYield",
1004
+ label: "股息率",
1005
+ parent: {
1006
+ varietyMarketIds: [3, 5, 7],
1007
+ commonOptionIds: [4, 6, 12, 14, 15]
1008
+ },
1009
+ // 便捷选项
1010
+ convenientOptions: [
1011
+ { range: [null, 1], unit: ["%", "%"], text: "≤1%" },
1012
+ { range: [1, 5], unit: ["%", "%"], text: "1%~5%" },
1013
+ { range: [5, 10], unit: ["%", "%"], text: "5%~10%" },
1014
+ { range: [10, null], unit: ["%", "%"], text: "≥10%" }
1015
+ ],
1016
+ // 默认选中单位
1017
+ defaultUnit: ["%", "%"],
1018
+ // 单位下拉框选项
1019
+ unitOptions: ["%"]
1020
+ },
1021
+ // 股价分位
1022
+ {
1023
+ key: "priceLevels",
1024
+ label: "股价分位",
1025
+ parent: {
1026
+ varietyMarketIds: [3, 5, 7],
1027
+ commonOptionIds: [4, 6, 12, 14, 15]
1028
+ },
1029
+ type: "custom"
1030
+ },
1031
+ // 动量
1032
+ {
1033
+ key: "momentum",
1034
+ label: "动量",
1035
+ parent: {
1036
+ varietyMarketIds: [2, 3, 5, 7],
1037
+ commonOptionIds: [4, 6, 12, 14, 15]
1038
+ },
1039
+ type: "custom"
1040
+ },
1041
+ // ----------期权-----------
1042
+ // 过期天数
1043
+ {
1044
+ key: "expireDays",
1045
+ label: "过期天数",
1046
+ parent: {
1047
+ varietyMarketIds: [8],
1048
+ commonOptionIds: [11]
1049
+ },
1050
+ // 便捷选项
1051
+ convenientOptions: [],
1052
+ // 默认选中单位
1053
+ defaultUnit: ["天", "天"],
1054
+ // 单位下拉框选项
1055
+ unitOptions: ["天"]
1056
+ },
1057
+ // 虚实度
1058
+ {
1059
+ key: "virtualRealDegree",
1060
+ label: "虚实度",
1061
+ parent: {
1062
+ varietyMarketIds: [8],
1063
+ commonOptionIds: [11]
1064
+ },
1065
+ // 便捷选项
1066
+ convenientOptions: [],
1067
+ // 默认选中单位
1068
+ defaultUnit: ["%", "%"],
1069
+ // 单位下拉框选项
1070
+ unitOptions: ["%"]
1071
+ },
1072
+ // 年化收益率
1073
+ {
1074
+ key: "yearProfitRate",
1075
+ label: "年化收益率",
1076
+ parent: {
1077
+ varietyMarketIds: [8],
1078
+ commonOptionIds: [11]
1079
+ },
1080
+ // 便捷选项
1081
+ convenientOptions: [],
1082
+ // 默认选中单位
1083
+ defaultUnit: ["%", "%"],
1084
+ // 单位下拉框选项
1085
+ unitOptions: ["%"]
1086
+ },
1087
+ // 隐含波动率
1088
+ {
1089
+ key: "impliedVolatility",
1090
+ label: "隐含波动率",
1091
+ parent: {
1092
+ varietyMarketIds: [8],
1093
+ commonOptionIds: [11]
1094
+ },
1095
+ // 便捷选项
1096
+ convenientOptions: [],
1097
+ // 默认选中单位
1098
+ defaultUnit: ["%", "%"],
1099
+ // 单位下拉框选项
1100
+ unitOptions: ["%"]
1101
+ },
1102
+ // 杠杆率
1103
+ {
1104
+ key: "levelMultiplier",
1105
+ label: "杠杆率",
1106
+ parent: {
1107
+ varietyMarketIds: [8],
1108
+ commonOptionIds: [11]
1109
+ },
1110
+ // 便捷选项
1111
+ convenientOptions: [],
1112
+ // 默认选中单位
1113
+ defaultUnit: [],
1114
+ // 单位下拉框选项
1115
+ unitOptions: []
1116
+ },
1117
+ // 成交额(期权)
1118
+ {
1119
+ key: "turnover",
1120
+ label: "成交额(期权)",
1121
+ parent: {
1122
+ varietyMarketIds: [8],
1123
+ commonOptionIds: [11]
1124
+ },
1125
+ // 便捷选项
1126
+ convenientOptions: [],
1127
+ // 默认选中单位
1128
+ defaultUnit: ["万", "万"],
1129
+ // 单位下拉框选项
1130
+ unitOptions: ["万"]
1131
+ },
1132
+ // 成交量
1133
+ {
1134
+ key: "volume",
1135
+ label: "成交量",
1136
+ parent: {
1137
+ varietyMarketIds: [8],
1138
+ commonOptionIds: [11]
1139
+ },
1140
+ // 便捷选项
1141
+ convenientOptions: [],
1142
+ // 默认选中单位
1143
+ defaultUnit: [],
1144
+ // 单位下拉框选项
1145
+ unitOptions: []
1146
+ },
1147
+ // 持仓量
1148
+ {
1149
+ key: "openInterest",
1150
+ label: "持仓量",
1151
+ parent: {
1152
+ varietyMarketIds: [8],
1153
+ commonOptionIds: [11]
1154
+ },
1155
+ // 便捷选项
1156
+ convenientOptions: [],
1157
+ // 默认选中单位
1158
+ defaultUnit: [],
1159
+ // 单位下拉框选项
1160
+ unitOptions: []
1161
+ },
1162
+ // 认沽认购
1163
+ {
1164
+ key: "optionsCpType",
1165
+ label: "认沽认购",
1166
+ parent: {
1167
+ varietyMarketIds: [8],
1168
+ commonOptionIds: [11]
1169
+ },
1170
+ type: "custom"
1171
+ },
1172
+ // 期权档位
1173
+ {
1174
+ key: "optionGear",
1175
+ label: "期权档位",
1176
+ parent: {
1177
+ varietyMarketIds: [8],
1178
+ commonOptionIds: [11]
1179
+ },
1180
+ // 便捷选项
1181
+ convenientOptions: [],
1182
+ // 默认选中单位
1183
+ defaultUnit: [],
1184
+ // 单位下拉框选项
1185
+ unitOptions: []
1186
+ }
1187
+ ]
1188
+ }
1189
+ };
1190
+ const ct = (s) => (qe("data-v-d76a610e"), s = s(), Ne(), s), Cl = { class: "factor-screen" }, Tl = { class: "custom-header" }, Sl = ["id"], El = { class: "form-row" }, Ml = { style: { display: "flex", "align-items": "center", width: "100%", height: "24px" } }, Ul = /* @__PURE__ */ ct(() => /* @__PURE__ */ v("span", null, "~", -1)), Dl = /* @__PURE__ */ ct(() => /* @__PURE__ */ v("span", null, "&&代表and,||代表or", -1)), Fl = { class: "dialog-footer" }, ql = {
1191
+ __name: "index",
1192
+ props: /* @__PURE__ */ De({
1193
+ config: {
1194
+ type: Object,
1195
+ default: {
1196
+ // SQL功能是否展示
1197
+ sqlShow: !1,
1198
+ // 周期功能是否展示
1199
+ cycleShow: !0,
1200
+ // 周期默认值
1201
+ cycleDefault: null,
1202
+ cycleOptions: [],
1203
+ // 周期下拉框选项
1204
+ factorOptions: [],
1205
+ // 因子下拉框选项
1206
+ factorDescriptions: []
1207
+ // 因子使用说明数据源
1208
+ }
1209
+ }
1210
+ }, {
1211
+ data: {
1212
+ default: {
1213
+ list: [],
1214
+ sqlEnable: 0,
1215
+ sqlValue: null
1216
+ }
1217
+ },
1218
+ dataModifiers: {}
1219
+ }),
1220
+ emits: ["update:data"],
1221
+ setup(s) {
1222
+ const f = Fe(s, "data"), u = s, l = N(!1), b = N(!1), x = N(null), t = N({
1223
+ // 筛选因子列表
1224
+ list: [
1225
+ {
1226
+ cycle: u.config.cycleDefault ?? null,
1227
+ // 周期
1228
+ factor: null,
1229
+ // 因子
1230
+ score: [null, null]
1231
+ // 得分
1232
+ }
1233
+ ],
1234
+ // 是否开启SQL功能 0关闭, 1开启
1235
+ sqlEnable: 0,
1236
+ // SQL语句
1237
+ sqlValue: null
1238
+ }), S = () => {
1239
+ const { list: p, sqlEnable: e, sqlValue: n } = f.value;
1240
+ t.value = {
1241
+ list: JSON.parse(JSON.stringify(p)),
1242
+ sqlEnable: e,
1243
+ sqlValue: n
1244
+ }, t.value.list.length || T(), l.value = !0;
1245
+ }, T = () => {
1246
+ t.value.list.push({
1247
+ cycle: u.config.cycleDefault ?? null,
1248
+ factor: null,
1249
+ score: [null, null]
1250
+ });
1251
+ }, z = () => {
1252
+ x.value.validate((p) => {
1253
+ p && (t.value.sqlValue = t.value.list.reduce((e, n, c) => {
1254
+ let k = `factor_id = ${n.factor} and `;
1255
+ return u.config.cycleShow && (k += `freq_id = ${n.cycle} and `), (n.score[0] || n.score[0] === 0) && (n.score[1] || n.score[1] === 0) ? k += `score >= ${n.score[0]} and score <= ${n.score[1]}` : n.score[0] || n.score[0] === 0 ? k += `score >= ${n.score[0]}` : (n.score[1] || n.score[1] === 0) && (k += `score <= ${n.score[1]}`), k = `(${k})`, c !== 0 && (k = ` && ${k}`), e += k, e;
1256
+ }, ""));
1257
+ });
1258
+ }, V = () => {
1259
+ f.value = {
1260
+ list: [],
1261
+ sqlEnable: 0,
1262
+ sqlValue: null
1263
+ };
1264
+ }, d = (p) => {
1265
+ f.value.list.splice(p, 1);
1266
+ }, E = (p) => {
1267
+ t.value.list.splice(p, 1);
1268
+ }, q = () => {
1269
+ x.value.validate((p) => {
1270
+ const { list: e, sqlEnable: n, sqlValue: c } = t.value;
1271
+ if (p) {
1272
+ if (n && !c)
1273
+ return ee.error("SQL语句不能为空");
1274
+ f.value = {
1275
+ list: JSON.parse(JSON.stringify(e)),
1276
+ sqlEnable: n,
1277
+ sqlValue: c
1278
+ }, l.value = !1;
1279
+ }
1280
+ });
1281
+ }, w = (p) => {
1282
+ const { cycle: e, factor: n, score: c } = p;
1283
+ let k = "";
1284
+ return k += ` ${u.config.cycleOptions.find(({ value: g }) => g === e).label}`, k += ` ${u.config.factorOptions.find(({ value: g }) => g === n).label}`, k += ` ${c[0] || c[0] === 0 ? `${c[0]}分` : "∞"}`, k += " ~", k += ` ${c[1] || c[1] === 0 ? `${c[1]}分` : "∞"}`, k;
1285
+ }, $ = (p, e, n) => {
1286
+ !e[0] && e[0] !== 0 && !e[1] && e[1] !== 0 ? n(new Error("至少填写一个分数")) : n();
1287
+ };
1288
+ return (p, e) => {
1289
+ const n = ml, c = lt, k = at, g = fe, h = et, I = nt, m = ot, B = kt, j = Ke, ae = Me, o = Ue, le = Le, R = ht, A = tt, re = Vt, be = Ot;
1290
+ return i(), O("div", Cl, [
1291
+ f.value.sqlEnable && f.value.sqlValue ? (i(), U(c, {
1292
+ key: 0,
1293
+ closable: "",
1294
+ type: "info",
1295
+ title: f.value.sqlValue,
1296
+ onClose: V
1297
+ }, {
1298
+ default: r(() => [
1299
+ a(n, {
1300
+ type: "info",
1301
+ truncated: "",
1302
+ style: { "max-width": "500px" }
1303
+ }, {
1304
+ default: r(() => [
1305
+ C(G(f.value.sqlValue), 1)
1306
+ ]),
1307
+ _: 1
1308
+ })
1309
+ ]),
1310
+ _: 1
1311
+ }, 8, ["title"])) : M("", !0),
1312
+ !f.value.sqlEnable && f.value.list.length ? (i(!0), O(L, { key: 1 }, K(f.value.list, (D, Z) => (i(), U(c, {
1313
+ closable: "",
1314
+ type: "info",
1315
+ onClose: (H) => d(Z)
1316
+ }, {
1317
+ default: r(() => [
1318
+ C(G(w(D)), 1)
1319
+ ]),
1320
+ _: 2
1321
+ }, 1032, ["onClose"]))), 256)) : M("", !0),
1322
+ a(k, {
1323
+ class: "screen-btn",
1324
+ type: "primary",
1325
+ plain: "",
1326
+ size: "small",
1327
+ icon: y(Be),
1328
+ onClick: S
1329
+ }, {
1330
+ default: r(() => [
1331
+ C("添加因子")
1332
+ ]),
1333
+ _: 1
1334
+ }, 8, ["icon"]),
1335
+ a(A, {
1336
+ modelValue: l.value,
1337
+ "onUpdate:modelValue": e[3] || (e[3] = (D) => l.value = D),
1338
+ width: "500",
1339
+ "align-center": "",
1340
+ "destroy-on-close": ""
1341
+ }, {
1342
+ header: r(({ titleId: D, titleClass: Z }) => [
1343
+ v("div", Tl, [
1344
+ v("span", {
1345
+ id: D,
1346
+ class: W(Z)
1347
+ }, " 因子筛选 ", 10, Sl),
1348
+ a(h, {
1349
+ effect: "dark",
1350
+ content: "点击查看: 因子使用说明",
1351
+ placement: "right"
1352
+ }, {
1353
+ default: r(() => [
1354
+ a(g, {
1355
+ onClick: e[0] || (e[0] = (H) => b.value = !0)
1356
+ }, {
1357
+ default: r(() => [
1358
+ a(y(At))
1359
+ ]),
1360
+ _: 1
1361
+ })
1362
+ ]),
1363
+ _: 1
1364
+ })
1365
+ ])
1366
+ ]),
1367
+ footer: r(() => [
1368
+ v("div", Fl, [
1369
+ a(k, {
1370
+ type: "primary",
1371
+ onClick: q
1372
+ }, {
1373
+ default: r(() => [
1374
+ C("确定")
1375
+ ]),
1376
+ _: 1
1377
+ })
1378
+ ])
1379
+ ]),
1380
+ default: r(() => [
1381
+ a(R, {
1382
+ ref_key: "dialogFormRef",
1383
+ ref: x,
1384
+ model: t.value
1385
+ }, {
1386
+ default: r(() => [
1387
+ (i(!0), O(L, null, K(t.value.list, (D, Z) => (i(), O("div", El, [
1388
+ s.config.cycleShow ? (i(), U(B, {
1389
+ key: 0,
1390
+ prop: "list." + Z + ".cycle",
1391
+ rules: { required: !0, message: "周期不能为空", trigger: "blur" },
1392
+ style: { width: "100px", "margin-right": "10px" }
1393
+ }, {
1394
+ default: r(() => [
1395
+ a(m, {
1396
+ modelValue: D.cycle,
1397
+ "onUpdate:modelValue": (H) => D.cycle = H,
1398
+ placeholder: "选择周期",
1399
+ size: "small"
1400
+ }, {
1401
+ default: r(() => [
1402
+ (i(!0), O(L, null, K(s.config.cycleOptions, ({ label: H, value: X }) => (i(), U(I, {
1403
+ label: H,
1404
+ value: X,
1405
+ key: X
1406
+ }, null, 8, ["label", "value"]))), 128))
1407
+ ]),
1408
+ _: 2
1409
+ }, 1032, ["modelValue", "onUpdate:modelValue"])
1410
+ ]),
1411
+ _: 2
1412
+ }, 1032, ["prop"])) : M("", !0),
1413
+ a(B, {
1414
+ prop: "list." + Z + ".factor",
1415
+ rules: { required: !0, message: "因子不能为空", trigger: "blur" },
1416
+ style: { width: "100px", "margin-right": "10px" }
1417
+ }, {
1418
+ default: r(() => [
1419
+ a(m, {
1420
+ modelValue: D.factor,
1421
+ "onUpdate:modelValue": (H) => D.factor = H,
1422
+ placeholder: "选择因子",
1423
+ filterable: "",
1424
+ size: "small",
1425
+ "no-match-text": "无匹配数据"
1426
+ }, {
1427
+ default: r(() => [
1428
+ (i(!0), O(L, null, K(s.config.factorOptions, ({ label: H, value: X }) => (i(), U(I, {
1429
+ label: H,
1430
+ value: X,
1431
+ key: X
1432
+ }, null, 8, ["label", "value"]))), 128))
1433
+ ]),
1434
+ _: 2
1435
+ }, 1032, ["modelValue", "onUpdate:modelValue"])
1436
+ ]),
1437
+ _: 2
1438
+ }, 1032, ["prop"]),
1439
+ a(B, {
1440
+ prop: "list." + Z + ".score",
1441
+ rules: { validator: $, trigger: "blur" },
1442
+ style: { width: "200px", "margin-right": "10px" }
1443
+ }, {
1444
+ default: r(() => [
1445
+ v("div", Ml, [
1446
+ a(j, {
1447
+ modelValue: D.score[0],
1448
+ "onUpdate:modelValue": (H) => D.score[0] = H,
1449
+ size: "small",
1450
+ "controls-position": "right"
1451
+ }, null, 8, ["modelValue", "onUpdate:modelValue"]),
1452
+ Ul,
1453
+ a(j, {
1454
+ modelValue: D.score[1],
1455
+ "onUpdate:modelValue": (H) => D.score[1] = H,
1456
+ size: "small",
1457
+ "controls-position": "right"
1458
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
1459
+ ])
1460
+ ]),
1461
+ _: 2
1462
+ }, 1032, ["prop", "rules"]),
1463
+ a(g, {
1464
+ onClick: (H) => E(Z)
1465
+ }, {
1466
+ default: r(() => [
1467
+ a(y(Bt))
1468
+ ]),
1469
+ _: 2
1470
+ }, 1032, ["onClick"])
1471
+ ]))), 256)),
1472
+ a(k, {
1473
+ type: "primary",
1474
+ plain: "",
1475
+ size: "small",
1476
+ icon: y(Be),
1477
+ onClick: T,
1478
+ style: { "margin-bottom": "10px" }
1479
+ }, {
1480
+ default: r(() => [
1481
+ C("添加因子")
1482
+ ]),
1483
+ _: 1
1484
+ }, 8, ["icon"]),
1485
+ s.config.sqlShow ? (i(), O(L, { key: 0 }, [
1486
+ a(B, { label: "SQL功能: " }, {
1487
+ default: r(() => [
1488
+ a(o, {
1489
+ modelValue: t.value.sqlEnable,
1490
+ "onUpdate:modelValue": e[1] || (e[1] = (D) => t.value.sqlEnable = D)
1491
+ }, {
1492
+ default: r(() => [
1493
+ a(ae, { label: 0 }, {
1494
+ default: r(() => [
1495
+ C("关闭")
1496
+ ]),
1497
+ _: 1
1498
+ }),
1499
+ a(ae, { label: 1 }, {
1500
+ default: r(() => [
1501
+ C("启用")
1502
+ ]),
1503
+ _: 1
1504
+ })
1505
+ ]),
1506
+ _: 1
1507
+ }, 8, ["modelValue"]),
1508
+ t.value.sqlEnable ? (i(), U(k, {
1509
+ key: 0,
1510
+ type: "primary",
1511
+ size: "small",
1512
+ onClick: z,
1513
+ style: { "margin-left": "auto" }
1514
+ }, {
1515
+ default: r(() => [
1516
+ C("生成SQL")
1517
+ ]),
1518
+ _: 1
1519
+ })) : M("", !0)
1520
+ ]),
1521
+ _: 1
1522
+ }),
1523
+ t.value.sqlEnable ? (i(), O(L, { key: 0 }, [
1524
+ a(le, {
1525
+ modelValue: t.value.sqlValue,
1526
+ "onUpdate:modelValue": e[2] || (e[2] = (D) => t.value.sqlValue = D),
1527
+ autosize: { minRows: 4 },
1528
+ type: "textarea",
1529
+ style: { "margin-bottom": "10px" }
1530
+ }, null, 8, ["modelValue"]),
1531
+ Dl
1532
+ ], 64)) : M("", !0)
1533
+ ], 64)) : M("", !0)
1534
+ ]),
1535
+ _: 1
1536
+ }, 8, ["model"])
1537
+ ]),
1538
+ _: 1
1539
+ }, 8, ["modelValue"]),
1540
+ a(A, {
1541
+ modelValue: b.value,
1542
+ "onUpdate:modelValue": e[4] || (e[4] = (D) => b.value = D),
1543
+ title: "因子使用说明",
1544
+ width: "1000",
1545
+ "align-center": "",
1546
+ "destroy-on-close": ""
1547
+ }, {
1548
+ default: r(() => [
1549
+ a(be, {
1550
+ data: s.config.factorDescriptions,
1551
+ border: "",
1552
+ height: "500"
1553
+ }, {
1554
+ default: r(() => [
1555
+ a(re, {
1556
+ prop: "factorName",
1557
+ label: "因子名称",
1558
+ width: "200"
1559
+ }),
1560
+ a(re, {
1561
+ prop: "factorDesc",
1562
+ label: "因子说明"
1563
+ }),
1564
+ a(re, {
1565
+ prop: "factorScoreDefine",
1566
+ label: "分值定义"
1567
+ })
1568
+ ]),
1569
+ _: 1
1570
+ }, 8, ["data"])
1571
+ ]),
1572
+ _: 1
1573
+ }, 8, ["modelValue"])
1574
+ ]);
1575
+ };
1576
+ }
1577
+ }, Nl = /* @__PURE__ */ Pe(ql, [["__scopeId", "data-v-d76a610e"]]);
1578
+ const Y = (s) => (qe("data-v-42f871ec"), s = s(), Ne(), s), Ll = {
1579
+ key: 0,
1580
+ class: "common-indicator"
1581
+ }, Pl = { class: "indicator" }, Rl = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("div", { class: "title" }, [
1582
+ /* @__PURE__ */ v("span", null, "常用指标: "),
1583
+ /* @__PURE__ */ v("span", null, "不限")
1584
+ ], -1)), zl = { class: "options" }, Al = ["onClick"], Bl = { class: "tags" }, jl = ["onClick"], Yl = {
1585
+ key: 0,
1586
+ class: "convenient-option-box"
1587
+ }, Hl = { class: "out-box" }, Kl = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "自定义: ", -1)), Gl = { key: 0 }, Ql = { key: 0 }, Wl = { key: 0 }, Jl = { key: 1 }, Zl = { class: "tFeaturelncomes-option-box" }, Xl = { class: "tFeaturelncomes-out-box" }, en = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "自定义: ", -1)), tn = { key: 2 }, ln = { key: 3 }, nn = { key: 4 }, on = { class: "momentum-out-box" }, an = { key: 0 }, sn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "现价相对于", -1)), un = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日前收盘价的涨幅", -1)), rn = { key: 1 }, cn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "现价相对于", -1)), dn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线的涨幅", -1)), pn = { key: 2 }, mn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "现价相对于", -1)), vn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日前", -1)), fn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线的涨幅", -1)), gn = { key: 3 }, yn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "近", -1)), bn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线相对于近", -1)), _n = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线的涨幅", -1)), kn = { key: 4 }, hn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "近", -1)), Vn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线相对于", -1)), On = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日前", -1)), xn = /* @__PURE__ */ Y(() => /* @__PURE__ */ v("span", null, "日均线的涨幅", -1)), In = { class: "dialog-footer" }, $n = {
1588
+ __name: "index",
1589
+ props: /* @__PURE__ */ De({
1590
+ config: { type: Object, default: () => {
1591
+ } },
1592
+ varietyMarket: { type: Number, default: () => null },
1593
+ // 已选品种市场
1594
+ commonOption: { type: Array, default: () => [] }
1595
+ // 已选常用选项
1596
+ }, {
1597
+ data: { default: [] },
1598
+ dataModifiers: {}
1599
+ }),
1600
+ emits: ["update:data"],
1601
+ setup(s) {
1602
+ const f = Fe(s, "data"), u = s, l = N(!1), b = P(() => {
1603
+ let p = [];
1604
+ return u.varietyMarket === null && !u.commonOption.length ? p = u.config.options : (p = u.config.options, u.varietyMarket && (p = p.filter(({ parent: e }) => e.varietyMarketIds.includes(u.varietyMarket))), u.commonOption.length && (p = p.filter(({ parent: e }) => {
1605
+ const { commonOptionIds: n } = e;
1606
+ return [.../* @__PURE__ */ new Set([...n, ...u.commonOption])].length !== [...n, ...u.commonOption].length;
1607
+ }))), p;
1608
+ }), x = N({}), t = N({}), S = (p) => {
1609
+ x.value = p;
1610
+ const e = {
1611
+ key: p.key,
1612
+ type: p.type,
1613
+ label: p.label
1614
+ };
1615
+ switch (p.key) {
1616
+ case "st": {
1617
+ t.value = { ...e, st: null };
1618
+ break;
1619
+ }
1620
+ case "tFeaturelncomes": {
1621
+ t.value = {
1622
+ ...e,
1623
+ rule: 1,
1624
+ // 1超 2跌
1625
+ withFewYears: null,
1626
+ yearsCount: null,
1627
+ netProfit: null
1628
+ };
1629
+ break;
1630
+ }
1631
+ case "priceLevels": {
1632
+ t.value = { ...e, priceLevels: null };
1633
+ break;
1634
+ }
1635
+ case "optionsCpType": {
1636
+ t.value = {
1637
+ ...e,
1638
+ optionsCpType: null
1639
+ // 1看涨 2看跌
1640
+ };
1641
+ break;
1642
+ }
1643
+ case "momentum": {
1644
+ t.value = {
1645
+ ...e,
1646
+ momentumType: 1,
1647
+ momentumValue: [20]
1648
+ };
1649
+ break;
1650
+ }
1651
+ default:
1652
+ t.value = {
1653
+ ...e,
1654
+ range: [null, null],
1655
+ unit: p.defaultUnit.length ? [...p.defaultUnit] : [null, null]
1656
+ };
1657
+ }
1658
+ l.value = !0;
1659
+ }, T = () => {
1660
+ switch (t.value.key) {
1661
+ case "st": {
1662
+ const { label: e, st: n } = t.value;
1663
+ if (n === null)
1664
+ return ee.warning("格式错误: 请至少选择一个值");
1665
+ t.value.tagText = `${e}: ${n ? "是" : "否"}`;
1666
+ break;
1667
+ }
1668
+ case "tFeaturelncomes": {
1669
+ const { label: e, rule: n, withFewYears: c, yearsCount: k, netProfit: g } = t.value;
1670
+ if (["", null].includes(c) || ["", null].includes(k) || ["", null].includes(g))
1671
+ return ee.warning("格式错误: 请填写完整");
1672
+ t.value.tagText = `${e}: ${c}年内${k}年以上盈利${n === 1 ? "超" : "跌"}过${g}亿`;
1673
+ break;
1674
+ }
1675
+ case "priceLevels": {
1676
+ const { label: e, priceLevels: n } = t.value;
1677
+ if (!n || n.length === 0)
1678
+ return ee.warning("格式错误: 请至少选择一个值");
1679
+ t.value.tagText = `${e}: 已选${n}分位`;
1680
+ break;
1681
+ }
1682
+ case "optionsCpType": {
1683
+ const { label: e, optionsCpType: n } = t.value;
1684
+ if (n === null)
1685
+ return ee.warning("格式错误: 请至少选择一个值");
1686
+ t.value.tagText = `${e}: ${n === 1 ? "看涨" : "看跌"}`;
1687
+ break;
1688
+ }
1689
+ case "momentum": {
1690
+ const { label: e, momentumType: n, momentumValue: c } = t.value, k = "格式错误, 请输入正整数或选择正确的时间项";
1691
+ let g = null;
1692
+ switch (n) {
1693
+ case 1: {
1694
+ if (!$(c[0]))
1695
+ return ee.warning(k);
1696
+ g = `现价相对于${c[0]}日前收盘价的涨幅`;
1697
+ break;
1698
+ }
1699
+ case 2: {
1700
+ if (!$(c[0]))
1701
+ return ee.warning(k);
1702
+ g = `现价相对于${c[0]}日均线的涨幅`;
1703
+ break;
1704
+ }
1705
+ case 3: {
1706
+ if (!$(c[0]) || !$(c[1]))
1707
+ return ee.warning(k);
1708
+ g = `现价相对于${c[0]}日前${c[1]}日均线的涨幅`;
1709
+ break;
1710
+ }
1711
+ case 4: {
1712
+ if (!$(c[0]) || !$(c[1]))
1713
+ return ee.warning(k);
1714
+ g = `近${c[0]}日均线相对于近${c[1]}日均线的涨幅`;
1715
+ break;
1716
+ }
1717
+ case 5: {
1718
+ if (!$(c[0]) || !$(c[1]) || !$(c[2]))
1719
+ return ee.warning(k);
1720
+ g = `近${c[0]}日均线相对于${c[1]}日前${c[2]}日均线的涨幅`;
1721
+ break;
1722
+ }
1723
+ }
1724
+ t.value.tagText = `${e}: ${g}`;
1725
+ break;
1726
+ }
1727
+ default: {
1728
+ const { label: e, range: n, unit: c } = t.value;
1729
+ if (["", null].includes(n[0]) && ["", null].includes(n[1]))
1730
+ return ee.warning("格式错误: 请至少填写一个值");
1731
+ !["", null].includes(n[0]) && !["", null].includes(n[1]) ? t.value.tagText = `${e}: ${n[0]}${c[0] ?? ""} ~ ${n[1]}${c[1] ?? ""}` : ["", null].includes(n[0]) ? t.value.tagText = `${e}: ≤${n[1]}${c[1] ?? ""}` : t.value.tagText = `${e}: ≥${n[0]}${c[0] ?? ""}`;
1732
+ }
1733
+ }
1734
+ const p = f.value.findIndex(({ key: e }) => e === t.value.key);
1735
+ p === -1 ? f.value.push(t.value) : f.value.splice(p, 1, t.value), l.value = !1;
1736
+ }, z = (p) => {
1737
+ x.value = b.value.find(({ key: e }) => e === p.key), t.value = JSON.parse(JSON.stringify(p)), l.value = !0;
1738
+ }, V = (p) => {
1739
+ f.value.splice(p, 1);
1740
+ }, d = (p) => {
1741
+ t.value.range = [...p.range], t.value.unit = [...p.unit];
1742
+ }, E = (p) => {
1743
+ switch (p) {
1744
+ case "≤0":
1745
+ Object.assign(t.value, {
1746
+ rule: 2,
1747
+ // 1超 2跌
1748
+ withFewYears: 1,
1749
+ yearsCount: 1,
1750
+ netProfit: 0
1751
+ });
1752
+ break;
1753
+ case "≥0":
1754
+ Object.assign(t.value, {
1755
+ rule: 1,
1756
+ withFewYears: 1,
1757
+ yearsCount: 1,
1758
+ netProfit: 0
1759
+ });
1760
+ break;
1761
+ case "五年内有四年以上盈利超过5千万":
1762
+ Object.assign(t.value, {
1763
+ rule: 1,
1764
+ withFewYears: 5,
1765
+ yearsCount: 4,
1766
+ netProfit: 0.5
1767
+ });
1768
+ break;
1769
+ case "≥10亿":
1770
+ Object.assign(t.value, {
1771
+ rule: 1,
1772
+ withFewYears: 1,
1773
+ yearsCount: 1,
1774
+ netProfit: 10
1775
+ });
1776
+ break;
1777
+ case "≥20亿":
1778
+ Object.assign(t.value, {
1779
+ rule: 1,
1780
+ withFewYears: 1,
1781
+ yearsCount: 1,
1782
+ netProfit: 20
1783
+ });
1784
+ break;
1785
+ }
1786
+ }, q = (p) => {
1787
+ const e = /* @__PURE__ */ new Map([
1788
+ [1, [20]],
1789
+ [2, [20]],
1790
+ [3, [20, 3]],
1791
+ [4, [3, 20]],
1792
+ [5, [3, 20, 3]]
1793
+ ]);
1794
+ t.value.momentumValue = e.get(p);
1795
+ }, w = (p, e) => {
1796
+ e([
1797
+ { label: "本周", value: "本周" },
1798
+ { label: "本月", value: "本月" },
1799
+ { label: "近一月", value: "近一月" },
1800
+ { label: "本年", value: "本年" }
1801
+ ]);
1802
+ }, $ = (p) => {
1803
+ const e = /^[1-9]\d*$/.test(p), n = /^(本周|本月|近一月|本年)$/i.test(p);
1804
+ return e || n;
1805
+ };
1806
+ return ve(
1807
+ () => b.value,
1808
+ () => {
1809
+ f.value.length && (f.value = f.value.filter(({ key: p }) => b.value.find((e) => e.key === p)));
1810
+ }
1811
+ ), (p, e) => {
1812
+ const n = lt, c = at, k = nt, g = ot, h = Le, I = Me, m = Ue, B = Ke, j = ll, ae = tt;
1813
+ return s.config.show && b.value.length ? (i(), O("div", Ll, [
1814
+ v("div", Pl, [
1815
+ Rl,
1816
+ v("div", zl, [
1817
+ (i(!0), O(L, null, K(b.value, (o) => (i(), O("span", {
1818
+ key: o.key,
1819
+ onClick: (le) => S(o)
1820
+ }, G(o.label), 9, Al))), 128))
1821
+ ])
1822
+ ]),
1823
+ v("div", Bl, [
1824
+ (i(!0), O(L, null, K(f.value, (o, le) => (i(), U(n, {
1825
+ closable: "",
1826
+ type: "info",
1827
+ onClose: (R) => V(le)
1828
+ }, {
1829
+ default: r(() => [
1830
+ v("span", null, G(o.tagText), 1),
1831
+ v("span", {
1832
+ class: "edit",
1833
+ onClick: (R) => z(o)
1834
+ }, "编辑", 8, jl)
1835
+ ]),
1836
+ _: 2
1837
+ }, 1032, ["onClose"]))), 256))
1838
+ ]),
1839
+ a(ae, {
1840
+ modelValue: l.value,
1841
+ "onUpdate:modelValue": e[25] || (e[25] = (o) => l.value = o),
1842
+ title: x.value.label,
1843
+ width: "600",
1844
+ "align-center": "",
1845
+ "destroy-on-close": ""
1846
+ }, {
1847
+ footer: r(() => [
1848
+ v("div", In, [
1849
+ a(c, {
1850
+ type: "primary",
1851
+ onClick: T
1852
+ }, {
1853
+ default: r(() => [
1854
+ C("确定")
1855
+ ]),
1856
+ _: 1
1857
+ })
1858
+ ])
1859
+ ]),
1860
+ default: r(() => [
1861
+ x.value.type === void 0 ? (i(), O(L, { key: 0 }, [
1862
+ x.value.convenientOptions.length ? (i(), O("div", Yl, [
1863
+ (i(!0), O(L, null, K(x.value.convenientOptions, (o) => (i(), U(c, {
1864
+ key: o.text,
1865
+ onClick: (le) => d(o)
1866
+ }, {
1867
+ default: r(() => [
1868
+ C(G(o.text), 1)
1869
+ ]),
1870
+ _: 2
1871
+ }, 1032, ["onClick"]))), 128))
1872
+ ])) : M("", !0),
1873
+ v("div", Hl, [
1874
+ Kl,
1875
+ a(h, {
1876
+ modelValue: t.value.range[0],
1877
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => t.value.range[0] = o),
1878
+ style: { flex: "1" }
1879
+ }, Ce({ _: 2 }, [
1880
+ x.value.unitOptions.length ? {
1881
+ name: "append",
1882
+ fn: r(() => [
1883
+ x.value.unitOptions.length === 1 ? (i(), O("span", Gl, G(t.value.unit[0]), 1)) : (i(), U(g, {
1884
+ key: 1,
1885
+ modelValue: t.value.unit[0],
1886
+ "onUpdate:modelValue": e[0] || (e[0] = (o) => t.value.unit[0] = o),
1887
+ style: { width: "72px" }
1888
+ }, {
1889
+ default: r(() => [
1890
+ (i(!0), O(L, null, K(x.value.unitOptions, (o) => (i(), U(k, {
1891
+ label: o,
1892
+ value: o
1893
+ }, null, 8, ["label", "value"]))), 256))
1894
+ ]),
1895
+ _: 1
1896
+ }, 8, ["modelValue"]))
1897
+ ]),
1898
+ key: "0"
1899
+ } : void 0
1900
+ ]), 1032, ["modelValue"]),
1901
+ C(" ~ "),
1902
+ a(h, {
1903
+ modelValue: t.value.range[1],
1904
+ "onUpdate:modelValue": e[3] || (e[3] = (o) => t.value.range[1] = o),
1905
+ style: { flex: "1" }
1906
+ }, Ce({ _: 2 }, [
1907
+ x.value.unitOptions.length ? {
1908
+ name: "append",
1909
+ fn: r(() => [
1910
+ x.value.unitOptions.length === 1 ? (i(), O("span", Ql, G(t.value.unit[1]), 1)) : (i(), U(g, {
1911
+ key: 1,
1912
+ modelValue: t.value.unit[1],
1913
+ "onUpdate:modelValue": e[2] || (e[2] = (o) => t.value.unit[1] = o),
1914
+ style: { width: "72px" }
1915
+ }, {
1916
+ default: r(() => [
1917
+ (i(!0), O(L, null, K(x.value.unitOptions, (o) => (i(), U(k, {
1918
+ label: o,
1919
+ value: o
1920
+ }, null, 8, ["label", "value"]))), 256))
1921
+ ]),
1922
+ _: 1
1923
+ }, 8, ["modelValue"]))
1924
+ ]),
1925
+ key: "0"
1926
+ } : void 0
1927
+ ]), 1032, ["modelValue"])
1928
+ ])
1929
+ ], 64)) : (i(), O(L, { key: 1 }, [
1930
+ x.value.key === "st" ? (i(), O("div", Wl, [
1931
+ a(m, {
1932
+ modelValue: t.value.st,
1933
+ "onUpdate:modelValue": e[4] || (e[4] = (o) => t.value.st = o)
1934
+ }, {
1935
+ default: r(() => [
1936
+ a(I, { label: 1 }, {
1937
+ default: r(() => [
1938
+ C("是")
1939
+ ]),
1940
+ _: 1
1941
+ }),
1942
+ a(I, { label: 0 }, {
1943
+ default: r(() => [
1944
+ C("否")
1945
+ ]),
1946
+ _: 1
1947
+ })
1948
+ ]),
1949
+ _: 1
1950
+ }, 8, ["modelValue"])
1951
+ ])) : M("", !0),
1952
+ x.value.key === "tFeaturelncomes" ? (i(), O("div", Jl, [
1953
+ v("div", Zl, [
1954
+ a(c, {
1955
+ onClick: e[5] || (e[5] = (o) => E("≤0"))
1956
+ }, {
1957
+ default: r(() => [
1958
+ C("≤0")
1959
+ ]),
1960
+ _: 1
1961
+ }),
1962
+ a(c, {
1963
+ onClick: e[6] || (e[6] = (o) => E("≥0"))
1964
+ }, {
1965
+ default: r(() => [
1966
+ C("≥0")
1967
+ ]),
1968
+ _: 1
1969
+ }),
1970
+ a(c, {
1971
+ onClick: e[7] || (e[7] = (o) => E("五年内有四年以上盈利超过5千万"))
1972
+ }, {
1973
+ default: r(() => [
1974
+ C("五年内有四年以上盈利超过5千万")
1975
+ ]),
1976
+ _: 1
1977
+ }),
1978
+ a(c, {
1979
+ onClick: e[8] || (e[8] = (o) => E("≥10亿"))
1980
+ }, {
1981
+ default: r(() => [
1982
+ C("≥10亿")
1983
+ ]),
1984
+ _: 1
1985
+ }),
1986
+ a(c, {
1987
+ onClick: e[9] || (e[9] = (o) => E("≥20亿"))
1988
+ }, {
1989
+ default: r(() => [
1990
+ C("≥20亿")
1991
+ ]),
1992
+ _: 1
1993
+ })
1994
+ ]),
1995
+ v("div", Xl, [
1996
+ en,
1997
+ v("div", null, [
1998
+ a(B, {
1999
+ modelValue: t.value.withFewYears,
2000
+ "onUpdate:modelValue": e[10] || (e[10] = (o) => t.value.withFewYears = o),
2001
+ "controls-position": "right"
2002
+ }, null, 8, ["modelValue"]),
2003
+ C(" 年内 "),
2004
+ a(B, {
2005
+ modelValue: t.value.yearsCount,
2006
+ "onUpdate:modelValue": e[11] || (e[11] = (o) => t.value.yearsCount = o),
2007
+ "controls-position": "right"
2008
+ }, null, 8, ["modelValue"]),
2009
+ C(" 年以上盈利" + G(t.value.rule === 1 ? "超" : "跌") + "过 ", 1),
2010
+ a(B, {
2011
+ modelValue: t.value.netProfit,
2012
+ "onUpdate:modelValue": e[12] || (e[12] = (o) => t.value.netProfit = o),
2013
+ "controls-position": "right"
2014
+ }, null, 8, ["modelValue"]),
2015
+ C(" 亿 ")
2016
+ ])
2017
+ ])
2018
+ ])) : M("", !0),
2019
+ x.value.key === "priceLevels" ? (i(), O("div", tn, [
2020
+ a(g, {
2021
+ modelValue: t.value.priceLevels,
2022
+ "onUpdate:modelValue": e[13] || (e[13] = (o) => t.value.priceLevels = o),
2023
+ multiple: "",
2024
+ clearable: "",
2025
+ placeholder: "请选择",
2026
+ style: { width: "420px" }
2027
+ }, {
2028
+ default: r(() => [
2029
+ (i(), O(L, null, K([1, 2, 3, 4, 5], (o) => a(k, {
2030
+ key: o,
2031
+ label: `${o}分位`,
2032
+ value: o
2033
+ }, null, 8, ["label", "value"])), 64))
2034
+ ]),
2035
+ _: 1
2036
+ }, 8, ["modelValue"])
2037
+ ])) : M("", !0),
2038
+ x.value.key === "optionsCpType" ? (i(), O("div", ln, [
2039
+ a(m, {
2040
+ modelValue: t.value.optionsCpType,
2041
+ "onUpdate:modelValue": e[14] || (e[14] = (o) => t.value.optionsCpType = o)
2042
+ }, {
2043
+ default: r(() => [
2044
+ a(I, { label: 1 }, {
2045
+ default: r(() => [
2046
+ C("看涨")
2047
+ ]),
2048
+ _: 1
2049
+ }),
2050
+ a(I, { label: 2 }, {
2051
+ default: r(() => [
2052
+ C("看跌")
2053
+ ]),
2054
+ _: 1
2055
+ })
2056
+ ]),
2057
+ _: 1
2058
+ }, 8, ["modelValue"])
2059
+ ])) : M("", !0),
2060
+ x.value.key === "momentum" ? (i(), O("div", nn, [
2061
+ a(m, {
2062
+ modelValue: t.value.momentumType,
2063
+ "onUpdate:modelValue": e[15] || (e[15] = (o) => t.value.momentumType = o),
2064
+ onChange: q
2065
+ }, {
2066
+ default: r(() => [
2067
+ a(I, { label: 1 }, {
2068
+ default: r(() => [
2069
+ C("动量1")
2070
+ ]),
2071
+ _: 1
2072
+ }),
2073
+ a(I, { label: 2 }, {
2074
+ default: r(() => [
2075
+ C("动量2")
2076
+ ]),
2077
+ _: 1
2078
+ }),
2079
+ a(I, { label: 3 }, {
2080
+ default: r(() => [
2081
+ C("动量3")
2082
+ ]),
2083
+ _: 1
2084
+ }),
2085
+ a(I, { label: 4 }, {
2086
+ default: r(() => [
2087
+ C("动量4")
2088
+ ]),
2089
+ _: 1
2090
+ }),
2091
+ a(I, { label: 5 }, {
2092
+ default: r(() => [
2093
+ C("动量5")
2094
+ ]),
2095
+ _: 1
2096
+ })
2097
+ ]),
2098
+ _: 1
2099
+ }, 8, ["modelValue"]),
2100
+ v("div", on, [
2101
+ t.value.momentumType === 1 ? (i(), O("div", an, [
2102
+ sn,
2103
+ a(j, {
2104
+ modelValue: t.value.momentumValue[0],
2105
+ "onUpdate:modelValue": e[16] || (e[16] = (o) => t.value.momentumValue[0] = o),
2106
+ "fetch-suggestions": w
2107
+ }, null, 8, ["modelValue"]),
2108
+ un
2109
+ ])) : M("", !0),
2110
+ t.value.momentumType === 2 ? (i(), O("div", rn, [
2111
+ cn,
2112
+ a(j, {
2113
+ modelValue: t.value.momentumValue[0],
2114
+ "onUpdate:modelValue": e[17] || (e[17] = (o) => t.value.momentumValue[0] = o),
2115
+ "fetch-suggestions": w
2116
+ }, null, 8, ["modelValue"]),
2117
+ dn
2118
+ ])) : M("", !0),
2119
+ t.value.momentumType === 3 ? (i(), O("div", pn, [
2120
+ mn,
2121
+ a(j, {
2122
+ modelValue: t.value.momentumValue[0],
2123
+ "onUpdate:modelValue": e[18] || (e[18] = (o) => t.value.momentumValue[0] = o),
2124
+ "fetch-suggestions": w
2125
+ }, null, 8, ["modelValue"]),
2126
+ vn,
2127
+ a(j, {
2128
+ modelValue: t.value.momentumValue[1],
2129
+ "onUpdate:modelValue": e[19] || (e[19] = (o) => t.value.momentumValue[1] = o),
2130
+ "fetch-suggestions": w
2131
+ }, null, 8, ["modelValue"]),
2132
+ fn
2133
+ ])) : M("", !0),
2134
+ t.value.momentumType === 4 ? (i(), O("div", gn, [
2135
+ yn,
2136
+ a(j, {
2137
+ modelValue: t.value.momentumValue[0],
2138
+ "onUpdate:modelValue": e[20] || (e[20] = (o) => t.value.momentumValue[0] = o),
2139
+ "fetch-suggestions": w
2140
+ }, null, 8, ["modelValue"]),
2141
+ bn,
2142
+ a(j, {
2143
+ modelValue: t.value.momentumValue[1],
2144
+ "onUpdate:modelValue": e[21] || (e[21] = (o) => t.value.momentumValue[1] = o),
2145
+ "fetch-suggestions": w
2146
+ }, null, 8, ["modelValue"]),
2147
+ _n
2148
+ ])) : M("", !0),
2149
+ t.value.momentumType === 5 ? (i(), O("div", kn, [
2150
+ hn,
2151
+ a(j, {
2152
+ modelValue: t.value.momentumValue[0],
2153
+ "onUpdate:modelValue": e[22] || (e[22] = (o) => t.value.momentumValue[0] = o),
2154
+ "fetch-suggestions": w
2155
+ }, null, 8, ["modelValue"]),
2156
+ Vn,
2157
+ a(j, {
2158
+ modelValue: t.value.momentumValue[1],
2159
+ "onUpdate:modelValue": e[23] || (e[23] = (o) => t.value.momentumValue[1] = o),
2160
+ "fetch-suggestions": w
2161
+ }, null, 8, ["modelValue"]),
2162
+ On,
2163
+ a(j, {
2164
+ modelValue: t.value.momentumValue[2],
2165
+ "onUpdate:modelValue": e[24] || (e[24] = (o) => t.value.momentumValue[2] = o),
2166
+ "fetch-suggestions": w
2167
+ }, null, 8, ["modelValue"]),
2168
+ xn
2169
+ ])) : M("", !0)
2170
+ ])
2171
+ ])) : M("", !0)
2172
+ ], 64))
2173
+ ]),
2174
+ _: 1
2175
+ }, 8, ["modelValue", "title"])
2176
+ ])) : M("", !0);
2177
+ };
2178
+ }
2179
+ }, wn = /* @__PURE__ */ Pe($n, [["__scopeId", "data-v-42f871ec"]]);
2180
+ const de = (s) => (qe("data-v-eb00276a"), s = s(), Ne(), s), Cn = { class: "variety-search" }, Tn = {
2181
+ key: 0,
2182
+ class: "variety-search-row"
2183
+ }, Sn = { class: "title" }, En = /* @__PURE__ */ de(() => /* @__PURE__ */ v("span", null, "品种市场: ", -1)), Mn = {
2184
+ key: 1,
2185
+ class: "variety-search-row"
2186
+ }, Un = { class: "title" }, Dn = /* @__PURE__ */ de(() => /* @__PURE__ */ v("span", null, "常用选项: ", -1)), Fn = {
2187
+ key: 2,
2188
+ class: "variety-search-row"
2189
+ }, qn = { class: "title" }, Nn = /* @__PURE__ */ de(() => /* @__PURE__ */ v("span", null, "上市板块: ", -1)), Ln = {
2190
+ key: 3,
2191
+ class: "variety-search-row"
2192
+ }, Pn = { class: "title" }, Rn = /* @__PURE__ */ de(() => /* @__PURE__ */ v("span", null, "自定标签: ", -1)), zn = {
2193
+ key: 4,
2194
+ class: "variety-search-row"
2195
+ }, An = { class: "title" }, Bn = /* @__PURE__ */ de(() => /* @__PURE__ */ v("span", null, "因子筛选: ", -1)), jn = {
2196
+ __name: "index",
2197
+ props: /* @__PURE__ */ De({ config: { type: Object, default: {} } }, {
2198
+ searchData: {},
2199
+ searchDataModifiers: {}
2200
+ }),
2201
+ emits: ["update:searchData"],
2202
+ setup(s, { expose: f }) {
2203
+ const u = s, l = Fe(s, "searchData");
2204
+ l.value = Object.assign(l.value, {
2205
+ // 品种市场
2206
+ varietyMarket: null,
2207
+ // 常用选项
2208
+ commonOption: [],
2209
+ // 上市板块
2210
+ marketIds: [],
2211
+ // 自定标签
2212
+ customTag: [],
2213
+ // 因子筛选
2214
+ factorScreen: {
2215
+ list: [],
2216
+ sqlEnable: 0,
2217
+ sqlValue: null
2218
+ },
2219
+ // 常用指标
2220
+ commonIndicator: []
2221
+ });
2222
+ const b = P(() => {
2223
+ const V = {};
2224
+ return Object.keys(Ye).forEach((d) => {
2225
+ const E = Ye[d], q = u.config[d] ?? {}, w = { ...E, ...q };
2226
+ V[d] = w;
2227
+ }), V;
2228
+ }), x = P(() => b.value.varietyMarket.options), t = P(() => {
2229
+ const { varietyMarket: V } = l.value;
2230
+ if (V) {
2231
+ const d = x.value.find(({ value: E }) => E === V).memo;
2232
+ return b.value.commonOption.options.filter(({ value: E }) => d.includes(E));
2233
+ } else
2234
+ return b.value.commonOption.options;
2235
+ }), S = P(() => {
2236
+ const { varietyMarket: V } = l.value;
2237
+ return V ? b.value.marketIds.options.filter((d) => d.varietyMarketIds.includes(V)) : b.value.marketIds.options;
2238
+ }), T = P(() => b.value.customTag.options), z = (V) => {
2239
+ ["commonOption", "marketIds", "customTag", "factorScreen", "commonIndicator"].includes(V) ? l.value[V] = [] : l.value[V] = null;
2240
+ };
2241
+ return ve(
2242
+ () => t.value,
2243
+ (V) => {
2244
+ var d;
2245
+ (d = l.value.commonOption) != null && d.length && (l.value.commonOption = l.value.commonOption.filter((E) => V.find(({ value: q }) => q === E)));
2246
+ }
2247
+ ), ve(
2248
+ () => S.value,
2249
+ (V) => {
2250
+ var d;
2251
+ (d = l.value.marketIds) != null && d.length && (l.value.marketIds = l.value.marketIds.filter((E) => V.find(({ value: q }) => q === E)));
2252
+ }
2253
+ ), f({
2254
+ // 生成接口传参结构的数据
2255
+ formatData: (V) => {
2256
+ var E, q, w, $, p;
2257
+ console.log("%c[st-varietySearch]: 正在生成接口传参结构的数据...", "color: tomato");
2258
+ const d = {};
2259
+ if (V.varietyMarket && (d.exchangeId = String(V.varietyMarket)), (E = V.commonOption) != null && E.length && (d.optionId = V.commonOption.join(",")), (q = V.marketIds) != null && q.length && (d.marketIds = V.marketIds), (w = V.customTag) != null && w.length && (d.tagIds = V.customTag), ($ = b.value.factorScreen) != null && $.show) {
2260
+ const { factorScreen: e } = V;
2261
+ (p = e == null ? void 0 : e.list) != null && p.length && (d.tbFeatureFactorScores = e.list.map((n) => ({
2262
+ freqId: n.cycle,
2263
+ factorId: n.factor,
2264
+ startScore: n.score[0],
2265
+ endScore: n.score[1]
2266
+ }))), d.enableSql = e.sqlEnable === 1 ? 2 : 1, e.sqlEnable && (d.sql = e.sqlValue);
2267
+ }
2268
+ {
2269
+ const e = ["expireDays", "virtualRealDegree", "yearProfitRate", "impliedVolatility", "levelMultiplier", "turnover", "volume", "openInterest", "optionsCpType", "optionGear"], n = V.commonIndicator.reduce((m, B) => {
2270
+ const { key: j, type: ae, range: o, unit: le } = B;
2271
+ if (j === "dividendYield") {
2272
+ let [R, A] = o;
2273
+ ["", null].includes(R) || (R = R / 100), ["", null].includes(A) || (A = A / 100), m.push({
2274
+ column: B.key,
2275
+ start: R,
2276
+ end: A
2277
+ });
2278
+ } else if (ae === void 0 && !e.includes(j)) {
2279
+ let [R, A] = o;
2280
+ if (!["", null].includes(R))
2281
+ switch (le[0]) {
2282
+ case "亿":
2283
+ R = R * 1e8;
2284
+ break;
2285
+ case "千万":
2286
+ R = R * 1e7;
2287
+ break;
2288
+ default:
2289
+ R = R;
2290
+ break;
2291
+ }
2292
+ if (!["", null].includes(A))
2293
+ switch (le[1]) {
2294
+ case "亿":
2295
+ A = A * 1e8;
2296
+ break;
2297
+ case "千万":
2298
+ A = A * 1e7;
2299
+ break;
2300
+ default:
2301
+ A = A;
2302
+ break;
2303
+ }
2304
+ m.push({
2305
+ column: B.key,
2306
+ start: R,
2307
+ end: A
2308
+ });
2309
+ }
2310
+ return m;
2311
+ }, []);
2312
+ n.length && (d.query = n);
2313
+ const c = V.commonIndicator.find(({ key: m }) => m === "st");
2314
+ c && (d.st = c.st);
2315
+ const k = V.commonIndicator.find(({ key: m }) => m === "tFeaturelncomes");
2316
+ k && (d.netProfitQueryDto = { ...k, netProfit: k.netProfit * 1e8 });
2317
+ const g = V.commonIndicator.find(({ key: m }) => m === "priceLevels");
2318
+ g && (d.priceLevels = g.priceLevels);
2319
+ const h = {};
2320
+ V.commonIndicator.forEach((m) => {
2321
+ const { key: B } = m;
2322
+ switch (B) {
2323
+ case "expireDays":
2324
+ ["", null].includes(m.range[0]) || (h.minExpireDays = m.range[0]), ["", null].includes(m.range[1]) || (h.maxExpireDays = m.range[1]);
2325
+ break;
2326
+ case "virtualRealDegree":
2327
+ ["", null].includes(m.range[0]) || (h.minVirtualRealDegree = m.range[0] / 100), ["", null].includes(m.range[1]) || (h.maxVirtualRealDegree = m.range[1] / 100);
2328
+ break;
2329
+ case "yearProfitRate":
2330
+ ["", null].includes(m.range[0]) || (h.minYearProfitRate = m.range[0] / 100), ["", null].includes(m.range[1]) || (h.maxYearProfitRate = m.range[1] / 100);
2331
+ break;
2332
+ case "impliedVolatility":
2333
+ ["", null].includes(m.range[0]) || (h.minImpliedVolatility = m.range[0] / 100), ["", null].includes(m.range[1]) || (h.maxImpliedVolatility = m.range[1] / 100);
2334
+ break;
2335
+ case "levelMultiplier":
2336
+ ["", null].includes(m.range[0]) || (h.minLevelMultiplier = m.range[0]), ["", null].includes(m.range[1]) || (h.maxLevelMultiplier = m.range[1]);
2337
+ break;
2338
+ case "turnover":
2339
+ ["", null].includes(m.range[0]) || (h.minTurnover = m.range[0] * 1e4), ["", null].includes(m.range[1]) || (h.maxTurnover = m.range[1] * 1e4);
2340
+ break;
2341
+ case "volume":
2342
+ ["", null].includes(m.range[0]) || (h.minVolume = m.range[0]), ["", null].includes(m.range[1]) || (h.maxVolume = m.range[1]);
2343
+ break;
2344
+ case "openInterest":
2345
+ ["", null].includes(m.range[0]) || (h.minOpenInterest = m.range[0]), ["", null].includes(m.range[1]) || (h.maxOpenInterest = m.range[1]);
2346
+ break;
2347
+ case "optionsCpType":
2348
+ h.optionsCpType = m.optionsCpType;
2349
+ break;
2350
+ case "optionGear":
2351
+ ["", null].includes(m.range[0]) || (h.minOptionGear = m.range[0]), ["", null].includes(m.range[1]) || (h.maxOptionGear = m.range[1]);
2352
+ break;
2353
+ }
2354
+ }), Object.keys(h).length && (d.searchOptionDto = h);
2355
+ const I = V.commonIndicator.find(({ key: m }) => m === "momentum");
2356
+ I && (d.momentumIndicator = {
2357
+ momentumType: I.momentumType,
2358
+ momentumValue: I.momentumValue.join(",")
2359
+ });
2360
+ }
2361
+ return console.log("%c[st-varietySearch]: 接口传参数据生成完毕", "color: green", d), d;
2362
+ },
2363
+ // 重置函数
2364
+ reset: () => {
2365
+ l.value = {
2366
+ // 品种市场
2367
+ varietyMarket: null,
2368
+ // 常用选项
2369
+ commonOption: [],
2370
+ // 上市板块
2371
+ marketIds: [],
2372
+ // 自定标签
2373
+ customTag: [],
2374
+ // 因子筛选
2375
+ factorScreen: {
2376
+ list: [],
2377
+ sqlEnable: 0,
2378
+ sqlValue: null
2379
+ },
2380
+ // 常用指标
2381
+ commonIndicator: []
2382
+ };
2383
+ }
2384
+ }), (V, d) => {
2385
+ var p, e, n, c, k;
2386
+ const E = Me, q = Ue, w = xt, $ = It;
2387
+ return i(), O("div", Cn, [
2388
+ (p = b.value.varietyMarket) != null && p.show ? (i(), O("div", Tn, [
2389
+ v("div", Sn, [
2390
+ En,
2391
+ v("span", {
2392
+ onClick: d[0] || (d[0] = (g) => z("varietyMarket"))
2393
+ }, "不限")
2394
+ ]),
2395
+ a(q, {
2396
+ modelValue: l.value.varietyMarket,
2397
+ "onUpdate:modelValue": d[1] || (d[1] = (g) => l.value.varietyMarket = g),
2398
+ size: "small"
2399
+ }, {
2400
+ default: r(() => [
2401
+ (i(!0), O(L, null, K(x.value, ({ label: g, value: h }) => (i(), U(E, {
2402
+ label: h,
2403
+ key: h
2404
+ }, {
2405
+ default: r(() => [
2406
+ C(G(g), 1)
2407
+ ]),
2408
+ _: 2
2409
+ }, 1032, ["label"]))), 128))
2410
+ ]),
2411
+ _: 1
2412
+ }, 8, ["modelValue"])
2413
+ ])) : M("", !0),
2414
+ (e = b.value.commonOption) != null && e.show && t.value.length ? (i(), O("div", Mn, [
2415
+ v("div", Un, [
2416
+ Dn,
2417
+ v("span", {
2418
+ onClick: d[2] || (d[2] = (g) => z("commonOption"))
2419
+ }, "不限")
2420
+ ]),
2421
+ a($, {
2422
+ modelValue: l.value.commonOption,
2423
+ "onUpdate:modelValue": d[3] || (d[3] = (g) => l.value.commonOption = g),
2424
+ size: "small"
2425
+ }, {
2426
+ default: r(() => [
2427
+ (i(!0), O(L, null, K(t.value, ({ label: g, value: h }) => (i(), U(w, {
2428
+ label: h,
2429
+ key: h
2430
+ }, {
2431
+ default: r(() => [
2432
+ C(G(g), 1)
2433
+ ]),
2434
+ _: 2
2435
+ }, 1032, ["label"]))), 128))
2436
+ ]),
2437
+ _: 1
2438
+ }, 8, ["modelValue"])
2439
+ ])) : M("", !0),
2440
+ (n = b.value.marketIds) != null && n.show && S.value.length ? (i(), O("div", Fn, [
2441
+ v("div", qn, [
2442
+ Nn,
2443
+ v("span", {
2444
+ onClick: d[4] || (d[4] = (g) => z("marketIds"))
2445
+ }, "不限")
2446
+ ]),
2447
+ a($, {
2448
+ modelValue: l.value.marketIds,
2449
+ "onUpdate:modelValue": d[5] || (d[5] = (g) => l.value.marketIds = g),
2450
+ size: "small"
2451
+ }, {
2452
+ default: r(() => [
2453
+ (i(!0), O(L, null, K(S.value, ({ label: g, value: h }) => (i(), U(w, {
2454
+ label: h,
2455
+ key: h
2456
+ }, {
2457
+ default: r(() => [
2458
+ C(G(g), 1)
2459
+ ]),
2460
+ _: 2
2461
+ }, 1032, ["label"]))), 128))
2462
+ ]),
2463
+ _: 1
2464
+ }, 8, ["modelValue"])
2465
+ ])) : M("", !0),
2466
+ (c = b.value.customTag) != null && c.show && T.value.length ? (i(), O("div", Ln, [
2467
+ v("div", Pn, [
2468
+ Rn,
2469
+ v("span", {
2470
+ onClick: d[6] || (d[6] = (g) => z("customTag"))
2471
+ }, "不限")
2472
+ ]),
2473
+ a($, {
2474
+ modelValue: l.value.customTag,
2475
+ "onUpdate:modelValue": d[7] || (d[7] = (g) => l.value.customTag = g),
2476
+ size: "small"
2477
+ }, {
2478
+ default: r(() => [
2479
+ (i(!0), O(L, null, K(T.value, ({ label: g, value: h }) => (i(), U(w, {
2480
+ label: h,
2481
+ key: h
2482
+ }, {
2483
+ default: r(() => [
2484
+ C(G(g), 1)
2485
+ ]),
2486
+ _: 2
2487
+ }, 1032, ["label"]))), 128))
2488
+ ]),
2489
+ _: 1
2490
+ }, 8, ["modelValue"])
2491
+ ])) : M("", !0),
2492
+ (k = b.value.factorScreen) != null && k.show ? (i(), O("div", zn, [
2493
+ v("div", An, [
2494
+ Bn,
2495
+ v("span", {
2496
+ onClick: d[8] || (d[8] = (g) => z("factorScreen"))
2497
+ }, "不限")
2498
+ ]),
2499
+ a(Nl, {
2500
+ data: l.value.factorScreen,
2501
+ "onUpdate:data": d[9] || (d[9] = (g) => l.value.factorScreen = g),
2502
+ config: b.value.factorScreen
2503
+ }, null, 8, ["data", "config"])
2504
+ ])) : M("", !0),
2505
+ a(wn, {
2506
+ data: l.value.commonIndicator,
2507
+ "onUpdate:data": d[10] || (d[10] = (g) => l.value.commonIndicator = g),
2508
+ varietyMarket: l.value.varietyMarket,
2509
+ commonOption: l.value.commonOption,
2510
+ config: b.value.commonIndicator
2511
+ }, null, 8, ["data", "varietyMarket", "commonOption", "config"])
2512
+ ]);
2513
+ };
2514
+ }
2515
+ }, Yn = /* @__PURE__ */ Pe(jn, [["__scopeId", "data-v-eb00276a"]]), yo = {
2516
+ install(s) {
2517
+ s.component("st-varietySearch", Yn);
2518
+ }
2519
+ };
2520
+ export {
2521
+ yo as default
2522
+ };