@jiangood/open-admin 2.2.6 → 2.2.7

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
@@ -13,7 +13,6 @@
13
13
  "antd-img-crop": "^4.23.0",
14
14
  "axios": "^1.13.2",
15
15
  "dayjs": "^1.11.13",
16
- "jsencrypt": "^3.5.4",
17
16
  "lodash": "^4.17.23",
18
17
  "qs": "^6.14.0",
19
18
  "react": "^19.0.0",
@@ -37,5 +36,5 @@
37
36
  "dev": "umi dev",
38
37
  "build": "umi build"
39
38
  },
40
- "version": "2.2.6"
41
- }
39
+ "version": "2.2.7"
40
+ }
@@ -15,7 +15,6 @@
15
15
  "antd-img-crop": "^4.23.0",
16
16
  "axios": "^1.13.2",
17
17
  "dayjs": "^1.11.13",
18
- "jsencrypt": "^3.5.4",
19
18
  "lodash": "^4.17.23",
20
19
  "qs": "^6.14.0",
21
20
  "react": "^19.0.0",
@@ -39,7 +38,7 @@
39
38
  "dev": "umi dev",
40
39
  "build": "umi build"
41
40
  },
42
- "version": "2.2.6"
41
+ "version": "2.2.7"
43
42
  },
44
43
  "pkgPath": "/home/runner/work/open-admin/open-admin/web/package.json",
45
44
  "plugins": {
@@ -52,7 +51,7 @@
52
51
  "config": {},
53
52
  "time": {
54
53
  "hooks": {},
55
- "register": 1
54
+ "register": 0
56
55
  },
57
56
  "enableBy": "register"
58
57
  },
@@ -116,7 +115,7 @@
116
115
  0
117
116
  ]
118
117
  },
119
- "register": 1
118
+ "register": 0
120
119
  },
121
120
  "enableBy": "register"
122
121
  },
@@ -143,7 +142,7 @@
143
142
  "time": {
144
143
  "hooks": {
145
144
  "modifyAppData": [
146
- 58
145
+ 57
147
146
  ]
148
147
  },
149
148
  "register": 22
@@ -173,10 +172,10 @@
173
172
  "time": {
174
173
  "hooks": {
175
174
  "onCheckConfig": [
176
- 1
175
+ 0
177
176
  ],
178
177
  "onCheck": [
179
- 1
178
+ 0
180
179
  ]
181
180
  },
182
181
  "register": 1
@@ -196,7 +195,7 @@
196
195
  0
197
196
  ]
198
197
  },
199
- "register": 0
198
+ "register": 1
200
199
  },
201
200
  "enableBy": "register"
202
201
  },
@@ -209,7 +208,7 @@
209
208
  "config": {},
210
209
  "time": {
211
210
  "hooks": {},
212
- "register": 1
211
+ "register": 0
213
212
  },
214
213
  "enableBy": "config"
215
214
  },
@@ -226,7 +225,7 @@
226
225
  0
227
226
  ]
228
227
  },
229
- "register": 5
228
+ "register": 6
230
229
  },
231
230
  "enableBy": "register"
232
231
  },
@@ -1078,7 +1077,7 @@
1078
1077
  "config": {},
1079
1078
  "time": {
1080
1079
  "hooks": {},
1081
- "register": 1
1080
+ "register": 0
1082
1081
  },
1083
1082
  "enableBy": "config"
1084
1083
  },
@@ -1095,7 +1094,7 @@
1095
1094
  0
1096
1095
  ]
1097
1096
  },
1098
- "register": 0
1097
+ "register": 1
1099
1098
  },
1100
1099
  "enableBy": "register"
1101
1100
  },
@@ -1121,7 +1120,7 @@
1121
1120
  "config": {},
1122
1121
  "time": {
1123
1122
  "hooks": {},
1124
- "register": 97
1123
+ "register": 96
1125
1124
  },
1126
1125
  "enableBy": "register"
1127
1126
  },
@@ -1147,7 +1146,7 @@
1147
1146
  "config": {},
1148
1147
  "time": {
1149
1148
  "hooks": {},
1150
- "register": 9
1149
+ "register": 8
1151
1150
  },
1152
1151
  "enableBy": "config"
1153
1152
  },
@@ -1164,7 +1163,7 @@
1164
1163
  0
1165
1164
  ]
1166
1165
  },
