ztxkutils 2.9.13 → 2.9.14
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/dist/authority-118dc4b1.js +378 -0
- package/dist/authority.js +1 -1
- package/dist/fileOperation.js +1 -1
- package/dist/hooks.js +5 -1
- package/dist/index.js +2 -2
- package/dist/print.d.ts +1 -1
- package/dist/print.js +73 -29
- package/dist/request-c3ba0965.js +2767 -0
- package/dist/request.js +2 -2
- package/dist/stompClient.js +1 -1
- package/dist/useFileIdToBase64.js +17 -23
- package/dist/useHistory.js +1 -1
- package/package.json +1 -1
@@ -0,0 +1,378 @@
|
|
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
|
+
var authority = /*#__PURE__*/Object.freeze({
|
358
|
+
__proto__: null,
|
359
|
+
getToken: getToken,
|
360
|
+
getRefreshToken: getRefreshToken,
|
361
|
+
getOAuth2: getOAuth2,
|
362
|
+
setToken: setToken,
|
363
|
+
removeToken: removeToken,
|
364
|
+
setRefreshToken: setRefreshToken,
|
365
|
+
removeRefreshToken: removeRefreshToken,
|
366
|
+
setOAuth2: setOAuth2,
|
367
|
+
removeOAuth2: removeOAuth2,
|
368
|
+
aesEncrypt: aesEncrypt,
|
369
|
+
aesDecrypt: aesDecrypt,
|
370
|
+
BTN_AUTHS: BTN_AUTHS,
|
371
|
+
isBtnAuth: isBtnAuth,
|
372
|
+
setLastUrlPath: setLastUrlPath,
|
373
|
+
getLastUrlPath: getLastUrlPath,
|
374
|
+
isQiankun: isQiankun,
|
375
|
+
jwtDecode: jwtDecode
|
376
|
+
});
|
377
|
+
|
378
|
+
export { BTN_AUTHS as B, getRefreshToken as a, setRefreshToken as b, authority as c, getOAuth2 as d, removeRefreshToken as e, setOAuth2 as f, getToken as g, removeOAuth2 as h, isQiankun as i, jwtDecode as j, aesEncrypt as k, aesDecrypt as l, isBtnAuth as m, setLastUrlPath as n, getLastUrlPath as o, removeToken as r, setToken as s };
|
package/dist/authority.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export { B as BTN_AUTHS,
|
1
|
+
export { B as BTN_AUTHS, l as aesDecrypt, k as aesEncrypt, o as getLastUrlPath, d as getOAuth2, a as getRefreshToken, g as getToken, m as isBtnAuth, i as isQiankun, j as jwtDecode, h as removeOAuth2, e as removeRefreshToken, r as removeToken, n as setLastUrlPath, f as setOAuth2, b as setRefreshToken, s as setToken } from './authority-118dc4b1.js';
|
package/dist/fileOperation.js
CHANGED
package/dist/hooks.js
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
import { _ as __assign, c as __awaiter, d as __generator } from './tslib.es6-f9459658.js';
|
2
2
|
import { useState, useEffect, useRef, useCallback } from 'react';
|
3
3
|
export { default as useFileIdToBase64 } from './useFileIdToBase64.js';
|
4
|
-
import './
|
4
|
+
import './fileOperation.js';
|
5
|
+
import './authority-118dc4b1.js';
|
6
|
+
import './tools-1e6fe951.js';
|
7
|
+
import 'dayjs';
|
8
|
+
import 'number-precision';
|
5
9
|
|
6
10
|
function useTableLinkage(_a) {
|
7
11
|
var records = _a.records, callbackPromise = _a.callbackPromise, dependencies = _a.dependencies, devDependencies = _a.devDependencies;
|
package/dist/index.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
export { c as authority } from './authority-
|
1
|
+
export { c as authority } from './authority-118dc4b1.js';
|
2
2
|
export { d as dataModel } from './dataModel-1fbaff40.js';
|
3
3
|
export { t as tools } from './tools-1e6fe951.js';
|
4
4
|
export { v as validate } from './validate-3e15dd74.js';
|
5
|
-
export { r as request } from './request-
|
5
|
+
export { r as request } from './request-c3ba0965.js';
|
6
6
|
export { r as reqUrl } from './reqUrl-4700395b.js';
|
7
7
|
import './tslib.es6-f9459658.js';
|
8
8
|
import 'dayjs';
|
package/dist/print.d.ts
CHANGED
@@ -6,7 +6,7 @@ import { jsPDF } from 'jspdf';
|
|
6
6
|
/**
|
7
7
|
* 添加水印
|
8
8
|
*/
|
9
|
-
export declare function addWaterHandle({ waterText, waterClassName,
|
9
|
+
export declare function addWaterHandle({ waterText, waterClassName, }?: {
|
10
10
|
waterText?: string;
|
11
11
|
waterClassName?: string[];
|
12
12
|
isPrintWater?: boolean;
|
package/dist/print.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { a as __spreadArray, c as __awaiter, d as __generator } from './tslib.es6-f9459658.js';
|
2
2
|
import { jsPDF } from 'jspdf';
|
3
3
|
import html2canvas from 'html2canvas';
|
4
|
+
import { g as getToken, j as jwtDecode } from './authority-118dc4b1.js';
|
4
5
|
|
5
6
|
/**
|
6
7
|
* 添加水印
|
@@ -9,41 +10,30 @@ function addWaterHandle(_a) {
|
|
9
10
|
var _b = _a === void 0 ? {
|
10
11
|
waterText: '',
|
11
12
|
waterClassName: [],
|
12
|
-
|
13
|
-
} : _a, waterText = _b.waterText, waterClassName = _b.waterClassName, isPrintWater = _b.isPrintWater;
|
14
|
-
var canvas = document.createElement('canvas');
|
13
|
+
} : _a, waterText = _b.waterText, waterClassName = _b.waterClassName;
|
15
14
|
var waterStyleDom = document.getElementById('water-style-dom-110011');
|
16
15
|
if (waterStyleDom) {
|
17
16
|
waterStyleDom.remove();
|
18
17
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
if (ctx) {
|
23
|
-
ctx.rotate((-15 * Math.PI) / 180); // 水印旋转角度
|
24
|
-
ctx.font = '15px 微软雅黑';
|
25
|
-
ctx.fillStyle = 'rgba(0,0,0,0.5)';
|
26
|
-
ctx.textAlign = 'center';
|
27
|
-
ctx.textBaseline = 'middle';
|
28
|
-
ctx.fillText(waterText || '内部资料,严禁外泄!', canvas.width / 2, canvas.height); // 水印在画布的位置x,y轴
|
29
|
-
}
|
18
|
+
var canvasImg = createWaterHandle({
|
19
|
+
waterText: waterText,
|
20
|
+
});
|
30
21
|
var styleDom = document.createElement('style');
|
31
22
|
styleDom.setAttribute('type', 'text/css');
|
32
23
|
styleDom.setAttribute('id', 'water-style-dom-110011');
|
33
|
-
styleDom.innerText =
|
34
|
-
|
24
|
+
styleDom.innerText =
|
25
|
+
'@media print{' +
|
26
|
+
'body {background: url(' +
|
27
|
+
canvasImg +
|
28
|
+
') left top repeat;} ' +
|
35
29
|
(Array.isArray(waterClassName) && waterClassName.length > 0
|
36
|
-
?
|
37
|
-
: '
|
38
|
-
'
|
39
|
-
|
40
|
-
'
|
41
|
-
|
42
|
-
|
43
|
-
: 'body') +
|
44
|
-
' {background: url(' +
|
45
|
-
canvas.toDataURL('image/png') +
|
46
|
-
') left top repeat;}';
|
30
|
+
? waterClassName.join(',') + " { min-height: 90vh }"
|
31
|
+
: '') +
|
32
|
+
'}' +
|
33
|
+
'@page { size: auto; }' +
|
34
|
+
'body {background: url(' +
|
35
|
+
canvasImg +
|
36
|
+
') left top repeat;}}';
|
47
37
|
document.head.appendChild(styleDom);
|
48
38
|
}
|
49
39
|
function removeWaterHandle() {
|
@@ -68,6 +58,46 @@ function printCurrentDom(_a) {
|
|
68
58
|
document.head.appendChild(styleDom);
|
69
59
|
window.print();
|
70
60
|
}
|
61
|
+
/**
|
62
|
+
* 创建文本水印图片
|
63
|
+
* @param waterText 水印文本
|
64
|
+
* @param opacity 水印透明度
|
65
|
+
* @returns canvas png
|
66
|
+
*/
|
67
|
+
function createWaterHandle(obj) {
|
68
|
+
var token = getToken();
|
69
|
+
var defaultWaterText = '内部资料,严禁外泄!';
|
70
|
+
if (token) {
|
71
|
+
try {
|
72
|
+
var tokenObj = jwtDecode(token);
|
73
|
+
defaultWaterText = "\u6D59\u5546\u4E2D\u62D3 " + ((tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.real_name) || '');
|
74
|
+
}
|
75
|
+
catch (err) {
|
76
|
+
console.log(err);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
var _a = obj || {}, waterText = _a.waterText, opacity = _a.opacity, fontSize = _a.fontSize;
|
80
|
+
var canvas = document.createElement('canvas');
|
81
|
+
canvas.width = 200;
|
82
|
+
canvas.height = 80;
|
83
|
+
var ctx = canvas.getContext('2d');
|
84
|
+
if (ctx) {
|
85
|
+
ctx.rotate((-10 * Math.PI) / 180); // 水印旋转角度
|
86
|
+
ctx.font = (fontSize || '18px') + " \u5FAE\u8F6F\u96C5\u9ED1";
|
87
|
+
ctx.fillStyle = "rgba(0,0,0," + (opacity ? opacity : '0.2') + ")";
|
88
|
+
ctx.textAlign = 'center';
|
89
|
+
ctx.textBaseline = 'middle';
|
90
|
+
ctx.fillText(waterText || defaultWaterText, canvas.width / 2, canvas.height); // 水印在画布的位置x,y轴
|
91
|
+
}
|
92
|
+
return canvas.toDataURL('image/png');
|
93
|
+
}
|
94
|
+
function addPdfWaterHandle(pdf, waterBase64) {
|
95
|
+
for (var i = 0; i < 10; i++) {
|
96
|
+
pdf.addImage(waterBase64, 'PNG', 0, 80 * i, 200, 80, "1" + i);
|
97
|
+
pdf.addImage(waterBase64, 'PNG', 200, 80 * i, 200, 80, "2" + i);
|
98
|
+
pdf.addImage(waterBase64, 'PNG', 400, 80 * i, 200, 80, "3" + i);
|
99
|
+
}
|
100
|
+
}
|
71
101
|
/**
|
72
102
|
* html转pdf
|
73
103
|
*/
|
@@ -88,10 +118,20 @@ function createPdf(canvas, pdf) {
|
|
88
118
|
//当内容未超过pdf一页显示的范围,无需分页
|
89
119
|
if (leftHeight < pageHeight) {
|
90
120
|
pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
|
121
|
+
var waterBase64 = createWaterHandle({
|
122
|
+
opacity: '0.5',
|
123
|
+
fontSize: '15px',
|
124
|
+
});
|
125
|
+
addPdfWaterHandle(pdf, waterBase64);
|
91
126
|
}
|
92
127
|
else {
|
93
128
|
while (leftHeight > 0) {
|
94
129
|
pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
|
130
|
+
var waterBase64 = createWaterHandle({
|
131
|
+
opacity: '0.5',
|
132
|
+
fontSize: '15px',
|
133
|
+
});
|
134
|
+
addPdfWaterHandle(pdf, waterBase64);
|
95
135
|
leftHeight -= pageHeight;
|
96
136
|
position -= 841.89;
|
97
137
|
//避免添加空白页
|
@@ -107,7 +147,11 @@ function htmlToPdf(_a) {
|
|
107
147
|
var allDom = document.querySelectorAll(pageClassName ? pageClassName : '.html2canvas-container-page');
|
108
148
|
if (allDom.length > 0 && isShowPage) {
|
109
149
|
var allDomArray = Array.prototype.slice.call(allDom);
|
110
|
-
var promiseAllDomArray_1 = allDomArray.map(function (dom) {
|
150
|
+
var promiseAllDomArray_1 = allDomArray.map(function (dom) {
|
151
|
+
return html2canvas(dom, {
|
152
|
+
scale: 2,
|
153
|
+
});
|
154
|
+
});
|
111
155
|
return (function () {
|
112
156
|
return __awaiter(this, void 0, void 0, function () {
|
113
157
|
var i, _i, promiseAllDomArray_2, item, canvas;
|
@@ -141,7 +185,7 @@ function htmlToPdf(_a) {
|
|
141
185
|
})();
|
142
186
|
}
|
143
187
|
else {
|
144
|
-
return html2canvas(dom).then(function (canvas) {
|
188
|
+
return html2canvas(dom, { scale: 2 }).then(function (canvas) {
|
145
189
|
createPdf(canvas, pdf);
|
146
190
|
pdf.save(pdfName + ".pdf");
|
147
191
|
return pdf;
|