ztxkui 3.9.18 → 4.0.0
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/components/PrintContainer/print-container.js +6 -0
- package/dist/components/Upload/upload-table.js +2 -1
- package/dist/components/Upload/upload.d.ts +2 -0
- package/dist/components/Upload/upload.js +11 -33
- package/dist/components/Upload/utils.d.ts +14 -2
- package/dist/components/Upload/utils.js +77 -13
- package/dist/components/business/Signatures/components/DetailTable.d.ts +1 -0
- package/dist/components/business/Signatures/components/DetailTable.js +9 -34
- package/dist/components/business/Signatures/index.js +2 -2
- package/dist/components/business/Signatures/props.d.ts +2 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/request.d.ts +10 -0
- package/dist/request.js +371 -0
- package/package.json +2 -2
|
@@ -312,6 +312,12 @@ var PrintContainer = function (_a) {
|
|
|
312
312
|
setShowSeal(false);
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
+
useEffect(function () {
|
|
316
|
+
if (showAddSeal && sealFileIdList) {
|
|
317
|
+
onAddSealHandle();
|
|
318
|
+
}
|
|
319
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
320
|
+
}, [showAddSeal, sealFileIdList]);
|
|
315
321
|
// 打印
|
|
316
322
|
var onPrintHandle = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
317
323
|
var result, err_1, isOkSure_1;
|
|
@@ -447,7 +447,8 @@ var UploadTable = function (_a) {
|
|
|
447
447
|
tip: '附件上传中,请稍后操作!',
|
|
448
448
|
});
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
// 过滤掉不需要展示的附件
|
|
451
|
+
setDataSource(newDataSource.filter(function (file) { return file.fileName !== '__inside_use__html_to_img__flow.jpg'; }));
|
|
451
452
|
}
|
|
452
453
|
}, [fileList, uploadUser]);
|
|
453
454
|
var myRowSelection = useMemo(function () {
|
|
@@ -65,7 +65,7 @@ import classNames from 'classnames';
|
|
|
65
65
|
import { downloadFileCallBack, downloadPublicFile, previewFile, createThumbnailUrl, } from 'ztxkutils/dist/fileOperation';
|
|
66
66
|
import { transformFileSize } from 'ztxkutils/dist/tools';
|
|
67
67
|
import { MAX_PREVIEW_FILE_SIZE } from '../utils/constants';
|
|
68
|
-
import { fileBatchDownload } from './utils';
|
|
68
|
+
import { fileBatchDownload, preCanDownload, nextDownload, } from './utils';
|
|
69
69
|
var _accept = [
|
|
70
70
|
'.pdf',
|
|
71
71
|
'.txt',
|
|
@@ -87,7 +87,7 @@ var _accept = [
|
|
|
87
87
|
];
|
|
88
88
|
var statusArr = ['error', 'success', 'done', 'uploading', 'removed'];
|
|
89
89
|
var Upload = function (props) {
|
|
90
|
-
var children = props.children, className = props.className, _a = props.showTip, showTip = _a === void 0 ? true : _a, _b = props.showUploadBtn, showUploadBtn = _b === void 0 ? true : _b, _c = props.showDeleteBtn, showDeleteBtn = _c === void 0 ? true : _c, onDownLoadCallbackBefore = props.onDownLoadCallbackBefore, _d = props.showDownloadBtn, showDownloadBtn = _d === void 0 ? true : _d, onDownLoadCallbackAfter = props.onDownLoadCallbackAfter, _e = props.showPreviewBtn, showPreviewBtn = _e === void 0 ? true : _e, onPreviewCallbackBefore = props.onPreviewCallbackBefore, _f = props.showTable, showTable = _f === void 0 ? true : _f, showUploadList = props.showUploadList, onChange = props.onChange, beforeUpload = props.beforeUpload, multiple = props.multiple, ztAccept = props.ztAccept, ztShowTipText = props.ztShowTipText, maxCount = props.maxCount, maxSize = props.maxSize, maxSizeStr = props.maxSizeStr, action = props.action, headers = props.headers, method = props.method, uploadUser = props.uploadUser, originFileList = props.originFileList, callback = props.callback, onDeleteCallback = props.onDeleteCallback, isAutoDelete = props.isAutoDelete, apiBaseUrl = props.apiBaseUrl, _g = props.fileBaseUrl, fileBaseUrl = _g === void 0 ? '' : _g, fileBtnText = props.fileBtnText, data = props.data, authToken = props.authToken, listType = props.listType, isPublic = props.isPublic, startColumns = props.startColumns, otherColumns = props.otherColumns, _h = props.isDirect, isDirect = _h === void 0 ? false : _h, upload = props.upload, rowSelection = props.rowSelection, uploadTableRef = props.uploadTableRef, tableRestProps = props.tableRestProps, showAllDeleteBtn = props.showAllDeleteBtn, showAllDownloadBtn = props.showAllDownloadBtn, allDeleteCallback = props.allDeleteCallback, allDownloadCallback = props.allDownloadCallback, restProps = __rest(props, ["children", "className", "showTip", "showUploadBtn", "showDeleteBtn", "onDownLoadCallbackBefore", "showDownloadBtn", "onDownLoadCallbackAfter", "showPreviewBtn", "onPreviewCallbackBefore", "showTable", "showUploadList", "onChange", "beforeUpload", "multiple", "ztAccept", "ztShowTipText", "maxCount", "maxSize", "maxSizeStr", "action", "headers", "method", "uploadUser", "originFileList", "callback", "onDeleteCallback", "isAutoDelete", "apiBaseUrl", "fileBaseUrl", "fileBtnText", "data", "authToken", "listType", "isPublic", "startColumns", "otherColumns", "isDirect", "upload", "rowSelection", "uploadTableRef", "tableRestProps", "showAllDeleteBtn", "showAllDownloadBtn", "allDeleteCallback", "allDownloadCallback"]);
|
|
90
|
+
var children = props.children, className = props.className, _a = props.showTip, showTip = _a === void 0 ? true : _a, _b = props.showUploadBtn, showUploadBtn = _b === void 0 ? true : _b, _c = props.showDeleteBtn, showDeleteBtn = _c === void 0 ? true : _c, onDownLoadCallbackBefore = props.onDownLoadCallbackBefore, _d = props.showDownloadBtn, showDownloadBtn = _d === void 0 ? true : _d, onDownLoadCallbackAfter = props.onDownLoadCallbackAfter, _e = props.showPreviewBtn, showPreviewBtn = _e === void 0 ? true : _e, onPreviewCallbackBefore = props.onPreviewCallbackBefore, _f = props.showTable, showTable = _f === void 0 ? true : _f, showUploadList = props.showUploadList, onChange = props.onChange, beforeUpload = props.beforeUpload, multiple = props.multiple, ztAccept = props.ztAccept, ztShowTipText = props.ztShowTipText, maxCount = props.maxCount, maxSize = props.maxSize, maxSizeStr = props.maxSizeStr, action = props.action, headers = props.headers, method = props.method, uploadUser = props.uploadUser, originFileList = props.originFileList, callback = props.callback, onDeleteCallback = props.onDeleteCallback, isAutoDelete = props.isAutoDelete, apiBaseUrl = props.apiBaseUrl, _g = props.fileBaseUrl, fileBaseUrl = _g === void 0 ? '' : _g, fileBtnText = props.fileBtnText, data = props.data, authToken = props.authToken, listType = props.listType, isPublic = props.isPublic, startColumns = props.startColumns, otherColumns = props.otherColumns, _h = props.isDirect, isDirect = _h === void 0 ? false : _h, upload = props.upload, rowSelection = props.rowSelection, uploadTableRef = props.uploadTableRef, tableRestProps = props.tableRestProps, showAllDeleteBtn = props.showAllDeleteBtn, showAllDownloadBtn = props.showAllDownloadBtn, allDeleteCallback = props.allDeleteCallback, allDownloadCallback = props.allDownloadCallback, batchDownloadZipName = props.batchDownloadZipName, restProps = __rest(props, ["children", "className", "showTip", "showUploadBtn", "showDeleteBtn", "onDownLoadCallbackBefore", "showDownloadBtn", "onDownLoadCallbackAfter", "showPreviewBtn", "onPreviewCallbackBefore", "showTable", "showUploadList", "onChange", "beforeUpload", "multiple", "ztAccept", "ztShowTipText", "maxCount", "maxSize", "maxSizeStr", "action", "headers", "method", "uploadUser", "originFileList", "callback", "onDeleteCallback", "isAutoDelete", "apiBaseUrl", "fileBaseUrl", "fileBtnText", "data", "authToken", "listType", "isPublic", "startColumns", "otherColumns", "isDirect", "upload", "rowSelection", "uploadTableRef", "tableRestProps", "showAllDeleteBtn", "showAllDownloadBtn", "allDeleteCallback", "allDownloadCallback", "batchDownloadZipName"]);
|
|
91
91
|
var _j = useState(originFileList || []), fileList = _j[0], setFileList = _j[1];
|
|
92
92
|
var _k = useState('20M'), maxSizeTransStr = _k[0], setMaxSizeTransStr = _k[1];
|
|
93
93
|
var batchDownloadRef = useRef(null);
|
|
@@ -320,45 +320,22 @@ var Upload = function (props) {
|
|
|
320
320
|
var onAllDownloadHandle = useCallback(function () {
|
|
321
321
|
var list = privateTableRef.current.getSelectedRows();
|
|
322
322
|
if (Array.isArray(list) && list.length > 0) {
|
|
323
|
-
if (batchDownloadRef.current) {
|
|
324
|
-
var canDownloadFileList_1 = batchDownloadRef.current.canDownloadFileList;
|
|
325
|
-
if (!Array.isArray(canDownloadFileList_1) ||
|
|
326
|
-
canDownloadFileList_1.length === 0) {
|
|
327
|
-
return;
|
|
328
|
-
}
|
|
329
|
-
// 如果能找到未下载的 或者下载失败的 给出提示
|
|
330
|
-
if (canDownloadFileList_1.find(function (item) { return !item._downloadStatus; })) {
|
|
331
|
-
message.info("\u6709\u6587\u4EF6\u8FD8\u672A\u4E0B\u8F7D\u5B8C\u6210\u7A0D\u540E\u518D\u8FDB\u884C\u6279\u91CF\u4E0B\u8F7D!");
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
if (canDownloadFileList_1.find(function (item) { return item._downloadStatus === 'rejected'; })) {
|
|
335
|
-
var result = (canDownloadFileList_1 === null || canDownloadFileList_1 === void 0 ? void 0 : canDownloadFileList_1.filter(function (item) { return item._downloadStatus === 'rejected'; })) || [];
|
|
336
|
-
message.info("\u6709\u6587\u4EF6\n" + result
|
|
337
|
-
.map(function (item) { return item === null || item === void 0 ? void 0 : item.fileName; })
|
|
338
|
-
.join('\n') + "\u4E0B\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u4E0B\u8F7D\u5931\u8D25\u6587\u4EF6\u91CD\u65B0\u4E0B\u8F7D!");
|
|
339
|
-
batchDownloadRef.current = null;
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
323
|
// 根据相关信息生成下载的链接
|
|
324
|
+
if (!preCanDownload(batchDownloadRef.current, function () {
|
|
325
|
+
batchDownloadRef.current = null;
|
|
326
|
+
})) {
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
344
329
|
batchDownloadRef.current = fileBatchDownload(list, {
|
|
345
330
|
showDownloadBtn: showDownloadBtn,
|
|
346
331
|
showPreviewBtn: showPreviewBtn,
|
|
347
332
|
authToken: authToken,
|
|
348
333
|
apiBaseUrl: apiBaseUrl,
|
|
334
|
+
zipName: batchDownloadZipName,
|
|
349
335
|
});
|
|
350
|
-
|
|
351
|
-
if (Array.isArray(noCanDownloadFileList) &&
|
|
352
|
-
noCanDownloadFileList.length > 0) {
|
|
353
|
-
message.info("\u4EE5\u4E0B\u6587\u4EF6\u672A\u6388\u6743\u4E0B\u8F7D\uFF1A\n " + noCanDownloadFileList
|
|
354
|
-
.map(function (item) { return item.fileName; })
|
|
355
|
-
.join('\n') + "!");
|
|
356
|
-
}
|
|
357
|
-
if (Array.isArray(canDownloadFileList) &&
|
|
358
|
-
canDownloadFileList.length === 0) {
|
|
359
|
-
message.info('请选择有权限下载的附件!');
|
|
336
|
+
nextDownload(batchDownloadRef.current, function () {
|
|
360
337
|
batchDownloadRef.current = null;
|
|
361
|
-
}
|
|
338
|
+
});
|
|
362
339
|
allDownloadCallback && allDownloadCallback(list);
|
|
363
340
|
}
|
|
364
341
|
else {
|
|
@@ -370,6 +347,7 @@ var Upload = function (props) {
|
|
|
370
347
|
showPreviewBtn,
|
|
371
348
|
authToken,
|
|
372
349
|
apiBaseUrl,
|
|
350
|
+
batchDownloadZipName,
|
|
373
351
|
]);
|
|
374
352
|
var fileAction = (apiBaseUrl.endsWith('/')
|
|
375
353
|
? apiBaseUrl.slice(0, apiBaseUrl.length - 1)
|
|
@@ -10,9 +10,21 @@ interface IConfig {
|
|
|
10
10
|
showPreviewBtn?: boolean;
|
|
11
11
|
authToken?: string;
|
|
12
12
|
apiBaseUrl: string;
|
|
13
|
+
zipName?: string;
|
|
14
|
+
[prop: string]: any;
|
|
15
|
+
}
|
|
16
|
+
interface IParams {
|
|
17
|
+
status: 'pending' | 'fulfilled' | 'rejected';
|
|
13
18
|
}
|
|
14
|
-
export
|
|
19
|
+
export interface IResultType {
|
|
15
20
|
canDownloadFileList: IFileItem[];
|
|
16
21
|
noCanDownloadFileList: IFileItem[];
|
|
17
|
-
|
|
22
|
+
otherParams: IParams;
|
|
23
|
+
}
|
|
24
|
+
export declare function fileBatchDownload(fileList: IFileItem[], otherConfig: IConfig): IResultType;
|
|
25
|
+
/**
|
|
26
|
+
* 是否可以下载
|
|
27
|
+
*/
|
|
28
|
+
export declare function preCanDownload(donwloadReuslt: IResultType | null, callback?: () => void): boolean;
|
|
29
|
+
export declare function nextDownload(donwloadReuslt: IResultType | null, callback?: () => void): void;
|
|
18
30
|
export {};
|
|
@@ -13,13 +13,18 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
* @author 陈亚雄
|
|
14
14
|
* @description 文件批量下载功能
|
|
15
15
|
*/
|
|
16
|
+
import { message } from '../../index';
|
|
16
17
|
import { MAX_PREVIEW_FILE_SIZE } from '../utils/constants';
|
|
17
|
-
import { downloadFileCallBack } from 'ztxkutils/dist/fileOperation';
|
|
18
|
+
// import { downloadFileCallBack } from 'ztxkutils/dist/fileOperation';
|
|
19
|
+
import { batchDownloadFileCallBack } from 'ztxkutils/dist/fileOperation';
|
|
18
20
|
export function fileBatchDownload(fileList, otherConfig) {
|
|
19
21
|
var canDownloadFileList = []; // 可以下载的附件列表
|
|
20
22
|
var noCanDownloadFileList = []; // 不可以下载的附件列表
|
|
23
|
+
var otherParams = {
|
|
24
|
+
status: 'pending',
|
|
25
|
+
};
|
|
21
26
|
if (Array.isArray(fileList) && fileList.length > 0) {
|
|
22
|
-
var
|
|
27
|
+
var _a = otherConfig.showDownloadBtn, showDownloadBtn_1 = _a === void 0 ? true : _a, _b = otherConfig.showPreviewBtn, showPreviewBtn_1 = _b === void 0 ? true : _b, authToken = otherConfig.authToken, apiBaseUrl = otherConfig.apiBaseUrl, zipName = otherConfig.zipName;
|
|
23
28
|
// 找出可以下载的文件,以及不可以下载的文件
|
|
24
29
|
fileList.forEach(function (fileItem, index) {
|
|
25
30
|
var fileSize = fileItem.fileSize, operationAuth = fileItem.operationAuth;
|
|
@@ -44,21 +49,80 @@ export function fileBatchDownload(fileList, otherConfig) {
|
|
|
44
49
|
}
|
|
45
50
|
});
|
|
46
51
|
// 开始下载可以下载的文件
|
|
47
|
-
canDownloadFileList.forEach(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
// canDownloadFileList.forEach((fileItem, index) => {
|
|
53
|
+
// const { fileId, fileName } = fileItem;
|
|
54
|
+
// downloadFileCallBack(apiBaseUrl, fileId, fileName || `附件${index + 1}`, {
|
|
55
|
+
// authToken,
|
|
56
|
+
// callbackAfter: () => {
|
|
57
|
+
// fileItem._downloadStatus = 'fulfilled';
|
|
58
|
+
// },
|
|
59
|
+
// callbackError: () => {
|
|
60
|
+
// fileItem._downloadStatus = 'rejected';
|
|
61
|
+
// },
|
|
62
|
+
// });
|
|
63
|
+
// });
|
|
64
|
+
// 下载打包成PDF的文件。
|
|
65
|
+
var attachIds_1 = [];
|
|
66
|
+
var fileNames_1 = [];
|
|
67
|
+
var _zipName = zipName
|
|
68
|
+
? zipName.endsWith('.zip')
|
|
69
|
+
? zipName
|
|
70
|
+
: zipName + ".zip"
|
|
71
|
+
: '批量下载附件.zip';
|
|
72
|
+
canDownloadFileList.forEach(function (fileItem) {
|
|
73
|
+
attachIds_1.push(fileItem.fileId);
|
|
74
|
+
fileNames_1.push(fileItem.fileName || '');
|
|
75
|
+
});
|
|
76
|
+
batchDownloadFileCallBack(apiBaseUrl, attachIds_1.join(','), fileNames_1.join(','), {
|
|
77
|
+
authToken: authToken,
|
|
78
|
+
zipName: _zipName,
|
|
79
|
+
addWaterMark: true,
|
|
80
|
+
callbackAfter: function () {
|
|
81
|
+
otherParams.status = 'fulfilled';
|
|
82
|
+
},
|
|
83
|
+
callbackError: function () {
|
|
84
|
+
otherParams.status = 'rejected';
|
|
85
|
+
},
|
|
58
86
|
});
|
|
59
87
|
}
|
|
60
88
|
return {
|
|
61
89
|
canDownloadFileList: canDownloadFileList,
|
|
62
90
|
noCanDownloadFileList: noCanDownloadFileList,
|
|
91
|
+
otherParams: otherParams,
|
|
63
92
|
};
|
|
64
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* 是否可以下载
|
|
96
|
+
*/
|
|
97
|
+
export function preCanDownload(donwloadReuslt, callback) {
|
|
98
|
+
if (!donwloadReuslt) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
var otherParams = donwloadReuslt.otherParams;
|
|
102
|
+
// 附件还在下载中
|
|
103
|
+
if (otherParams.status === 'pending') {
|
|
104
|
+
message.info("\u4E0A\u6B21\u6587\u4EF6\u4E0B\u8F7D\u8FD8\u672A\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u518D\u8FDB\u884C\u6279\u91CF\u4E0B\u8F7D!");
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// 上次附件下载失败了 成功了 都需要重置状态
|
|
108
|
+
if (otherParams.status === 'rejected' || otherParams.status === 'fulfilled') {
|
|
109
|
+
callback && callback();
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export function nextDownload(donwloadReuslt, callback) {
|
|
114
|
+
if (!donwloadReuslt) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
var noCanDownloadFileList = donwloadReuslt.noCanDownloadFileList, canDownloadFileList = donwloadReuslt.canDownloadFileList;
|
|
118
|
+
if (Array.isArray(noCanDownloadFileList) &&
|
|
119
|
+
noCanDownloadFileList.length > 0) {
|
|
120
|
+
message.info("\u4EE5\u4E0B\u6587\u4EF6\u672A\u6388\u6743\u4E0B\u8F7D\uFF1A\n " + noCanDownloadFileList
|
|
121
|
+
.map(function (item) { return item.fileName; })
|
|
122
|
+
.join('\n') + "!");
|
|
123
|
+
}
|
|
124
|
+
if (Array.isArray(canDownloadFileList) && canDownloadFileList.length === 0) {
|
|
125
|
+
message.info('请选择有权限下载的附件!');
|
|
126
|
+
callback && callback();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -19,10 +19,10 @@ import { Switch } from 'antd';
|
|
|
19
19
|
// 自定义组件
|
|
20
20
|
import AttachOperation from './AttachOperation';
|
|
21
21
|
import CompareResult from './CompareResult';
|
|
22
|
-
import { fileBatchDownload } from '../../../Upload/utils';
|
|
22
|
+
import { fileBatchDownload, preCanDownload, nextDownload, } from '../../../Upload/utils';
|
|
23
23
|
var DetailTable = function (_a) {
|
|
24
24
|
var _b;
|
|
25
|
-
var needQj = _a.needQj, needQys = _a.needQys, records = _a.records, qunjSeal = _a.qunjSeal, electronicSeal = _a.electronicSealIdList, ZT_API_BASEURL = _a.ZT_API_BASEURL, ZT_FILE_BASEURL = _a.ZT_FILE_BASEURL, token = _a.token, viewSealPageFn = _a.viewSealPageFn, contractId = _a.contractId, electronicList = _a.electronicList, sealList = _a.sealList, querySealStatus = _a.querySealStatus, showContranctNum = _a.showContranctNum, request = _a.request, needSaveTemplate = _a.needSaveTemplate;
|
|
25
|
+
var needQj = _a.needQj, needQys = _a.needQys, records = _a.records, qunjSeal = _a.qunjSeal, electronicSeal = _a.electronicSealIdList, ZT_API_BASEURL = _a.ZT_API_BASEURL, ZT_FILE_BASEURL = _a.ZT_FILE_BASEURL, token = _a.token, viewSealPageFn = _a.viewSealPageFn, contractId = _a.contractId, electronicList = _a.electronicList, sealList = _a.sealList, querySealStatus = _a.querySealStatus, showContranctNum = _a.showContranctNum, request = _a.request, needSaveTemplate = _a.needSaveTemplate, batchDownloadZipName = _a.batchDownloadZipName;
|
|
26
26
|
var authToken = token || '';
|
|
27
27
|
var isOnlyQj = "" + ((_b = records === null || records === void 0 ? void 0 : records[0]) === null || _b === void 0 ? void 0 : _b.attachId) === '123456789';
|
|
28
28
|
var selectRows = useRef(null);
|
|
@@ -248,45 +248,20 @@ var DetailTable = function (_a) {
|
|
|
248
248
|
var onAllDownloadHandle = function () {
|
|
249
249
|
var list = selectRows.current;
|
|
250
250
|
if (Array.isArray(list) && list.length > 0) {
|
|
251
|
-
if (batchDownloadRef.current) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
// 如果能找到未下载的 或者下载失败的 给出提示
|
|
258
|
-
if (canDownloadFileList_1.find(function (item) { return !item._downloadStatus; })) {
|
|
259
|
-
message.info("\u6709\u6587\u4EF6\u8FD8\u672A\u4E0B\u8F7D\u5B8C\u6210\u7A0D\u540E\u518D\u8FDB\u884C\u6279\u91CF\u4E0B\u8F7D!");
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
262
|
-
if (canDownloadFileList_1.find(function (item) { return item._downloadStatus === 'rejected'; })) {
|
|
263
|
-
var result = (canDownloadFileList_1 === null || canDownloadFileList_1 === void 0 ? void 0 : canDownloadFileList_1.filter(function (item) { return item._downloadStatus === 'rejected'; })) || [];
|
|
264
|
-
message.info("\u6709\u6587\u4EF6\n" + result
|
|
265
|
-
.map(function (item) { return item === null || item === void 0 ? void 0 : item.fileName; })
|
|
266
|
-
.join('\n') + "\u4E0B\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u4E0B\u8F7D\u5931\u8D25\u6587\u4EF6\u91CD\u65B0\u4E0B\u8F7D!");
|
|
267
|
-
batchDownloadRef.current = null;
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
251
|
+
if (!preCanDownload(batchDownloadRef.current, function () {
|
|
252
|
+
batchDownloadRef.current = null;
|
|
253
|
+
})) {
|
|
254
|
+
return;
|
|
270
255
|
}
|
|
271
256
|
// 根据相关信息生成下载的链接
|
|
272
257
|
batchDownloadRef.current = fileBatchDownload(list, {
|
|
273
|
-
showDownloadBtn: true,
|
|
274
|
-
showPreviewBtn: true,
|
|
275
258
|
authToken: authToken,
|
|
276
259
|
apiBaseUrl: ZT_API_BASEURL,
|
|
260
|
+
zipName: batchDownloadZipName,
|
|
277
261
|
});
|
|
278
|
-
|
|
279
|
-
if (Array.isArray(noCanDownloadFileList) &&
|
|
280
|
-
noCanDownloadFileList.length > 0) {
|
|
281
|
-
message.info("\u4EE5\u4E0B\u6587\u4EF6\u672A\u6388\u6743\u4E0B\u8F7D\uFF1A\n " + noCanDownloadFileList
|
|
282
|
-
.map(function (item) { return item.fileName; })
|
|
283
|
-
.join('\n') + "!");
|
|
284
|
-
}
|
|
285
|
-
if (Array.isArray(canDownloadFileList) &&
|
|
286
|
-
canDownloadFileList.length === 0) {
|
|
287
|
-
message.info('请选择有权限下载的附件!');
|
|
262
|
+
nextDownload(batchDownloadRef.current, function () {
|
|
288
263
|
batchDownloadRef.current = null;
|
|
289
|
-
}
|
|
264
|
+
});
|
|
290
265
|
}
|
|
291
266
|
else {
|
|
292
267
|
message.info('请选择需要下载的附件!');
|
|
@@ -100,7 +100,7 @@ var FLOW_IDS = [
|
|
|
100
100
|
* 实现受控,接收一个附件列表
|
|
101
101
|
*/
|
|
102
102
|
var Sinatures = function (_a) {
|
|
103
|
-
var isUpload = _a.isUpload, qunjSealChange = _a.qunjSealChange, electronicSealChange = _a.electronicSealChange, onSigValuesChange = _a.onSigValuesChange, handleRef = _a.handleRef, ZT_API_BASEURL = _a.ZT_API_BASEURL, ZT_FILE_BASEURL = _a.ZT_FILE_BASEURL, systemCode = _a.systemCode, token = _a.token, openCustomerModalHandle = _a.openCustomerModalHandle, request = _a.request, showDeleteBtn = _a.showDeleteBtn, otherParams = __rest(_a, ["isUpload", "qunjSealChange", "electronicSealChange", "onSigValuesChange", "handleRef", "ZT_API_BASEURL", "ZT_FILE_BASEURL", "systemCode", "token", "openCustomerModalHandle", "request", "showDeleteBtn"]);
|
|
103
|
+
var isUpload = _a.isUpload, qunjSealChange = _a.qunjSealChange, electronicSealChange = _a.electronicSealChange, onSigValuesChange = _a.onSigValuesChange, handleRef = _a.handleRef, ZT_API_BASEURL = _a.ZT_API_BASEURL, ZT_FILE_BASEURL = _a.ZT_FILE_BASEURL, systemCode = _a.systemCode, token = _a.token, openCustomerModalHandle = _a.openCustomerModalHandle, request = _a.request, showDeleteBtn = _a.showDeleteBtn, batchDownloadZipName = _a.batchDownloadZipName, otherParams = __rest(_a, ["isUpload", "qunjSealChange", "electronicSealChange", "onSigValuesChange", "handleRef", "ZT_API_BASEURL", "ZT_FILE_BASEURL", "systemCode", "token", "openCustomerModalHandle", "request", "showDeleteBtn", "batchDownloadZipName"]);
|
|
104
104
|
var canEdit = otherParams.canEdit, needQj = otherParams.needQj, needDg = otherParams.needDg, needQys = otherParams.needQys, fileList = otherParams.fileList, qunjSeal = otherParams.qunjSeal, electronicSeal = otherParams.electronicSealIdList, flowId = otherParams.flowId, deptId = otherParams.deptId, flowStatus = otherParams.flowStatus, caseId = otherParams.caseId, contract_id = otherParams.contractId, docAttachMap = otherParams.docAttachMap, checkAttachIdList = otherParams.checkAttachIdList, // 已盖章附件id
|
|
105
105
|
documentIdList = otherParams.documentIdList;
|
|
106
106
|
var authToken = token || '';
|
|
@@ -1065,7 +1065,7 @@ var Sinatures = function (_a) {
|
|
|
1065
1065
|
needSaveTemplate: NEED_SAVE_TEMPLATE.includes("" + flowId),
|
|
1066
1066
|
};
|
|
1067
1067
|
return (React.createElement(React.Fragment, null,
|
|
1068
|
-
isEdit ? (React.createElement(Table, { columns: columnsLast, rowKey: "attachId", loading: tbloading, dataSource: records, scroll: { x: 'max-content' } })) : (React.createElement(DetailTable, __assign({}, detail))),
|
|
1068
|
+
isEdit ? (React.createElement(Table, { columns: columnsLast, rowKey: "attachId", loading: tbloading, dataSource: records, scroll: { x: 'max-content' } })) : (React.createElement(DetailTable, __assign({}, detail, { batchDownloadZipName: batchDownloadZipName }))),
|
|
1069
1069
|
React.createElement(Modal, { title: "\u4E0B\u5217\u5370\u7AE0\u672A\u786E\u8BA4\u76D6\u7AE0\u4F4D\u7F6E\uFF0C\u5982\u4E0D\u9700\u8981\u8BF7\u53D6\u6D88\u52FE\u9009\u3002", width: 800, closable: false, visible: visible, loading: false, onCancel: function () {
|
|
1070
1070
|
setVisible(false);
|
|
1071
1071
|
}, footer: React.createElement(React.Fragment, null,
|
package/dist/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
1
|
+
export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY4Mzk2NTIzLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiM2QzMzNjZjMtYWZkMC00MDE1LWJmODItNWQ5ZjU0MzRiM2UxIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.rxiJAxIuEK91eaovO3CpbhXQMc5z3NApdAYcOAme4io";
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
1
|
+
export var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY4Mzk2NTIzLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiM2QzMzNjZjMtYWZkMC00MDE1LWJmODItNWQ5ZjU0MzRiM2UxIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.rxiJAxIuEK91eaovO3CpbhXQMc5z3NApdAYcOAme4io';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 封装请求方法
|
|
3
|
+
*/
|
|
4
|
+
import { AxiosRequestConfig } from 'axios';
|
|
5
|
+
export interface IOptions extends AxiosRequestConfig {
|
|
6
|
+
isFormData?: boolean;
|
|
7
|
+
encryptionType?: 'aes' | 'des' | boolean;
|
|
8
|
+
isTimeoutMessage?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export default function request(myOptions: IOptions, jumpCallback?: any): any;
|
package/dist/request.js
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @description 封装请求方法
|
|
25
|
+
*/
|
|
26
|
+
import axios from 'axios';
|
|
27
|
+
import { message, Modal } from './index';
|
|
28
|
+
import isEqual from 'lodash/isEqual';
|
|
29
|
+
import { getToken, getRefreshToken, setToken, setRefreshToken, } from 'ztxkutils/dist/authority';
|
|
30
|
+
import crypto from 'ztxkutils/dist/crypto';
|
|
31
|
+
var timeoutNum = 60000;
|
|
32
|
+
var isRefreshing = true; // 是否需要刷新
|
|
33
|
+
var subscribers = []; // 缓存需要帮助请求的接口
|
|
34
|
+
var repeatResponse = []; // 去除重复请求
|
|
35
|
+
var requestTokenEndTime = 0; // token调用结束时间
|
|
36
|
+
var reqTokenTimeInterval = 1000; // token调用最小间隔,如果超过这个数 那么就跳转到登录去
|
|
37
|
+
var isMessage = false; // 超时弹框
|
|
38
|
+
var isNotFound = false; // 404弹框
|
|
39
|
+
var isOffSite = false; // 501异地登录
|
|
40
|
+
var isExpiration = false; // 401登录过期
|
|
41
|
+
var catchPromiseObj = []; // 缓存当前宏任务下的缓存
|
|
42
|
+
var __isTimeoutMessage = false; // 是否需要默认展示超时弹框
|
|
43
|
+
var isFirstSet = false; // 首次初始化
|
|
44
|
+
function loginRequest(params) {
|
|
45
|
+
return request({
|
|
46
|
+
method: 'POST',
|
|
47
|
+
url: '/api/zmdms-auth/oauth/token',
|
|
48
|
+
baseURL: '',
|
|
49
|
+
headers: {
|
|
50
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
51
|
+
'Tenant-Id': '000000',
|
|
52
|
+
Authorization: 'Basic c3dvcmQ6c3dvcmRfc2VjcmV0',
|
|
53
|
+
'User-Type': 'web',
|
|
54
|
+
},
|
|
55
|
+
params: params,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function checkStatus(response) {
|
|
59
|
+
if ((response === null || response === void 0 ? void 0 : response.status) === 401) {
|
|
60
|
+
if (isRefreshing) {
|
|
61
|
+
if (Date.now() - requestTokenEndTime > reqTokenTimeInterval) {
|
|
62
|
+
refreshTokenRequst();
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
message.info("\u5237\u65B0token\u906D\u5230\u9891\u7E41\u8C03\u7528\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u67E5\u770B\u662F\u5426\u63A5\u53E3\u6743\u9650\u51FA\u73B0\u95EE\u9898\uFF0C\u53EF\u80FD\u662F" + (response === null || response === void 0 ? void 0 : response.config.url) + "\u63A5\u53E3\u51FA\u73B0\u95EE\u9898", 5);
|
|
66
|
+
requestTokenEndTime = 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
isRefreshing = false;
|
|
70
|
+
// 将失败请求放入promise数组里面
|
|
71
|
+
var retryOriginalRequest = new Promise(function (resolve) {
|
|
72
|
+
// 如果重复的请求 不放在数组里面
|
|
73
|
+
if (!repeatResponse.find(function (item) {
|
|
74
|
+
return isEqual(item, {
|
|
75
|
+
url: response === null || response === void 0 ? void 0 : response.config.url,
|
|
76
|
+
params: response === null || response === void 0 ? void 0 : response.config.params,
|
|
77
|
+
});
|
|
78
|
+
})) {
|
|
79
|
+
repeatResponse.push({
|
|
80
|
+
url: response === null || response === void 0 ? void 0 : response.config.url,
|
|
81
|
+
params: response === null || response === void 0 ? void 0 : response.config.params,
|
|
82
|
+
});
|
|
83
|
+
addSubscriber(function () {
|
|
84
|
+
resolve(request({
|
|
85
|
+
url: response === null || response === void 0 ? void 0 : response.config.url,
|
|
86
|
+
params: response === null || response === void 0 ? void 0 : response.config.params,
|
|
87
|
+
}));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return retryOriginalRequest;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function refreshTokenRequst() {
|
|
95
|
+
loginRequest({
|
|
96
|
+
tenantId: '000000',
|
|
97
|
+
grant_type: 'refresh_token',
|
|
98
|
+
scope: 'all',
|
|
99
|
+
refresh_token: getRefreshToken(),
|
|
100
|
+
})
|
|
101
|
+
.then(function (response) {
|
|
102
|
+
var data = response.data, status = response.status;
|
|
103
|
+
if (status === 200) {
|
|
104
|
+
requestTokenEndTime = Date.now();
|
|
105
|
+
// 刷新成功 重置token 重置refresh-token
|
|
106
|
+
setToken(data === null || data === void 0 ? void 0 : data.access_token);
|
|
107
|
+
setRefreshToken(data === null || data === void 0 ? void 0 : data.refresh_token);
|
|
108
|
+
onAccessTokenFetched();
|
|
109
|
+
isRefreshing = true;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
requestTokenEndTime = 0;
|
|
113
|
+
window.location.href = '/login';
|
|
114
|
+
}
|
|
115
|
+
})
|
|
116
|
+
.catch(function (error) {
|
|
117
|
+
requestTokenEndTime = 0;
|
|
118
|
+
window.location.href = '/login';
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// 将失败的token存储到promise数组里面
|
|
122
|
+
function onAccessTokenFetched() {
|
|
123
|
+
subscribers.forEach(function (callback) {
|
|
124
|
+
callback && callback();
|
|
125
|
+
});
|
|
126
|
+
subscribers = [];
|
|
127
|
+
repeatResponse = [];
|
|
128
|
+
}
|
|
129
|
+
function addSubscriber(callback) {
|
|
130
|
+
subscribers.push(callback);
|
|
131
|
+
// 确保数组长度维持在一个固定长度
|
|
132
|
+
if (subscribers.length > 10) {
|
|
133
|
+
subscribers.shift();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function setInterceptorsResponse(jumpCallback) {
|
|
137
|
+
// 拦截器,拦截响应头信息
|
|
138
|
+
axios.interceptors.response.use(function (response) {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
catchPromiseObj = [];
|
|
141
|
+
if (response.status === 200) {
|
|
142
|
+
if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.code) {
|
|
143
|
+
if (((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.code) === 200) {
|
|
144
|
+
return Promise.resolve(response);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return Promise.reject({ response: response });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
return Promise.resolve(response);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else if (response.status === 201) {
|
|
155
|
+
return Promise.resolve(response);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
return Promise.reject(response);
|
|
159
|
+
}
|
|
160
|
+
}, function (error) {
|
|
161
|
+
var _a, _b;
|
|
162
|
+
catchPromiseObj = [];
|
|
163
|
+
console.error(error);
|
|
164
|
+
var errRes = error === null || error === void 0 ? void 0 : error.response;
|
|
165
|
+
// 超时异常统一处理,超时的异常没有response值,只能通过toString处理
|
|
166
|
+
if (!errRes && error.toString().indexOf(timeoutNum + "ms") !== -1) {
|
|
167
|
+
if (!isMessage) {
|
|
168
|
+
if (((_b = (_a = error === null || error === void 0 ? void 0 : error.config) === null || _a === void 0 ? void 0 : _a.method) === null || _b === void 0 ? void 0 : _b.toUpperCase()) === 'POST' &&
|
|
169
|
+
__isTimeoutMessage) {
|
|
170
|
+
isMessage = true;
|
|
171
|
+
Modal.confirm({
|
|
172
|
+
title: '请求超时,请稍后再试,请去列表确认数据是否插入成功,请勿重复提交!',
|
|
173
|
+
okCancel: false,
|
|
174
|
+
onOk: function () {
|
|
175
|
+
isMessage = false;
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// message.info('请求超时,请稍后重试!', 3.5, () => {
|
|
181
|
+
// isMessage = false;
|
|
182
|
+
// });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return Promise.reject(error);
|
|
186
|
+
}
|
|
187
|
+
// 接口404处理
|
|
188
|
+
if ((errRes === null || errRes === void 0 ? void 0 : errRes.status) === 404) {
|
|
189
|
+
if (!isNotFound) {
|
|
190
|
+
isNotFound = true;
|
|
191
|
+
message.info("\u63A5\u53E3: " + errRes.config.url + " \u672A\u627E\u5230\uFF01", 3.5, function () {
|
|
192
|
+
isNotFound = false;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return Promise.reject(error);
|
|
196
|
+
}
|
|
197
|
+
// 接口501处理
|
|
198
|
+
if ((errRes === null || errRes === void 0 ? void 0 : errRes.status) === 501) {
|
|
199
|
+
if (!isOffSite) {
|
|
200
|
+
isOffSite = true;
|
|
201
|
+
if (jumpCallback) {
|
|
202
|
+
jumpCallback(errRes === null || errRes === void 0 ? void 0 : errRes.status);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
message.info("\u4F60\u7684\u8D26\u53F7\u5DF2\u5728\u5176\u4ED6\u5730\u65B9\u767B\u5F55\uFF01", 3.5, function () {
|
|
206
|
+
isOffSite = false;
|
|
207
|
+
});
|
|
208
|
+
window.location.href = '/login';
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return Promise.reject(error);
|
|
212
|
+
}
|
|
213
|
+
// 接口401处理,401状态后不需要重新刷新token,直接退出登录
|
|
214
|
+
if ((errRes === null || errRes === void 0 ? void 0 : errRes.status) === 401) {
|
|
215
|
+
if (!isExpiration) {
|
|
216
|
+
isExpiration = true;
|
|
217
|
+
if (jumpCallback) {
|
|
218
|
+
jumpCallback(errRes === null || errRes === void 0 ? void 0 : errRes.status);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
message.info("\u767B\u5F55\u8FC7\u671F\uFF01", 3.5, function () {
|
|
222
|
+
isExpiration = false;
|
|
223
|
+
});
|
|
224
|
+
window.location.href = '/login';
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return Promise.reject(error);
|
|
228
|
+
}
|
|
229
|
+
// 其余的异常,全部交给业务自己处理
|
|
230
|
+
checkStatus(errRes);
|
|
231
|
+
return Promise.reject(error);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function transformObj(obj) {
|
|
235
|
+
if (typeof obj === 'undefined') {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
if (typeof obj === 'object' && obj !== null) {
|
|
239
|
+
if (Array.isArray(obj)) {
|
|
240
|
+
return obj.map(function (item) { return transformObj(item); });
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
if (obj instanceof File) {
|
|
244
|
+
return obj;
|
|
245
|
+
}
|
|
246
|
+
if (obj instanceof FormData) {
|
|
247
|
+
return obj;
|
|
248
|
+
}
|
|
249
|
+
var newObj = {};
|
|
250
|
+
for (var key in obj) {
|
|
251
|
+
if (obj.hasOwnProperty(key)) {
|
|
252
|
+
newObj[key] = transformObj(obj[key]);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return newObj;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return obj;
|
|
259
|
+
}
|
|
260
|
+
export default function request(myOptions, jumpCallback) {
|
|
261
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
262
|
+
if (!isFirstSet) {
|
|
263
|
+
setInterceptorsResponse(jumpCallback);
|
|
264
|
+
isFirstSet = true;
|
|
265
|
+
}
|
|
266
|
+
var encryptionType = myOptions.encryptionType, isTimeoutMessage = myOptions.isTimeoutMessage, options = __rest(myOptions, ["encryptionType", "isTimeoutMessage"]);
|
|
267
|
+
timeoutNum =
|
|
268
|
+
typeof myOptions.timeout === 'number' ? myOptions.timeout : timeoutNum;
|
|
269
|
+
__isTimeoutMessage = isTimeoutMessage;
|
|
270
|
+
// 获取token
|
|
271
|
+
var token = getToken();
|
|
272
|
+
// 默认配置,请求头,超时时间,基础url
|
|
273
|
+
var defaultOptions = {
|
|
274
|
+
timeout: timeoutNum,
|
|
275
|
+
// baseURL: ZT_API_BASEURL,
|
|
276
|
+
headers: {
|
|
277
|
+
'Zmdms-Auth': "bearer " + token,
|
|
278
|
+
'Tenant-Id': '000000',
|
|
279
|
+
Authorization: 'Basic c3dvcmQ6c3dvcmRfc2VjcmV0',
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
if ((_a = options.baseURL) === null || _a === void 0 ? void 0 : _a.endsWith('/')) {
|
|
283
|
+
if ((_b = options.url) === null || _b === void 0 ? void 0 : _b.startsWith('/')) {
|
|
284
|
+
options.url = (_c = options.url) === null || _c === void 0 ? void 0 : _c.slice(1);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else if (!((_d = options.url) === null || _d === void 0 ? void 0 : _d.startsWith('/'))) {
|
|
288
|
+
options.url = "/" + options.url;
|
|
289
|
+
}
|
|
290
|
+
// 遍历params,将undefined的值,变为null值或空字符串(undefined会被JSON.stringify忽略)
|
|
291
|
+
if (options.data) {
|
|
292
|
+
options.data = transformObj(options.data);
|
|
293
|
+
}
|
|
294
|
+
if (options.params) {
|
|
295
|
+
options.params = transformObj(options.params);
|
|
296
|
+
}
|
|
297
|
+
// 将传入配置与默认配置混合
|
|
298
|
+
var newOptions = __assign(__assign(__assign({}, defaultOptions), options), { headers: __assign(__assign({}, defaultOptions.headers), options.headers) });
|
|
299
|
+
// 特殊请求处理
|
|
300
|
+
if (((_e = newOptions.method) === null || _e === void 0 ? void 0 : _e.toUpperCase()) === 'POST' ||
|
|
301
|
+
((_f = newOptions.method) === null || _f === void 0 ? void 0 : _f.toUpperCase()) === 'PUT' ||
|
|
302
|
+
((_g = newOptions.method) === null || _g === void 0 ? void 0 : _g.toUpperCase()) === 'PATCH') {
|
|
303
|
+
if (newOptions.isFormData) {
|
|
304
|
+
// 表单提交操作
|
|
305
|
+
var formData = new FormData();
|
|
306
|
+
var dataObj = newOptions.data || {};
|
|
307
|
+
var dataKey = Object.keys(dataObj);
|
|
308
|
+
var dataVal = Object.values(dataObj);
|
|
309
|
+
for (var i = 0; i < dataKey.length; i++) {
|
|
310
|
+
if (dataVal[i]) {
|
|
311
|
+
formData.append(dataKey[i], dataVal[i]);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
newOptions.headers = __assign(__assign({}, newOptions.headers), { 'Content-Type': 'multipart/form-data' });
|
|
315
|
+
newOptions.data = formData;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
newOptions.headers = __assign({ 'Content-Type': 'application/json' }, newOptions.headers);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// 将参数进行aes加密
|
|
322
|
+
if (newOptions.data) {
|
|
323
|
+
if (encryptionType === true || encryptionType === 'aes') {
|
|
324
|
+
newOptions.data = crypto.encrypt(JSON.stringify(newOptions.data));
|
|
325
|
+
}
|
|
326
|
+
if (encryptionType === 'des') {
|
|
327
|
+
newOptions.data = crypto.encrypt_des(JSON.stringify(newOptions.data));
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (newOptions.params) {
|
|
331
|
+
if (encryptionType === true || encryptionType === 'aes') {
|
|
332
|
+
newOptions.params = {
|
|
333
|
+
data: crypto.encrypt(JSON.stringify(newOptions.params)),
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
if (encryptionType === 'des') {
|
|
337
|
+
newOptions.params = {
|
|
338
|
+
data: crypto.encrypt_des(JSON.stringify(newOptions.params)),
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// 缓存本次宏任务下的GET请求
|
|
343
|
+
if (((_h = newOptions.method) === null || _h === void 0 ? void 0 : _h.toUpperCase()) === 'GET') {
|
|
344
|
+
// 能不能找到,url与参数都一样得数据
|
|
345
|
+
var item = catchPromiseObj.find(function (item) {
|
|
346
|
+
return isEqual({
|
|
347
|
+
url: item.url,
|
|
348
|
+
params: item.params,
|
|
349
|
+
}, {
|
|
350
|
+
url: newOptions.url,
|
|
351
|
+
params: newOptions.params,
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
if (item) {
|
|
355
|
+
return item === null || item === void 0 ? void 0 : item.promiseObj;
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
var result = axios(newOptions);
|
|
359
|
+
if (catchPromiseObj.length > 30) {
|
|
360
|
+
catchPromiseObj.shift();
|
|
361
|
+
catchPromiseObj.push({
|
|
362
|
+
url: newOptions.url,
|
|
363
|
+
params: newOptions.params,
|
|
364
|
+
promiseObj: result,
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
return result;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return axios(newOptions);
|
|
371
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ztxkui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "React components library",
|
|
6
6
|
"author": "zt-front-end",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"react-infinite-scroll-component": "^6.1.0",
|
|
25
25
|
"react-resizable": "^3.0.4",
|
|
26
26
|
"react-to-print": "^2.14.7",
|
|
27
|
-
"ztxkutils": "^2.10.
|
|
27
|
+
"ztxkutils": "^2.10.11"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
30
|
"analyze": "source-map-explorer 'dist/static/js/*.js'",
|