1167
- "register": 0
1166
+ "register": 1
1168
1167
  },
1169
1168
  "enableBy": "register"
1170
1169
  },
@@ -1177,7 +1176,7 @@
1177
1176
  "config": {},
1178
1177
  "time": {
1179
1178
  "hooks": {},
1180
- "register": 1
1179
+ "register": 0
1181
1180
  },
1182
1181
  "enableBy": "register"
1183
1182
  },
@@ -1190,7 +1189,7 @@
1190
1189
  "config": {},
1191
1190
  "time": {
1192
1191
  "hooks": {},
1193
- "register": 1
1192
+ "register": 2
1194
1193
  },
1195
1194
  "enableBy": "config"
1196
1195
  },
@@ -1203,7 +1202,7 @@
1203
1202
  "config": {},
1204
1203
  "time": {
1205
1204
  "hooks": {},
1206
- "register": 31
1205
+ "register": 30
1207
1206
  }
1208
1207
  },
1209
1208
  "./node_modules/@umijs/preset-umi/dist/features/mpa/mpa": {
@@ -1228,7 +1227,7 @@
1228
1227
  "config": {},
1229
1228
  "time": {
1230
1229
  "hooks": {},
1231
- "register": 0
1230
+ "register": 1
1232
1231
  }
1233
1232
  },
1234
1233
  "./node_modules/@umijs/preset-umi/dist/features/overrides/overrides": {
@@ -1240,7 +1239,7 @@
1240
1239
  "config": {},
1241
1240
  "time": {
1242
1241
  "hooks": {},
1243
- "register": 1
1242
+ "register": 0
1244
1243
  },
1245
1244
  "enableBy": "register"
1246
1245
  },
@@ -1253,7 +1252,7 @@
1253
1252
  "config": {},
1254
1253
  "time": {
1255
1254
  "hooks": {},
1256
- "register": 0
1255
+ "register": 1
1257
1256
  },
1258
1257
  "enableBy": "config"
1259
1258
  },
@@ -1267,7 +1266,7 @@
1267
1266
  "time": {
1268
1267
  "hooks": {
1269
1268
  "modifyConfig": [
1270
- 1
1269
+ 0
1271
1270
  ]
1272
1271
  },
1273
1272
  "register": 1
@@ -1282,7 +1281,7 @@
1282
1281
  "config": {},
1283
1282
  "time": {
1284
1283
  "hooks": {},
1285
- "register": 1
1284
+ "register": 0
1286
1285
  },
1287
1286
  "enableBy": "register"
1288
1287
  },
@@ -1308,7 +1307,7 @@
1308
1307
  "config": {},
1309
1308
  "time": {
1310
1309
  "hooks": {},
1311
- "register": 0
1310
+ "register": 1
1312
1311
  },
1313
1312
  "enableBy": "config"
1314
1313
  },
@@ -1321,7 +1320,7 @@
1321
1320
  "config": {},
1322
1321
  "time": {
1323
1322
  "hooks": {},
1324
- "register": 1
1323
+ "register": 0
1325
1324
  },
1326
1325
  "enableBy": "config"
1327
1326
  },
@@ -1334,7 +1333,7 @@
1334
1333
  "config": {},
1335
1334
  "time": {
1336
1335
  "hooks": {},
1337
- "register": 0
1336
+ "register": 1
1338
1337
  },
1339
1338
  "enableBy": "register"
1340
1339
  },
@@ -1373,7 +1372,7 @@
1373
1372
  "config": {},
1374
1373
  "time": {
1375
1374
  "hooks": {},
1376
- "register": 1
1375
+ "register": 0
1377
1376
  }
1378
1377
  },
1379
1378
  "./node_modules/@umijs/preset-umi/dist/features/ssr/ssr": {
@@ -1398,7 +1397,7 @@
1398
1397
  "config": {},
1399
1398
  "time": {
1400
1399
  "hooks": {},
1401
- "register": 1
1400
+ "register": 2
1402
1401
  },
1403
1402
  "enableBy": "register"
1404
1403
  },
@@ -1424,7 +1423,7 @@
1424
1423
  "config": {},
1425
1424
  "time": {
1426
1425
  "hooks": {},
1427
- "register": 3
1426
+ "register": 2
1428
1427
  },
1429
1428
  "enableBy": "config"
1430
1429
  },
@@ -1566,7 +1565,7 @@
1566
1565
  "config": {},
