ztxkutils 2.10.51 → 2.10.53
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/authority-7a91cb9f.js +423 -0
- package/dist/authority.js +1 -1
- package/dist/fileOperation.js +1 -1
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/useAsr.d.ts +87 -0
- package/dist/hooks.js +373 -2
- package/dist/index.js +2 -2
- package/dist/{request-ba8abf99.js → request-40abfa76.js} +10 -3
- package/dist/request.js +2 -2
- package/dist/stompClient.js +1 -1
- package/dist/useFileIdToBase64.js +1 -1
- package/dist/useHistory.js +1 -1
- package/package.json +1 -1
- package/dist/reqUrl-787dd9e5.js +0 -82
@@ -0,0 +1,423 @@
|
|
1
|
+
/**
|
2
|
+
* base64.ts
|
3
|
+
*
|
4
|
+
* Licensed under the BSD 3-Clause License.
|
5
|
+
* http://opensource.org/licenses/BSD-3-Clause
|
6
|
+
*
|
7
|
+
* References:
|
8
|
+
* http://en.wikipedia.org/wiki/Base64
|
9
|
+
*
|
10
|
+
* @author Dan Kogai (https://github.com/dankogai)
|
11
|
+
*/
|
12
|
+
const _hasatob = typeof atob === 'function';
|
13
|
+
const _hasbtoa = typeof btoa === 'function';
|
14
|
+
const _hasBuffer = typeof Buffer === 'function';
|
15
|
+
const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
|
16
|
+
const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
|
17
|
+
const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
18
|
+
const b64chs = [...b64ch];
|
19
|
+
const b64tab = ((a) => {
|
20
|
+
let tab = {};
|
21
|
+
a.forEach((c, i) => tab[c] = i);
|
22
|
+
return tab;
|
23
|
+
})(b64chs);
|
24
|
+
const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
|
25
|
+
const _fromCC = String.fromCharCode.bind(String);
|
26
|
+
const _U8Afrom = typeof Uint8Array.from === 'function'
|
27
|
+
? Uint8Array.from.bind(Uint8Array)
|
28
|
+
: (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));
|
29
|
+
const _mkUriSafe = (src) => src
|
30
|
+
.replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_')
|
31
|
+
.replace(/=+$/m, '');
|
32
|
+
const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
|
33
|
+
/**
|
34
|
+
* polyfill version of `btoa`
|
35
|
+
*/
|
36
|
+
const btoaPolyfill = (bin) => {
|
37
|
+
// console.log('polyfilled');
|
38
|
+
let u32, c0, c1, c2, asc = '';
|
39
|
+
const pad = bin.length % 3;
|
40
|
+
for (let i = 0; i < bin.length;) {
|
41
|
+
if ((c0 = bin.charCodeAt(i++)) > 255 ||
|
42
|
+
(c1 = bin.charCodeAt(i++)) > 255 ||
|
43
|
+
(c2 = bin.charCodeAt(i++)) > 255)
|
44
|
+
throw new TypeError('invalid character found');
|
45
|
+
u32 = (c0 << 16) | (c1 << 8) | c2;
|
46
|
+
asc += b64chs[u32 >> 18 & 63]
|
47
|
+
+ b64chs[u32 >> 12 & 63]
|
48
|
+
+ b64chs[u32 >> 6 & 63]
|
49
|
+
+ b64chs[u32 & 63];
|
50
|
+
}
|
51
|
+
return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
|
52
|
+
};
|
53
|
+
/**
|
54
|
+
* does what `window.btoa` of web browsers do.
|
55
|
+
* @param {String} bin binary string
|
56
|
+
* @returns {string} Base64-encoded string
|
57
|
+
*/
|
58
|
+
const _btoa = _hasbtoa ? (bin) => btoa(bin)
|
59
|
+
: _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
|
60
|
+
: btoaPolyfill;
|
61
|
+
const _fromUint8Array = _hasBuffer
|
62
|
+
? (u8a) => Buffer.from(u8a).toString('base64')
|
63
|
+
: (u8a) => {
|
64
|
+
// cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
|
65
|
+
const maxargs = 0x1000;
|
66
|
+
let strs = [];
|
67
|
+
for (let i = 0, l = u8a.length; i < l; i += maxargs) {
|
68
|
+
strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
|
69
|
+
}
|
70
|
+
return _btoa(strs.join(''));
|
71
|
+
};
|
72
|
+
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
|
73
|
+
// const utob = (src: string) => unescape(encodeURIComponent(src));
|
74
|
+
// reverting good old fationed regexp
|
75
|
+
const cb_utob = (c) => {
|
76
|
+
if (c.length < 2) {
|
77
|
+
var cc = c.charCodeAt(0);
|
78
|
+
return cc < 0x80 ? c
|
79
|
+
: cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
|
80
|
+
+ _fromCC(0x80 | (cc & 0x3f)))
|
81
|
+
: (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
|
82
|
+
+ _fromCC(0x80 | ((cc >>> 6) & 0x3f))
|
83
|
+
+ _fromCC(0x80 | (cc & 0x3f)));
|
84
|
+
}
|
85
|
+
else {
|
86
|
+
var cc = 0x10000
|
87
|
+
+ (c.charCodeAt(0) - 0xD800) * 0x400
|
88
|
+
+ (c.charCodeAt(1) - 0xDC00);
|
89
|
+
return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
|
90
|
+
+ _fromCC(0x80 | ((cc >>> 12) & 0x3f))
|
91
|
+
+ _fromCC(0x80 | ((cc >>> 6) & 0x3f))
|
92
|
+
+ _fromCC(0x80 | (cc & 0x3f)));
|
93
|
+
}
|
94
|
+
};
|
95
|
+
const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
|
96
|
+
/**
|
97
|
+
* @deprecated should have been internal use only.
|
98
|
+
* @param {string} src UTF-8 string
|
99
|
+
* @returns {string} UTF-16 string
|
100
|
+
*/
|
101
|
+
const utob = (u) => u.replace(re_utob, cb_utob);
|
102
|
+
//
|
103
|
+
const _encode = _hasBuffer
|
104
|
+
? (s) => Buffer.from(s, 'utf8').toString('base64')
|
105
|
+
: _TE
|
106
|
+
? (s) => _fromUint8Array(_TE.encode(s))
|
107
|
+
: (s) => _btoa(utob(s));
|
108
|
+
/**
|
109
|
+
* converts a UTF-8-encoded string to a Base64 string.
|
110
|
+
* @param {boolean} [urlsafe] if `true` make the result URL-safe
|
111
|
+
* @returns {string} Base64 string
|
112
|
+
*/
|
113
|
+
const encode = (src, urlsafe = false) => urlsafe
|
114
|
+
? _mkUriSafe(_encode(src))
|
115
|
+
: _encode(src);
|
116
|
+
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
|
117
|
+
// const btou = (src: string) => decodeURIComponent(escape(src));
|
118
|
+
// reverting good old fationed regexp
|
119
|
+
const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
|
120
|
+
const cb_btou = (cccc) => {
|
121
|
+
switch (cccc.length) {
|
122
|
+
case 4:
|
123
|
+
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
|
124
|
+
| ((0x3f & cccc.charCodeAt(1)) << 12)
|
125
|
+
| ((0x3f & cccc.charCodeAt(2)) << 6)
|
126
|
+
| (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
|
127
|
+
return (_fromCC((offset >>> 10) + 0xD800)
|
128
|
+
+ _fromCC((offset & 0x3FF) + 0xDC00));
|
129
|
+
case 3:
|
130
|
+
return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
|
131
|
+
| ((0x3f & cccc.charCodeAt(1)) << 6)
|
132
|
+
| (0x3f & cccc.charCodeAt(2)));
|
133
|
+
default:
|
134
|
+
return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
|
135
|
+
| (0x3f & cccc.charCodeAt(1)));
|
136
|
+
}
|
137
|
+
};
|
138
|
+
/**
|
139
|
+
* @deprecated should have been internal use only.
|
140
|
+
* @param {string} src UTF-16 string
|
141
|
+
* @returns {string} UTF-8 string
|
142
|
+
*/
|
143
|
+
const btou = (b) => b.replace(re_btou, cb_btou);
|
144
|
+
/**
|
145
|
+
* polyfill version of `atob`
|
146
|
+
*/
|
147
|
+
const atobPolyfill = (asc) => {
|
148
|
+
// console.log('polyfilled');
|
149
|
+
asc = asc.replace(/\s+/g, '');
|
150
|
+
if (!b64re.test(asc))
|
151
|
+
throw new TypeError('malformed base64.');
|
152
|
+
asc += '=='.slice(2 - (asc.length & 3));
|
153
|
+
let u24, bin = '', r1, r2;
|
154
|
+
for (let i = 0; i < asc.length;) {
|
155
|
+
u24 = b64tab[asc.charAt(i++)] << 18
|
156
|
+
| b64tab[asc.charAt(i++)] << 12
|
157
|
+
| (r1 = b64tab[asc.charAt(i++)]) << 6
|
158
|
+
| (r2 = b64tab[asc.charAt(i++)]);
|
159
|
+
bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
|
160
|
+
: r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
|
161
|
+
: _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
|
162
|
+
}
|
163
|
+
return bin;
|
164
|
+
};
|
165
|
+
/**
|
166
|
+
* does what `window.atob` of web browsers do.
|
167
|
+
* @param {String} asc Base64-encoded string
|
168
|
+
* @returns {string} binary string
|
169
|
+
*/
|
170
|
+
const _atob = _hasatob ? (asc) => atob(_tidyB64(asc))
|
171
|
+
: _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
|
172
|
+
: atobPolyfill;
|
173
|
+
//
|
174
|
+
const _toUint8Array = _hasBuffer
|
175
|
+
? (a) => _U8Afrom(Buffer.from(a, 'base64'))
|
176
|
+
: (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));
|
177
|
+
//
|
178
|
+
const _decode = _hasBuffer
|
179
|
+
? (a) => Buffer.from(a, 'base64').toString('utf8')
|
180
|
+
: _TD
|
181
|
+
? (a) => _TD.decode(_toUint8Array(a))
|
182
|
+
: (a) => btou(_atob(a));
|
183
|
+
const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
|
184
|
+
/**
|
185
|
+
* converts a Base64 string to a UTF-8 string.
|
186
|
+
* @param {String} src Base64 string. Both normal and URL-safe are supported
|
187
|
+
* @returns {string} UTF-8 string
|
188
|
+
*/
|
189
|
+
const decode = (src) => _decode(_unURI(src));
|
190
|
+
|
191
|
+
function e(e){this.message=e;}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,a=0,i=0,c="";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw "Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e;}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";
|
192
|
+
|
193
|
+
/**
|
194
|
+
* @description 权限相关操作
|
195
|
+
*/
|
196
|
+
// 获取token
|
197
|
+
var getToken = function () {
|
198
|
+
try {
|
199
|
+
if (window.localStorage.getItem('system-token')) {
|
200
|
+
return window.localStorage.getItem('system-token');
|
201
|
+
}
|
202
|
+
else {
|
203
|
+
return false;
|
204
|
+
}
|
205
|
+
}
|
206
|
+
catch (err) {
|
207
|
+
return false;
|
208
|
+
}
|
209
|
+
};
|
210
|
+
// 获取refreshToken
|
211
|
+
var getRefreshToken = function () {
|
212
|
+
try {
|
213
|
+
if (window.localStorage.getItem('system-refresh-token')) {
|
214
|
+
return window.localStorage.getItem('system-refresh-token');
|
215
|
+
}
|
216
|
+
else {
|
217
|
+
return false;
|
218
|
+
}
|
219
|
+
}
|
220
|
+
catch (err) {
|
221
|
+
return false;
|
222
|
+
}
|
223
|
+
};
|
224
|
+
// 获取是否第三方登录
|
225
|
+
var getOAuth2 = function () {
|
226
|
+
try {
|
227
|
+
if (window.localStorage.getItem('system-oauth2')) {
|
228
|
+
return window.localStorage.getItem('system-oauth2');
|
229
|
+
}
|
230
|
+
else {
|
231
|
+
return false;
|
232
|
+
}
|
233
|
+
}
|
234
|
+
catch (err) {
|
235
|
+
return false;
|
236
|
+
}
|
237
|
+
};
|
238
|
+
// 设置token
|
239
|
+
var setToken = function (token) {
|
240
|
+
try {
|
241
|
+
window.localStorage.setItem('system-token', token);
|
242
|
+
}
|
243
|
+
catch (err) {
|
244
|
+
return false;
|
245
|
+
}
|
246
|
+
};
|
247
|
+
var removeToken = function () {
|
248
|
+
try {
|
249
|
+
window.localStorage.removeItem('system-token');
|
250
|
+
}
|
251
|
+
catch (err) {
|
252
|
+
return false;
|
253
|
+
}
|
254
|
+
};
|
255
|
+
// 设置refreshToken
|
256
|
+
var setRefreshToken = function (token) {
|
257
|
+
try {
|
258
|
+
window.localStorage.setItem('system-refresh-token', token);
|
259
|
+
}
|
260
|
+
catch (err) {
|
261
|
+
return false;
|
262
|
+
}
|
263
|
+
};
|
264
|
+
var removeRefreshToken = function () {
|
265
|
+
try {
|
266
|
+
window.localStorage.removeItem('system-refresh-token');
|
267
|
+
}
|
268
|
+
catch (err) {
|
269
|
+
return false;
|
270
|
+
}
|
271
|
+
};
|
272
|
+
// 设置第三方登录
|
273
|
+
var setOAuth2 = function () {
|
274
|
+
try {
|
275
|
+
window.localStorage.setItem('system-oauth2', '1');
|
276
|
+
}
|
277
|
+
catch (err) {
|
278
|
+
return false;
|
279
|
+
}
|
280
|
+
};
|
281
|
+
var removeOAuth2 = function () {
|
282
|
+
try {
|
283
|
+
window.localStorage.removeItem('system-oauth2');
|
284
|
+
}
|
285
|
+
catch (err) {
|
286
|
+
return false;
|
287
|
+
}
|
288
|
+
};
|
289
|
+
// 对用户名密码进行加密/解密处理
|
290
|
+
var aesEncrypt = function (str) {
|
291
|
+
return encode(str);
|
292
|
+
};
|
293
|
+
var aesDecrypt = function (str) {
|
294
|
+
if (str) {
|
295
|
+
return decode(str);
|
296
|
+
}
|
297
|
+
else {
|
298
|
+
return str;
|
299
|
+
}
|
300
|
+
};
|
301
|
+
/**按钮权限级别 */
|
302
|
+
var BTN_AUTHS = {
|
303
|
+
add: 'add',
|
304
|
+
update: 'update',
|
305
|
+
check: 'check',
|
306
|
+
detail: 'detail',
|
307
|
+
unfreeze: 'unfreeze',
|
308
|
+
frozen: 'frozen',
|
309
|
+
cancelLation: 'cancelLation',
|
310
|
+
cancelSubmit: 'cancelSubmit',
|
311
|
+
submitApprove: 'submitApprove', // 提交审核
|
312
|
+
};
|
313
|
+
/**判断是否有当前按钮的权限 */
|
314
|
+
var isBtnAuth = function (userBtns, code) {
|
315
|
+
if (typeof code === 'boolean') {
|
316
|
+
return code;
|
317
|
+
}
|
318
|
+
if (!Array.isArray(userBtns)) {
|
319
|
+
return false;
|
320
|
+
}
|
321
|
+
return userBtns.some(function (userBtn) { return (userBtn === null || userBtn === void 0 ? void 0 : userBtn.code) === code; });
|
322
|
+
};
|
323
|
+
/**设置最后一次访问的路由 */
|
324
|
+
var setLastUrlPath = function (pathname) {
|
325
|
+
try {
|
326
|
+
window.localStorage.setItem('last-url-path', pathname);
|
327
|
+
}
|
328
|
+
catch (err) {
|
329
|
+
return false;
|
330
|
+
}
|
331
|
+
};
|
332
|
+
var getLastUrlPath = function () {
|
333
|
+
try {
|
334
|
+
if (window.localStorage.getItem('last-url-path')) {
|
335
|
+
return window.localStorage.getItem('last-url-path');
|
336
|
+
}
|
337
|
+
else {
|
338
|
+
return false;
|
339
|
+
}
|
340
|
+
}
|
341
|
+
catch (err) {
|
342
|
+
return false;
|
343
|
+
}
|
344
|
+
};
|
345
|
+
/**返回是否在乾坤下启动 */
|
346
|
+
var isQiankun = function () { return window.__POWERED_BY_QIANKUN__; };
|
347
|
+
/** jwt解析 */
|
348
|
+
var jwtDecode = function (str) {
|
349
|
+
try {
|
350
|
+
return o(str);
|
351
|
+
}
|
352
|
+
catch (err) {
|
353
|
+
//
|
354
|
+
}
|
355
|
+
};
|
356
|
+
/**
|
357
|
+
* 设置菜单id
|
358
|
+
* menuId: 菜单id
|
359
|
+
* menuPath:菜单对应的路由
|
360
|
+
*/
|
361
|
+
var setMenuId = function (menuId, menuPath) {
|
362
|
+
try {
|
363
|
+
window.sessionStorage.setItem('CURRENT_MENU_ID', menuId);
|
364
|
+
window.sessionStorage.setItem('CURRENT_MENU_PATH', menuPath);
|
365
|
+
}
|
366
|
+
catch (err) {
|
367
|
+
//
|
368
|
+
}
|
369
|
+
};
|
370
|
+
var getMenuIdInfo = function () {
|
371
|
+
var _a, _b, _c;
|
372
|
+
var obj = {};
|
373
|
+
try {
|
374
|
+
var pathname = window.location.pathname;
|
375
|
+
obj.CURRENT_MENU_ID = window.sessionStorage.getItem('CURRENT_MENU_ID');
|
376
|
+
obj.CURRENT_MENU_PATH = window.sessionStorage.getItem('CURRENT_MENU_PATH');
|
377
|
+
if (pathname === obj.CURRENT_MENU_PATH) {
|
378
|
+
obj.IS_CURRENT_MENU = true;
|
379
|
+
}
|
380
|
+
else {
|
381
|
+
var firstIndex = (_b = (_a = obj.CURRENT_MENU_PATH) === null || _a === void 0 ? void 0 : _a.indexOf) === null || _b === void 0 ? void 0 : _b.call(_a, ':');
|
382
|
+
var resultPathname = obj.CURRENT_MENU_PATH;
|
383
|
+
if (firstIndex !== -1) {
|
384
|
+
resultPathname = (_c = obj.CURRENT_MENU_PATH) === null || _c === void 0 ? void 0 : _c.substr(0, firstIndex);
|
385
|
+
}
|
386
|
+
if (pathname.indexOf(resultPathname) !== -1) {
|
387
|
+
obj.IS_CURRENT_MENU = true;
|
388
|
+
}
|
389
|
+
else {
|
390
|
+
obj.IS_CURRENT_MENU = false;
|
391
|
+
}
|
392
|
+
}
|
393
|
+
}
|
394
|
+
catch (err) {
|
395
|
+
//
|
396
|
+
}
|
397
|
+
return obj;
|
398
|
+
};
|
399
|
+
|
400
|
+
var authority = /*#__PURE__*/Object.freeze({
|
401
|
+
__proto__: null,
|
402
|
+
getToken: getToken,
|
403
|
+
getRefreshToken: getRefreshToken,
|
404
|
+
getOAuth2: getOAuth2,
|
405
|
+
setToken: setToken,
|
406
|
+
removeToken: removeToken,
|
407
|
+
setRefreshToken: setRefreshToken,
|
408
|
+
removeRefreshToken: removeRefreshToken,
|
409
|
+
setOAuth2: setOAuth2,
|
410
|
+
removeOAuth2: removeOAuth2,
|
411
|
+
aesEncrypt: aesEncrypt,
|
412
|
+
aesDecrypt: aesDecrypt,
|
413
|
+
BTN_AUTHS: BTN_AUTHS,
|
414
|
+
isBtnAuth: isBtnAuth,
|
415
|
+
setLastUrlPath: setLastUrlPath,
|
416
|
+
getLastUrlPath: getLastUrlPath,
|
417
|
+
isQiankun: isQiankun,
|
418
|
+
jwtDecode: jwtDecode,
|
419
|
+
setMenuId: setMenuId,
|
420
|
+
getMenuIdInfo: getMenuIdInfo
|
421
|
+
});
|
422
|
+
|
423
|
+
export { BTN_AUTHS as B, removeRefreshToken as a, getRefreshToken as b, setRefreshToken as c, authority as d, getOAuth2 as e, setOAuth2 as f, getToken as g, removeOAuth2 as h, isQiankun as i, aesEncrypt as j, aesDecrypt as k, isBtnAuth as l, setLastUrlPath as m, getLastUrlPath as n, jwtDecode as o, setMenuId as p, getMenuIdInfo as q, removeToken as r, setToken as s };
|
package/dist/authority.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export { B as BTN_AUTHS, k as aesDecrypt, j as aesEncrypt, n as getLastUrlPath, q as getMenuIdInfo,
|
1
|
+
export { B as BTN_AUTHS, k as aesDecrypt, j as aesEncrypt, n as getLastUrlPath, q as getMenuIdInfo, e as getOAuth2, b as getRefreshToken, g as getToken, l as isBtnAuth, i as isQiankun, o as jwtDecode, h as removeOAuth2, a as removeRefreshToken, r as removeToken, m as setLastUrlPath, p as setMenuId, f as setOAuth2, c as setRefreshToken, s as setToken } from './authority-7a91cb9f.js';
|
package/dist/fileOperation.js
CHANGED
package/dist/hooks/index.d.ts
CHANGED
@@ -4,4 +4,5 @@ import useTableValidate from './useTableValidate';
|
|
4
4
|
import useScreenFull from './useScreenFull';
|
5
5
|
import useMutationObserver from './useMutationObserver';
|
6
6
|
import useFileIdToBase64 from './useFileIdToBase64';
|
7
|
-
|
7
|
+
import useAsr from './useAsr';
|
8
|
+
export { useTableLinkage, useFetchState, useTableValidate, useScreenFull, useMutationObserver, useFileIdToBase64, useAsr, };
|
@@ -0,0 +1,87 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
/**
|
3
|
+
* 连接讯飞的方法
|
4
|
+
* 内部管理状态
|
5
|
+
* UNDEFINED 初始化状态
|
6
|
+
* CONNECTING 开始准备连接时的状态,会获取ws地址,然后建立ws连接
|
7
|
+
* OPEN 表示录音已经开始了,可以发送数据了
|
8
|
+
* CLOSED ws连接因为一些异常 发生关闭,需要终止录音
|
9
|
+
* CLOSING 表示最后一段录音信息已经接收完毕,可以关闭连接了
|
10
|
+
*/
|
11
|
+
declare type IStatus = 'UNDEFINED' | 'CONNECTING' | 'OPEN' | 'CLOSED' | 'CLOSING';
|
12
|
+
interface IRecord {
|
13
|
+
/** 开始录音方法 */
|
14
|
+
start: () => void;
|
15
|
+
/** 关闭录音方法 */
|
16
|
+
stop: () => void;
|
17
|
+
/** 当前语言 */
|
18
|
+
language?: string;
|
19
|
+
/** 目标语言 */
|
20
|
+
transLanguage?: string;
|
21
|
+
}
|
22
|
+
export declare function useWs(info?: {
|
23
|
+
textResultCallback?: (t: any) => void;
|
24
|
+
isDebugger?: boolean;
|
25
|
+
getWsUrlRequest?: any;
|
26
|
+
}): {
|
27
|
+
status: IStatus;
|
28
|
+
changeStatus: (s: IStatus) => void;
|
29
|
+
connectWebSocket: (recorder: IRecord) => Promise<void>;
|
30
|
+
webscoketObjRef: import("react").MutableRefObject<any>;
|
31
|
+
resultTextRef: import("react").MutableRefObject<string>;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* 录音管理器的相关方法
|
35
|
+
*/
|
36
|
+
export declare function useRecorderManager(options: {
|
37
|
+
url?: string;
|
38
|
+
startCallback?: () => void;
|
39
|
+
frameRecordCallback?: (info?: any) => void;
|
40
|
+
stopCallback?: (buffer?: any) => void;
|
41
|
+
}): {
|
42
|
+
recordRef: import("react").MutableRefObject<any>;
|
43
|
+
start: () => Promise<void>;
|
44
|
+
stop: () => void;
|
45
|
+
};
|
46
|
+
/**
|
47
|
+
* 定义一个计时器类似的东西
|
48
|
+
* 可以开始计时 结束计时
|
49
|
+
*/
|
50
|
+
export declare function useCount(callback: any): {
|
51
|
+
start: () => void;
|
52
|
+
stop: () => void;
|
53
|
+
};
|
54
|
+
/**
|
55
|
+
* 数据转换
|
56
|
+
* 将收到的讯飞语音识别的数据 转换成 标准数据
|
57
|
+
*/
|
58
|
+
export declare function parseWsData(data: any, msgCallback: any, callback: any, isDebugger: any): void;
|
59
|
+
/**
|
60
|
+
* 返回最新的值 但是是一个ref对象
|
61
|
+
*/
|
62
|
+
export declare function useLastest(value: any): import("react").MutableRefObject<any>;
|
63
|
+
/**
|
64
|
+
* 返回一个按钮的方法
|
65
|
+
* getCmdCallback 将语音识别结果 发送给 后台 获取识别结果
|
66
|
+
* recordTextCallback 语音识别结果实时触发
|
67
|
+
* isNeedCmd 是否需要后台识别
|
68
|
+
* getWsUrlRequest ws url 地址
|
69
|
+
* getWsCmdRequest 识别指令接口
|
70
|
+
* recordUrl 录音sdk路径
|
71
|
+
*/
|
72
|
+
export default function useStartWs(info: {
|
73
|
+
getCmdCallback?: (cmdInfo: any) => void;
|
74
|
+
recordTextCallback?: (text: any) => void;
|
75
|
+
isNeedCmd?: boolean;
|
76
|
+
isDebugger?: boolean;
|
77
|
+
getWsUrlRequest: any;
|
78
|
+
getWsCmdRequest?: any;
|
79
|
+
recordUrl?: any;
|
80
|
+
}): {
|
81
|
+
onClickHandle: () => Promise<void>;
|
82
|
+
status: IStatus;
|
83
|
+
loading: boolean;
|
84
|
+
isInit: boolean;
|
85
|
+
isStarting: boolean;
|
86
|
+
};
|
87
|
+
export {};
|
package/dist/hooks.js
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
import { _ as __assign, b as __awaiter, c as __generator } from './tslib.es6-35653116.js';
|
2
2
|
import { useState, useEffect, useRef, useCallback } from 'react';
|
3
3
|
export { default as useFileIdToBase64 } from './useFileIdToBase64.js';
|
4
|
+
import { message } from 'ztxkui';
|
5
|
+
import axios from 'axios';
|
4
6
|
import './fileOperation.js';
|
5
|
-
import './authority-
|
7
|
+
import './authority-7a91cb9f.js';
|
6
8
|
import './tools-09a4d620.js';
|
7
9
|
import 'dayjs';
|
8
10
|
|
@@ -412,4 +414,373 @@ function useMutationObserver(dom, callback) {
|
|
412
414
|
}, [dom, callback]);
|
413
415
|
}
|
414
416
|
|
415
|
-
|
417
|
+
function useWs(info) {
|
418
|
+
var _this = this;
|
419
|
+
var _a = info || {}, textResultCallback = _a.textResultCallback, isDebugger = _a.isDebugger, getWsUrlRequest = _a.getWsUrlRequest;
|
420
|
+
var websocketUrlRef = useRef(''); // 长连接地址
|
421
|
+
var _b = useState('UNDEFINED'), status = _b[0], setStatus = _b[1]; // 内部状态
|
422
|
+
var webscoketObjRef = useRef(null); // ws连接对象
|
423
|
+
var resultTextRef = useRef(''); // 识别结果
|
424
|
+
var webscoketUrlRef = useRef(); // ws长连接地址
|
425
|
+
var textResultCbLastest = useLastest(textResultCallback);
|
426
|
+
// 修改状态
|
427
|
+
var changeStatus = useCallback(function (s) {
|
428
|
+
setStatus(s);
|
429
|
+
}, []);
|
430
|
+
// 获取讯飞WS长连接地址
|
431
|
+
var getWebSocketUrlHandle = useCallback(function () {
|
432
|
+
if (!getWsUrlRequest) {
|
433
|
+
throw new Error('必须传入获取Ws长连接的方法');
|
434
|
+
}
|
435
|
+
return new Promise(function (resolve, reject) {
|
436
|
+
getWsUrlRequest()
|
437
|
+
.then(function (res) {
|
438
|
+
var _a, _b;
|
439
|
+
if (res.status === 200 && res.data.code === 200) {
|
440
|
+
websocketUrlRef.current = "" + ((_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.connectUrl);
|
441
|
+
resolve(websocketUrlRef.current);
|
442
|
+
}
|
443
|
+
else {
|
444
|
+
reject({ msg: '获取ws链接地址失败!' });
|
445
|
+
}
|
446
|
+
})
|
447
|
+
.catch(function (err) {
|
448
|
+
var _a;
|
449
|
+
reject({ msg: ((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.msg) || '获取ws地址失败!' });
|
450
|
+
});
|
451
|
+
});
|
452
|
+
}, []);
|
453
|
+
// 开始连接方法
|
454
|
+
var connectWebSocket = useCallback(function (recorder) { return __awaiter(_this, void 0, void 0, function () {
|
455
|
+
var websocketUrl, res, err_1;
|
456
|
+
var _a;
|
457
|
+
return __generator(this, function (_b) {
|
458
|
+
switch (_b.label) {
|
459
|
+
case 0:
|
460
|
+
// SETP 1 将状态设置为 开始连接状态
|
461
|
+
// 获取讯飞ws长连接地址
|
462
|
+
changeStatus('CONNECTING');
|
463
|
+
websocketUrl = webscoketUrlRef.current;
|
464
|
+
if (!!websocketUrl) return [3 /*break*/, 4];
|
465
|
+
_b.label = 1;
|
466
|
+
case 1:
|
467
|
+
_b.trys.push([1, 3, , 4]);
|
468
|
+
return [4 /*yield*/, getWebSocketUrlHandle()];
|
469
|
+
case 2:
|
470
|
+
res = _b.sent();
|
471
|
+
if (typeof res === 'string') {
|
472
|
+
// &lang=${recorder?.language}&transType=normal&transStrategy=2&targetLang=${recorder?.transLanguage}
|
473
|
+
websocketUrl = webscoketUrlRef.current = "" + res;
|
474
|
+
}
|
475
|
+
else {
|
476
|
+
changeStatus('CLOSED');
|
477
|
+
message.info(((_a = res) === null || _a === void 0 ? void 0 : _a.msg) || '获取ws地址失败!');
|
478
|
+
return [2 /*return*/];
|
479
|
+
}
|
480
|
+
return [3 /*break*/, 4];
|
481
|
+
case 3:
|
482
|
+
err_1 = _b.sent();
|
483
|
+
changeStatus('CLOSED');
|
484
|
+
message.info((err_1 === null || err_1 === void 0 ? void 0 : err_1.msg) || '获取ws地址失败!');
|
485
|
+
return [2 /*return*/];
|
486
|
+
case 4:
|
487
|
+
// 长连接不能复用? 发送完 end: true后 长连接就关闭了
|
488
|
+
// SETP 2 建立WS长连接
|
489
|
+
// 赋值ws对象给Ref
|
490
|
+
if ('WebSocket' in window) {
|
491
|
+
webscoketObjRef.current = new WebSocket(websocketUrl);
|
492
|
+
}
|
493
|
+
else if ('MozWebSocket' in window) {
|
494
|
+
webscoketObjRef.current = new window.MozWebSocket(websocketUrl);
|
495
|
+
}
|
496
|
+
else {
|
497
|
+
message.info('浏览器不支持WebSocket');
|
498
|
+
return [2 /*return*/];
|
499
|
+
}
|
500
|
+
// SETP 3 监听WS长连接的各种状态
|
501
|
+
// 连接建立开始后。开始录音
|
502
|
+
webscoketObjRef.current.onopen = function (e) {
|
503
|
+
if (isDebugger) {
|
504
|
+
console.log('连接建立', e);
|
505
|
+
}
|
506
|
+
resultTextRef.current = '';
|
507
|
+
textResultCbLastest.current &&
|
508
|
+
textResultCbLastest.current(resultTextRef.current);
|
509
|
+
recorder.start();
|
510
|
+
};
|
511
|
+
// 处理回调消息
|
512
|
+
webscoketObjRef.current.onmessage = function (e) {
|
513
|
+
parseWsData(e.data, function (msg) {
|
514
|
+
if (msg.code === '0') {
|
515
|
+
if (isDebugger) {
|
516
|
+
console.log('识别结果:', msg.resultText);
|
517
|
+
}
|
518
|
+
resultTextRef.current += msg.resultText;
|
519
|
+
textResultCbLastest.current &&
|
520
|
+
textResultCbLastest.current(resultTextRef.current);
|
521
|
+
}
|
522
|
+
}, function (err) {
|
523
|
+
var _a, _b;
|
524
|
+
if (err) {
|
525
|
+
if (isDebugger) {
|
526
|
+
console.log('ws连接出错了!');
|
527
|
+
}
|
528
|
+
recorder.stop();
|
529
|
+
webscoketObjRef.current.send('{"end": true}');
|
530
|
+
changeStatus('CLOSED');
|
531
|
+
(_b = (_a = webscoketObjRef.current) === null || _a === void 0 ? void 0 : _a.close) === null || _b === void 0 ? void 0 : _b.call(_a);
|
532
|
+
}
|
533
|
+
}, isDebugger);
|
534
|
+
};
|
535
|
+
// 连接异常 处理异常
|
536
|
+
// 关闭录音
|
537
|
+
// 修改状态为 CLOSED
|
538
|
+
webscoketObjRef.current.onerror = function (e) {
|
539
|
+
if (isDebugger) {
|
540
|
+
console.log('连接异常', e);
|
541
|
+
}
|
542
|
+
recorder.stop();
|
543
|
+
changeStatus('CLOSED');
|
544
|
+
};
|
545
|
+
// 主动关闭
|
546
|
+
// 关闭录音
|
547
|
+
// 修改状态为 CLOSED
|
548
|
+
webscoketObjRef.current.onclose = function (e) {
|
549
|
+
if (isDebugger) {
|
550
|
+
console.log('连接关闭', e);
|
551
|
+
}
|
552
|
+
recorder.stop();
|
553
|
+
changeStatus('CLOSED');
|
554
|
+
};
|
555
|
+
return [2 /*return*/];
|
556
|
+
}
|
557
|
+
});
|
558
|
+
}); }, [changeStatus, getWebSocketUrlHandle, textResultCbLastest, isDebugger]);
|
559
|
+
return {
|
560
|
+
status: status,
|
561
|
+
changeStatus: changeStatus,
|
562
|
+
connectWebSocket: connectWebSocket,
|
563
|
+
webscoketObjRef: webscoketObjRef,
|
564
|
+
resultTextRef: resultTextRef,
|
565
|
+
};
|
566
|
+
}
|
567
|
+
/**
|
568
|
+
* 录音管理器的相关方法
|
569
|
+
*/
|
570
|
+
function useRecorderManager(options) {
|
571
|
+
var _this = this;
|
572
|
+
var _a = options.url, url = _a === void 0 ? '/asrsdk' : _a, startCallback = options.startCallback, frameRecordCallback = options.frameRecordCallback, stopCallback = options.stopCallback;
|
573
|
+
// 录音对象
|
574
|
+
var recordRef = useRef();
|
575
|
+
// 初始化录音对象
|
576
|
+
var RecorderManager = window.RecorderManager;
|
577
|
+
if (!recordRef.current && RecorderManager) {
|
578
|
+
recordRef.current = new RecorderManager(url);
|
579
|
+
// 监听录音是否开启
|
580
|
+
recordRef.current.onStart = function () {
|
581
|
+
startCallback && startCallback();
|
582
|
+
};
|
583
|
+
// 监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件
|
584
|
+
recordRef.current.onFrameRecorded = function (_a) {
|
585
|
+
var isLastFrame = _a.isLastFrame, frameBuffer = _a.frameBuffer;
|
586
|
+
frameRecordCallback && frameRecordCallback({ isLastFrame: isLastFrame, frameBuffer: frameBuffer });
|
587
|
+
};
|
588
|
+
// 录音停止触发事件
|
589
|
+
recordRef.current.onStop = function (audioBuffers) {
|
590
|
+
stopCallback && stopCallback(audioBuffers);
|
591
|
+
};
|
592
|
+
}
|
593
|
+
if (!RecorderManager) {
|
594
|
+
console.error('你没有引入路由相关API,请引入!');
|
595
|
+
}
|
596
|
+
var start = function () { return __awaiter(_this, void 0, void 0, function () {
|
597
|
+
var _a, _b;
|
598
|
+
return __generator(this, function (_c) {
|
599
|
+
(_b = (_a = recordRef.current) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
600
|
+
sampleRate: 16000,
|
601
|
+
frameSize: 1280, // 指定帧大小,传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调
|
602
|
+
});
|
603
|
+
return [2 /*return*/];
|
604
|
+
});
|
605
|
+
}); };
|
606
|
+
var stop = function () {
|
607
|
+
var _a, _b;
|
608
|
+
(_b = (_a = recordRef.current) === null || _a === void 0 ? void 0 : _a.stop) === null || _b === void 0 ? void 0 : _b.call(_a);
|
609
|
+
};
|
610
|
+
return {
|
611
|
+
recordRef: recordRef,
|
612
|
+
start: start,
|
613
|
+
stop: stop,
|
614
|
+
};
|
615
|
+
}
|
616
|
+
/**
|
617
|
+
* 数据转换
|
618
|
+
* 将收到的讯飞语音识别的数据 转换成 标准数据
|
619
|
+
*/
|
620
|
+
function parseWsData(data, msgCallback, callback, isDebugger) {
|
621
|
+
var _a, _b, _c, _d;
|
622
|
+
try {
|
623
|
+
var jsonData = JSON.parse(data);
|
624
|
+
if (jsonData.action === 'started') {
|
625
|
+
// 握手成功
|
626
|
+
if (isDebugger) {
|
627
|
+
console.log('握手成功');
|
628
|
+
}
|
629
|
+
}
|
630
|
+
else if (jsonData.action === 'result') {
|
631
|
+
var data_1 = JSON.parse(jsonData.data);
|
632
|
+
if (isDebugger) {
|
633
|
+
console.log('收到讯飞的语音提示', data_1);
|
634
|
+
}
|
635
|
+
// 类型是 '0' 的话 表示是完整的音频
|
636
|
+
// 类型是 '1' 的话 表示是中间的音频
|
637
|
+
var type = (_b = (_a = data_1 === null || data_1 === void 0 ? void 0 : data_1.cn) === null || _a === void 0 ? void 0 : _a.st) === null || _b === void 0 ? void 0 : _b.type;
|
638
|
+
var resultText_1 = '';
|
639
|
+
if ((_d = (_c = data_1 === null || data_1 === void 0 ? void 0 : data_1.cn) === null || _c === void 0 ? void 0 : _c.st) === null || _d === void 0 ? void 0 : _d.rt) {
|
640
|
+
data_1.cn.st.rt.forEach(function (j) {
|
641
|
+
j.ws.forEach(function (k) {
|
642
|
+
k.cw.forEach(function (l) {
|
643
|
+
resultText_1 += l.w;
|
644
|
+
});
|
645
|
+
});
|
646
|
+
});
|
647
|
+
}
|
648
|
+
if (type + '' === '0') {
|
649
|
+
// 【最终】识别结果:
|
650
|
+
msgCallback({ resultText: resultText_1, code: '0' });
|
651
|
+
resultText_1 = '';
|
652
|
+
}
|
653
|
+
}
|
654
|
+
else if (jsonData.action === 'error') {
|
655
|
+
// 连接发生错误
|
656
|
+
if (isDebugger) {
|
657
|
+
console.log('出错了:', jsonData);
|
658
|
+
}
|
659
|
+
callback({ code: '1', msg: '连接出错了' });
|
660
|
+
}
|
661
|
+
}
|
662
|
+
catch (err) {
|
663
|
+
console.log(err);
|
664
|
+
}
|
665
|
+
}
|
666
|
+
/**
|
667
|
+
* 返回最新的值 但是是一个ref对象
|
668
|
+
*/
|
669
|
+
function useLastest(value) {
|
670
|
+
var ref = useRef(value);
|
671
|
+
ref.current = value;
|
672
|
+
return ref;
|
673
|
+
}
|
674
|
+
/**
|
675
|
+
* 返回一个按钮的方法
|
676
|
+
* getCmdCallback 将语音识别结果 发送给 后台 获取识别结果
|
677
|
+
* recordTextCallback 语音识别结果实时触发
|
678
|
+
* isNeedCmd 是否需要后台识别
|
679
|
+
* getWsUrlRequest ws url 地址
|
680
|
+
* getWsCmdRequest 识别指令接口
|
681
|
+
* recordUrl 录音sdk路径
|
682
|
+
*/
|
683
|
+
function useStartWs(info) {
|
684
|
+
var _this = this;
|
685
|
+
var getCmdCallback = info.getCmdCallback, recordTextCallback = info.recordTextCallback, isNeedCmd = info.isNeedCmd, isDebugger = info.isDebugger, getWsUrlRequest = info.getWsUrlRequest, getWsCmdRequest = info.getWsCmdRequest, recordUrl = info.recordUrl;
|
686
|
+
// ws连接
|
687
|
+
var _a = useWs({
|
688
|
+
textResultCallback: recordTextCallback,
|
689
|
+
isDebugger: isDebugger,
|
690
|
+
getWsUrlRequest: getWsUrlRequest,
|
691
|
+
}), status = _a.status, changeStatus = _a.changeStatus, connectWebSocket = _a.connectWebSocket, webscoketObjRef = _a.webscoketObjRef, resultTextRef = _a.resultTextRef;
|
692
|
+
var cancelRef = useRef();
|
693
|
+
var cbLastest = useLastest(getCmdCallback);
|
694
|
+
var statusLastest = useLastest(status);
|
695
|
+
// 录音器方法
|
696
|
+
var _b = useRecorderManager({
|
697
|
+
url: recordUrl,
|
698
|
+
startCallback: function () {
|
699
|
+
// 录音开始时,表示可以开始发送数据了
|
700
|
+
changeStatus('OPEN');
|
701
|
+
},
|
702
|
+
frameRecordCallback: function (_a) {
|
703
|
+
var isLastFrame = _a.isLastFrame, frameBuffer = _a.frameBuffer;
|
704
|
+
var webscoketObj = webscoketObjRef.current;
|
705
|
+
if (webscoketObj && (webscoketObj === null || webscoketObj === void 0 ? void 0 : webscoketObj.readyState) === (webscoketObj === null || webscoketObj === void 0 ? void 0 : webscoketObj.OPEN)) {
|
706
|
+
webscoketObj.send(new Int8Array(frameBuffer));
|
707
|
+
if (isLastFrame) {
|
708
|
+
if (isDebugger) {
|
709
|
+
console.log('收到录音的最后帧!');
|
710
|
+
}
|
711
|
+
webscoketObj.send('{"end": true}');
|
712
|
+
// 最后一段录音结束才可以结束翻译
|
713
|
+
changeStatus('CLOSING');
|
714
|
+
}
|
715
|
+
}
|
716
|
+
},
|
717
|
+
stopCallback: function () {
|
718
|
+
if (isDebugger) {
|
719
|
+
console.log(resultTextRef.current.replace(/,|。/g, ''), statusLastest.current);
|
720
|
+
}
|
721
|
+
// 根据识别结果 获取后台的指令命令
|
722
|
+
if (resultTextRef.current &&
|
723
|
+
statusLastest.current === 'CLOSED' &&
|
724
|
+
isNeedCmd) {
|
725
|
+
if (!getWsCmdRequest) {
|
726
|
+
throw new Error('你没有传入 获取指令的接口,这将导致错误!');
|
727
|
+
}
|
728
|
+
if (cancelRef.current) {
|
729
|
+
cancelRef.current();
|
730
|
+
}
|
731
|
+
getWsCmdRequest({ voiceContent: resultTextRef.current.replace(/,|。/g, '') }, {
|
732
|
+
cancelToken: new axios.CancelToken(function (c) {
|
733
|
+
cancelRef.current = c;
|
734
|
+
}),
|
735
|
+
})
|
736
|
+
.then(function (res) {
|
737
|
+
var _a, _b;
|
738
|
+
if (res.status === 200 && res.data.code === 200) {
|
739
|
+
cbLastest.current && cbLastest.current(res.data.data);
|
740
|
+
}
|
741
|
+
else {
|
742
|
+
message.error(((_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || '不支持处理该指令,请重说!');
|
743
|
+
}
|
744
|
+
})
|
745
|
+
.catch(function (err) {
|
746
|
+
var _a, _b;
|
747
|
+
message.error(((_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || '不支持处理该指令,请重说!');
|
748
|
+
});
|
749
|
+
}
|
750
|
+
},
|
751
|
+
}), start = _b.start, stop = _b.stop;
|
752
|
+
var onClick = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
|
753
|
+
return __generator(this, function (_a) {
|
754
|
+
switch (_a.label) {
|
755
|
+
case 0:
|
756
|
+
if (!(status === 'UNDEFINED' || status === 'CLOSED')) return [3 /*break*/, 2];
|
757
|
+
return [4 /*yield*/, connectWebSocket({
|
758
|
+
start: start,
|
759
|
+
stop: stop,
|
760
|
+
})];
|
761
|
+
case 1:
|
762
|
+
_a.sent();
|
763
|
+
return [3 /*break*/, 3];
|
764
|
+
case 2:
|
765
|
+
if (status === 'OPEN' || status === 'CONNECTING') {
|
766
|
+
// 停止录音
|
767
|
+
stop();
|
768
|
+
}
|
769
|
+
_a.label = 3;
|
770
|
+
case 3: return [2 /*return*/];
|
771
|
+
}
|
772
|
+
});
|
773
|
+
}); }, [connectWebSocket, start, status, stop]);
|
774
|
+
return {
|
775
|
+
onClickHandle: onClick,
|
776
|
+
status: status,
|
777
|
+
// 识别中
|
778
|
+
loading: status === 'CLOSING' || status === 'CONNECTING',
|
779
|
+
// 初始状态
|
780
|
+
isInit: status === 'UNDEFINED' || status === 'CLOSED',
|
781
|
+
// 开启中
|
782
|
+
isStarting: status === 'CONNECTING',
|
783
|
+
};
|
784
|
+
}
|
785
|
+
|
786
|
+
export { useStartWs as useAsr, useFetchState, useMutationObserver, useScreenFull, useTableLinkage, useTableValidate };
|
package/dist/index.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
export {
|
1
|
+
export { d as authority } from './authority-7a91cb9f.js';
|
2
2
|
export { d as dataModel } from './dataModel-1fbaff40.js';
|
3
3
|
export { t as tools } from './tools-09a4d620.js';
|
4
4
|
export { v as validate } from './validate-18e52490.js';
|
5
|
-
export { r as request } from './request-
|
5
|
+
export { r as request } from './request-40abfa76.js';
|
6
6
|
export { r as reqUrl } from './reqUrl-3792afcd.js';
|
7
7
|
import './tslib.es6-35653116.js';
|
8
8
|
import 'dayjs';
|
@@ -2,7 +2,7 @@ import { a as __rest, _ as __assign } from './tslib.es6-35653116.js';
|
|
2
2
|
import axios from 'axios';
|
3
3
|
import { Modal, message } from 'ztxkui';
|
4
4
|
import { c as commonjsGlobal, a as crypto } from './crypto-c481f616.js';
|
5
|
-
import { g as getToken, a as getRefreshToken, s as setToken,
|
5
|
+
import { g as getToken, r as removeToken, a as removeRefreshToken, b as getRefreshToken, s as setToken, c as setRefreshToken } from './authority-7a91cb9f.js';
|
6
6
|
|
7
7
|
/**
|
8
8
|
* Removes all key-value entries from the list cache.
|
@@ -2566,6 +2566,8 @@ function refreshTokenRequst(jumpCallback, Authorization) {
|
|
2566
2566
|
requestTokenEndTime = 0;
|
2567
2567
|
if (!isExpiration) {
|
2568
2568
|
isExpiration = true;
|
2569
|
+
removeToken();
|
2570
|
+
removeRefreshToken();
|
2569
2571
|
if (jumpCallback) {
|
2570
2572
|
jumpCallback(401);
|
2571
2573
|
}
|
@@ -2678,6 +2680,8 @@ function setInterceptorsResponse(jumpCallback, otherOptions) {
|
|
2678
2680
|
if ((errRes === null || errRes === void 0 ? void 0 : errRes.status) === 501) {
|
2679
2681
|
if (!isOffSite) {
|
2680
2682
|
isOffSite = true;
|
2683
|
+
removeToken();
|
2684
|
+
removeRefreshToken();
|
2681
2685
|
if (jumpCallback) {
|
2682
2686
|
jumpCallback(errRes === null || errRes === void 0 ? void 0 : errRes.status);
|
2683
2687
|
}
|
@@ -2694,6 +2698,8 @@ function setInterceptorsResponse(jumpCallback, otherOptions) {
|
|
2694
2698
|
if ((errRes === null || errRes === void 0 ? void 0 : errRes.status) === 401 && !isRefreshToken) {
|
2695
2699
|
if (!isExpiration) {
|
2696
2700
|
isExpiration = true;
|
2701
|
+
removeToken();
|
2702
|
+
removeRefreshToken();
|
2697
2703
|
if (jumpCallback) {
|
2698
2704
|
jumpCallback(errRes === null || errRes === void 0 ? void 0 : errRes.status);
|
2699
2705
|
}
|
@@ -2714,14 +2720,15 @@ function setInterceptorsResponse(jumpCallback, otherOptions) {
|
|
2714
2720
|
function setInterceptorsRequest() {
|
2715
2721
|
// 拦截器,拦截响应头信息
|
2716
2722
|
axios.interceptors.request.use(function (config) {
|
2717
|
-
var _a;
|
2723
|
+
var _a, _b, _c;
|
2718
2724
|
if (config.isCancelRepeat) {
|
2719
2725
|
axiosCancel.pendingRequestCancel(config);
|
2720
2726
|
}
|
2721
2727
|
// 如果需要清除未完成的请求 2023-05-15
|
2722
2728
|
if (config.isCancelNoCompleteRequest &&
|
2723
2729
|
!config.cancelToken &&
|
2724
|
-
((_a = config.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== 'POST'
|
2730
|
+
((_a = config.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== 'POST' &&
|
2731
|
+
!((_c = (_b = config.url) === null || _b === void 0 ? void 0 : _b.includes) === null || _c === void 0 ? void 0 : _c.call(_b, 'zmdms-resource'))) {
|
2725
2732
|
var cancelTokenObj = axios.CancelToken.source();
|
2726
2733
|
config.cancelToken = cancelTokenObj.token;
|
2727
2734
|
pendingRequest.push(cancelTokenObj.cancel);
|
package/dist/request.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import './tslib.es6-35653116.js';
|
2
2
|
import 'axios';
|
3
3
|
import 'ztxkui';
|
4
|
-
export { N as NEW_AUTHORIZATION, O as OLD_AUTHORIZATION, b as clearCatch, c as clearNoCompleteRequest, a as default } from './request-
|
5
|
-
import './authority-
|
4
|
+
export { N as NEW_AUTHORIZATION, O as OLD_AUTHORIZATION, b as clearCatch, c as clearNoCompleteRequest, a as default } from './request-40abfa76.js';
|
5
|
+
import './authority-7a91cb9f.js';
|
6
6
|
import './crypto-c481f616.js';
|
7
7
|
import 'crypto';
|
package/dist/stompClient.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import Stomp from 'zt-stompjs';
|
2
2
|
import SockJS from 'zt-sockjs-client';
|
3
|
-
import { g as getToken } from './authority-
|
3
|
+
import { g as getToken } from './authority-7a91cb9f.js';
|
4
4
|
|
5
5
|
var StompClient = /** @class */ (function () {
|
6
6
|
function StompClient(connectWsConfig) {
|
package/dist/useHistory.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
2
2
|
import { useHistory as useHistory$1 } from 'react-router-dom';
|
3
|
-
import { i as isQiankun } from './authority-
|
3
|
+
import { i as isQiankun } from './authority-7a91cb9f.js';
|
4
4
|
import { WORKFLOW_HIDEFRAME_KEY } from './constants.js';
|
5
5
|
|
6
6
|
/**
|
package/package.json
CHANGED
package/dist/reqUrl-787dd9e5.js
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @file 项目基本配置,包括各个环境的请求地址
|
3
|
-
*/
|
4
|
-
// 环境变量
|
5
|
-
function getReqUrl(processObj) {
|
6
|
-
var ENV = processObj.REACT_APP_ENV;
|
7
|
-
// api服务器各个环境地址
|
8
|
-
var ZT_API_DEV = processObj.REACT_APP_ZT_API_DEV || 'http://192.168.0.83:8000'; // 开发环境
|
9
|
-
var ZT_API_TEST = processObj.REACT_APP_ZT_API_TEST || window.location.origin; // 测试环境 https://192.168.0.135:8000
|
10
|
-
var ZT_API_STAGE = processObj.REACT_APP_ZT_API_STAGE || window.location.origin; // 阶段性环境 http://192.168.0.134:8000
|
11
|
-
var ZT_API_SIM = processObj.REACT_APP_ZT_API_SIM || window.location.origin; // 阶段性环境 http://192.168.0.134:8000
|
12
|
-
var ZT_API_PRODUCT = processObj.REACT_APP_ZT_API_PRODUCT || window.location.origin; // 生产环境 http://dz.zmd.com.cn
|
13
|
-
var ZT_API_PUBLIC_PRODUCT = processObj.REACT_APP_ZT_API_PUBLIC_PRODUCT ||
|
14
|
-
'https://m-portal.zmd.com.cn:18998'; // 生产环境外网api地址 http://dz.zmd.com.cn:48000
|
15
|
-
// 文件服务器
|
16
|
-
var ZT_FILE_PREVIEW_DEV = processObj.REACT_APP_ZT_FILE_PREVIEW_DEV || 'http://192.168.0.83:88'; // 开发环境
|
17
|
-
var ZT_FILE_PREVIEW_TEST = processObj.REACT_APP_ZT_FILE_PREVIEW_TEST || 'http://172.55.5.101:33013'; // 测试环境 https://192.168.0.135:18012
|
18
|
-
var ZT_FILE_PREVIEW_STAGE = processObj.REACT_APP_ZT_FILE_PREVIEW_STAGE ||
|
19
|
-
'https://dzfile-prod.zmd.com.cn/'; // 阶段性环境 http://192.168.0.134:8012
|
20
|
-
var ZT_FILE_PREVIEW_SIM = processObj.REACT_APP_ZT_FILE_PREVIEW_SIM ||
|
21
|
-
'https://dzfile-data.zmd.com.cn/'; // 阶段性环境 http://192.168.0.134:8012
|
22
|
-
var ZT_FILE_PREVIEW_PRODUCT = processObj.REACT_APP_ZT_FILE_PREVIEW_PRODUCT ||
|
23
|
-
'https://dzfile.zmd.com.cn:8012'; // 生产环境
|
24
|
-
// 字体文件附件id
|
25
|
-
var ZT_FONTFAMILY_DEV = '1551733945007517697';
|
26
|
-
var ZT_FONTFAMILY_TEST = '1551836774183047169';
|
27
|
-
var ZT_FONTFAMILY_STAGE = '1551837561144905730';
|
28
|
-
var ZT_FONTFAMILY_SIM = '1562010976138207234';
|
29
|
-
var ZT_FONTFAMILY_PRODUCT = '1552851055372992513';
|
30
|
-
// 实际api请求地址
|
31
|
-
var ZT_API_BASEURL = ZT_API_DEV;
|
32
|
-
var ZT_API_PUBLICURL = ZT_API_PUBLIC_PRODUCT;
|
33
|
-
var ZT_FILE_BASEURL = ZT_FILE_PREVIEW_DEV;
|
34
|
-
var ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_DEV;
|
35
|
-
if (ENV) {
|
36
|
-
switch (ENV.toLowerCase()) {
|
37
|
-
case 'zt-dev':
|
38
|
-
ZT_API_BASEURL = ZT_API_DEV;
|
39
|
-
ZT_API_PUBLICURL = ZT_API_DEV;
|
40
|
-
ZT_FILE_BASEURL = ZT_FILE_PREVIEW_DEV;
|
41
|
-
ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_DEV;
|
42
|
-
break;
|
43
|
-
case 'zt-test':
|
44
|
-
ZT_API_BASEURL = ZT_API_TEST;
|
45
|
-
ZT_API_PUBLICURL = ZT_API_TEST;
|
46
|
-
ZT_FILE_BASEURL = ZT_FILE_PREVIEW_TEST;
|
47
|
-
ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_TEST;
|
48
|
-
break;
|
49
|
-
case 'zt-stage':
|
50
|
-
ZT_API_BASEURL = ZT_API_STAGE;
|
51
|
-
ZT_API_PUBLICURL = ZT_API_STAGE;
|
52
|
-
ZT_FILE_BASEURL = ZT_FILE_PREVIEW_STAGE;
|
53
|
-
ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_STAGE;
|
54
|
-
break;
|
55
|
-
case 'zt-sim':
|
56
|
-
ZT_API_BASEURL = ZT_API_SIM;
|
57
|
-
ZT_API_PUBLICURL = ZT_API_SIM;
|
58
|
-
ZT_FILE_BASEURL = ZT_FILE_PREVIEW_SIM;
|
59
|
-
ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_SIM;
|
60
|
-
break;
|
61
|
-
case 'zt-product':
|
62
|
-
ZT_API_BASEURL = ZT_API_PRODUCT;
|
63
|
-
ZT_API_PUBLICURL = ZT_API_PUBLIC_PRODUCT;
|
64
|
-
ZT_FILE_BASEURL = ZT_FILE_PREVIEW_PRODUCT;
|
65
|
-
ZT_FONTFAMILY_BASEURL = ZT_FONTFAMILY_PRODUCT;
|
66
|
-
break;
|
67
|
-
}
|
68
|
-
}
|
69
|
-
return {
|
70
|
-
ZT_API_BASEURL: ZT_API_BASEURL,
|
71
|
-
ZT_FILE_BASEURL: ZT_FILE_BASEURL,
|
72
|
-
ZT_API_PUBLICURL: ZT_API_PUBLICURL,
|
73
|
-
ZT_FONTFAMILY_BASEURL: ZT_FONTFAMILY_BASEURL,
|
74
|
-
};
|
75
|
-
}
|
76
|
-
|
77
|
-
var reqUrl = /*#__PURE__*/Object.freeze({
|
78
|
-
__proto__: null,
|
79
|
-
getReqUrl: getReqUrl
|
80
|
-
});
|
81
|
-
|
82
|
-
export { getReqUrl as g, reqUrl as r };
|