st-comp 0.0.76 → 0.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/VarietySearch.cjs +2 -2
- package/es/VarietySearch.js +501 -482
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +1 -1
- package/lib/{index-bdeb684f.js → index-d4fc9911.js} +51 -32
- package/lib/{python-c9833067.js → python-8e5e5290.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/VarietySearch/config.js +38 -15
- package/packages/VarietySearch/index.vue +64 -25
package/package.json
CHANGED
|
@@ -4,11 +4,11 @@ export default {
|
|
|
4
4
|
show: true,
|
|
5
5
|
options: [
|
|
6
6
|
{ label: "ETF", value: 2, memo: [] },
|
|
7
|
-
{ label: "A股", value: 3, memo: [4, 6, 12] },
|
|
7
|
+
{ label: "A股", value: 3, memo: [4, 6, 12, 13, 14, 15] },
|
|
8
8
|
{ label: "期货", value: 4, memo: [1, 2, 3, 5, 7, 8, 9, 10] },
|
|
9
|
-
{ label: "港股", value: 5, memo: [4, 6] },
|
|
9
|
+
{ label: "港股", value: 5, memo: [4, 6, 14] },
|
|
10
10
|
{ label: "外盘", value: 6, memo: [1, 2, 3, 5, 7, 8, 9, 10] },
|
|
11
|
-
{ label: "美股", value: 7, memo: [4, 6] },
|
|
11
|
+
{ label: "美股", value: 7, memo: [4, 6, 14] },
|
|
12
12
|
{ label: "期权", value: 8, memo: [11] },
|
|
13
13
|
],
|
|
14
14
|
},
|
|
@@ -28,6 +28,9 @@ export default {
|
|
|
28
28
|
{ label: "期货板块加权指数", value: 10 },
|
|
29
29
|
{ label: "期权", value: 11 },
|
|
30
30
|
{ label: "板块价差指数", value: 12 },
|
|
31
|
+
{ label: "行业板块指数", value: 13 },
|
|
32
|
+
{ label: "个股", value: 14 },
|
|
33
|
+
{ label: "概念板块指数", value: 15 },
|
|
31
34
|
],
|
|
32
35
|
},
|
|
33
36
|
// 自定义标签
|
|
@@ -53,7 +56,7 @@ export default {
|
|
|
53
56
|
label: "总市值",
|
|
54
57
|
parent: {
|
|
55
58
|
varietyMarketIds: [3, 5, 7],
|
|
56
|
-
commonOptionIds: [4, 6, 12],
|
|
59
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
57
60
|
},
|
|
58
61
|
// 便捷选项
|
|
59
62
|
convenientOptions: [
|
|
@@ -77,7 +80,7 @@ export default {
|
|
|
77
80
|
label: "流通市值",
|
|
78
81
|
parent: {
|
|
79
82
|
varietyMarketIds: [3, 5, 7],
|
|
80
|
-
commonOptionIds: [4, 6, 12],
|
|
83
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
81
84
|
},
|
|
82
85
|
// 便捷选项
|
|
83
86
|
convenientOptions: [
|
|
@@ -101,7 +104,7 @@ export default {
|
|
|
101
104
|
label: "总股本",
|
|
102
105
|
parent: {
|
|
103
106
|
varietyMarketIds: [3, 5, 7],
|
|
104
|
-
commonOptionIds: [4, 6, 12],
|
|
107
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
105
108
|
},
|
|
106
109
|
// 便捷选项
|
|
107
110
|
convenientOptions: [
|
|
@@ -122,7 +125,7 @@ export default {
|
|
|
122
125
|
label: "流通股本",
|
|
123
126
|
parent: {
|
|
124
127
|
varietyMarketIds: [3, 5, 7],
|
|
125
|
-
commonOptionIds: [4, 6, 12],
|
|
128
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
126
129
|
},
|
|
127
130
|
// 便捷选项
|
|
128
131
|
convenientOptions: [
|
|
@@ -144,7 +147,7 @@ export default {
|
|
|
144
147
|
label: "换手率(实)",
|
|
145
148
|
parent: {
|
|
146
149
|
varietyMarketIds: [3, 5, 7],
|
|
147
|
-
commonOptionIds: [4, 6, 12],
|
|
150
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
148
151
|
},
|
|
149
152
|
// 便捷选项
|
|
150
153
|
convenientOptions: [
|
|
@@ -164,7 +167,7 @@ export default {
|
|
|
164
167
|
label: "市盈率",
|
|
165
168
|
parent: {
|
|
166
169
|
varietyMarketIds: [3, 5, 7],
|
|
167
|
-
commonOptionIds: [4, 6, 12],
|
|
170
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
168
171
|
},
|
|
169
172
|
// 便捷选项
|
|
170
173
|
convenientOptions: [
|
|
@@ -186,7 +189,7 @@ export default {
|
|
|
186
189
|
label: "每股净收益",
|
|
187
190
|
parent: {
|
|
188
191
|
varietyMarketIds: [3, 5, 7],
|
|
189
|
-
commonOptionIds: [4, 6, 12],
|
|
192
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
190
193
|
},
|
|
191
194
|
// 便捷选项
|
|
192
195
|
convenientOptions: [
|
|
@@ -208,7 +211,7 @@ export default {
|
|
|
208
211
|
label: "是否ST",
|
|
209
212
|
parent: {
|
|
210
213
|
varietyMarketIds: [3, 5, 7],
|
|
211
|
-
commonOptionIds: [4, 6, 12],
|
|
214
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
212
215
|
},
|
|
213
216
|
type: "custom",
|
|
214
217
|
},
|
|
@@ -218,7 +221,7 @@ export default {
|
|
|
218
221
|
label: "市净率",
|
|
219
222
|
parent: {
|
|
220
223
|
varietyMarketIds: [3, 5, 7],
|
|
221
|
-
commonOptionIds: [4, 6, 12],
|
|
224
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
222
225
|
},
|
|
223
226
|
// 便捷选项
|
|
224
227
|
convenientOptions: [
|
|
@@ -239,7 +242,7 @@ export default {
|
|
|
239
242
|
label: "成交额",
|
|
240
243
|
parent: {
|
|
241
244
|
varietyMarketIds: [3, 5, 7],
|
|
242
|
-
commonOptionIds: [4, 6, 12],
|
|
245
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
243
246
|
},
|
|
244
247
|
// 便捷选项
|
|
245
248
|
convenientOptions: [
|
|
@@ -261,7 +264,7 @@ export default {
|
|
|
261
264
|
label: "净资产收益率roe",
|
|
262
265
|
parent: {
|
|
263
266
|
varietyMarketIds: [3, 5, 7],
|
|
264
|
-
commonOptionIds: [4, 6, 12],
|
|
267
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
265
268
|
},
|
|
266
269
|
// 便捷选项
|
|
267
270
|
convenientOptions: [
|
|
@@ -283,10 +286,30 @@ export default {
|
|
|
283
286
|
label: "净利润",
|
|
284
287
|
parent: {
|
|
285
288
|
varietyMarketIds: [3, 5, 7],
|
|
286
|
-
commonOptionIds: [4, 6, 12],
|
|
289
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
287
290
|
},
|
|
288
291
|
type: "custom",
|
|
289
292
|
},
|
|
293
|
+
// 股息率
|
|
294
|
+
{
|
|
295
|
+
key: "dividendYield",
|
|
296
|
+
label: "股息率",
|
|
297
|
+
parent: {
|
|
298
|
+
varietyMarketIds: [3, 5, 7],
|
|
299
|
+
commonOptionIds: [4, 6, 12, 13, 14, 15],
|
|
300
|
+
},
|
|
301
|
+
// 便捷选项
|
|
302
|
+
convenientOptions: [
|
|
303
|
+
{ range: [null, 1], unit: ["%", "%"], text: "≤1%" },
|
|
304
|
+
{ range: [1, 5], unit: ["%", "%"], text: "1%~5%" },
|
|
305
|
+
{ range: [5, 10], unit: ["%", "%"], text: "5%~10%" },
|
|
306
|
+
{ range: [10, null], unit: ["%", "%"], text: "≥10%" },
|
|
307
|
+
],
|
|
308
|
+
// 默认选中单位
|
|
309
|
+
defaultUnit: ["%", "%"],
|
|
310
|
+
// 单位下拉框选项
|
|
311
|
+
unitOptions: ["%"],
|
|
312
|
+
},
|
|
290
313
|
// ----------期权-----------
|
|
291
314
|
// 过期天数
|
|
292
315
|
{
|
|
@@ -94,22 +94,23 @@ const formatData = (data) => {
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
// =====================常用指标相关参数处理=====================
|
|
97
|
-
const QIQUANKYES = [
|
|
98
|
-
"expireDays",
|
|
99
|
-
"virtualRealDegree",
|
|
100
|
-
"yearProfitRate",
|
|
101
|
-
"impliedVolatility",
|
|
102
|
-
"levelMultiplier",
|
|
103
|
-
"turnover",
|
|
104
|
-
"volume",
|
|
105
|
-
"openInterest",
|
|
106
|
-
"optionsCpType",
|
|
107
|
-
"optionGear"
|
|
108
|
-
];
|
|
97
|
+
const QIQUANKYES = ["expireDays", "virtualRealDegree", "yearProfitRate", "impliedVolatility", "levelMultiplier", "turnover", "volume", "openInterest", "optionsCpType", "optionGear"];
|
|
109
98
|
// 1.常用指标-基本面( 表中 type: undefined 的指标, [期权]的常用指标不计入基本面)
|
|
110
99
|
const query = data.commonIndicator.reduce((result, item) => {
|
|
111
100
|
const { key, type, range, unit } = item;
|
|
112
|
-
|
|
101
|
+
// 股息率
|
|
102
|
+
if (key === "dividendYield") {
|
|
103
|
+
let [start, end] = range;
|
|
104
|
+
if (!["", null].includes(start)) start = start / 100;
|
|
105
|
+
if (!["", null].includes(end)) end = end / 100;
|
|
106
|
+
result.push({
|
|
107
|
+
column: item.key,
|
|
108
|
+
start,
|
|
109
|
+
end,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
// 其它基本面指标
|
|
113
|
+
else if (type === undefined && !QIQUANKYES.includes(key)) {
|
|
113
114
|
let [start, end] = range;
|
|
114
115
|
if (!["", null].includes(start)) {
|
|
115
116
|
switch (unit[0]) {
|
|
@@ -226,42 +227,81 @@ defineExpose({ formatData });
|
|
|
226
227
|
<template>
|
|
227
228
|
<div class="variety-search">
|
|
228
229
|
<!-- 品种市场 -->
|
|
229
|
-
<div
|
|
230
|
+
<div
|
|
231
|
+
v-if="config.varietyMarket?.show"
|
|
232
|
+
class="variety-search-row"
|
|
233
|
+
>
|
|
230
234
|
<div class="title">
|
|
231
235
|
<span>品种市场: </span>
|
|
232
236
|
<span @click="clearRow('varietyMarket')">不限</span>
|
|
233
237
|
</div>
|
|
234
|
-
<el-radio-group
|
|
235
|
-
|
|
238
|
+
<el-radio-group
|
|
239
|
+
v-model="searchData.varietyMarket"
|
|
240
|
+
size="small"
|
|
241
|
+
>
|
|
242
|
+
<el-radio
|
|
243
|
+
v-for="{ label, value } in varietyMarketDict"
|
|
244
|
+
:label="value"
|
|
245
|
+
:key="value"
|
|
246
|
+
>{{ label }}</el-radio
|
|
247
|
+
>
|
|
236
248
|
</el-radio-group>
|
|
237
249
|
</div>
|
|
238
250
|
<!-- 常用选项 -->
|
|
239
|
-
<div
|
|
251
|
+
<div
|
|
252
|
+
v-if="config.commonOption?.show && commonOptionDict.length"
|
|
253
|
+
class="variety-search-row"
|
|
254
|
+
>
|
|
240
255
|
<div class="title">
|
|
241
256
|
<span>常用选项: </span>
|
|
242
257
|
<span @click="clearRow('commonOption')">不限</span>
|
|
243
258
|
</div>
|
|
244
|
-
<el-checkbox-group
|
|
245
|
-
|
|
259
|
+
<el-checkbox-group
|
|
260
|
+
v-model="searchData.commonOption"
|
|
261
|
+
size="small"
|
|
262
|
+
>
|
|
263
|
+
<el-checkbox
|
|
264
|
+
v-for="{ label, value } in commonOptionDict"
|
|
265
|
+
:label="value"
|
|
266
|
+
:key="value"
|
|
267
|
+
>{{ label }}</el-checkbox
|
|
268
|
+
>
|
|
246
269
|
</el-checkbox-group>
|
|
247
270
|
</div>
|
|
248
271
|
<!-- 自定标签 -->
|
|
249
|
-
<div
|
|
272
|
+
<div
|
|
273
|
+
v-if="config.customTag?.show && customTagDict.length"
|
|
274
|
+
class="variety-search-row"
|
|
275
|
+
>
|
|
250
276
|
<div class="title">
|
|
251
277
|
<span>自定标签: </span>
|
|
252
278
|
<span @click="clearRow('customTag')">不限</span>
|
|
253
279
|
</div>
|
|
254
|
-
<el-checkbox-group
|
|
255
|
-
|
|
280
|
+
<el-checkbox-group
|
|
281
|
+
v-model="searchData.customTag"
|
|
282
|
+
size="small"
|
|
283
|
+
>
|
|
284
|
+
<el-checkbox
|
|
285
|
+
v-for="{ label, value } in customTagDict"
|
|
286
|
+
:label="value"
|
|
287
|
+
:key="value"
|
|
288
|
+
>{{ label }}</el-checkbox
|
|
289
|
+
>
|
|
256
290
|
</el-checkbox-group>
|
|
257
291
|
</div>
|
|
258
292
|
<!-- 因子筛选 -->
|
|
259
|
-
<div
|
|
293
|
+
<div
|
|
294
|
+
v-if="config.factorScreen?.show"
|
|
295
|
+
class="variety-search-row"
|
|
296
|
+
>
|
|
260
297
|
<div class="title">
|
|
261
298
|
<span>因子筛选: </span>
|
|
262
299
|
<span @click="clearRow('factorScreen')">不限</span>
|
|
263
300
|
</div>
|
|
264
|
-
<FactorScreen
|
|
301
|
+
<FactorScreen
|
|
302
|
+
v-model:data="searchData.factorScreen"
|
|
303
|
+
:config="config.factorScreen"
|
|
304
|
+
/>
|
|
265
305
|
</div>
|
|
266
306
|
<!-- 常用指标 -->
|
|
267
307
|
<CommonIndicator
|
|
@@ -296,7 +336,6 @@ defineExpose({ formatData });
|
|
|
296
336
|
margin-right: 20px;
|
|
297
337
|
}
|
|
298
338
|
.el-checkbox {
|
|
299
|
-
min-width: 80px;
|
|
300
339
|
margin-right: 20px;
|
|
301
340
|
}
|
|
302
341
|
}
|