1567
1566
  "time": {
1568
1567
  "hooks": {},
1569
- "register": 0
1568
+ "register": 1
1570
1569
  },
1571
1570
  "enableBy": "config"
1572
1571
  },
@@ -1603,7 +1602,7 @@
1603
1602
  "config": {},
1604
1603
  "time": {
1605
1604
  "hooks": {},
1606
- "register": 28
1605
+ "register": 27
1607
1606
  }
1608
1607
  },
1609
1608
  "./node_modules/@umijs/preset-umi/dist/features/forget/forget": {
@@ -1615,7 +1614,7 @@
1615
1614
  "config": {},
1616
1615
  "time": {
1617
1616
  "hooks": {},
1618
- "register": 1
1617
+ "register": 2
1619
1618
  },
1620
1619
  "enableBy": "config"
1621
1620
  },
@@ -1667,7 +1666,7 @@
1667
1666
  "config": {},
1668
1667
  "time": {
1669
1668
  "hooks": {},
1670
- "register": 17
1669
+ "register": 16
1671
1670
  }
1672
1671
  },
1673
1672
  "./node_modules/@umijs/preset-umi/dist/commands/help": {
@@ -1679,7 +1678,7 @@
1679
1678
  "config": {},
1680
1679
  "time": {
1681
1680
  "hooks": {},
1682
- "register": 0
1681
+ "register": 1
1683
1682
  },
1684
1683
  "enableBy": "register"
1685
1684
  },
@@ -1757,7 +1756,7 @@
1757
1756
  "config": {},
1758
1757
  "time": {
1759
1758
  "hooks": {},
1760
- "register": 1
1759
+ "register": 0
1761
1760
  },
1762
1761
  "enableBy": "register"
1763
1762
  },
@@ -1783,7 +1782,7 @@
1783
1782
  "config": {},
1784
1783
  "time": {
1785
1784
  "hooks": {},
1786
- "register": 1
1785
+ "register": 0
1787
1786
  },
1788
1787
  "enableBy": "register"
1789
1788
  },
@@ -1796,7 +1795,7 @@
1796
1795
  "config": {},
1797
1796
  "time": {
1798
1797
  "hooks": {},
1799
- "register": 0
1798
+ "register": 1
1800
1799
  },
1801
1800
  "enableBy": "register"
1802
1801
  },
@@ -1848,7 +1847,7 @@
1848
1847
  "config": {},
1849
1848
  "time": {
1850
1849
  "hooks": {},
1851
- "register": 1
1850
+ "register": 0
1852
1851
  },
1853
1852
  "enableBy": "register"
1854
1853
  },
@@ -1861,7 +1860,7 @@
1861
1860
  "config": {},
1862
1861
  "time": {
1863
1862
  "hooks": {},
1864
- "register": 0
1863
+ "register": 1
1865
1864
  },
1866
1865
  "enableBy": "register"
1867
1866
  },
@@ -1874,7 +1873,7 @@
1874
1873
  "config": {},
1875
1874
  "time": {
1876
1875
  "hooks": {},
1877
- "register": 1
1876
+ "register": 0
1878
1877
  },
1879
1878
  "enableBy": "register"
1880
1879
  },
@@ -1887,7 +1886,7 @@
1887
1886
  "config": {},
1888
1887
  "time": {
1889
1888
  "hooks": {},
1890
- "register": 0
1889
+ "register": 1
1891
1890
  },
1892
1891
  "enableBy": "register"
1893
1892
  },
@@ -1900,7 +1899,7 @@
1900
1899
  "config": {},
1901
1900
  "time": {
1902
1901
  "hooks": {},
1903
- "register": 1
1902
+ "register": 0
1904
1903
  },
1905
1904
  "enableBy": "register"
1906
1905
  },
@@ -1913,7 +1912,7 @@
1913
1912
  "config": {},
1914
1913
  "time": {
1915
1914
  "hooks": {},
1916
- "register": 22
1915
+ "register": 21
1917
1916
  },
1918
1917
  "enableBy": "register"
1919
1918
  },
@@ -1926,7 +1925,7 @@
1926
1925
  "config": {},
1927
1926
  "time": {
1928
1927
  "hooks": {},
1929
- "register": 0
1928
+ "register": 1
1930
1929
  },
1931
1930
  "enableBy": "register"
1932
1931
  },
