@lingxiteam/assets 0.9.30 → 0.11.30-alpha-2
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/es/IconSvg/index.js +7 -13
- package/es/error/errorCatch/index.js +0 -0
- package/es/error/errorDisplay/Mobile/Drawer/Drawer.js +104 -0
- package/es/error/errorDisplay/Mobile/Drawer/Drawer.less +177 -0
- package/es/error/errorDisplay/Mobile/Drawer/index.js +132 -0
- package/es/error/errorDisplay/Mobile/ErrorMsg/index.js +199 -0
- package/es/error/errorDisplay/Mobile/Modal/Modal.js +43 -0
- package/es/error/errorDisplay/Mobile/Modal/Modal.less +146 -0
- package/es/error/errorDisplay/Mobile/Modal/index.js +119 -0
- package/es/error/errorDisplay/Mobile/defaultGlobalConfig.js +12 -0
- package/es/error/errorDisplay/SVGstring.js +6 -0
- package/es/error/errorDisplay/Web/Drawer/Drawer.js +232 -0
- package/es/error/errorDisplay/Web/Drawer/Drawer.less +354 -0
- package/es/error/errorDisplay/Web/Drawer/DrawerConnect.js +203 -0
- package/es/error/errorDisplay/Web/Drawer/index.js +124 -0
- package/es/error/errorDisplay/Web/ErrorMsg/index.js +241 -0
- package/es/error/errorDisplay/Web/Notification/Notice.js +151 -0
- package/es/error/errorDisplay/Web/Notification/Notification.js +129 -0
- package/es/error/errorDisplay/Web/Notification/Notification.less +134 -0
- package/es/error/errorDisplay/Web/Notification/index.js +84 -0
- package/es/error/errorDisplay/Web/defaultGlobalConfig.js +12 -0
- package/es/error/errorDisplay/animation.less +112 -0
- package/es/error/errorDisplay/compUtils.js +16 -0
- package/es/error/errorDisplay/const.js +44 -0
- package/es/error/errorDisplay/http.js +103 -0
- package/es/error/errorDisplay/variables.less +1 -0
- package/es/error/index.js +3 -0
- package/es/images/ico-back.png +0 -0
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/security/const.d.ts +14 -0
- package/es/security/const.js +16 -0
- package/es/security/encipher/aes.d.ts +2 -0
- package/es/security/encipher/aes.js +26 -0
- package/es/security/encipher/des.d.ts +2 -0
- package/es/security/encipher/des.js +25 -0
- package/es/security/encipher/rsa.d.ts +2 -0
- package/es/security/encipher/rsa.js +17 -0
- package/es/security/{sign.d.ts → encipher/sign.d.ts} +0 -0
- package/es/security/{sign.js → encipher/sign.js} +27 -50
- package/es/security/fetch.d.ts +6 -2
- package/es/security/fetch.js +193 -19
- package/es/security/httpEncryption.js +22 -17
- package/es/security/index.d.ts +11 -4
- package/es/security/index.js +5 -1
- package/es/utils/url.d.ts +1 -0
- package/es/utils/url.js +24 -0
- package/lib/index.js +13 -4
- package/package.json +4 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export var errTypeTitMap = {
|
|
2
|
+
'01': '网络请求异常',
|
|
3
|
+
'02': '程序处理异常',
|
|
4
|
+
'03': '业务数据异常',
|
|
5
|
+
'04': '服务端业务数据异常',
|
|
6
|
+
'05': '配置数据异常',
|
|
7
|
+
'06': '客户端请求异常',
|
|
8
|
+
'07': '业务处理异常',
|
|
9
|
+
'08': '服务器处理异常'
|
|
10
|
+
};
|
|
11
|
+
export var statusClrMap = {
|
|
12
|
+
config: 'purple',
|
|
13
|
+
platform: 'blue'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// 预留更新‘解决方案’
|
|
17
|
+
var localArticles = {};
|
|
18
|
+
try {
|
|
19
|
+
localArticles = JSON.parse(localStorage.getItem('lx-helper') || '{}');
|
|
20
|
+
} catch (err) {
|
|
21
|
+
// console.warn(err);
|
|
22
|
+
}
|
|
23
|
+
export var articleMap = {
|
|
24
|
+
// 网络异常
|
|
25
|
+
'01-00-2-000-000001': localArticles['01-00-2-000-000001'] || {
|
|
26
|
+
title: '服务请求失败,网络出现异常',
|
|
27
|
+
content: "<dl>\n <dt>\u7F51\u7EDC\u5F02\u5E38\u539F\u56E0\uFF1A</dt>\n <dd>\n <ol>\n <li>\u7F51\u7EDC\u6545\u969C\uFF0C\u60A8\u7684\u8BA1\u7B97\u673A/\u624B\u673A\u65E0Internet\u8BBF\u95EE\uFF1B</li>\n <li>\u8BA1\u7B97\u673A/\u624B\u673A\u5F00\u542F\u4E86\u5176\u4ED6\u7F51\u7EDC\u4EE3\u7406\uFF1B</li>\n <li>\u8BF7\u6C42\u88AB\u7F51\u7EDC\u5B89\u5168\u62E6\u622A\uFF1B</li>\n </ol>\n <dd>\n <dt>\u89E3\u51B3\u65B9\u6CD5\uFF1A</dt>\n <dd>\n <ol>\n <li>\u9996\u5148\u786E\u4FDD\u60A8\u7684\u8BA1\u7B97\u673A/\u624B\u673A\u5DF2\u7ECF\u901A\u8FC7Wi-Fi\u6216\u7535\u7F06\u65B9\u5F0F\u6B63\u5E38\u63A5\u5165\u7F51\u7EDC;</li>\n <li>\u5982\u679C\u4F7F\u7528\u516C\u7F51\u8BBF\u95EE\u7CFB\u7EDF\uFF0C\u68C0\u67E5\u60A8\u7684\u8BA1\u7B97\u673A/\u624B\u673A\u662F\u5426\u5DF2\u8FDE\u63A5\u5230Internet\uFF0C\u5982\u65E0Internet\u8BBF\u95EE\uFF0C\u4F60\u53EF\u4EE5\u5C1D\u8BD5:<br />\n - \u91CD\u542F\u7535\u8111\u3001\u5149\u732B\u3001\u8DEF\u7531\u5668\u3001\u624B\u673A\u7F51\u7EDC<br />\n - \u8C03\u6574DNS\u914D\u7F6E<br />\n - \u91CD\u7F6ETCP/IP\u7F51\u7EDC\u914D\u7F6E<br />\n - \u4F7F\u7528\u5176\u4ED6\u6D4F\u89C8\u5668<br />\n \u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\uFF0C\u60A8\u5E94\u8BE5\u8054\u7CFB\u60A8\u7684\u4E92\u8054\u7F51\u670D\u52A1\u63D0\u4F9B\u5546\u5E76\u68C0\u67E5\u662F\u5426\u6709\u4EFB\u4F55\u6280\u672F\u95EE\u9898\u3002\n </li>\n <li>\u68C0\u67E5\u662F\u5426\u5F00\u542F\u5176\u4ED6\u7F51\u7EDC\u4EE3\u7406\uFF0C\u5982\u5F00\u542F\u8BF7\u5C1D\u8BD5\u5173\u95ED\u3002</li>\n </ol>\n </dd>\n </dl>\n "
|
|
28
|
+
},
|
|
29
|
+
// 请求超时
|
|
30
|
+
'01-00-2-000-000002': localArticles['01-00-2-000-000002'] || {
|
|
31
|
+
title: '服务请求失败,请求超时',
|
|
32
|
+
content: "<dl>\n <dt>\u8BF7\u6C42\u5931\u8D25\u53EF\u80FD\u539F\u56E0\uFF1A</dt>\n <dd>\n <ol>\n <li>\u5F53\u524D\u7CFB\u7EDF\u5904\u4E8E\u4F7F\u7528\u9AD8\u5CF0\u671F\uFF0C\u54CD\u5E94\u8F83\u6162\uFF1B</li>\n <li>\u7F51\u7EDC\u4E0A\u884C\u4E0B\u884C\u901F\u7387\u6162\uFF1B</li>\n <li>\u8BF7\u6C42\u62A5\u6587\u8FC7\u5927\uFF0C\u4E0A\u4F20\u9700\u8981\u8F83\u591A\u65F6\u95F4\uFF1B</li>\n <li>\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u6587\u4EF6\u5927\u5C0F\u8FC7\u5927\uFF0C\u9700\u8981\u8F83\u591A\u65F6\u95F4\uFF1B</li>\n </ol>\n </dd>\n </dl>\n <dt>\u89E3\u51B3\u65B9\u6CD5\uFF1A</dt>\n <dd>\n <ol>\n <li>\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF1B</li>\n <li>\u68C0\u67E5\u7F51\u7EDC\uFF0C\u6D4B\u8BD5\u7F51\u7EDC\u901F\u5EA6\uFF0C\u5E76\u4F18\u5316\uFF1B</li>\n <li>\u5982\u5185\u5BB9\u8FC7\u5927\uFF0C\u8054\u7CFB\u7BA1\u7406\u5458\u8C03\u6574\u8D85\u65F6\u65F6\u957F\uFF1B</li>\n </ol>\n </dd>\n </dl>\n "
|
|
33
|
+
},
|
|
34
|
+
// 网关错误
|
|
35
|
+
'06-00-3-000-000502': localArticles['06-00-3-000-000502'] || {
|
|
36
|
+
title: '服务请求失败,请稍后再试或者联系系统管理员',
|
|
37
|
+
content: "<dl>\n <dt>\u8BF7\u6C42\u5931\u8D25\u53EF\u80FD\u539F\u56E0\uFF1A</dt>\n <dd>\n <ol>\n <li>\u5F53\u524D\u7CFB\u7EDF\u5904\u4E8E\u4F7F\u7528\u9AD8\u5CF0\u671F\uFF0C\u54CD\u5E94\u8F83\u6162\uFF1B</li>\n <li>\u7CFB\u7EDF\u5B58\u5728\u5185\u90E8\u9519\u8BEF\uFF1B</li>\n <li>\u7CFB\u7EDF\u6B63\u5728\u53D1\u7248\uFF1B</li>\n </ol>\n </dd>\n </dl>\n <dt>\u89E3\u51B3\u65B9\u6CD5\uFF1A</dt>\n <dd>\n <ol>\n <li>\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF1B</li>\n <li>\u8BF7\u8054\u7CFB\u7CFB\u7EDF\u7BA1\u7406\u5458\uFF0C\u6838\u67E5\uFF1A<br />\n - \u4ECE\u670D\u52A1\u7AEF\u541E\u5410\u91CF\u627F\u8F7D\u8003\u8651\uFF0C\u662F\u5426\u9700\u8981\u8FDB\u884C\u7CFB\u7EDF\u6269\u5BB9\uFF1B<br />\n - \u4ECE\u670D\u52A1\u7AEF\u7A0B\u5E8F\u95EE\u9898\u65B9\u9762\u8003\u8651\uFF0C\u662F\u5426\u9700\u8981\u8FDB\u884C\u7A0B\u5E8F\u4F18\u5316\uFF1B<br />\n - \u4ECE\u7F51\u7EDC\u95EE\u9898\u65B9\u9762\u8003\u8651\uFF0C\u662F\u5426\u9700\u8981\u68C0\u67E5\u7F51\u7EDC\u6D88\u8017\u3001\u8D1F\u8F7D\u5747\u8861\u914D\u7F6E\u662F\u5426\u6B63\u786E\u3002\n </li>\n </ol>\n </dd>\n </dl>\n "
|
|
38
|
+
},
|
|
39
|
+
// 网关超时
|
|
40
|
+
'06-00-3-000-000504': localArticles['06-00-3-000-000504'] || {
|
|
41
|
+
title: '服务请求失败,请稍后再试或者联系系统管理员',
|
|
42
|
+
content: "<dl>\n <dt>\u8BF7\u6C42\u5931\u8D25\u53EF\u80FD\u539F\u56E0\uFF1A</dt>\n <dd>\n <ol>\n <li>\u5F53\u524D\u7CFB\u7EDF\u5904\u4E8E\u4F7F\u7528\u9AD8\u5CF0\u671F\uFF0C\u54CD\u5E94\u8F83\u6162\uFF1B</li>\n </ol>\n </dd>\n </dl>\n <dt>\u89E3\u51B3\u65B9\u6CD5\uFF1A</dt>\n <dd>\n <ol>\n <li>\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF1B</li>\n <li>\u8BF7\u8054\u7CFB\u7CFB\u7EDF\u7BA1\u7406\u5458\uFF0C\u6838\u67E5\uFF1A<br />\n - \u4ECE\u670D\u52A1\u7AEF\u541E\u5410\u91CF\u627F\u8F7D\u8003\u8651\uFF0C\u662F\u5426\u9700\u8981\u8FDB\u884C\u7CFB\u7EDF\u6269\u5BB9\uFF1B<br />\n - \u4ECE\u7F51\u7EDC\u95EE\u9898\u65B9\u9762\u8003\u8651\uFF0C\u662F\u5426\u9700\u8981\u68C0\u67E5\u7F51\u7EDC\u6D88\u8017\u3001\u8D1F\u8F7D\u5747\u8861\u914D\u7F6E\u662F\u5426\u6B63\u786E\u3002\n </li>\n </ol>\n </dd>\n </dl>\n "
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
+
function getSearchObj() {
|
|
14
|
+
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location.href;
|
|
15
|
+
var urlArr = url.split('?');
|
|
16
|
+
if (urlArr.length === 1) return {};
|
|
17
|
+
var search = urlArr.pop();
|
|
18
|
+
var objs = search.split('&');
|
|
19
|
+
var obj = {};
|
|
20
|
+
objs.forEach(function (value) {
|
|
21
|
+
var _value$split = value.split('='),
|
|
22
|
+
_value$split2 = _slicedToArray(_value$split, 2),
|
|
23
|
+
k = _value$split2[0],
|
|
24
|
+
v = _value$split2[1];
|
|
25
|
+
if (v) {
|
|
26
|
+
obj[decodeURIComponent(k)] = decodeURIComponent(v);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return obj;
|
|
30
|
+
}
|
|
31
|
+
var request = function request(url, config) {
|
|
32
|
+
return new Promise(function (resolve, rejects) {
|
|
33
|
+
fetch(url, config).then(function (response) {
|
|
34
|
+
return response === null || response === void 0 ? void 0 : response.body;
|
|
35
|
+
}).then(function (rb) {
|
|
36
|
+
var reader = rb.getReader();
|
|
37
|
+
return new ReadableStream({
|
|
38
|
+
start: function start(controller) {
|
|
39
|
+
function push() {
|
|
40
|
+
reader.read().then(function (_ref) {
|
|
41
|
+
var done = _ref.done,
|
|
42
|
+
value = _ref.value;
|
|
43
|
+
if (done) {
|
|
44
|
+
controller.close();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
controller.enqueue(value);
|
|
48
|
+
push();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
push();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}).then(function (stream) {
|
|
55
|
+
return new Response(stream, {
|
|
56
|
+
headers: {
|
|
57
|
+
'Content-Type': 'application/json'
|
|
58
|
+
}
|
|
59
|
+
}).json();
|
|
60
|
+
}).then(function (result) {
|
|
61
|
+
if (Number(result === null || result === void 0 ? void 0 : result.resultCode) === 0) {
|
|
62
|
+
resolve(result === null || result === void 0 ? void 0 : result.resultObject);
|
|
63
|
+
}
|
|
64
|
+
}).catch(function (err) {
|
|
65
|
+
rejects(err);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
var headers = _objectSpread({
|
|
70
|
+
'APP-ID': window.appId || getSearchObj().appId,
|
|
71
|
+
// 门户类型
|
|
72
|
+
portalType: 2
|
|
73
|
+
}, window.embedMode ? {
|
|
74
|
+
'Embed-Mode': window.embedMode
|
|
75
|
+
} : {});
|
|
76
|
+
var http = {
|
|
77
|
+
get: function get() {
|
|
78
|
+
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
79
|
+
var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
80
|
+
var _ref2 = cfg || {},
|
|
81
|
+
params = _ref2.params;
|
|
82
|
+
var paramsArr = '';
|
|
83
|
+
if (params && Object.keys(params).length > 0) {
|
|
84
|
+
paramsArr = Object.keys(params).map(function (item) {
|
|
85
|
+
return "".concat(item, "=").concat(params[item]);
|
|
86
|
+
}).join('&');
|
|
87
|
+
}
|
|
88
|
+
return request("".concat(url).concat(paramsArr ? "?".concat(paramsArr) : ''), _objectSpread({
|
|
89
|
+
method: 'GET',
|
|
90
|
+
headers: headers
|
|
91
|
+
}, cfg));
|
|
92
|
+
},
|
|
93
|
+
post: function post(url, cfg) {
|
|
94
|
+
return request(url, _objectSpread({
|
|
95
|
+
body: JSON.stringify(cfg === null || cfg === void 0 ? void 0 : cfg.data),
|
|
96
|
+
method: 'POST',
|
|
97
|
+
headers: _objectSpread(_objectSpread({}, headers), {}, {
|
|
98
|
+
'content-type': 'application/json'
|
|
99
|
+
}, cfg === null || cfg === void 0 ? void 0 : cfg.headers)
|
|
100
|
+
}, cfg));
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export default http;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@hd: 1px;
|
|
Binary file
|
package/es/index.d.ts
CHANGED
package/es/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSvgImageBase64 } from './utils/img';
|
|
2
2
|
import security from './security';
|
|
3
|
+
import { ErrorMsg, MobileErrorMsg } from './error';
|
|
3
4
|
export var IconCheckSvg = getSvgImageBase64("<?xml version=\"1.0\" encoding=\"UTF-8\"?><svg width=\"22px\" height=\"22px\" viewBox=\"0 0 22 22\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>\u5168\u5C40\u6837\u5F0F:20/\u539F\u5B50\u7EA7\u63A7\u4EF6/\u590D\u9009/\u72B6\u6001:#\u9009\u4E2D</title><g id=\"\u63A7\u4EF6\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"system-complete\"><path d=\"M11,0 C17.075904,0 22,4.92409598 22,11 C22,17.075904 17.0734732,22 11,22 C4.92652679,22 0,17.0734732 0,11 C0,4.92652679 4.92409598,0 11,0 Z\" id=\"Shape\" fill=\"#1890FF\"></path><path d=\"M9.42871875,12.9681652 L7.2069029,10.7463493 C6.90006126,10.4395077 6.40257267,10.4395077 6.09573103,10.7463493 C5.78889035,11.05319 5.78889035,11.550677 6.09573103,11.8575177 C6.09573161,11.8575183 6.0957322,11.8575189 6.09573278,11.8575195 L8.72212536,14.4838955 C9.11265701,14.8744045 9.74581424,14.874407 10.136349,14.483901 L10.5404063,14.0798527 L10.5404063,14.0798527 L16.2813591,8.33795955 C16.588183,8.03108543 16.5881626,7.53359119 16.2813136,7.22674219 C15.974472,6.91990055 15.4769834,6.91990055 15.1701417,7.22674219 L9.42871875,12.9681652 L9.42871875,12.9681652 Z\" id=\"Path\" fill=\"#FFFFFF\"></path></g></g></svg>");
|
|
4
5
|
export var IconNormalCheckSvg = getSvgImageBase64("<?xml version=\"1.0\" encoding=\"UTF-8\"?><svg width=\"22px\" height=\"22px\" viewBox=\"0 0 22 22\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>\u5168\u5C40\u6837\u5F0F:20/\u539F\u5B50\u7EA7\u63A7\u4EF6/\u590D\u9009/\u72B6\u6001:\u672A\u9009\u4E2D</title><g id=\"\u63A7\u4EF6\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"\u5143\u7D20/\u9009\u62E9/\u672A\u9009\u4E2D\"><path d=\"M11,22 C4.93492502,22 0,17.0653546 0,10.999496 C0,4.9337633 4.93492502,0 11,0 C17.065075,0 22,4.93464539 22,10.999496 C22,17.0644725 17.0660846,22 11,22\" id=\"Fill\" fill=\"#FFFFFF\"></path><path d=\"M11,0.5 C13.8998633,0.5 16.5248731,1.67505184 18.4249106,3.57508938 C20.3249482,5.47512693 21.5,8.10013672 21.5,11 C21.5,13.8995696 20.3245821,16.5243277 18.4245965,18.4243132 C16.5242275,20.3246822 13.8989967,21.5 11,21.5 C8.10129687,21.5 5.47631792,20.324316 3.57600094,18.4239991 C1.67568396,16.5236821 0.5,13.8987031 0.5,11 C0.5,8.10100334 1.67531776,5.47577251 3.57568679,3.57540349 C5.47567234,1.67541793 8.10043037,0.5 11,0.5 Z\" id=\"Shape\" stroke=\"#CCCCCC\"></path></g></g></svg>");
|
|
5
|
-
export { security };
|
|
6
|
+
export { security, ErrorMsg, MobileErrorMsg };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const securityHeaderKey = "XA-TYPE";
|
|
2
|
+
export declare const defaultSignKey = "X-SIGN";
|
|
3
|
+
export declare const MODE: {
|
|
4
|
+
SIGN_KEY: string;
|
|
5
|
+
SIGN: string;
|
|
6
|
+
RSA: string;
|
|
7
|
+
AES: string;
|
|
8
|
+
DES: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const signKey: string;
|
|
11
|
+
export declare const rsaPublicKey: string | undefined;
|
|
12
|
+
export declare const rsaPrivKey: string | undefined;
|
|
13
|
+
export declare const aesKey: string;
|
|
14
|
+
export declare const desKey: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var defaultAESKey = 'd86d7bab3d6ac01a';
|
|
2
|
+
var defaultDESKey = '91THRABY';
|
|
3
|
+
export var securityHeaderKey = 'XA-TYPE';
|
|
4
|
+
export var defaultSignKey = 'X-SIGN';
|
|
5
|
+
export var MODE = {
|
|
6
|
+
SIGN_KEY: 'signKey',
|
|
7
|
+
SIGN: '1.0',
|
|
8
|
+
RSA: '2.0',
|
|
9
|
+
AES: '3.0',
|
|
10
|
+
DES: '4.0'
|
|
11
|
+
};
|
|
12
|
+
export var signKey = process.env.LINGXI_HTTP_SIGN_HEADER_KEY || process.env.REACT_APP_HTTP_SIGN_HEADER_KEY || process.env.UMI_APP_HTTP_SIGN_HEADER_KEY || process.env.FISHX_APP_HTTP_SIGN_HEADER_KEY || defaultSignKey;
|
|
13
|
+
export var rsaPublicKey = process.env.LINGXI_HTTP_RSA_PUBLIC_KEY || process.env.REACT_APP_HTTP_RSA_PUBLIC_KEY || process.env.UMI_APP_HTTP_RSA_PUBLIC_KEY || process.env.FISHX_APP_HTTP_RSA_PUBLIC_KEY;
|
|
14
|
+
export var rsaPrivKey = process.env.LINGXI_HTTP_RSA_PRIV_KEY || process.env.REACT_APP_HTTP_RSA_PRIV_KEY || process.env.UMI_APP_HTTP_RSA_PRIV_KEY || process.env.FISHX_APP_HTTP_RSA_PRIV_KEY;
|
|
15
|
+
export var aesKey = process.env.LINGXI_HTTP_AES_KEY || process.env.REACT_APP_HTTP_AES_KEY || process.env.UMI_APP_HTTP_AES_KEY || process.env.FISHX_APP_HTTP_AES_KEY || defaultAESKey;
|
|
16
|
+
export var desKey = process.env.LINGXI_HTTP_DES_KEY || process.env.REACT_APP_HTTP_DES_KEY || process.env.UMI_APP_HTTP_DES_KEY || process.env.FISHX_APP_HTTP_DES_KEY || defaultDESKey;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import CryptoJS from 'crypto-js';
|
|
2
|
+
export var AESEncrypt = function AESEncrypt(value, aesKey, handle) {
|
|
3
|
+
if (typeof handle === 'function') {
|
|
4
|
+
return handle(value, aesKey, CryptoJS);
|
|
5
|
+
}
|
|
6
|
+
var key = CryptoJS.enc.Utf8.parse(aesKey);
|
|
7
|
+
var ciphertext = CryptoJS.enc.Utf8.parse(value);
|
|
8
|
+
var encrypted = CryptoJS.AES.encrypt(ciphertext, key, {
|
|
9
|
+
mode: CryptoJS.mode.ECB,
|
|
10
|
+
padding: CryptoJS.pad.Pkcs7
|
|
11
|
+
});
|
|
12
|
+
return encrypted.toString();
|
|
13
|
+
};
|
|
14
|
+
export var AESDecrypt = function AESDecrypt(value, aesKey, handle) {
|
|
15
|
+
if (typeof handle === 'function') {
|
|
16
|
+
return handle(value, aesKey, CryptoJS);
|
|
17
|
+
}
|
|
18
|
+
var key = CryptoJS.enc.Utf8.parse(aesKey);
|
|
19
|
+
var ciphertext = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Base64.parse(value));
|
|
20
|
+
// const ciphertext = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Base64.parse(CryptoJS.enc.Utf8.parse(value).toString(CryptoJS.enc.Utf8)));
|
|
21
|
+
var encrypted = CryptoJS.AES.decrypt(ciphertext, key, {
|
|
22
|
+
mode: CryptoJS.mode.ECB,
|
|
23
|
+
padding: CryptoJS.pad.Pkcs7
|
|
24
|
+
});
|
|
25
|
+
return encrypted.toString(CryptoJS.enc.Utf8);
|
|
26
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import CryptoJS from 'crypto-js';
|
|
2
|
+
export var DESEncrypt = function DESEncrypt(value, aesKey, handle) {
|
|
3
|
+
if (typeof handle === 'function') {
|
|
4
|
+
return handle(value, aesKey, CryptoJS);
|
|
5
|
+
}
|
|
6
|
+
var key = CryptoJS.enc.Utf8.parse(aesKey);
|
|
7
|
+
var ciphertext = CryptoJS.enc.Utf8.parse(value);
|
|
8
|
+
var encrypted = CryptoJS.DES.encrypt(ciphertext, key, {
|
|
9
|
+
mode: CryptoJS.mode.ECB,
|
|
10
|
+
padding: CryptoJS.pad.Pkcs7
|
|
11
|
+
});
|
|
12
|
+
return encrypted.toString();
|
|
13
|
+
};
|
|
14
|
+
export var DESDecrypt = function DESDecrypt(value, aesKey, handle) {
|
|
15
|
+
if (typeof handle === 'function') {
|
|
16
|
+
return handle(value, aesKey, CryptoJS);
|
|
17
|
+
}
|
|
18
|
+
var key = CryptoJS.enc.Utf8.parse(aesKey);
|
|
19
|
+
var ciphertext = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Base64.parse(value));
|
|
20
|
+
var encrypted = CryptoJS.DES.decrypt(ciphertext, key, {
|
|
21
|
+
mode: CryptoJS.mode.ECB,
|
|
22
|
+
padding: CryptoJS.pad.Pkcs7
|
|
23
|
+
});
|
|
24
|
+
return encrypted.toString(CryptoJS.enc.Utf8);
|
|
25
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import JSEncrypt from 'jsencrypt';
|
|
2
|
+
export var RSAEncrypt = function RSAEncrypt(value, publicKey, handle) {
|
|
3
|
+
if (typeof handle === 'function') {
|
|
4
|
+
return handle(value, publicKey, JSEncrypt);
|
|
5
|
+
}
|
|
6
|
+
var encryptor = new JSEncrypt();
|
|
7
|
+
encryptor.setPublicKey(publicKey);
|
|
8
|
+
return encryptor.encrypt(value);
|
|
9
|
+
};
|
|
10
|
+
export var RSADecrypt = function RSADecrypt(value, privKey, handle) {
|
|
11
|
+
if (typeof handle === 'function') {
|
|
12
|
+
return handle(value, privKey, JSEncrypt);
|
|
13
|
+
}
|
|
14
|
+
var decrypt = new JSEncrypt();
|
|
15
|
+
decrypt.setPrivateKey(privKey);
|
|
16
|
+
return decrypt.decrypt(value);
|
|
17
|
+
};
|
|
File without changes
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
-
|
|
3
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
-
|
|
5
3
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
-
|
|
7
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
|
|
9
5
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
10
|
-
|
|
11
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
12
|
-
|
|
6
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
13
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
|
|
15
8
|
import { sha256 } from 'js-sha256';
|
|
16
|
-
import { obj2QueryString } from '
|
|
17
|
-
var SIGN_KEY = process.env.LING_XI_HTTP_SIGN_KEY || 'zrT5bi2escXilaH1fs653uZiH9RWfzCS';
|
|
9
|
+
import { obj2QueryString } from '../../utils/url';
|
|
10
|
+
var SIGN_KEY = process.env.LING_XI_HTTP_SIGN_KEY || 'zrT5bi2escXilaH1fs653uZiH9RWfzCS';
|
|
11
|
+
// 1、签名算法:
|
|
18
12
|
// 通过对url、参数、秘钥拼接成字符串,然后对字符串使用算法SHA-256得到64个字符串,放到header, X-SIGN=XXXXXXX。
|
|
19
13
|
// 2、签名字符串拼接规则:
|
|
20
14
|
// a.get 请求:url+"#"+header+"#"+参数+"#"+秘钥
|
|
@@ -25,7 +19,6 @@ var SIGN_KEY = process.env.LING_XI_HTTP_SIGN_KEY || 'zrT5bi2escXilaH1fs653uZiH9R
|
|
|
25
19
|
// ● header :取X-开头的header,或者APP-ID,多个则逗号分隔拼接。比如X-AA=a;APP-ID=88888
|
|
26
20
|
// ● get 参数:就是url 问号后面的串
|
|
27
21
|
// ● body:post 请求体
|
|
28
|
-
|
|
29
22
|
/**
|
|
30
23
|
* 组装X-SIGN请求头
|
|
31
24
|
* @param {请求地址} url 接口请求地址
|
|
@@ -34,10 +27,10 @@ var SIGN_KEY = process.env.LING_XI_HTTP_SIGN_KEY || 'zrT5bi2escXilaH1fs653uZiH9R
|
|
|
34
27
|
*/
|
|
35
28
|
// 由于X-B 的规则可能被业务网关使用,并往请求头增加内容,导致前后端加密不一致
|
|
36
29
|
// 2022.08.09 使用以下3个固定值 + X-LX-*匹配 方式
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
var hKeys = ['X-B-AUTH', 'X-B-TARGET-ID', 'APP-ID'];
|
|
31
|
+
// 配置指定接口前缀
|
|
32
|
+
var apiPrefix = process.env.LING_XI_HTTP_SIGN_API_PERFIX || process.env.REACT_APP_HTTP_SIGN_API_PERFIX || process.env.UMI_APP_HTTP_SIGN_API_PERFIX || process.env.FISHX_APP_HTTP_SIGN_API_PERFIX || 'portal,asset,rhin,lcdp,ncdp,flow';
|
|
33
|
+
// 获取接口路径
|
|
41
34
|
// =========================
|
|
42
35
|
// api/a/b/c
|
|
43
36
|
// ../api/a/b/c
|
|
@@ -48,11 +41,9 @@ var apiPrefix = process.env.LING_XI_HTTP_SIGN_API_PERFIX || process.env.REACT_AP
|
|
|
48
41
|
// //host.com/api/a/b/c
|
|
49
42
|
// => /api/a/b/c
|
|
50
43
|
// =========================
|
|
51
|
-
|
|
52
44
|
var getApiPath = function getApiPath(url) {
|
|
53
45
|
// 移除host、相对路径部分,保证地址前都是'/'开头
|
|
54
46
|
var fixurl = "/".concat(url.replace(/(^(http:\/\/|https:\/\/|\/\/)[^/]*)|(^\.[./]*)/g, '')).replace('//', '/');
|
|
55
|
-
|
|
56
47
|
if (apiPrefix) {
|
|
57
48
|
// 配了接口前缀规则,通过前缀匹配
|
|
58
49
|
// =========================
|
|
@@ -62,52 +53,43 @@ var getApiPath = function getApiPath(url) {
|
|
|
62
53
|
// =========================
|
|
63
54
|
return apiPrefix.split(',').reduce(function (pre, n) {
|
|
64
55
|
var matchPath = fixurl.split("/".concat(n, "/")).pop();
|
|
65
|
-
|
|
66
56
|
if (matchPath !== fixurl) {
|
|
67
57
|
pre.push("/".concat(n, "/").concat(matchPath));
|
|
68
58
|
}
|
|
69
|
-
|
|
70
59
|
return pre;
|
|
71
60
|
}, []).sort(function (a, b) {
|
|
72
61
|
return a.length - b.length;
|
|
73
62
|
})[0] || '';
|
|
74
|
-
}
|
|
63
|
+
}
|
|
64
|
+
// 没有配置接口前缀,使用接口最后三级路径,不足三级取最大层级路径
|
|
75
65
|
// =========================
|
|
76
66
|
// /a/b/c/d => /b/c/d
|
|
77
67
|
// a/b => /a/b
|
|
78
68
|
// =========================
|
|
79
|
-
|
|
80
|
-
|
|
81
69
|
return "".concat(fixurl.split('/').slice(-3).join('/'));
|
|
82
70
|
};
|
|
83
|
-
|
|
84
71
|
export var createHttpSignStr = function createHttpSignStr(url, options) {
|
|
85
72
|
if (!url || !options || !options.method) {
|
|
86
73
|
return '';
|
|
87
74
|
}
|
|
88
|
-
|
|
89
75
|
var method = options.method,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
76
|
+
headers = options.headers,
|
|
77
|
+
body = options.body,
|
|
78
|
+
search = options.search;
|
|
79
|
+
// 获取参数1: 接口名称
|
|
94
80
|
var mixUrl = url;
|
|
95
|
-
|
|
96
81
|
if (search && search instanceof Object) {
|
|
97
82
|
mixUrl += (url.indexOf('?') !== -1 ? '&' : '?') + obj2QueryString(search);
|
|
98
83
|
}
|
|
99
|
-
|
|
100
84
|
var _mixUrl$split = mixUrl.split('?'),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
85
|
+
_mixUrl$split2 = _slicedToArray(_mixUrl$split, 2),
|
|
86
|
+
urlPath = _mixUrl$split2[0],
|
|
87
|
+
_mixUrl$split2$ = _mixUrl$split2[1],
|
|
88
|
+
urlSearch = _mixUrl$split2$ === void 0 ? '' : _mixUrl$split2$;
|
|
89
|
+
var apiPath = getApiPath(urlPath);
|
|
90
|
+
// 获取参数2: 请求头部参数
|
|
108
91
|
var headerParams = '';
|
|
109
92
|
var headersKeyArr = [];
|
|
110
|
-
|
|
111
93
|
if (headers) {
|
|
112
94
|
Object.keys(headers).forEach(function (key) {
|
|
113
95
|
if (key.startsWith('X-LX-') || hKeys.includes(key)) {
|
|
@@ -115,28 +97,23 @@ export var createHttpSignStr = function createHttpSignStr(url, options) {
|
|
|
115
97
|
}
|
|
116
98
|
});
|
|
117
99
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
100
|
+
headerParams = headersKeyArr.sort().join(';');
|
|
101
|
+
// 获取参数3: 请求参数
|
|
121
102
|
var params = '';
|
|
122
|
-
|
|
123
103
|
if (method.toLowerCase() === 'get') {
|
|
124
104
|
params = urlSearch;
|
|
125
105
|
} else {
|
|
126
106
|
params = _typeof(body) === 'object' ? JSON.stringify(body) : body;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
107
|
+
}
|
|
108
|
+
// 组装加密字符串
|
|
130
109
|
var str = [apiPath, headerParams, params, SIGN_KEY].join('#');
|
|
131
|
-
|
|
132
|
-
if (typeof window !== 'undefined' && (window.signDebug || window.localStorage.getItem('signDebug'))) {
|
|
110
|
+
if (typeof window !== 'undefined' && (window.lxDebug || window.localStorage.getItem('lxDebug'))) {
|
|
133
111
|
console.log(' --- signDebug ---');
|
|
134
112
|
console.log('url', url);
|
|
135
113
|
console.log('str', str);
|
|
136
114
|
console.log('sign', sha256(str));
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
115
|
+
}
|
|
116
|
+
// 生成约定签名
|
|
140
117
|
return sha256(str);
|
|
141
118
|
};
|
|
142
119
|
export default {
|
package/es/security/fetch.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
declare const fetch: (url: any, fetchOptions?: any, config?: {
|
|
2
|
-
mode
|
|
3
|
-
signKeyOptions
|
|
2
|
+
mode?: string;
|
|
3
|
+
signKeyOptions?: any;
|
|
4
|
+
aesOptions?: any;
|
|
5
|
+
desOptions?: any;
|
|
6
|
+
rsaOptions?: any;
|
|
7
|
+
debug?: boolean;
|
|
4
8
|
}) => Promise<Response>;
|
|
5
9
|
export default fetch;
|