st-comp 0.0.147 → 0.0.148

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