st-comp 0.0.107 → 0.0.110
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/FactorWarning.cjs +1 -1
- package/es/FactorWarning.js +7 -7
- package/es/VarietySearch.cjs +1 -1
- package/es/VarietySearch.js +894 -816
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +160 -160
- package/lib/{index-917cb6c6.js → index-81a69016.js} +10410 -10332
- package/lib/{python-b2715fd4.js → python-d8a3eee7.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/VarietySearch/components/CommonIndicator/index.vue +34 -5
- package/packages/VarietySearch/config.js +24 -0
- package/packages/VarietySearch/index.vue +20 -3
- /package/es/{el-radio-group-12b07ac2.js → el-radio-button-12b07ac2.js} +0 -0
- /package/es/{el-radio-group-5259a46b.cjs → el-radio-button-5259a46b.cjs} +0 -0
package/package.json
CHANGED
|
@@ -88,6 +88,8 @@ const clickIndicator = (item) => {
|
|
|
88
88
|
...baseParams,
|
|
89
89
|
range: [null, null],
|
|
90
90
|
unit: item.defaultUnit.length ? [...item.defaultUnit] : [null, null],
|
|
91
|
+
radioType: item.defaultRadioType, // 0数值 1排名
|
|
92
|
+
rankRange: item.defaultRankRange || [null, null],// 默认排名
|
|
91
93
|
};
|
|
92
94
|
}
|
|
93
95
|
}
|
|
@@ -146,18 +148,19 @@ const submitDialog = () => {
|
|
|
146
148
|
}
|
|
147
149
|
// 其它的通用处理
|
|
148
150
|
default: {
|
|
149
|
-
const { label,
|
|
151
|
+
const { label, unit, radioType } = indicatorValue.value;
|
|
152
|
+
const range = radioType === '1' ? indicatorValue.value.rankRange : indicatorValue.value.range;
|
|
150
153
|
// 校验
|
|
151
154
|
if (["", null].includes(range[0]) && ["", null].includes(range[1])) {
|
|
152
155
|
return ElMessage.warning("格式错误: 请至少填写一个值");
|
|
153
156
|
}
|
|
154
157
|
// 格式化文案
|
|
155
158
|
if (!["", null].includes(range[0]) && !["", null].includes(range[1])) {
|
|
156
|
-
indicatorValue.value.tagText = `${label}: ${range[0]}${unit[0] ?? ""} ~ ${range[1]}${unit[1] ?? ""}`;
|
|
159
|
+
indicatorValue.value.tagText = `${label}${radioType === '1' ? '排名' : ''}: ${range[0]}${unit[0] ?? ""} ~ ${range[1]}${unit[1] ?? ""}`;
|
|
157
160
|
} else if (!["", null].includes(range[0])) {
|
|
158
|
-
indicatorValue.value.tagText = `${label}: ≥${range[0]}${unit[0] ?? ""}`;
|
|
161
|
+
indicatorValue.value.tagText = `${label}${radioType === '1' ? '排名' : ''}: ≥${range[0]}${unit[0] ?? ""}`;
|
|
159
162
|
} else {
|
|
160
|
-
indicatorValue.value.tagText = `${label}: ≤${range[1]}${unit[1] ?? ""}`;
|
|
163
|
+
indicatorValue.value.tagText = `${label}${radioType === '1' ? '排名' : ''}: ≤${range[1]}${unit[1] ?? ""}`;
|
|
161
164
|
}
|
|
162
165
|
}
|
|
163
166
|
}
|
|
@@ -289,8 +292,34 @@ watch(
|
|
|
289
292
|
align-center
|
|
290
293
|
destroy-on-close
|
|
291
294
|
>
|
|
295
|
+
<template #header v-if="nowIndicator.showRankType">
|
|
296
|
+
<span style="font-size: 18px;">{{ nowIndicator.label }}</span>
|
|
297
|
+
<el-radio-group
|
|
298
|
+
v-model="indicatorValue.radioType"
|
|
299
|
+
style="vertical-align: 4px; margin-left: 12px;"
|
|
300
|
+
>
|
|
301
|
+
<el-radio-button label="数值" value="0" />
|
|
302
|
+
<el-radio-button label="排名" value="1" />
|
|
303
|
+
</el-radio-group>
|
|
304
|
+
</template>
|
|
305
|
+
|
|
306
|
+
<template v-if="nowIndicator.type === undefined && indicatorValue.radioType === '1'">
|
|
307
|
+
<!-- 输入框区域 -->
|
|
308
|
+
<div class="out-box">
|
|
309
|
+
<span>自定义: </span>
|
|
310
|
+
<el-input
|
|
311
|
+
v-model="indicatorValue.rankRange[0]"
|
|
312
|
+
style="flex: 1"
|
|
313
|
+
/>
|
|
314
|
+
~
|
|
315
|
+
<el-input
|
|
316
|
+
v-model="indicatorValue.rankRange[1]"
|
|
317
|
+
style="flex: 1"
|
|
318
|
+
/>
|
|
319
|
+
</div>
|
|
320
|
+
</template>
|
|
292
321
|
<!-- type: undefined 为默认便捷配置项 + 输入框形式 -->
|
|
293
|
-
<template v-if="nowIndicator.type === undefined">
|
|
322
|
+
<template v-else-if="nowIndicator.type === undefined">
|
|
294
323
|
<!-- 便捷配置项区域 -->
|
|
295
324
|
<div
|
|
296
325
|
class="convenient-option-box"
|
|
@@ -276,6 +276,12 @@ export default {
|
|
|
276
276
|
defaultUnit: ["亿", "亿"],
|
|
277
277
|
// 单位下拉框选项
|
|
278
278
|
unitOptions: ["元", "千万", "亿"],
|
|
279
|
+
// 是否展示排名类型
|
|
280
|
+
showRankType: true,
|
|
281
|
+
// 默认单选类型 0: 数值类型 1: 排名
|
|
282
|
+
defaultRadioType: '1',
|
|
283
|
+
// 默认数值
|
|
284
|
+
defaultRankRange: [0, 25],
|
|
279
285
|
},
|
|
280
286
|
// 净资产收益率roe
|
|
281
287
|
{
|
|
@@ -441,6 +447,12 @@ export default {
|
|
|
441
447
|
defaultUnit: ["万", "万"],
|
|
442
448
|
// 单位下拉框选项
|
|
443
449
|
unitOptions: ["万"],
|
|
450
|
+
// 是否展示排名类型
|
|
451
|
+
showRankType: true,
|
|
452
|
+
// 默认单选类型 0: 数值类型 1: 排名
|
|
453
|
+
defaultRadioType: '1',
|
|
454
|
+
// 默认数值
|
|
455
|
+
defaultRankRange: [0, 25],
|
|
444
456
|
},
|
|
445
457
|
// 成交量
|
|
446
458
|
{
|
|
@@ -456,6 +468,12 @@ export default {
|
|
|
456
468
|
defaultUnit: [],
|
|
457
469
|
// 单位下拉框选项
|
|
458
470
|
unitOptions: [],
|
|
471
|
+
// 是否展示排名类型
|
|
472
|
+
showRankType: true,
|
|
473
|
+
// 默认单选类型 0: 数值类型 1: 排名
|
|
474
|
+
defaultRadioType: '1',
|
|
475
|
+
// 默认数值
|
|
476
|
+
defaultRankRange: [0, 25],
|
|
459
477
|
},
|
|
460
478
|
// 持仓量
|
|
461
479
|
{
|
|
@@ -471,6 +489,12 @@ export default {
|
|
|
471
489
|
defaultUnit: [],
|
|
472
490
|
// 单位下拉框选项
|
|
473
491
|
unitOptions: [],
|
|
492
|
+
// 是否展示排名类型
|
|
493
|
+
showRankType: true,
|
|
494
|
+
// 默认单选类型 0: 数值类型 1: 排名
|
|
495
|
+
defaultRadioType: '1',
|
|
496
|
+
// 默认数值
|
|
497
|
+
defaultRankRange: [0, 25],
|
|
474
498
|
},
|
|
475
499
|
// 认沽认购
|
|
476
500
|
{
|
|
@@ -109,6 +109,7 @@ defineExpose({
|
|
|
109
109
|
formatData: (data) => {
|
|
110
110
|
console.log("%c[st-varietySearch]: 正在生成接口传参结构的数据...", "color: tomato");
|
|
111
111
|
const params = {};
|
|
112
|
+
const searchOptionDto = { rangeDtoList: [] }; // 期权相关筛选
|
|
112
113
|
// 1.品种市场
|
|
113
114
|
if (data.varietyMarket) {
|
|
114
115
|
params.exchangeId = String(data.varietyMarket);
|
|
@@ -201,9 +202,26 @@ defineExpose({
|
|
|
201
202
|
const QIQUANKYES = ["expireDays", "virtualRealDegree", "yearProfitRate", "impliedVolatility", "levelMultiplier", "turnover", "volume", "openInterest", "optionsCpType", "optionGear"];
|
|
202
203
|
// 1.常用指标-基本面(type:undefined的指标, 且[期权]的常用指标不计入基本面)
|
|
203
204
|
const query = data.commonIndicator.reduce((result, item) => {
|
|
204
|
-
const { key, type, range, unit } = item;
|
|
205
|
+
const { key, type, range, unit, radioType, rankRange } = item;
|
|
206
|
+
// 排名模式
|
|
207
|
+
if (radioType === '1') {
|
|
208
|
+
if (QIQUANKYES.includes(key)) {
|
|
209
|
+
searchOptionDto.rangeDtoList.push({
|
|
210
|
+
column: item.key,
|
|
211
|
+
start: rankRange[0] || null,
|
|
212
|
+
end: rankRange[1] || null,
|
|
213
|
+
})
|
|
214
|
+
} else {
|
|
215
|
+
result.push({
|
|
216
|
+
column: item.key,
|
|
217
|
+
type: '1',
|
|
218
|
+
start: rankRange[0] || null,
|
|
219
|
+
end: rankRange[1] || null,
|
|
220
|
+
})
|
|
221
|
+
}
|
|
222
|
+
}
|
|
205
223
|
// 股息率
|
|
206
|
-
if (key === "dividendYield") {
|
|
224
|
+
else if (key === "dividendYield") {
|
|
207
225
|
let [start, end] = range;
|
|
208
226
|
if (!["", null].includes(start)) start = start / 100;
|
|
209
227
|
if (!["", null].includes(end)) end = end / 100;
|
|
@@ -274,7 +292,6 @@ defineExpose({
|
|
|
274
292
|
params.peTtmLevels = peTtmLevelIndicator.peTtmLevels;
|
|
275
293
|
}
|
|
276
294
|
// 6.常用指标-期权相关参数
|
|
277
|
-
const searchOptionDto = {};
|
|
278
295
|
data.commonIndicator.forEach((item) => {
|
|
279
296
|
const { key } = item;
|
|
280
297
|
switch (key) {
|
|
File without changes
|
|
File without changes
|