@@ -1952,7 +1951,7 @@
1952
1951
  "config": {},
1953
1952
  "time": {
1954
1953
  "hooks": {},
1955
- "register": 1
1954
+ "register": 0
1956
1955
  },
1957
1956
  "enableBy": "register"
1958
1957
  },
@@ -1969,7 +1968,7 @@
1969
1968
  0
1970
1969
  ]
1971
1970
  },
1972
- "register": 6
1971
+ "register": 7
1973
1972
  },
1974
1973
  "enableBy": "register"
1975
1974
  }
@@ -2206,7 +2205,7 @@
2206
2205
  "parentId": "@@/global-layout",
2207
2206
  "file": "login.jsx",
2208
2207
  "absPath": "/login",
2209
- "__content": "import React from 'react';\nimport {Button, Form, Input, message, Space} from 'antd';\nimport {LockOutlined, SafetyCertificateOutlined, UserOutlined, WarningOutlined} from '@ant-design/icons';\nimport {JSEncrypt} from \"jsencrypt\";\nimport {history} from 'umi';\nimport {EventBusUtils, HttpUtils, PageUtils, MessageUtils, SysUtils} from \"../framework/utils\";\n\nimport \"./login.less\"\n\nfunction getRedirect() {\n let redirect = PageUtils.currentParams()['redirect'];\n if (redirect) {\n redirect = decodeURIComponent(redirect)\n } else {\n redirect = '/'\n }\n return redirect;\n}\n\nfunction postLogin(values) {\n return new Promise((resolve, reject) => {\n HttpUtils.post('/admin/auth/login', values).then(rs => {\n EventBusUtils.emit('loginSuccess')\n history.push(getRedirect())\n resolve(rs)\n }).catch(e => {\n console.error('[Login] 登录失败:', e);\n reject(e)\n })\n })\n}\n\nexport default class extends React.Component {\n\n state = {\n logging: false,\n siteInfo: {},\n random: Math.random()\n }\n\n async componentDidMount() {\n const siteInfo = SysUtils.getSiteInfo()\n if (siteInfo && siteInfo.rsaPublicKey) {\n this.setState({siteInfo})\n return\n }\n // localStorage 中无站点信息,从服务端重新加载\n try {\n const rs = await HttpUtils.get('/admin/public/site-info')\n SysUtils.setSiteInfo(rs)\n this.setState({siteInfo: rs})\n } catch (e) {\n console.error('[Login] 加载站点信息失败:', e);\n message.error('加载站点信息失败,请刷新页面重试')\n }\n }\n\n submit = values => {\n this.setState({logging: true})\n\n const pubkey = this.state.siteInfo.rsaPublicKey;\n if (!pubkey) {\n message.error(\"未获取密钥,请刷新浏览器再试\")\n this.setState({logging: false})\n return\n }\n const crypt = new JSEncrypt();\n crypt.setPublicKey(pubkey);\n values.password = crypt.encrypt(values.password)\n\n postLogin(values).finally(() => {\n this.setState({logging: false})\n })\n }\n\n render() {\n const {siteInfo} = this.state\n\n const pageStyle = {\n backgroundImage: `url(\"${SysUtils.contextPath('/admin/public/login_bg.jpg')}\")`\n }\n if (siteInfo.loginBackground) {\n const url = SysUtils.contextPath('/admin/sysFile/preview/' + siteInfo.loginBackground);\n pageStyle.backgroundImage = 'url(\"' + url + '\")'\n }\n\n return (\n <section className='login-page' style={pageStyle}>\n <div className=\"login-content\">\n <h1>{siteInfo.title}</h1>\n {this.getForm(siteInfo)}\n {this.renderFormBottom()}\n </div>\n </section>\n );\n }\n\n getForm = siteInfo => {\n const form = (\n <Form\n name=\"normal_login\"\n className=\"login-form\"\n initialValues={{remember: true}}\n onFinish={this.submit}\n requiredMark={false}\n colon={false}\n >\n <Form.Item name=\"username\" rules={[{required: true, message: '请输入用户名!'}]}>\n <Input size='large' prefix={<UserOutlined/>} placeholder=\"用户名\" autoComplete=\"off\"/>\n </Form.Item>\n <Form.Item name=\"password\" rules={[{required: true, message: '请输入密码!'}]}>\n <Input autoComplete=\"off\" prefix={<LockOutlined/>} type=\"password\" placeholder=\"密码\"\n size='large'\n />\n </Form.Item>\n\n {siteInfo.captcha && (\n <Form.Item name='captchaCode' rules={[{required: true}]}>\n <Space style={{alignItems: 'center'}}>\n <Input size='large' placeholder='验证码' prefix={<SafetyCertificateOutlined/>}/>\n <img height={36} width={100}\n src={SysUtils.contextPath(\"/admin/auth/captcha-image?_random=\" + this.state.random)}\n onClick={() => this.setState({random: Math.random()})}/>\n </Space>\n </Form.Item>\n )}\n\n <Form.Item style={{marginTop: 10}}>\n <Button loading={this.state.logging} type=\"primary\" htmlType=\"submit\"\n block size='large'>\n 登录\n </Button>\n </Form.Item>\n </Form>\n );\n\n if (this.props.formRender) {\n return this.props.formRender(form);\n }\n return form;\n };\n\n renderFormBottom() {\n const siteInfo = this.state.siteInfo;\n if (siteInfo.loginBoxBottomTip) {\n return (\n <div style={{color: 'white', marginTop: 50, fontSize: '14px', textAlign: 'center'}}>\n <WarningOutlined/> {siteInfo.loginBoxBottomTip}\n </div>\n )\n }\n }\n}\n",
2208
+ "__content": "import React from 'react';\nimport {Button, Form, Input, message, Space} from 'antd';\nimport {LockOutlined, SafetyCertificateOutlined, UserOutlined, WarningOutlined} from '@ant-design/icons';\nimport {history} from 'umi';\nimport {EventBusUtils, HttpUtils, PageUtils, MessageUtils, SysUtils} from \"../framework/utils\";\n\nimport \"./login.less\"\n\nfunction getRedirect() {\n let redirect = PageUtils.currentParams()['redirect'];\n if (redirect) {\n redirect = decodeURIComponent(redirect)\n } else {\n redirect = '/'\n }\n return redirect;\n}\n\nfunction postLogin(values) {\n return new Promise((resolve, reject) => {\n HttpUtils.post('/admin/auth/login', values).then(rs => {\n EventBusUtils.emit('loginSuccess')\n history.push(getRedirect())\n resolve(rs)\n }).catch(e => {\n console.error('[Login] 登录失败:', e);\n reject(e)\n })\n })\n}\n\nfunction encodePassword(pwd) {\n const chars = [];\n for (let i = 0; i < pwd.length; i++)\n chars.push(pwd.charCodeAt(i) + i + 2);\n return btoa(String.fromCharCode(...chars));\n}\n\nexport default class extends React.Component {\n\n state = {\n logging: false,\n siteInfo: {},\n random: Math.random()\n }\n\n async componentDidMount() {\n const siteInfo = SysUtils.getSiteInfo()\n if (siteInfo && siteInfo.title) {\n this.setState({siteInfo})\n return\n }\n // localStorage 中无站点信息,从服务端重新加载\n try {\n const rs = await HttpUtils.get('/admin/public/site-info')\n SysUtils.setSiteInfo(rs)\n this.setState({siteInfo: rs})\n } catch (e) {\n console.error('[Login] 加载站点信息失败:', e);\n message.error('加载站点信息失败,请刷新页面重试')\n }\n }\n\n submit = values => {\n this.setState({logging: true})\n values.password = encodePassword(values.password)\n postLogin(values).finally(() => {\n this.setState({logging: false})\n })\n }\n\n render() {\n const {siteInfo} = this.state\n\n const pageStyle = {\n backgroundImage: `url(\"${SysUtils.contextPath('/admin/public/login_bg.jpg')}\")`\n }\n if (siteInfo.loginBackground) {\n const url = SysUtils.contextPath('/admin/sysFile/preview/' + siteInfo.loginBackground);\n pageStyle.backgroundImage = 'url(\"' + url + '\")'\n }\n\n return (\n <section className='login-page' style={pageStyle}>\n <div className=\"login-content\">\n <h1>{siteInfo.title}</h1>\n {this.getForm(siteInfo)}\n {this.renderFormBottom()}\n </div>\n </section>\n );\n }\n\n getForm = siteInfo => {\n const form = (\n <Form\n name=\"normal_login\"\n className=\"login-form\"\n initialValues={{remember: true}}\n onFinish={this.submit}\n requiredMark={false}\n colon={false}\n >\n <Form.Item name=\"username\" rules={[{required: true, message: '请输入用户名!'}]}>\n <Input size='large' prefix={<UserOutlined/>} placeholder=\"用户名\" autoComplete=\"off\"/>\n </Form.Item>\n <Form.Item name=\"password\" rules={[{required: true, message: '请输入密码!'}]}>\n <Input autoComplete=\"off\" prefix={<LockOutlined/>} type=\"password\" placeholder=\"密码\"\n size='large'\n />\n </Form.Item>\n\n {siteInfo.captcha && (\n <Form.Item name='captchaCode' rules={[{required: true}]}>\n <Space style={{alignItems: 'center'}}>\n <Input size='large' placeholder='验证码' prefix={<SafetyCertificateOutlined/>}/>\n <img height={36} width={100}\n src={SysUtils.contextPath(\"/admin/auth/captcha-image?_random=\" + this.state.random)}\n onClick={() => this.setState({random: Math.random()})}/>\n </Space>\n </Form.Item>\n )}\n\n <Form.Item style={{marginTop: 10}}>\n <Button loading={this.state.logging} type=\"primary\" htmlType=\"submit\"\n block size='large'>\n 登录\n </Button>\n </Form.Item>\n </Form>\n );\n\n if (this.props.formRender) {\n return this.props.formRender(form);\n }\n return form;\n };\n\n renderFormBottom() {\n const siteInfo = this.state.siteInfo;\n if (siteInfo.loginBoxBottomTip) {\n return (\n <div style={{color: 'white', marginTop: 50, fontSize: '14px', textAlign: 'center'}}>\n <WarningOutlined/> {siteInfo.loginBoxBottomTip}\n </div>\n )\n }\n }\n}\n",
2210
2209
  "__isJSFile": true,
