component-shipinlv 1.0.6 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Auth/index.d.ts +8 -0
- package/dist/Auth/index.js +334 -0
- package/dist/AuthClient/qr/index.css.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/typings.d.ts +1 -1
- package/package.json +1 -1
@@ -0,0 +1,334 @@
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
5
|
+
import React, { useState, useEffect, useRef } from 'react';
|
6
|
+
import { WechatOutlined, RedoOutlined, UserOutlined } from '@ant-design/icons';
|
7
|
+
import { Tabs } from 'antd';
|
8
|
+
import { useRequest } from '@umijs/hooks';
|
9
|
+
import * as AuthController from "../service/api/AuthController";
|
10
|
+
import PageContentWarp from "../UI/PageContentWarp";
|
11
|
+
import AuthLoginReg from "../AuthClient/login-reg";
|
12
|
+
import Platform from "../lib/platform";
|
13
|
+
import QrWs from "../AuthClient/qr/ws";
|
14
|
+
import { getApiEnv } from "../lib/getApiUrl";
|
15
|
+
import styles from "../AuthClient/qr/index.css";
|
16
|
+
import QRCode from 'qrcode.react';
|
17
|
+
import h5WePublicLogin from "../AuthClient/qr/h5-we-public-login";
|
18
|
+
import Tool from "../lib/Tool";
|
19
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
20
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
21
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
22
|
+
var reTryMaxCount = 120;
|
23
|
+
var reTryTimeLoop = 1000; // ms
|
24
|
+
var FromWhere = 'web';
|
25
|
+
|
26
|
+
// 逐渐弃用 AuthClient ,使用 本函数
|
27
|
+
var Auth = function Auth(_ref) {
|
28
|
+
var loginTypeList = _ref.loginTypeList,
|
29
|
+
_ref$domain = _ref.domain,
|
30
|
+
domain = _ref$domain === void 0 ? document.location.hostname : _ref$domain,
|
31
|
+
_ref$onLoginSuccess = _ref.onLoginSuccess,
|
32
|
+
onLoginSuccess = _ref$onLoginSuccess === void 0 ? function () {} : _ref$onLoginSuccess;
|
33
|
+
var _useState = useState(false),
|
34
|
+
_useState2 = _slicedToArray(_useState, 2),
|
35
|
+
loading = _useState2[0],
|
36
|
+
setLoading = _useState2[1];
|
37
|
+
var qrWsRef = useRef();
|
38
|
+
var _useState3 = useState((loginTypeList === null || loginTypeList === void 0 ? void 0 : loginTypeList[0]) || 'wechat'),
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
40
|
+
activeKey = _useState4[0],
|
41
|
+
setActiveKey = _useState4[1];
|
42
|
+
var _useState5 = useState("".concat(Tool.math.randWord(20))),
|
43
|
+
_useState6 = _slicedToArray(_useState5, 1),
|
44
|
+
loginId = _useState6[0];
|
45
|
+
var _useState7 = useState(''),
|
46
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
47
|
+
weQrUrl = _useState8[0],
|
48
|
+
setWeQrUrl = _useState8[1];
|
49
|
+
var isNextTryRef = useRef(activeKey === 'wechat');
|
50
|
+
|
51
|
+
// 要不要继续 try
|
52
|
+
var _useState9 = useState(isNextTryRef.current),
|
53
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
54
|
+
isNextTry = _useState10[0],
|
55
|
+
setNextTry = _useState10[1];
|
56
|
+
var reTryCountRef = useRef(0);
|
57
|
+
var _useState11 = useState(0),
|
58
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
59
|
+
reTryCount = _useState12[0],
|
60
|
+
setReTryCount = _useState12[1];
|
61
|
+
var timer = useRef(setTimeout(function () {}, 1));
|
62
|
+
var eventSourceRef = useRef(null);
|
63
|
+
var onLoginCancel = function onLoginCancel() {
|
64
|
+
var _eventSourceRef$curre, _qrWsRef$current;
|
65
|
+
(_eventSourceRef$curre = eventSourceRef.current) === null || _eventSourceRef$curre === void 0 || _eventSourceRef$curre.close();
|
66
|
+
clearInterval(timer.current);
|
67
|
+
reTryCountRef.current = 0;
|
68
|
+
setReTryCount(0);
|
69
|
+
(_qrWsRef$current = qrWsRef.current) === null || _qrWsRef$current === void 0 || _qrWsRef$current.destroy();
|
70
|
+
};
|
71
|
+
var onCheckLogin = /*#__PURE__*/function () {
|
72
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
73
|
+
var init, post;
|
74
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
75
|
+
while (1) switch (_context.prev = _context.next) {
|
76
|
+
case 0:
|
77
|
+
qrWsRef.current = new QrWs();
|
78
|
+
|
79
|
+
// 先初始化
|
80
|
+
_context.next = 3;
|
81
|
+
return qrWsRef.current.init().catch(function (err) {
|
82
|
+
Tool.toastError(err.message);
|
83
|
+
});
|
84
|
+
case 3:
|
85
|
+
init = _context.sent;
|
86
|
+
if (init) {
|
87
|
+
_context.next = 7;
|
88
|
+
break;
|
89
|
+
}
|
90
|
+
onLoginError();
|
91
|
+
return _context.abrupt("return");
|
92
|
+
case 7:
|
93
|
+
_context.next = 9;
|
94
|
+
return qrWsRef.current.post({
|
95
|
+
fromWhere: FromWhere,
|
96
|
+
loginId: loginId
|
97
|
+
}, {
|
98
|
+
onData: function onData(text) {}
|
99
|
+
}).catch(function (err) {
|
100
|
+
Tool.toastError(err.message);
|
101
|
+
onLoginError();
|
102
|
+
});
|
103
|
+
case 9:
|
104
|
+
post = _context.sent;
|
105
|
+
// 登录成功
|
106
|
+
if (post) {
|
107
|
+
// 登陆成功;
|
108
|
+
// let info = {};
|
109
|
+
// try {
|
110
|
+
// info = JSON.parse( post.data );
|
111
|
+
// }catch (e) {
|
112
|
+
// console.log("result:", post, e )
|
113
|
+
// }
|
114
|
+
onCheckSuccess(post.data);
|
115
|
+
}
|
116
|
+
case 11:
|
117
|
+
case "end":
|
118
|
+
return _context.stop();
|
119
|
+
}
|
120
|
+
}, _callee);
|
121
|
+
}));
|
122
|
+
return function onCheckLogin() {
|
123
|
+
return _ref2.apply(this, arguments);
|
124
|
+
};
|
125
|
+
}();
|
126
|
+
var onCheckSuccess = function onCheckSuccess(userInfo) {
|
127
|
+
Tool.setLocalUserInfo(_objectSpread(_objectSpread({}, userInfo), {}, {
|
128
|
+
isLogin: true
|
129
|
+
}));
|
130
|
+
onLoginSuccess();
|
131
|
+
Tool.event.run('login-success');
|
132
|
+
Tool.toast('登录成功');
|
133
|
+
};
|
134
|
+
var _useRequest = useRequest(function () {
|
135
|
+
return AuthController.weMiniLoginQr({
|
136
|
+
loginId: loginId,
|
137
|
+
//string 32
|
138
|
+
loginType: 'client',
|
139
|
+
from: "web",
|
140
|
+
// 没有推荐者,会根据域名判断 经销商
|
141
|
+
inviteUserId: Tool.getInviteUserId(),
|
142
|
+
domain: domain || document.location.hostname,
|
143
|
+
env: getApiEnv()
|
144
|
+
});
|
145
|
+
}, {
|
146
|
+
manual: true,
|
147
|
+
//,
|
148
|
+
onSuccess: function onSuccess(result) {
|
149
|
+
setWeQrUrl(result.url);
|
150
|
+
onRunCheck();
|
151
|
+
}
|
152
|
+
}),
|
153
|
+
runWeLoginQr = _useRequest.run,
|
154
|
+
loadingWeLoginQr = _useRequest.loading,
|
155
|
+
errorWeLoginQr = _useRequest.error;
|
156
|
+
var onRunCheck = function onRunCheck() {
|
157
|
+
clearInterval(timer.current);
|
158
|
+
onCheckLogin();
|
159
|
+
reTryCountRef.current = 0;
|
160
|
+
setReTryCount(0);
|
161
|
+
timer.current = setInterval(function () {
|
162
|
+
reTryCountRef.current++;
|
163
|
+
setReTryCount(reTryCountRef.current);
|
164
|
+
console.log("reTryCount:", reTryCountRef.current);
|
165
|
+
if (reTryCountRef.current >= reTryMaxCount) {
|
166
|
+
onLoginError();
|
167
|
+
return;
|
168
|
+
}
|
169
|
+
}, reTryTimeLoop);
|
170
|
+
};
|
171
|
+
var onRetryWeQr = function onRetryWeQr() {
|
172
|
+
isNextTryRef.current = true;
|
173
|
+
setNextTry(true);
|
174
|
+
setReTryCount(0);
|
175
|
+
reTryCountRef.current = 0;
|
176
|
+
|
177
|
+
// 重新
|
178
|
+
setWeQrUrl('');
|
179
|
+
runWeLoginQr();
|
180
|
+
};
|
181
|
+
var onTabChange = /*#__PURE__*/function () {
|
182
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(keyName) {
|
183
|
+
var _qrWsRef$current2;
|
184
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
185
|
+
while (1) switch (_context2.prev = _context2.next) {
|
186
|
+
case 0:
|
187
|
+
// @ts-ignore
|
188
|
+
setActiveKey(keyName);
|
189
|
+
if (keyName === 'wechat') {
|
190
|
+
// await runWeLoginQr();
|
191
|
+
onRetryWeQr();
|
192
|
+
} else {
|
193
|
+
// 停止 weixin
|
194
|
+
(_qrWsRef$current2 = qrWsRef.current) === null || _qrWsRef$current2 === void 0 || _qrWsRef$current2.destroy();
|
195
|
+
}
|
196
|
+
case 2:
|
197
|
+
case "end":
|
198
|
+
return _context2.stop();
|
199
|
+
}
|
200
|
+
}, _callee2);
|
201
|
+
}));
|
202
|
+
return function onTabChange(_x) {
|
203
|
+
return _ref3.apply(this, arguments);
|
204
|
+
};
|
205
|
+
}();
|
206
|
+
var onLoginError = function onLoginError() {
|
207
|
+
clearInterval(timer.current);
|
208
|
+
isNextTryRef.current = false;
|
209
|
+
setNextTry(false);
|
210
|
+
reTryCountRef.current = 0;
|
211
|
+
setReTryCount(0);
|
212
|
+
onLoginCancel();
|
213
|
+
};
|
214
|
+
var onInit = /*#__PURE__*/function () {
|
215
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
216
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
217
|
+
while (1) switch (_context3.prev = _context3.next) {
|
218
|
+
case 0:
|
219
|
+
if (!Platform.isWechat) {
|
220
|
+
_context3.next = 7;
|
221
|
+
break;
|
222
|
+
}
|
223
|
+
setLoading(true);
|
224
|
+
// jump
|
225
|
+
_context3.next = 4;
|
226
|
+
return h5WePublicLogin();
|
227
|
+
case 4:
|
228
|
+
setLoading(false);
|
229
|
+
_context3.next = 9;
|
230
|
+
break;
|
231
|
+
case 7:
|
232
|
+
_context3.next = 9;
|
233
|
+
return runWeLoginQr();
|
234
|
+
case 9:
|
235
|
+
case "end":
|
236
|
+
return _context3.stop();
|
237
|
+
}
|
238
|
+
}, _callee3);
|
239
|
+
}));
|
240
|
+
return function onInit() {
|
241
|
+
return _ref4.apply(this, arguments);
|
242
|
+
};
|
243
|
+
}();
|
244
|
+
useEffect(function () {
|
245
|
+
onInit();
|
246
|
+
return function () {
|
247
|
+
clearTimeout(timer.current);
|
248
|
+
};
|
249
|
+
}, []);
|
250
|
+
return /*#__PURE__*/_jsx(styles.AuthQrLogin, {
|
251
|
+
children: /*#__PURE__*/_jsxs(styles.LoginForm, {
|
252
|
+
children: [/*#__PURE__*/_jsx(styles.WebTitle, {
|
253
|
+
children: /*#__PURE__*/_jsx("span", {
|
254
|
+
children: "\u767B\u5F55/\u6CE8\u518C"
|
255
|
+
})
|
256
|
+
}), /*#__PURE__*/_jsxs(Tabs, {
|
257
|
+
activeKey: activeKey,
|
258
|
+
onChange: function onChange(keyName) {
|
259
|
+
onTabChange(keyName);
|
260
|
+
},
|
261
|
+
children: [/*#__PURE__*/_jsx(Tabs.TabPane, {
|
262
|
+
tab: /*#__PURE__*/_jsxs(_Fragment, {
|
263
|
+
children: [/*#__PURE__*/_jsx(WechatOutlined, {}), " \u5FAE\u4FE1"]
|
264
|
+
}),
|
265
|
+
disabled: (loginTypeList === null || loginTypeList === void 0 ? void 0 : loginTypeList.length) > 0 && !loginTypeList.includes('wechat'),
|
266
|
+
children: /*#__PURE__*/_jsx(PageContentWarp, {
|
267
|
+
loading: loadingWeLoginQr || loading,
|
268
|
+
error: errorWeLoginQr,
|
269
|
+
onReload: function onReload() {
|
270
|
+
return onRetryWeQr();
|
271
|
+
},
|
272
|
+
children: /*#__PURE__*/_jsxs(styles.WeQrUrlBox, {
|
273
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
274
|
+
style: {
|
275
|
+
// backgroundImage: `url('${ weQrUrl }')`,
|
276
|
+
},
|
277
|
+
className: "qr wechat ".concat(isNextTry ? '' : 'noTry'),
|
278
|
+
children: [!isNextTry && /*#__PURE__*/_jsx("div", {
|
279
|
+
className: "reTry",
|
280
|
+
onClick: onRetryWeQr,
|
281
|
+
children: /*#__PURE__*/_jsx("a", {
|
282
|
+
children: /*#__PURE__*/_jsx(RedoOutlined, {})
|
283
|
+
})
|
284
|
+
}), /*#__PURE__*/_jsx("div", {
|
285
|
+
className: "weQrUrl",
|
286
|
+
children: /*#__PURE__*/_jsx(QRCode, {
|
287
|
+
value: weQrUrl,
|
288
|
+
fgColor: "#0bc160",
|
289
|
+
size: 230
|
290
|
+
})
|
291
|
+
})]
|
292
|
+
}), Platform.isH5 ? /*#__PURE__*/_jsxs("div", {
|
293
|
+
className: "altWeb",
|
294
|
+
children: [/*#__PURE__*/_jsx("div", {
|
295
|
+
className: "titles",
|
296
|
+
children: "\u4E0B\u9762\u4EFB\u9009\u4E00\u4E2A\u65B9\u6CD5\u90FD\u53EF\u4EE5\u767B\u5F55\uFF1A"
|
297
|
+
}), /*#__PURE__*/_jsxs("ul", {
|
298
|
+
children: [/*#__PURE__*/_jsx("li", {
|
299
|
+
children: "1\u3001\u628A\u672C\u9875\u7F51\u5740\u590D\u5236\u5230\u5FAE\u4FE1\u91CC\u9762\u6253\u5F00"
|
300
|
+
}), /*#__PURE__*/_jsx("li", {
|
301
|
+
children: "2\u3001\u8BF7\u7528\u5FAE\u4FE1\u626B\u7801\u767B\u5F55"
|
302
|
+
})]
|
303
|
+
})]
|
304
|
+
}) : /*#__PURE__*/_jsx("div", {
|
305
|
+
className: "alt"
|
306
|
+
})]
|
307
|
+
})
|
308
|
+
})
|
309
|
+
}, "wechat"), /*#__PURE__*/_jsx(Tabs.TabPane, {
|
310
|
+
tab: /*#__PURE__*/_jsxs("span", {
|
311
|
+
className: "tab-icon",
|
312
|
+
children: [/*#__PURE__*/_jsx(UserOutlined, {}), " \u8D26\u6237"]
|
313
|
+
}),
|
314
|
+
disabled: !loginTypeList.includes('account-login'),
|
315
|
+
children: /*#__PURE__*/_jsx(AuthLoginReg, {
|
316
|
+
accountRegDisabled: !loginTypeList.includes('account-reg'),
|
317
|
+
onSuccess: function onSuccess() {
|
318
|
+
return onLoginSuccess();
|
319
|
+
}
|
320
|
+
})
|
321
|
+
}, "account")]
|
322
|
+
}), activeKey === 'wechat' && /*#__PURE__*/_jsx("div", {
|
323
|
+
className: "percent",
|
324
|
+
children: /*#__PURE__*/_jsx("div", {
|
325
|
+
className: "warp",
|
326
|
+
style: {
|
327
|
+
width: "".concat(reTryCount / reTryMaxCount * 100, "%")
|
328
|
+
}
|
329
|
+
})
|
330
|
+
})]
|
331
|
+
})
|
332
|
+
});
|
333
|
+
};
|
334
|
+
export default Auth;
|
@@ -2,7 +2,7 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLit
|
|
2
2
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
3
3
|
import styled from 'styled-components';
|
4
4
|
export default {
|
5
|
-
AuthQrLogin: styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .weQrUrl{\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n .qr{\n position: relative;\n display: block;\n margin: 12px auto 0;\n width: 230px;\n height: 230px;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n &.qrAlipay{\n border: 3px solid #1677ff;\n }\n .reTry{\n position: absolute;\n z-index: 100;\n left: 0;\n top: 0;\n width: 100%;\n font-size: 80px;\n background-color: rgba( 255, 255, 255, 0.95 );\n text-align: center;\n line-height: 210px;\n height: 100%;\n a{\n display: block;\n }\n }\n }\n .alt{\n padding: 10px 0 0;\n color: #999;\n text-align: center;\n }\n .altWeb{\n padding: 16px 0 0;\n max-width: 300px;\n margin: 0 auto;\n .titles{\n text-align: center;\n font-weight: bold;\n }\n ul{\n margin: 0 10px;\n }\n\n }\n .percent{\n width: 100%;\n position: absolute;\n overflow: hidden;\n left: 0;\n bottom: 0;\n .warp{\n height: 4px;\n background-color: #1677ff;\n transition: all 1.6s ease-in-out;\n -webkit-transition: all 1.6s ease-in-out;\n }\n }\n "]))),
|
5
|
+
AuthQrLogin: styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n :global{\n .ant-tabs-tab-btn{\n .anticon{\n margin-right: 6px;\n }\n }\n }\n .weQrUrl{\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n .qr{\n position: relative;\n display: block;\n margin: 12px auto 0;\n width: 230px;\n height: 230px;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n &.qrAlipay{\n border: 3px solid #1677ff;\n }\n .reTry{\n position: absolute;\n z-index: 100;\n left: 0;\n top: 0;\n width: 100%;\n font-size: 80px;\n background-color: rgba( 255, 255, 255, 0.95 );\n text-align: center;\n line-height: 210px;\n height: 100%;\n a{\n display: block;\n }\n }\n }\n .alt{\n padding: 10px 0 0;\n color: #999;\n text-align: center;\n }\n .altWeb{\n padding: 16px 0 0;\n max-width: 300px;\n margin: 0 auto;\n .titles{\n text-align: center;\n font-weight: bold;\n }\n ul{\n margin: 0 10px;\n }\n\n }\n .percent{\n width: 100%;\n position: absolute;\n overflow: hidden;\n left: 0;\n bottom: 0;\n .warp{\n height: 4px;\n background-color: #1677ff;\n transition: all 1.6s ease-in-out;\n -webkit-transition: all 1.6s ease-in-out;\n }\n }\n "]))),
|
6
6
|
LoginForm: styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin: 0 auto;\n padding: 0 0 5px 0 ;\n background-color: rgba(255, 255, 255, 0.75 );\n border-radius: 6px;\n "]))),
|
7
7
|
WebTitle: styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n font-weight: normal;\n font-size: 22px;\n text-align: center;\n padding: 0;\n margin: 6px 0 0 0;\n line-height: 1em;\n span{\n display: inline-block;\n padding-left: 5px;\n font-weight: lighter;\n font-size: 16px;\n }\n "]))),
|
8
8
|
WeQrUrlBox: styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n min-height: 240px !important;\n "])))
|
package/dist/index.d.ts
CHANGED
@@ -3,6 +3,7 @@ export { default as VipCompare } from './VipCompare';
|
|
3
3
|
export { default as Buy } from './Buy';
|
4
4
|
export { default as Login } from './Login';
|
5
5
|
export { default as AuthClient } from './AuthClient';
|
6
|
+
export { default as Auth } from './Auth';
|
6
7
|
export { default as Product } from './Product';
|
7
8
|
export { default as JoinClient } from './join-client';
|
8
9
|
export { default as VipList } from './VipList';
|
package/dist/index.js
CHANGED
@@ -5,6 +5,7 @@ export { default as VipCompare } from "./VipCompare";
|
|
5
5
|
export { default as Buy } from "./Buy";
|
6
6
|
export { default as Login } from "./Login";
|
7
7
|
export { default as AuthClient } from "./AuthClient";
|
8
|
+
export { default as Auth } from "./Auth";
|
8
9
|
export { default as Product } from "./Product";
|
9
10
|
export { default as JoinClient } from "./join-client";
|
10
11
|
export { default as VipList } from "./VipList";
|
package/dist/typings.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
declare namespace Global {
|
2
2
|
export type Env = 'local' | 'pre' | 'prod';
|
3
|
-
type AuthClientLoginType = 'wechat' | 'account' | 'alipay';
|
3
|
+
type AuthClientLoginType = 'wechat' | 'account-login' | 'account-reg' | 'alipay';
|
4
4
|
export type ProductKind = 'vip' | 'vip-card' | string;
|
5
5
|
interface RequestResult{
|
6
6
|
code: string;
|