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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "st-comp",
3
3
  "public": true,
4
- "version": "0.0.107",
4
+ "version": "0.0.110",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -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, range, unit } = indicatorValue.value;
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) {