component-shipinlv 0.0.29 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/global.less +0 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/join-client/index.d.ts +8 -0
- package/dist/join-client/index.js +203 -0
- package/dist/join-client/index.less +15 -0
- package/dist/lib/Tool.d.ts +1 -1
- package/dist/lib/request.js +1 -1
- package/dist/service/api/SubClientController.d.ts +7 -0
- package/dist/service/api/SubClientController.js +47 -0
- package/dist/typings/SubClient.d.ts +10 -0
- package/dist/typings/SubClient.js +0 -0
- package/package.json +1 -1
package/dist/global.less
ADDED
File without changes
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
@@ -2,4 +2,5 @@ export { default as VipCompare } from "./VipCompare";
|
|
2
2
|
export { default as Buy } from "./Buy";
|
3
3
|
export { default as Login } from "./Login";
|
4
4
|
export { default as AuthClient } from "./AuthClient";
|
5
|
-
export { default as Product } from "./Product";
|
5
|
+
export { default as Product } from "./Product";
|
6
|
+
export { default as JoinClient } from "./join-client";
|
@@ -0,0 +1,203 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
4
|
+
import React, { useRef, useState } from 'react';
|
5
|
+
import * as SubClientController from "../service/api/SubClientController";
|
6
|
+
import { useRequest } from '@umijs/hooks';
|
7
|
+
import "./index.less";
|
8
|
+
import { CheckCircleFilled, ExclamationCircleFilled, LoadingOutlined, QuestionCircleOutlined, RedoOutlined } from "@ant-design/icons";
|
9
|
+
import { Button, Divider, Tooltip } from "antd";
|
10
|
+
import Tool from "../lib/Tool";
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
12
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
13
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
14
|
+
var TryRunStatusMaxCount = 1000;
|
15
|
+
var TryRunStatusIntervalMillisecond = 1000;
|
16
|
+
var JoinClient = function JoinClient(_ref) {
|
17
|
+
var productType = _ref.productType,
|
18
|
+
_ref$port = _ref.port,
|
19
|
+
port = _ref$port === void 0 ? 0 : _ref$port;
|
20
|
+
var _useState = useState('loading'),
|
21
|
+
_useState2 = _slicedToArray(_useState, 2),
|
22
|
+
runStatus = _useState2[0],
|
23
|
+
setRunStatus = _useState2[1];
|
24
|
+
var tryRunStatusTimerRef = useRef(setTimeout(function () {}, 0));
|
25
|
+
var _useRequest = useRequest(function () {
|
26
|
+
return SubClientController.start({
|
27
|
+
productType: productType
|
28
|
+
});
|
29
|
+
}, {
|
30
|
+
// manual: true,
|
31
|
+
onSuccess: function () {
|
32
|
+
var _onSuccess = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(result) {
|
33
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
34
|
+
while (1) switch (_context.prev = _context.next) {
|
35
|
+
case 0:
|
36
|
+
console.log('JoinClient:', result);
|
37
|
+
if (result.status === 'client-not-exist') {
|
38
|
+
setRunStatus('loading');
|
39
|
+
} else if (result.status === 'client-exist') {
|
40
|
+
setRunStatus('loading');
|
41
|
+
} else {
|
42
|
+
console.log('JoinClient run status:', result);
|
43
|
+
setRunStatus('loading');
|
44
|
+
}
|
45
|
+
onTryRunStatus();
|
46
|
+
case 3:
|
47
|
+
case "end":
|
48
|
+
return _context.stop();
|
49
|
+
}
|
50
|
+
}, _callee);
|
51
|
+
}));
|
52
|
+
function onSuccess(_x) {
|
53
|
+
return _onSuccess.apply(this, arguments);
|
54
|
+
}
|
55
|
+
return onSuccess;
|
56
|
+
}(),
|
57
|
+
onError: function onError(err) {
|
58
|
+
console.log('SubClientController start err:', err.name, err.message);
|
59
|
+
setRunStatus('client-fail');
|
60
|
+
}
|
61
|
+
}),
|
62
|
+
loading = _useRequest.loading,
|
63
|
+
run = _useRequest.run;
|
64
|
+
var onTryRunStatus = /*#__PURE__*/function () {
|
65
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
66
|
+
var result;
|
67
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
68
|
+
while (1) switch (_context3.prev = _context3.next) {
|
69
|
+
case 0:
|
70
|
+
_context3.next = 2;
|
71
|
+
return SubClientController.runStatus({
|
72
|
+
productType: productType,
|
73
|
+
port: port
|
74
|
+
}, {
|
75
|
+
silent: true
|
76
|
+
}).catch( /*#__PURE__*/function () {
|
77
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(err) {
|
78
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
79
|
+
while (1) switch (_context2.prev = _context2.next) {
|
80
|
+
case 0:
|
81
|
+
if (err.name === 'sub-client-connect-fail') {
|
82
|
+
setRunStatus('loading');
|
83
|
+
} else {
|
84
|
+
setRunStatus('loading');
|
85
|
+
}
|
86
|
+
_context2.next = 3;
|
87
|
+
return Tool.sleep(TryRunStatusIntervalMillisecond);
|
88
|
+
case 3:
|
89
|
+
onTryRunStatus();
|
90
|
+
case 4:
|
91
|
+
case "end":
|
92
|
+
return _context2.stop();
|
93
|
+
}
|
94
|
+
}, _callee2);
|
95
|
+
}));
|
96
|
+
return function (_x2) {
|
97
|
+
return _ref3.apply(this, arguments);
|
98
|
+
};
|
99
|
+
}());
|
100
|
+
case 2:
|
101
|
+
result = _context3.sent;
|
102
|
+
if (result) {
|
103
|
+
_context3.next = 5;
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
return _context3.abrupt("return");
|
107
|
+
case 5:
|
108
|
+
if (result.runStatus === 'working') {
|
109
|
+
setRunStatus('working');
|
110
|
+
}
|
111
|
+
case 6:
|
112
|
+
case "end":
|
113
|
+
return _context3.stop();
|
114
|
+
}
|
115
|
+
}, _callee3);
|
116
|
+
}));
|
117
|
+
return function onTryRunStatus() {
|
118
|
+
return _ref2.apply(this, arguments);
|
119
|
+
};
|
120
|
+
}();
|
121
|
+
var $status = function $status() {
|
122
|
+
// 'stop' | 'not-install' | 'downloading' | 'down-fail' | 'start-fail' | 'working'
|
123
|
+
if (runStatus === 'client-fail') {
|
124
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
125
|
+
children: ["\u8BF7\u5148", /*#__PURE__*/_jsx("a", {
|
126
|
+
href: "https://shipinlv.com/product/client-shipinlv/download",
|
127
|
+
target: "_blank",
|
128
|
+
children: "\u4E0B\u8F7D"
|
129
|
+
}), "\u3001\u5B89\u88C5\u5BA2\u6237\u7AEF\uFF0C\u5E76", /*#__PURE__*/_jsx("strong", {
|
130
|
+
children: "\u542F\u52A8"
|
131
|
+
}), /*#__PURE__*/_jsx(Divider, {
|
132
|
+
type: "vertical"
|
133
|
+
}), /*#__PURE__*/_jsx(Button, {
|
134
|
+
size: "small",
|
135
|
+
type: "primary",
|
136
|
+
icon: /*#__PURE__*/_jsx(RedoOutlined, {}),
|
137
|
+
onClick: function onClick() {
|
138
|
+
return run();
|
139
|
+
},
|
140
|
+
children: "\u91CD\u65B0\u8FDE\u63A5"
|
141
|
+
})]
|
142
|
+
});
|
143
|
+
}
|
144
|
+
|
145
|
+
// if( runStatus === 'client-close' ){
|
146
|
+
// return <>
|
147
|
+
// 请先 <strong>启动</strong> 视频驴客户端
|
148
|
+
// <Divider type="vertical" />
|
149
|
+
// <Button size="small" type="primary" icon={ <RedoOutlined /> } onClick={ () => run() }>
|
150
|
+
// 连接
|
151
|
+
// </Button>
|
152
|
+
// </>
|
153
|
+
// }
|
154
|
+
|
155
|
+
if (runStatus === 'stop') {
|
156
|
+
return /*#__PURE__*/_jsx("span", {
|
157
|
+
children: "\u5BA2\u6237\u7AEF\u672A\u542F\u52A8"
|
158
|
+
});
|
159
|
+
}
|
160
|
+
if (runStatus === 'loading') {
|
161
|
+
return /*#__PURE__*/_jsxs("span", {
|
162
|
+
children: [/*#__PURE__*/_jsx(LoadingOutlined, {
|
163
|
+
className: "loading"
|
164
|
+
}), " \u8FDE\u63A5\u4E2D"]
|
165
|
+
});
|
166
|
+
}
|
167
|
+
if (runStatus === 'down-fail') {
|
168
|
+
return /*#__PURE__*/_jsx("span", {
|
169
|
+
children: "\u5BA2\u6237\u7AEF\u4E0B\u8F7D\u5931\u8D25"
|
170
|
+
});
|
171
|
+
}
|
172
|
+
if (runStatus === 'downloading') {
|
173
|
+
return /*#__PURE__*/_jsx("span", {
|
174
|
+
children: "\u4E0B\u8F7D\u4E2D"
|
175
|
+
});
|
176
|
+
}
|
177
|
+
if (runStatus === 'start-fail') {
|
178
|
+
return /*#__PURE__*/_jsxs("span", {
|
179
|
+
children: [/*#__PURE__*/_jsx(ExclamationCircleFilled, {}), " \u542F\u52A8\u5931\u8D25"]
|
180
|
+
});
|
181
|
+
}
|
182
|
+
if (runStatus == 'working') {
|
183
|
+
return /*#__PURE__*/_jsxs("span", {
|
184
|
+
children: [/*#__PURE__*/_jsx(CheckCircleFilled, {
|
185
|
+
className: "working"
|
186
|
+
}), " \u5BA2\u6237\u7AEF\u5DF2\u8FDE\u63A5"]
|
187
|
+
});
|
188
|
+
}
|
189
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
190
|
+
children: runStatus
|
191
|
+
});
|
192
|
+
};
|
193
|
+
return /*#__PURE__*/_jsxs("div", {
|
194
|
+
className: "clientStatus",
|
195
|
+
children: [$status(), /*#__PURE__*/_jsx(Divider, {
|
196
|
+
type: "vertical"
|
197
|
+
}), /*#__PURE__*/_jsxs(Tooltip, {
|
198
|
+
title: "\u672C\u9875\u9762\u529F\u80FD\u9700\u8981\u4F60\u7684\u7535\u8111\u4E0A\u5B89\u88C5\u4E13\u7528\u5BA2\u6237\u7AEF\u8F6F\u4EF6",
|
199
|
+
children: [" ", /*#__PURE__*/_jsx(QuestionCircleOutlined, {})]
|
200
|
+
})]
|
201
|
+
});
|
202
|
+
};
|
203
|
+
export default JoinClient;
|
package/dist/lib/Tool.d.ts
CHANGED
@@ -163,7 +163,7 @@ declare const Tool: {
|
|
163
163
|
setTimeOffset(serverTime: number): void;
|
164
164
|
getTime(): number;
|
165
165
|
h5Pay(query: Pay.H5PayQuery): void;
|
166
|
-
notification(type: "
|
166
|
+
notification(type: "success" | "info" | "warning" | "error", message: string, description?: import("react").ReactNode, options?: NotificationOptions): void;
|
167
167
|
notificationSuccess(message: string, description?: import("react").ReactNode, options?: NotificationOptions): void;
|
168
168
|
notificationError(message: string, description?: import("react").ReactNode, options?: NotificationOptions): void;
|
169
169
|
notificationWarning(message: string, description?: import("react").ReactNode, options?: NotificationOptions): void;
|
package/dist/lib/request.js
CHANGED
@@ -61,7 +61,7 @@ var requestApi = function requestApi() {
|
|
61
61
|
}
|
62
62
|
}
|
63
63
|
}).catch(function (err) {
|
64
|
-
console.log('ajax error:', err);
|
64
|
+
console.log('ajax error:', err.name, err.message, err);
|
65
65
|
if (['Failed to fetch', 'http error'].includes(err === null || err === void 0 ? void 0 : err.message)) {
|
66
66
|
err.message = '发生了一些问题,请稍后重试';
|
67
67
|
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
export declare function start(body: {
|
2
|
+
productType: string;
|
3
|
+
}, options?: Global.RequestOptions): Promise<SubClient.StartResult>;
|
4
|
+
export declare function runStatus(body: {
|
5
|
+
productType: string;
|
6
|
+
port: number;
|
7
|
+
}, options?: Global.RequestOptions): Promise<SubClient.RunStatusResult>;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
4
|
+
import request from "../../lib/request";
|
5
|
+
export function start(_x, _x2) {
|
6
|
+
return _start.apply(this, arguments);
|
7
|
+
}
|
8
|
+
|
9
|
+
// 测试是否联通
|
10
|
+
function _start() {
|
11
|
+
_start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(body, options) {
|
12
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
13
|
+
while (1) switch (_context.prev = _context.next) {
|
14
|
+
case 0:
|
15
|
+
return _context.abrupt("return", request("http://127.0.0.1:61800/sub-client/start", _objectSpread({
|
16
|
+
env: (options === null || options === void 0 ? void 0 : options.env) || '',
|
17
|
+
method: 'GET',
|
18
|
+
params: _objectSpread({}, body)
|
19
|
+
}, options || {})));
|
20
|
+
case 1:
|
21
|
+
case "end":
|
22
|
+
return _context.stop();
|
23
|
+
}
|
24
|
+
}, _callee);
|
25
|
+
}));
|
26
|
+
return _start.apply(this, arguments);
|
27
|
+
}
|
28
|
+
export function runStatus(_x3, _x4) {
|
29
|
+
return _runStatus.apply(this, arguments);
|
30
|
+
}
|
31
|
+
function _runStatus() {
|
32
|
+
_runStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(body, options) {
|
33
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
34
|
+
while (1) switch (_context2.prev = _context2.next) {
|
35
|
+
case 0:
|
36
|
+
return _context2.abrupt("return", request("http://127.0.0.1:".concat((body === null || body === void 0 ? void 0 : body.port) || 61800, "/sub-client/runStatus"), _objectSpread({
|
37
|
+
method: 'GET',
|
38
|
+
params: _objectSpread({}, body)
|
39
|
+
}, options || {})));
|
40
|
+
case 1:
|
41
|
+
case "end":
|
42
|
+
return _context2.stop();
|
43
|
+
}
|
44
|
+
}, _callee2);
|
45
|
+
}));
|
46
|
+
return _runStatus.apply(this, arguments);
|
47
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
declare namespace SubClient {
|
2
|
+
type ClientRunStatus = 'client-not-exist' | 'client-exist';
|
3
|
+
type RunStatus = 'loading' | 'not-install' | 'stop' | 'downloading' | 'down-fail' | 'start-fail' | 'working' | 'client-fail';
|
4
|
+
interface StartResult {
|
5
|
+
status: ClientRunStatus;
|
6
|
+
}
|
7
|
+
interface RunStatusResult {
|
8
|
+
runStatus: RunStatus;
|
9
|
+
}
|
10
|
+
}
|
File without changes
|