st-comp 0.0.129 → 0.0.130

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.129",
4
+ "version": "0.0.130",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -52,6 +52,18 @@ export default {
52
52
  show: true,
53
53
  options: [],
54
54
  },
55
+ // 常用选项 [选项: 前端默认]
56
+ jcTranslate: {
57
+ show: true,
58
+ jcOptions: [
59
+ { label: "恒指", value: "HZCFJC" },
60
+ { label: "恒生科技", value: "HSKJJC" },
61
+ { label: "上证50", value: "SZ50CFJC" },
62
+ { label: "沪深300", value: "HS300CFJC" },
63
+ { label: "中证500", value: "ZZ500CFJC" },
64
+ { label: "中证1000", value: "ZZ1000JC" },
65
+ ],
66
+ },
55
67
  // 因子筛选 [选项: 接口获取**!]
56
68
  factorScreen: {
57
69
  show: true,
@@ -279,7 +291,7 @@ export default {
279
291
  // 是否展示排名类型
280
292
  showRankType: true,
281
293
  // 默认单选类型 0: 数值类型 1: 排名
282
- defaultRadioType: '1',
294
+ defaultRadioType: "1",
283
295
  // 默认数值
284
296
  defaultRankRange: [0, 25],
285
297
  },
@@ -450,7 +462,7 @@ export default {
450
462
  // 是否展示排名类型
451
463
  showRankType: true,
452
464
  // 默认单选类型 0: 数值类型 1: 排名
453
- defaultRadioType: '1',
465
+ defaultRadioType: "1",
454
466
  // 默认数值
455
467
  defaultRankRange: [0, 25],
456
468
  },
@@ -471,7 +483,7 @@ export default {
471
483
  // 是否展示排名类型
472
484
  showRankType: true,
473
485
  // 默认单选类型 0: 数值类型 1: 排名
474
- defaultRadioType: '1',
486
+ defaultRadioType: "1",
475
487
  // 默认数值
476
488
  defaultRankRange: [0, 25],
477
489
  },
@@ -492,7 +504,7 @@ export default {
492
504
  // 是否展示排名类型
493
505
  showRankType: true,
494
506
  // 默认单选类型 0: 数值类型 1: 排名
495
- defaultRadioType: '1',
507
+ defaultRadioType: "1",
496
508
  // 默认数值
497
509
  defaultRankRange: [0, 25],
498
510
  },
@@ -16,6 +16,11 @@ searchData.value = Object.assign(searchData.value, {
16
16
  marketIds: [],
17
17
  // 自定标签
18
18
  customTag: [],
19
+ // 价差转换
20
+ jcTranslate: {
21
+ type: null,
22
+ jcList: [],
23
+ },
19
24
  // 因子筛选
20
25
  factorScreen: {
21
26
  list: [],
@@ -72,11 +77,50 @@ const marketIdsOptionDict = computed(() => {
72
77
  const customTagDict = computed(() => {
73
78
  return config.value.customTag.options;
74
79
  });
80
+ // 选项数据源: 价差转换
81
+ const jcOptions = computed(() => {
82
+ return config.value.jcTranslate.jcOptions;
83
+ });
75
84
 
76
85
  // 不限
77
86
  const clearRow = (key) => {
78
- if (["commonOption", "marketIds", "customTag", "factorScreen", "commonIndicator"].includes(key)) searchData.value[key] = [];
79
- else searchData.value[key] = null;
87
+ switch (key) {
88
+ case "commonOption": {
89
+ searchData.value[key] = [];
90
+ break;
91
+ }
92
+ case "marketIds": {
93
+ searchData.value[key] = [];
94
+ break;
95
+ }
96
+ case "customTag": {
97
+ searchData.value[key] = [];
98
+ break;
99
+ }
100
+ case "jcTranslate": {
101
+ searchData.value[key] = {
102
+ type: null,
103
+ jcList: [],
104
+ };
105
+ break;
106
+ }
107
+ case "factorScreen": {
108
+ searchData.value[key] = {
109
+ list: [],
110
+ sqlEnable: 0,
111
+ sqlValue: null,
112
+ };
113
+ break;
114
+ }
115
+ case "commonIndicator": {
116
+ searchData.value[key] = [];
117
+ break;
118
+ }
119
+ default: {
120
+ searchData.value[key] = null;
121
+ break;
122
+ }
123
+ }
80
124
  };
81
125
 
82
126
  // 监视: 常用选项数据源
@@ -107,7 +151,8 @@ watch(
107
151
  defineExpose({
108
152
  // 生成接口传参结构的数据
109
153
  formatData: (data) => {
110
- console.log("%c[st-varietySearch]: 正在生成接口传参结构的数据...", "color: tomato");
154
+ console.log("%c[品种池搜索聚合组件]: 正在校验并生成接口传参...", "color: tomato");
155
+ let validateFlag = true;
111
156
  const params = {};
112
157
  // 1.品种市场
113
158
  if (data.varietyMarket) {
@@ -125,7 +170,27 @@ defineExpose({
125
170
  if (data.customTag?.length) {
126
171
  params.tagIds = data.customTag;
127
172
  }
128
- // 5.因子筛选
173
+ // 5.价差转换
174
+ if (config.value.jcTranslate?.show) {
175
+ const { jcTranslate } = data;
176
+ const { type, jcList } = jcTranslate;
177
+ switch (type) {
178
+ case 1: {
179
+ if (!jcList || jcList.length === 0) {
180
+ ElMessage.warning("启用品种转价差功能时, 请至少选择一项价差品种");
181
+ validateFlag = false;
182
+ } else {
183
+ params.translateType = 1;
184
+ params.jcType = jcList.join(",");
185
+ }
186
+ break;
187
+ }
188
+ case 2: {
189
+ params.translateType = 2;
190
+ }
191
+ }
192
+ }
193
+ // 6.因子筛选
129
194
  if (config.value.factorScreen?.show) {
130
195
  const { factorScreen } = data;
131
196
  // tbFeatureFactorScores参数整理
@@ -197,7 +262,7 @@ defineExpose({
197
262
  // enableSql参数整理
198
263
  params.enableSql = factorScreen.sqlEnable === 1 ? 2 : 1;
199
264
  }
200
- // 6.常用指标
265
+ // 7.常用指标
201
266
  {
202
267
  const QIQUANKYES = ["expireDays", "virtualRealDegree", "yearProfitRate", "impliedVolatility", "levelMultiplier", "turnover", "volume", "openInterest", "optionsCpType", "optionGear"];
203
268
  // 1.常用指标-基本面(type:undefined的指标, 且[期权]的常用指标不计入基本面)
@@ -345,8 +410,8 @@ defineExpose({
345
410
  };
346
411
  }
347
412
  }
348
- console.log("%c[st-varietySearch]: 接口传参数据生成完毕", "color: green", params);
349
- return params;
413
+ console.log("%c[品种池搜索聚合组件]: 接口传参数据生成完毕", "color: green", params);
414
+ return { validateFlag, params };
350
415
  },
351
416
  // 重置函数
352
417
  reset: () => {
@@ -359,6 +424,11 @@ defineExpose({
359
424
  marketIds: [],
360
425
  // 自定标签
361
426
  customTag: [],
427
+ // 价差转换
428
+ jcTranslate: {
429
+ type: null,
430
+ jcList: [],
431
+ },
362
432
  // 因子筛选
363
433
  factorScreen: {
364
434
  list: [],
@@ -458,6 +528,40 @@ defineExpose({
458
528
  />
459
529
  </el-checkbox-group>
460
530
  </div>
531
+ <!-- 价差转换 -->
532
+ <div
533
+ v-if="config.jcTranslate?.show"
534
+ class="variety-search-row"
535
+ >
536
+ <div class="title">
537
+ <span>价差转换: </span>
538
+ <span @click="clearRow('jcTranslate')">不限</span>
539
+ </div>
540
+ <el-radio-group
541
+ v-model="searchData.jcTranslate.type"
542
+ size="small"
543
+ >
544
+ <el-radio :value="2">价差转品种</el-radio>
545
+ <el-radio :value="1">品种转价差</el-radio>
546
+ </el-radio-group>
547
+ <el-select
548
+ v-show="searchData.jcTranslate.type === 1"
549
+ v-model="searchData.jcTranslate.jcList"
550
+ size="small"
551
+ multiple
552
+ collapse-tags
553
+ collapse-tags-tooltip
554
+ placeholder="请选择价差品种"
555
+ style="width: 140px"
556
+ >
557
+ <el-option
558
+ v-for="item in jcOptions"
559
+ :key="item.value"
560
+ :label="item.label"
561
+ :value="item.value"
562
+ />
563
+ </el-select>
564
+ </div>
461
565
  <!-- 因子筛选 -->
462
566
  <div
463
567
  v-if="config.factorScreen?.show"
@@ -20,8 +20,12 @@ const varietySearchRef = ref(null);
20
20
  const varietySearchData = ref({
21
21
  varietyMarket: null,
22
22
  commonOption: [],
23
- // marketIds: [],
23
+ marketIds: [],
24
24
  customTag: [],
25
+ jcTranslate: {
26
+ type: null,
27
+ jcList: [],
28
+ },
25
29
  factorScreen: {
26
30
  list: [],
27
31
  sqlEnable: 0,