2211
2210
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/login.jsx"
2212
2211
  },
@@ -117,8 +117,8 @@ export default class extends React.Component {
117
117
  if (leafRootNodes.length > 0) {
118
118
  const defaultGroup = {
119
119
  key: '_default_group',
120
- label: '默认',
121
- title: '默',
120
+ label: '业务模块',
121
+ title: '业',
122
122
  icon: <NamedIcon name="AppstoreOutlined" style={{fontSize: 12}}/>,
123
123
  children: leafRootNodes,
124
124
  type: 'directory',
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import {Button, Form, Input, message, Space} from 'antd';
3
3
  import {LockOutlined, SafetyCertificateOutlined, UserOutlined, WarningOutlined} from '@ant-design/icons';
4
- import {JSEncrypt} from "jsencrypt";
5
4
  import {history} from 'umi';
6
5
  import {EventBusUtils, HttpUtils, PageUtils, MessageUtils, SysUtils} from "../framework/utils";
7
6
 
@@ -30,6 +29,13 @@ function postLogin(values) {
30
29
  })
31
30
  }
32
31
 
32
+ function encodePassword(pwd) {
33
+ const chars = [];
34
+ for (let i = 0; i < pwd.length; i++)
35
+ chars.push(pwd.charCodeAt(i) + i + 2);
36
+ return btoa(String.fromCharCode(...chars));
37
+ }
38
+
33
39
  export default class extends React.Component {
34
40
 
35
41
  state = {
@@ -40,7 +46,7 @@ export default class extends React.Component {
40
46
 
41
47
  async componentDidMount() {
42
48
  const siteInfo = SysUtils.getSiteInfo()
43
- if (siteInfo && siteInfo.rsaPublicKey) {
49
+ if (siteInfo && siteInfo.title) {
44
50
  this.setState({siteInfo})
45
51
  return
46
52
  }
@@ -57,17 +63,7 @@ export default class extends React.Component {
57
63
 
58
64
  submit = values => {
59
65
  this.setState({logging: true})
60
-
61
- const pubkey = this.state.siteInfo.rsaPublicKey;
62
- if (!pubkey) {
63
- message.error("未获取密钥,请刷新浏览器再试")
64
- this.setState({logging: false})
65
- return
66
- }
67
- const crypt = new JSEncrypt();
68
- crypt.setPublicKey(pubkey);
69
- values.password = crypt.encrypt(values.password)
70
-
66
+ values.password = encodePassword(values.password)
71
67
  postLogin(values).finally(() => {
72
68
  this.setState({logging: false})
73
69
  })