sbd-npm 1.1.33 → 1.1.37

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.
Files changed (4) hide show
  1. package/menu.js +127 -127
  2. package/package.json +1 -1
  3. package/util.js +198 -0
  4. package/.npmignore +0 -1
package/menu.js CHANGED
@@ -1,230 +1,230 @@
1
- let MenuList = [
1
+ const MenuList = [
2
2
  {
3
3
  'name': '概要',
4
4
  'icon': 'home',
5
5
  'menu': [
6
- {'url': '/7309c10f31af473f61bef09ebeead316', 'name': '每日概要'},
7
- {'url': '/27166fcfc5f01ab0321b5f5bb62dd0dc', 'name': '每周概要'},
8
- {'url': '/36bfa7608290cb24310a89b17fb04287', 'name': '市场概要'},
9
- {'url': '/da44721a4d3f7076da38ab105d99e10f', 'name': '市场宽度'},
10
- {'url': '/b4e3a6b6500dc520e1414c30a988874e', 'name': '市场全景'},
11
- {'url': '/cd0dba3c406c34b0a52c33ecd18a5555', 'name': 'ETF分析'},
12
- {'url': '/8b011542774efb75f7c912dbfcc4eb6a', 'name': '板块涨跌'},
13
- {'url': '/b8c96463bc69246f833f7e77f54aa7e8', 'name': '闲钱流向'},
14
- {'url': '/cd3b237255de2b89eff8b79a37a860c3', 'name': '融资杠杠率'},
15
- {'url': '/13a5f8cacb58863ad5ecefaf42641f8c', 'name': '板块动量'},
16
- {'url': '/13ba7b4289389ffc2a022fedcb79bb6c', 'name': '指数'},
6
+ {'key': 'daily', 'name': '每日概要', 'url': '/7309c10f31af473f61bef09ebeead316'},
7
+ {'key': 'week', 'name': '每周概要', 'url': '/27166fcfc5f01ab0321b5f5bb62dd0dc'},
8
+ {'key': 'market', 'name': '市场概要', 'url': '/36bfa7608290cb24310a89b17fb04287'},
9
+ {'key': 'breadth', 'name': '市场宽度', 'url': '/da44721a4d3f7076da38ab105d99e10f'},
10
+ {'key': 'dashboard', 'name': '市场全景', 'url': '/b4e3a6b6500dc520e1414c30a988874e'},
11
+ {'key': 'etf', 'name': 'ETF分析', 'url': '/cd0dba3c406c34b0a52c33ecd18a5555'},
12
+ {'key': 'industry', 'name': '板块涨跌', 'url': '/8b011542774efb75f7c912dbfcc4eb6a'},
13
+ {'key': 'repurchase', 'name': '闲钱流向', 'url': '/b8c96463bc69246f833f7e77f54aa7e8'},
14
+ {'key': 'margin_lever', 'name': '融资杠杠率', 'url': '/cd3b237255de2b89eff8b79a37a860c3'},
15
+ {'key': 'momentum', 'name': '板块动量', 'url': '/13a5f8cacb58863ad5ecefaf42641f8c'},
16
+ {'key': 'index', 'name': '指数', 'url': '/13ba7b4289389ffc2a022fedcb79bb6c'},
17
17
  ]
18
18
  },
19
19
  {
20
20
  'name': '每日数据',
21
21
  'icon': 'th',
22
22
  'menu': [
23
- {'url': '/cb7f9dc62cd2b791c72bcae963f46f6f', 'name': '融资融券'},
24
- {'url': '/724b21d39b1e12612a7c2f1566fae537', 'name': '成交量(大量)'},
25
- {'url': '/62abc0c96d6c645ac48266a9f992c94e', 'name': '缺口'},
26
- {'url': '/24dd2011688262b0376740a2e7d8f89f', 'name': '每日新高'},
27
- {'url': '/3181e658b3cc36b1bf38eef512cf0875', 'name': '换手率'},
28
- {'url': '/62f39719b7a975849c31715f53e4113b', 'name': '成交金额'},
29
- {'url': '/d5624fd6e10e8e5c8eee186f65eedecd', 'name': '买入卖出'},
30
- {'url': '/ad75e919efbd8e7b29c7ffd1eb796d7c', 'name': '大单交易'},
31
- {'url': '/a63a894a38ae2441f5cf06289f291a74', 'name': '大宗交易'},
23
+ {'key': 'margin', 'name': '融资融券', 'url': '/cb7f9dc62cd2b791c72bcae963f46f6f'},
24
+ {'key': 'volume', 'name': '成交量(大量)', 'url': '/724b21d39b1e12612a7c2f1566fae537'},
25
+ {'key': 'gap', 'name': '缺口', 'url': '/62abc0c96d6c645ac48266a9f992c94e'},
26
+ {'key': 'price_top', 'name': '每日新高', 'url': '/24dd2011688262b0376740a2e7d8f89f'},
27
+ {'key': 'turnover', 'name': '换手率', 'url': '/3181e658b3cc36b1bf38eef512cf0875'},
28
+ {'key': 'amount', 'name': '成交金额', 'url': '/62f39719b7a975849c31715f53e4113b'},
29
+ {'key': 'buy_sell', 'name': '买入卖出', 'url': '/d5624fd6e10e8e5c8eee186f65eedecd'},
30
+ {'key': 'big_deal', 'name': '大单交易', 'url': '/ad75e919efbd8e7b29c7ffd1eb796d7c'},
31
+ {'key': 'block', 'name': '大宗交易', 'url': '/a63a894a38ae2441f5cf06289f291a74'},
32
32
  ]
33
33
  },
34
34
  {
35
35
  'name': '沪深港股通',
36
36
  'icon': 'cogs',
37
37
  'menu': [
38
- {'url': '/5937626987e8d1de7e476df2733826e0', 'name': '资金流向'},
39
- {'url': '/1a368a407fc565fe5986fabbfdf84abc', 'name': '成交股统计'},
40
- {'url': '/32eb0309992a35c3bee1e409fa0f6aa9', 'name': '港资持股比例'},
38
+ {'key': 'flow', 'name': '资金流向', 'url': '/5937626987e8d1de7e476df2733826e0'},
39
+ {'key': 'stock', 'name': '成交股统计', 'url': '/1a368a407fc565fe5986fabbfdf84abc'},
40
+ {'key': 'hkex_holding', 'name': '港资持股比例', 'url': '/32eb0309992a35c3bee1e409fa0f6aa9'},
41
41
  ]
42
42
  },
43
43
  {
44
44
  'name': '趋势分析',
45
45
  'icon': 'edit',
46
46
  'menu': [
47
- {'url': '/0d4149f16817b19750dd0047992b5945', 'name': '布林线'},
48
- {'url': '/5d602be4a2fd95b9f92ac8487bd48718', 'name': '20、60日均线交叉'},
49
- {'url': '/c8ccdc20b23ca0c06c1ccb732982a906', 'name': 'MACD下行'},
50
- {'url': '/c8ba55497962e05564e756dc59c62ad9', 'name': '十字星'},
51
- {'url': '/3893369701648bd4c66a3751f4fd6fa8', 'name': '突破5、10日均线'},
52
- {'url': '/48d5cb9b8881da80fe7abee3dc663a09', 'name': '周成交低点'},
53
- {'url': '/dc2ca8780bbf0d134e15f43e357f3b8c', 'name': '融资融券余额涨幅'},
54
- {'url': '/afec46b0e5cf002187d69c0b48921779', 'name': '股价升跌幅度'},
55
- {'url': '/0cd17458464fbaf9e6daf21b07b14c62', 'name': '当前连跌个股'},
56
- {'url': '/463ac6e94042a6013f209720f20e0522', 'name': '连跌反弹概率'},
57
- {'url': '/59d6449da85035a4ca049b0cfdd80736', 'name': '指数每年月份涨跌'},
58
- {'url': '/9ea99fbd4c9aa2a6a8dcc76a01c69b1c', 'name': '均线近似重合'},
59
- {'url': '/4df78a347eadf7365bfd2b401bfee044', 'name': '趋势查询'},
47
+ {'key': 'boll', 'name': '布林线', 'url': '/0d4149f16817b19750dd0047992b5945'},
48
+ {'key': 'ma20_60', 'name': '20、60日均线交叉', 'url': '/5d602be4a2fd95b9f92ac8487bd48718'},
49
+ {'key': 'macd_down', 'name': 'MACD下行', 'url': '/c8ccdc20b23ca0c06c1ccb732982a906'},
50
+ {'key': 'doji', 'name': '十字星', 'url': '/c8ba55497962e05564e756dc59c62ad9'},
51
+ {'key': 'ma510', 'name': '突破5、10日均线', 'url': '/3893369701648bd4c66a3751f4fd6fa8'},
52
+ {'key': 'week_minimum', 'name': '周成交低点', 'url': '/48d5cb9b8881da80fe7abee3dc663a09'},
53
+ {'key': 'margin', 'name': '融资融券余额涨幅', 'url': '/dc2ca8780bbf0d134e15f43e357f3b8c'},
54
+ {'key': 'price', 'name': '股价升跌幅度', 'url': '/afec46b0e5cf002187d69c0b48921779'},
55
+ {'key': 'down', 'name': '当前连跌个股', 'url': '/0cd17458464fbaf9e6daf21b07b14c62'},
56
+ {'key': 'down_analysis', 'name': '连跌反弹概率', 'url': '/463ac6e94042a6013f209720f20e0522'},
57
+ {'key': 'index_month', 'name': '指数每年月份涨跌', 'url': '/59d6449da85035a4ca049b0cfdd80736'},
58
+ {'key': 'ma', 'name': '均线近似重合', 'url': '/9ea99fbd4c9aa2a6a8dcc76a01c69b1c'},
59
+ {'key': 'query', 'name': '趋势查询', 'url': '/4df78a347eadf7365bfd2b401bfee044'},
60
60
  ]
61
61
  },
62
62
  {
63
63
  'name': '宏观数据',
64
64
  'icon': 'globe',
65
65
  'menu': [
66
- {'url': '/f0b5e3da657b53b236e591fdf1fdd7f9', 'name': '十年国债收益率'},
67
- {'url': '/e63aadc37bb771ade8c3a58e1673a2cc', 'name': '货币供应量'},
68
- {'url': '/39501dfa2cbe6f9813b12e497ee4b7d0', 'name': '货币汇率'},
69
- {'url': '/4a15ab4a66ba8a256576c1a615fd5deb', 'name': '新增贷款'},
70
- {'url': '/99e5df77e73cb87181f508ad9ce8d7aa', 'name': '社会融资规模'},
71
- {'url': '/d71e4691f1e51f5433ed2240b7880947', 'name': 'Shibor 拆放利率'},
72
- {'url': '/c900ca40929d6da666ced0e71dfa6ff5', 'name': '制造业采购经理指数(PMI)'},
73
- {'url': '/11cc5938d34445d1e68d514b3c64d0b7', 'name': '新增投资者'},
66
+ {'key': 'bond_yield', 'name': '十年国债收益率', 'url': '/f0b5e3da657b53b236e591fdf1fdd7f9'},
67
+ {'key': 'money_supply', 'name': '货币供应量', 'url': '/e63aadc37bb771ade8c3a58e1673a2cc'},
68
+ {'key': 'currency', 'name': '货币汇率', 'url': '/39501dfa2cbe6f9813b12e497ee4b7d0'},
69
+ {'key': 'new_loan', 'name': '新增贷款', 'url': '/4a15ab4a66ba8a256576c1a615fd5deb'},
70
+ {'key': 'social_financing', 'name': '社会融资规模', 'url': '/99e5df77e73cb87181f508ad9ce8d7aa'},
71
+ {'key': 'shibor', 'name': 'Shibor 拆放利率', 'url': '/d71e4691f1e51f5433ed2240b7880947'},
72
+ {'key': 'pmi', 'name': '制造业采购经理指数(PMI)', 'url': '/c900ca40929d6da666ced0e71dfa6ff5'},
73
+ {'key': 'new_investor', 'name': '新增投资者', 'url': '/11cc5938d34445d1e68d514b3c64d0b7'},
74
74
  ]
75
75
  },
76
76
  {
77
77
  'name': '数字币',
78
78
  'icon': 'btc',
79
79
  'menu': [
80
- {'url': '/0767b963536b1211c41995a270481708', 'name': '币种概况'},
81
- {'url': '/6cb301764e6532061581912dc1f617b9', 'name': '价格走势'},
82
- {'url': '/051f571c0c0e78aa50f7b20d94ee0986', 'name': '灰度持仓'},
83
- {'url': '/6afce639497aea6180a633d0a5db3f1a', 'name': 'GPU收益排行'},
80
+ {'key': 'summary', 'name': '币种概况', 'url': '/0767b963536b1211c41995a270481708'},
81
+ {'key': 'price', 'name': '价格走势', 'url': '/6cb301764e6532061581912dc1f617b9'},
82
+ {'key': 'grayscale', 'name': '灰度持仓', 'url': '/051f571c0c0e78aa50f7b20d94ee0986'},
83
+ {'key': 'gpu', 'name': 'GPU收益排行', 'url': '/6afce639497aea6180a633d0a5db3f1a'},
84
84
  ]
85
85
  },
86
86
  {
87
87
  'name': '股东股份',
88
88
  'icon': 'cog',
89
89
  'menu': [
90
- {'url': '/c30c1765e2a62433c6846dd6533a783d', 'name': '十大股东'},
91
- {'url': '/01f5ca011133587b0c752ccb8bf5dba4', 'name': '内部交易'},
92
- {'url': '/80901c3c7a8ab14fd7ad3c29ad2e5e50', 'name': '股东户数'},
93
- {'url': '/ee7b8593133dffc9862ec3bb2b5cef5a', 'name': '股票质押'},
94
- {'url': '/8ecab9d146d904b13b65c9fdab7dc8d4', 'name': '限售股解禁'},
95
- {'url': '/507089904241bec910fcb8f5fb9f8dd8', 'name': 'QFII重仓'},
90
+ {'key': 'top', 'name': '十大股东', 'url': '/c30c1765e2a62433c6846dd6533a783d'},
91
+ {'key': 'insider', 'name': '内部交易', 'url': '/01f5ca011133587b0c752ccb8bf5dba4'},
92
+ {'key': 'num', 'name': '股东户数', 'url': '/80901c3c7a8ab14fd7ad3c29ad2e5e50'},
93
+ {'key': 'pledged', 'name': '股票质押', 'url': '/ee7b8593133dffc9862ec3bb2b5cef5a'},
94
+ {'key': 'restricted', 'name': '限售股解禁', 'url': '/8ecab9d146d904b13b65c9fdab7dc8d4'},
95
+ {'key': 'qfii', 'name': 'QFII重仓', 'url': '/507089904241bec910fcb8f5fb9f8dd8'},
96
96
  ]
97
97
  },
98
98
  {
99
99
  'name': '公告/研报',
100
100
  'icon': 'tasks',
101
101
  'menu': [
102
- {'url': '/098aa42c21facb8e6709958a2d73cd3a', 'name': '机构研报'},
103
- {'url': '/549dd32367e7699ac586bc7d1b331865', 'name': '利好公告'},
104
- {'url': '/19055582bd53c214692b1a12fc3e9b02', 'name': '业绩预增'},
105
- {'url': '/64b77b71d67409a1668d430402e7246d', 'name': '年度业绩预告'},
106
- {'url': '/03c06ff755a05cdaa152394a0d533777', 'name': '股份质押'},
107
- {'url': '/edaa1c4ac82834297a3b2f639a973b3f', 'name': '股份回购'},
108
- {'url': '/8ff753a55443a534bb2c19095d8e71fb', 'name': '公告查找'},
109
- {'url': '/827034006bbe4f9f7bc1846dcdd440f9', 'name': '年度报告'},
102
+ {'key': 'organization', 'name': '机构研报', 'url': '/098aa42c21facb8e6709958a2d73cd3a'},
103
+ {'key': 'bull', 'name': '利好公告', 'url': '/549dd32367e7699ac586bc7d1b331865'},
104
+ {'key': 'performance', 'name': '业绩预增', 'url': '/19055582bd53c214692b1a12fc3e9b02'},
105
+ {'key': 'forecast', 'name': '年度业绩预告', 'url': '/64b77b71d67409a1668d430402e7246d'},
106
+ {'key': 'pledged', 'name': '股份质押', 'url': '/03c06ff755a05cdaa152394a0d533777'},
107
+ {'key': 'repurchase', 'name': '股份回购', 'url': '/edaa1c4ac82834297a3b2f639a973b3f'},
108
+ {'key': 'search', 'name': '公告查找', 'url': '/8ff753a55443a534bb2c19095d8e71fb'},
109
+ {'key': 'report_annual', 'name': '年度报告', 'url': '/827034006bbe4f9f7bc1846dcdd440f9'},
110
110
  ]
111
111
  },
112
112
  {
113
113
  'name': '基金',
114
114
  'icon': 'rub',
115
115
  'menu': [
116
- {'url': '/8ccdc1674f59271204786c593cfd44aa', 'name': '公募基金列表'},
117
- {'url': '/6a25b479f9af7ca10912513f05151098', 'name': '私募基金排行'},
118
- {'url': '/3e59a7e4568b01cef9b2cb4809cf4acf', 'name': '私募经理排行'},
119
- {'url': '/9e3d786fe8a63d07e2d2b2cd3118dc4c', 'name': '私募公司排行'},
116
+ {'key': 'public', 'name': '公募基金列表', 'url': '/8ccdc1674f59271204786c593cfd44aa'},
117
+ {'key': 'private_list', 'name': '私募基金排行', 'url': '/6a25b479f9af7ca10912513f05151098'},
118
+ {'key': 'private_manager', 'name': '私募经理排行', 'url': '/3e59a7e4568b01cef9b2cb4809cf4acf'},
119
+ {'key': 'private_company', 'name': '私募公司排行', 'url': '/9e3d786fe8a63d07e2d2b2cd3118dc4c'},
120
120
  ]
121
121
  },
122
122
  {
123
123
  'name': '概念股',
124
124
  'icon': 'retweet',
125
125
  'menu': [
126
- {'url': '/fca66480b61534e2ea1d47861884e313', 'name': '每周精选'},
127
- {'url': '/0f7226866475982d2a80497b9fa1719a', 'name': '关注'},
128
- {'url': '/2e1a34cc6bd2d6e92f962e4ef9b9f333', 'name': '龙头股'},
129
- {'url': '/4229754a8bec7b021c259956c70dba74', 'name': '市值风云'},
130
- {'url': '/65656ebe27216279cd66db60c7837349', 'name': '老曾阿牛'},
131
- {'url': '/ee1480d344e0a5cc26db27e180f1e75e', 'name': '唐史主任司马迁'},
132
- {'url': '/548a55ff9dc4e6e09d02693cd6428983', 'name': '但斌'},
133
- {'url': '/5db277c762d363cc2e6a9cf6514f461c', 'name': '简放'},
134
- {'url': '/ffcab46df03e3098ac873f3c3b19caec', 'name': '浙商卢献星'},
135
- {'url': '/a260940f6937ebb225f802b1dffd772e', 'name': '高瓴资本'},
136
- {'url': '/8bb2e92c534697fd52bff0faa7af854e', 'name': '港股'},
137
- {'url': '/43d9d1304310863541c8bbb8ea8e8664', 'name': '美股'},
138
- {'url': '/e5e88ad96569356918a6e5946cb0f3fc', 'name': '芯片'},
139
- {'url': '/b050cf88e223b65652d14cccb95ec92f', 'name': '军工'},
140
- {'url': '/921c1a2d55bab95dcce0cac4e84ddec6', 'name': 'MSCI'},
141
- {'url': '/89219f563cd2d0cf7389071e1d7415f0', 'name': '港交所'},
142
- {'url': '/579b07df1cf1c1791e8ee1ccddf09e48', 'name': 'AH股'},
143
- {'url': '/4e83ce6462ef3f63509dcbaa6c78a66e', 'name': 'ST股'},
144
- {'url': '/bce8f019028d016fe2e3676c868fab15', 'name': '十倍股'},
126
+ {'key': 'week_recommend', 'name': '每周精选', 'url': '/fca66480b61534e2ea1d47861884e313'},
127
+ {'key': 'recommend', 'name': '关注', 'url': '/0f7226866475982d2a80497b9fa1719a'},
128
+ {'key': 'bellwether', 'name': '龙头股', 'url': '/2e1a34cc6bd2d6e92f962e4ef9b9f333'},
129
+ {'key': 'market_situation', 'name': '市值风云', 'url': '/4229754a8bec7b021c259956c70dba74'},
130
+ {'key': 'niu', 'name': '老曾阿牛', 'url': '/65656ebe27216279cd66db60c7837349'},
131
+ {'key': 'qian', 'name': '唐史主任司马迁', 'url': '/ee1480d344e0a5cc26db27e180f1e75e'},
132
+ {'key': 'dan', 'name': '但斌', 'url': '/548a55ff9dc4e6e09d02693cd6428983'},
133
+ {'key': 'jianfang', 'name': '简放', 'url': '/5db277c762d363cc2e6a9cf6514f461c'},
134
+ {'key': 'zhe', 'name': '浙商卢献星', 'url': '/ffcab46df03e3098ac873f3c3b19caec'},
135
+ {'key': 'hill', 'name': '高瓴资本', 'url': '/a260940f6937ebb225f802b1dffd772e'},
136
+ {'key': 'hk', 'name': '港股', 'url': '/8bb2e92c534697fd52bff0faa7af854e'},
137
+ {'key': 'us', 'name': '美股', 'url': '/43d9d1304310863541c8bbb8ea8e8664'},
138
+ {'key': 'chip', 'name': '芯片', 'url': '/e5e88ad96569356918a6e5946cb0f3fc'},
139
+ {'key': 'military', 'name': '军工', 'url': '/b050cf88e223b65652d14cccb95ec92f'},
140
+ {'key': 'msci', 'name': 'MSCI', 'url': '/921c1a2d55bab95dcce0cac4e84ddec6'},
141
+ {'key': 'hkscc', 'name': '港交所', 'url': '/89219f563cd2d0cf7389071e1d7415f0'},
142
+ {'key': 'ah', 'name': 'AH股', 'url': '/579b07df1cf1c1791e8ee1ccddf09e48'},
143
+ {'key': 'st', 'name': 'ST股', 'url': '/4e83ce6462ef3f63509dcbaa6c78a66e'},
144
+ {'key': 'ten', 'name': '十倍股', 'url': '/bce8f019028d016fe2e3676c868fab15'},
145
145
  ]
146
146
  },
147
147
  {
148
148
  'name': '查询',
149
149
  'icon': 'search',
150
150
  'menu': [
151
- {'url': '/3cbef61e38f4468bdab334ce7311d70e', 'name': '查询'},
152
- {'url': '/9c4ebddce2ee0c84401b740c4432336c', 'name': '盈利查询'},
151
+ {'key': 'list', 'name': '查询', 'url': '/3cbef61e38f4468bdab334ce7311d70e'},
152
+ {'key': 'profit', 'name': '盈利查询', 'url': '/9c4ebddce2ee0c84401b740c4432336c'},
153
153
  ]
154
154
  },
155
155
  {
156
156
  'name': '港股',
157
157
  'icon': 'asterisk',
158
158
  'menu': [
159
- {'url': '/44697432d071414280d9fb32d87a1ba7', 'name': '港股列表'},
160
- {'url': '/c01516a01108d739db9710d6be1e03fc', 'name': '港股IPO'},
161
- {'url': '/c431f9732e9484f31feb225725e29fed', 'name': '恒生指数'},
162
- {'url': '/b2b458fede132f917e03968254c2b5b2', 'name': '恒生科技指数'},
163
- {'url': '/9104ede8e118224256003142164120a8', 'name': '恒生综合指数'},
164
- {'url': '/369668ec47fb9c3169aa96dbd081771c', 'name': '恒生中国25指数'},
165
- {'url': '/4405fc96dc334c224934246790e6feae', 'name': '恒生香港35指数'},
166
- {'url': '/9d80838339e6994a87a915f6a071a960', 'name': '恒生中国100指数'},
159
+ {'key': 'list', 'name': '港股列表', 'url': '/44697432d071414280d9fb32d87a1ba7'},
160
+ {'key': 'ipo', 'name': '港股IPO', 'url': '/c01516a01108d739db9710d6be1e03fc'},
161
+ {'key': 'hsi', 'name': '恒生指数', 'url': '/c431f9732e9484f31feb225725e29fed'},
162
+ {'key': 'hstech', 'name': '恒生科技指数', 'url': '/b2b458fede132f917e03968254c2b5b2'},
163
+ {'key': 'hsci', 'name': '恒生综合指数', 'url': '/9104ede8e118224256003142164120a8'},
164
+ {'key': 'hsm25', 'name': '恒生中国25指数', 'url': '/369668ec47fb9c3169aa96dbd081771c'},
165
+ {'key': 'hsh35', 'name': '恒生香港35指数', 'url': '/4405fc96dc334c224934246790e6feae'},
166
+ {'key': 'hsm100', 'name': '恒生中国100指数', 'url': '/9d80838339e6994a87a915f6a071a960'},
167
167
  ]
168
168
  },
169
169
  {
170
170
  'name': '美股',
171
171
  'icon': 'usd',
172
172
  'menu': [
173
- {'url': '/1cf97b189f7dfe179db566668fe8bfe2', 'name': '美股列表'},
174
- {'url': '/18158400c4c7f33f20785f809ba92573', 'name': '道琼斯指数'},
175
- {'url': '/44408951e62854195044eb9a3608ca67', 'name': '标普500'},
176
- {'url': '/fa558230105614d08c6ad47cc19ccf98', 'name': '纳斯达克100'},
177
- {'url': '/7314866cc8b24a54f6c124a49eae18a0', 'name': '中国概念股'},
178
- {'url': '/67cfa56b81426a21995e76471a34bb03', 'name': '工业大麻'},
179
- {'url': '/d8ab470b676b67d4c4df460b31441f0e', 'name': '做空排行'},
180
- {'url': '/ce97bad507dc358d0bc2d9643acbe8bf', 'name': '历史PE'},
181
- {'url': '/6aa18d721b6e350fd215bc7475c2af64', 'name': '美元关系图'},
173
+ {'key': 'list', 'name': '美股列表', 'url': '/1cf97b189f7dfe179db566668fe8bfe2'},
174
+ {'key': 'dji', 'name': '道琼斯指数', 'url': '/18158400c4c7f33f20785f809ba92573'},
175
+ {'key': 'sp500', 'name': '标普500', 'url': '/44408951e62854195044eb9a3608ca67'},
176
+ {'key': 'qqq', 'name': '纳斯达克100', 'url': '/fa558230105614d08c6ad47cc19ccf98'},
177
+ {'key': 'cn', 'name': '中国概念股', 'url': '/7314866cc8b24a54f6c124a49eae18a0'},
178
+ {'key': 'marijuana', 'name': '工业大麻', 'url': '/67cfa56b81426a21995e76471a34bb03'},
179
+ {'key': 'short_rank', 'name': '做空排行', 'url': '/d8ab470b676b67d4c4df460b31441f0e'},
180
+ {'key': 'pe', 'name': '历史PE', 'url': '/ce97bad507dc358d0bc2d9643acbe8bf'},
181
+ {'key': 'dollar', 'name': '美元关系图', 'url': '/6aa18d721b6e350fd215bc7475c2af64'},
182
182
  ]
183
183
  },
184
184
  {
185
185
  'name': '雪球',
186
186
  'icon': 'star',
187
187
  'menu': [
188
- {'url': '/85f3f22eaf1aaeca5b552fc392ade6cd', 'name': '自选趋势'},
189
- {'url': '/fba7fe44fe9675a3f078064ef8d3691f', 'name': '用户列表'},
190
- {'url': '/1a1d0872772407aa576c7a02cdc9fe36', 'name': '搜索工具'},
191
- {'url': '/bfb0c1074e11e26b9068403d60da6655', 'name': '红包数据'},
188
+ {'key': 'trend', 'name': '自选趋势', 'url': '/85f3f22eaf1aaeca5b552fc392ade6cd'},
189
+ {'key': 'user', 'name': '用户列表', 'url': '/fba7fe44fe9675a3f078064ef8d3691f'},
190
+ {'key': 'tool', 'name': '搜索工具', 'url': '/1a1d0872772407aa576c7a02cdc9fe36'},
191
+ {'key': 'red_packet', 'name': '红包数据', 'url': '/bfb0c1074e11e26b9068403d60da6655'},
192
192
  ]
193
193
  },
194
194
  {
195
195
  'name': '排行',
196
196
  'icon': 'bar-chart',
197
197
  'menu': [
198
- {'url': '/ff3f483be58a16149ccfaeb280618a63', 'name': '乖离率'},
199
- {'url': '/1d75d126cf628e8f025e04d0d7e27b87', 'name': '融资余额创新低'},
200
- {'url': '/7cf2f38d2e42834aa45148217b466015', 'name': '净利润/营业收入'},
201
- {'url': '/0f1948368219515b6a972a10b6a52be3', 'name': 'ROE(净资产收益率)'},
202
- {'url': '/10c3b9f74a5a6c688c62b018e7a8887f', 'name': '股息'},
203
- {'url': '/acdca675c5dbccc6f9245d117bad492b', 'name': '流通股比例'},
204
- {'url': '/0295c9cc422284437a5ce439b2c1bf60', 'name': '股东比'},
205
- {'url': '/17cabdde7024c4be6952623a22b1e4cf', 'name': '商誉占比'},
198
+ {'key': 'bias', 'name': '乖离率', 'url': '/ff3f483be58a16149ccfaeb280618a63'},
199
+ {'key': 'margin_minimum', 'name': '融资余额创新低', 'url': '/1d75d126cf628e8f025e04d0d7e27b87'},
200
+ {'key': 'profit', 'name': '净利润/营业收入', 'url': '/7cf2f38d2e42834aa45148217b466015'},
201
+ {'key': 'roe', 'name': 'ROE(净资产收益率)', 'url': '/0f1948368219515b6a972a10b6a52be3'},
202
+ {'key': 'dividend', 'name': '股息', 'url': '/10c3b9f74a5a6c688c62b018e7a8887f'},
203
+ {'key': 'circulation_stock', 'name': '流通股比例', 'url': '/acdca675c5dbccc6f9245d117bad492b'},
204
+ {'key': 'holder', 'name': '股东比', 'url': '/0295c9cc422284437a5ce439b2c1bf60'},
205
+ {'key': 'goodwill', 'name': '商誉占比', 'url': '/17cabdde7024c4be6952623a22b1e4cf'},
206
206
  ]
207
207
  },
208
208
  {
209
209
  'name': '科创板',
210
210
  'icon': 'try',
211
211
  'menu': [
212
- {'url': '/2d38d018f8476b63413e46c97bb364ff', 'name': '交易情况'},
213
- {'url': '/c9d1040414ab58a40a85e58a7d7649c7', 'name': '受理情况'},
214
- {'url': '/82c2246d58e9d8b3863aca84be141562', 'name': '公司介绍'},
215
- {'url': '/93ee30242399b50f4d1fe29e6b55762f', 'name': '科创50'},
212
+ {'key': 'trade', 'name': '交易情况', 'url': '/2d38d018f8476b63413e46c97bb364ff'},
213
+ {'key': 'list', 'name': '受理情况', 'url': '/c9d1040414ab58a40a85e58a7d7649c7'},
214
+ {'key': 'news', 'name': '公司介绍', 'url': '/82c2246d58e9d8b3863aca84be141562'},
215
+ {'key': 'star50', 'name': '科创50', 'url': '/93ee30242399b50f4d1fe29e6b55762f'},
216
216
  ]
217
217
  },
218
218
  {
219
219
  'name': '其他',
220
220
  'icon': 'remove',
221
221
  'menu': [
222
- {'url': '/9b4459ba02d102aea52ee4196f5bc707', 'name': '新股发行'},
223
- {'url': '/2630f054e5431808693cd6e8e7b92a34', 'name': '企业数据'},
224
- {'url': '/34580f6abda64b77f3426a530ba12432', 'name': '楼盘房价'},
225
- {'url': '/772a711655845f7581986220d3c534c2', 'name': '地方债数据'},
226
- {'url': '/d0138763342bd7f32ce18c2b69e5ae9a', 'name': '可转债数据'},
227
- {'url': '/abfa92f1e9ec1b663b6f5121e6e1bfff', 'name': '财富500强'},
222
+ {'key': 'ipo', 'name': '新股发行', 'url': '/9b4459ba02d102aea52ee4196f5bc707'},
223
+ {'key': 'enterprise', 'name': '企业数据', 'url': '/2630f054e5431808693cd6e8e7b92a34'},
224
+ {'key': 'house', 'name': '楼盘房价', 'url': '/34580f6abda64b77f3426a530ba12432'},
225
+ {'key': 'bond', 'name': '地方债数据', 'url': '/772a711655845f7581986220d3c534c2'},
226
+ {'key': 'convertible_bond', 'name': '可转债数据', 'url': '/d0138763342bd7f32ce18c2b69e5ae9a'},
227
+ {'key': 'fortune500', 'name': '财富500强', 'url': '/abfa92f1e9ec1b663b6f5121e6e1bfff'},
228
228
  ]
229
229
  },
230
230
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sbd-npm",
3
- "version": "1.1.33",
3
+ "version": "1.1.37",
4
4
  "description": "Stock Big Data",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/util.js CHANGED
@@ -119,6 +119,9 @@ const Util = {
119
119
  }
120
120
  },
121
121
 
122
+ /**
123
+ * 初始目录
124
+ */
122
125
  init_menu: function () {
123
126
  let _html = [];
124
127
  _html.push('<div class="menu_section">');
@@ -137,6 +140,23 @@ const Util = {
137
140
  $("#sidebar-menu").html(_html.join(""));
138
141
  },
139
142
 
143
+ /**
144
+ * 获取链接 URL 地址
145
+ * @param key
146
+ * @returns {string}
147
+ */
148
+ get_url: function (key) {
149
+ let url = location.pathname;
150
+ MenuList.forEach(function (menu) {
151
+ menu["menu"].forEach(function (m) {
152
+ if (m["key"] === key) {
153
+ url = m["url"];
154
+ }
155
+ });
156
+ });
157
+ return url;
158
+ },
159
+
140
160
  /**
141
161
  * https://api.jquery.com/jquery.ajax/
142
162
  * @param url
@@ -558,6 +578,33 @@ const Util = {
558
578
  });
559
579
  },
560
580
 
581
+ /**
582
+ * 情景框初始
583
+ * @param modal_id
584
+ * @param modal_content_html
585
+ */
586
+ init_modal_skeleton: function (modal_id, modal_content_html = "") {
587
+ if (!$("#" + modal_id).length) {
588
+ let _html = [];
589
+ _html.push('<div class="modal fade ', modal_id, '" id="', modal_id, '" tabindex="-1" role="dialog" aria-hidden="true">');
590
+ _html.push('<div class="modal-dialog modal-lg modal-xlg"><div class="modal-content">');
591
+ _html.push('<div class="modal-header">');
592
+ _html.push('<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>');
593
+ _html.push('<h4 class="modal-title" id="', modal_id, '_title">Loading...</h4>');
594
+ _html.push('</div>');
595
+ if (Util.is_mobile()) {
596
+ _html.push('<div id="', modal_id, '_body" class="modal-body table-responsive">');
597
+ } else {
598
+ _html.push('<div id="', modal_id, '_body" class="modal-body">');
599
+ }
600
+ _html.push(modal_content_html);
601
+ _html.push('</div>');
602
+ _html.push('</div></div>');
603
+ _html.push('</div>');
604
+ $("body").append(_html.join(""));
605
+ }
606
+ },
607
+
561
608
  /**
562
609
  * 表格初始
563
610
  * @param options
@@ -705,6 +752,157 @@ const Util = {
705
752
  });
706
753
  },
707
754
 
755
+ /**
756
+ * 初始公募基金组件
757
+ * @param component_id
758
+ */
759
+ init_public_fund_component: function (component_id) {
760
+ let modal_content_html = '<table class="table table-bordered table-hover table-striped text-center"><caption></caption><tbody id="' + component_id + '_body"><tr><td colspan="2">Loading...</td></tr></tbody></table>';
761
+ Util.init_modal_skeleton(component_id, modal_content_html);
762
+ let component_obj = $('#' + component_id);
763
+ component_obj.on('shown.bs.modal', function (e) {
764
+ let obj = e.relatedTarget;
765
+ let fund_code = $(obj).attr("data-val");
766
+ Util.fetch_public_fund_detail(fund_code, component_id);
767
+ });
768
+ component_obj.on('hidden.bs.modal', function () {
769
+ $("#" + component_id + "_body").html("<tr><td colspan='12'>Loading...</td></tr>");
770
+ Util.hide_tips();
771
+ });
772
+ let request_arguments = Util.request_arguments();
773
+ if (request_arguments["fund_code"]) {
774
+ $("#fund_code").val(request_arguments["fund_code"]);
775
+ component_obj.modal('show');
776
+ setTimeout(function () {
777
+ Util.fetch_public_fund_detail(request_arguments["fund_code"], component_id);
778
+ }, 1234);
779
+ }
780
+ },
781
+
782
+ /**
783
+ * 获取公募基金的详细数据
784
+ * @param fund_code
785
+ * @param component_id
786
+ */
787
+ fetch_public_fund_detail: function (fund_code, component_id) {
788
+ if (!fund_code) {
789
+ return;
790
+ }
791
+ $("#" + component_id + "_body").html("<tr><td colspan='12'>Loading...</td></tr>");
792
+ $("#" + component_id + "_title").html(fund_code);
793
+ Util.post(Util.get_url("public"), {action: "public_fund_detail", fund_code: fund_code}, function (j) {
794
+ let _html = [];
795
+ if (j["fund_code"]) {
796
+ $("#" + component_id + "_title").html(Util.pack_html_link("http://fundf10.eastmoney.com/jbgk_" + j["fund_code"] + ".html", j["fund_name"]));
797
+ let net = j["net"] > 0 ? j["net"] : "--";
798
+ let assets = j["assets"] > 0 ? (j["assets"] + "亿") : "--";
799
+ let public_date = j["public_date"] > 0 ? Util.seconds_to_format(j["public_date"], "%Y-%m-%d") : "--";
800
+ let issue_date = j["issue_date"] > 0 ? Util.seconds_to_format(j["issue_date"], "%Y-%m-%d") : "--";
801
+ _html.push("<tr title='最后更新时间: ", Util.seconds_to_format(j["update_time"], "%Y-%m-%d"), "' class='info'><th colspan='12' text-align='center'>基金概况</th></tr>");
802
+ _html.push("<tr><td colspan='3'>基金代码</td><td colspan='3'>", Util.pack_html_link('https://fund.jrj.com.cn/archives,' + j["fund_code"] + '.shtml', j["fund_code"]), "</td><td colspan='2'>基金名</td><td colspan='4'>", Util.pack_html_link('https://fund.jrj.com.cn/archives,' + j["fund_code"] + ',jjgk.shtml', j["fund_name"]), "</td></tr>");
803
+ _html.push("<tr><td colspan='3'>基金类型</td><td colspan='3'>", j["fund_type"], "</td><td colspan='2'>投资类型</td><td colspan='4'>", j["invest_type"], "</td></tr>");
804
+ _html.push("<tr><td colspan='3'>单位净值</td><td colspan='3'>", net, "</td><td colspan='2'>资产规模</td><td colspan='4'>", assets, "</td></tr>");
805
+ _html.push("<tr><td colspan='3'>成立日期</td><td colspan='3'>", public_date, "</td><td colspan='2'>发行日期</td><td colspan='4'>", issue_date, "</td></tr>");
806
+ _html.push("<tr><td colspan='3'>基金管理人</td><td colspan='3'>", j["administrator"], "</td><td colspan='2'>基金经理</td><td colspan='4'>", j["managers"], "</td></tr>");
807
+ _html.push("<tr><td colspan='4'>基金托管人</td><td colspan='8'>", j["custodian"], "</td></tr>");
808
+ _html.push("<tr><td colspan='4'>经办律师事务所</td><td colspan='8'>", j["lawyer"], "</td></tr>");
809
+ _html.push("<tr><td colspan='4'>会计师事务所</td><td colspan='8'>", j["accounting"], "</td></tr>");
810
+ _html.push("<tr><td colspan='4'>注册地址</td><td colspan='8'>", Util.map_url(j["location"], j["location"]), "</td></tr>");
811
+ let fund_stock_url = "https://fund.jrj.com.cn/archives," + j["fund_code"] + ".shtml";
812
+ if (j["type"] === 2) {
813
+ fund_stock_url = "http://fund.eastmoney.com/f10/ccmx_" + j["fund_code"] + ".html";
814
+ }
815
+ _html.push("<tr class='info'><th colspan='12' text-align='center'>", Util.pack_html_link(fund_stock_url, "持股明细"), " <span id='fund_stock_date_zone'></span></th></tr>");
816
+ _html.push("<tr id='" + component_id + "_head'><th>序号</th><th>股票代码</th><th>股票名</th><th>PE</th><th>总市值</th><th>行业</th><th>地区</th><th>价格</th><th>年初至今</th><th>持有量</th><th>占比</th><th>持仓市值</th></tr>");
817
+ _html.push("<tr class='" + component_id + "_tr'><td colspan='12'>暂无数据</td></tr>");
818
+ Util.render_table_html(component_id + "_body", _html);
819
+ if (j["date_list"]) {
820
+ _html = [];
821
+ _html.push("<select id='fund_stock_date'>");
822
+ j["date_list"].forEach(function (date) {
823
+ _html.push("<option value='", date, "'>", Util.seconds_to_format(date, "%Y-%m-%d"), "</option>");
824
+ });
825
+ _html.push("</select>");
826
+ $("#fund_stock_date_zone").html(_html.join(""));
827
+ let fsd_obj = $("#fund_stock_date");
828
+ fsd_obj.change(function () {
829
+ Util.fetch_public_fund_stock(j["fund_code"], $("#fund_stock_date").val(), component_id);
830
+ });
831
+ Util.fetch_public_fund_stock(j["fund_code"], fsd_obj.val(), component_id);
832
+ }
833
+ } else {
834
+ _html.push("<tr><td colspan='11'>暂无数据</td></tr>");
835
+ Util.render_table_html(component_id + "_body", _html);
836
+ }
837
+ });
838
+ },
839
+
840
+ /**
841
+ * 获取公募基金的持仓股数据
842
+ * @param fund_code
843
+ * @param date
844
+ * @param component_id
845
+ */
846
+ fetch_public_fund_stock: function (fund_code, date, component_id) {
847
+ Util.show_tips("Loading...");
848
+ let component_tr = component_id + "_tr";
849
+ $("." + component_tr).each(function () {
850
+ $(this).remove();
851
+ });
852
+ $("<tr class='" + component_tr + "'><td colspan='12'>Loading...</td></tr>").insertAfter("#" + component_id + "_head");
853
+ let pre_date = 0;
854
+ date = parseInt(date);
855
+ $("#fund_stock_date").find("option").each(function () {
856
+ if (pre_date === 0) {
857
+ let f_date = parseInt($(this).val());
858
+ if (f_date < date) {
859
+ pre_date = f_date;
860
+ }
861
+ }
862
+ });
863
+ let payload = {action: "public_fund_stock", fund_code: fund_code, date: date, pre_date: pre_date};
864
+ Util.post(Util.get_url("public"), payload, function (j) {
865
+ $("." + component_tr).each(function () {
866
+ $(this).remove();
867
+ });
868
+ let _html = [];
869
+ if (j["data"]) {
870
+ j["data"].forEach(function (item, index) {
871
+ _html.push("<tr class='" + component_tr + "'>");
872
+ _html.push("<td>", index + 1, "</td>");
873
+ _html = Util.stock_basics_html(_html, item);
874
+ _html.push("<td data-val='", item["year_price"], "' class='year_price_", item["code"], "'>--</td>");
875
+ let stock_num_tips = "";
876
+ if (item["stock_num"] > 0 && item["pre_stock_num"] > 0) {
877
+ let gap_stock_num = item["stock_num"] - item["pre_stock_num"];
878
+ if (gap_stock_num > 0) {
879
+ stock_num_tips = "<b class='text-danger'>(+" + Util.to_unit(gap_stock_num) + ")</b>";
880
+ } else if (gap_stock_num < 0) {
881
+ stock_num_tips = "<b class='text-success'>(" + Util.to_unit(gap_stock_num) + ")</b>";
882
+ }
883
+ }
884
+ _html.push("<td>", Util.to_unit(item["stock_num"]), stock_num_tips, "</td>");
885
+ let rate_tips = "";
886
+ if (item["rate"] > 0 && item["rate"] > item["pre_rate"]) {
887
+ rate_tips = "<b class='text-danger'>(+" + Util.to_float(item["rate"] - item["pre_rate"], 2) + "%)</b>";
888
+ } else if (item["pre_rate"] > 0 && item["pre_rate"] > item["rate"]) {
889
+ rate_tips = "<b class='text-success'>(" + Util.to_float(item["rate"] - item["pre_rate"], 2) + "%)</b>";
890
+ }
891
+ _html.push("<td>", item["rate"], "%", rate_tips, "</td>");
892
+ _html.push("<td>", Util.to_unit(item["fund_market_capital"]), "</td>");
893
+ _html.push("</tr>");
894
+ });
895
+ } else {
896
+ _html.push("<tr class='" + component_tr + "'><td colspan='12'>暂无数据</td></tr>");
897
+ }
898
+ $(_html.join("")).insertAfter("#" + component_id + "_head");
899
+ Util.hide_tips();
900
+ if (j["data"]) {
901
+ Util.refresh_price(component_id + "_body");
902
+ }
903
+ });
904
+ },
905
+
708
906
  /**
709
907
  * 当前时间戳
710
908
  * @returns {number}
package/.npmignore DELETED
@@ -1 +0,0 @@
1
- sbd-npm.md