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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "st-comp",
3
3
  "public": true,
4
- "version": "0.0.76",
4
+ "version": "0.0.78",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -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
- if (type === undefined && !QIQUANKYES.includes(key)) {
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 v-if="config.varietyMarket?.show" class="variety-search-row">
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 v-model="searchData.varietyMarket" size="small">
235
- <el-radio v-for="{ label, value } in varietyMarketDict" :label="value" :key="value">{{ label }}</el-radio>
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 v-if="config.commonOption?.show && commonOptionDict.length" class="variety-search-row">
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 v-model="searchData.commonOption" size="small">
245
- <el-checkbox v-for="{ label, value } in commonOptionDict" :label="value" :key="value">{{ label }}</el-checkbox>
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 v-if="config.customTag?.show && customTagDict.length" class="variety-search-row">
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 v-model="searchData.customTag" size="small">
255
- <el-checkbox v-for="{ label, value } in customTagDict" :label="value" :key="value">{{ label }}</el-checkbox>
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 v-if="config.factorScreen?.show" class="variety-search-row">
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 v-model:data="searchData.factorScreen" :config="config.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
  }