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.
@@ -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
- setDataSource(newDataSource);
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 () {
@@ -20,6 +20,8 @@ export interface IProps extends UploadProps {
20
20
  allDeleteCallback?: any;
21
21
  /**是否显示批量下载按钮 */
22
22
  showAllDownloadBtn?: boolean;
23
+ /** 批量下载文件名 */
24
+ batchDownloadZipName?: string;
23
25
  /**批量删除回调 */
24
26
  allDownloadCallback?: any;
25
27
  /**是否显示下载按钮 */
@@ -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
- var _a = batchDownloadRef.current, noCanDownloadFileList = _a.noCanDownloadFileList, canDownloadFileList = _a.canDownloadFileList;
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 declare function fileBatchDownload(fileList: IFileItem[], otherConfig: IConfig): {
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 showDownloadBtn_1 = otherConfig.showDownloadBtn, showPreviewBtn_1 = otherConfig.showPreviewBtn, authToken_1 = otherConfig.authToken, apiBaseUrl_1 = otherConfig.apiBaseUrl;
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(function (fileItem, index) {
48
- var fileId = fileItem.fileId, fileName = fileItem.fileName;
49
- downloadFileCallBack(apiBaseUrl_1, fileId, fileName || "\u9644\u4EF6" + (index + 1), {
50
- authToken: authToken_1,
51
- callbackAfter: function () {
52
- fileItem._downloadStatus = 'fulfilled';
53
- },
54
- callbackError: function () {
55
- fileItem._downloadStatus = 'rejected';
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
+ }
@@ -27,6 +27,7 @@ interface IProps {
27
27
  showContranctNum: boolean;
28
28
  request: any;
29
29
  needSaveTemplate: boolean;
30
+ batchDownloadZipName?: string;
30
31
  }
31
32
  declare const _default: React.NamedExoticComponent<IProps>;
32
33
  export default _default;
@@ -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
- var canDownloadFileList_1 = batchDownloadRef.current.canDownloadFileList;
253
- if (!Array.isArray(canDownloadFileList_1) ||
254
- canDownloadFileList_1.length === 0) {
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
- var _a = batchDownloadRef.current, noCanDownloadFileList = _a.noCanDownloadFileList, canDownloadFileList = _a.canDownloadFileList;
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,
@@ -81,4 +81,6 @@ export interface IProps {
81
81
  onSigValuesChange?: any;
82
82
  /** 是否显示删除附件按钮 */
83
83
  showDeleteBtn?: boolean;
84
+ /** 批量下载zip包名 */
85
+ batchDownloadZipName?: string;
84
86
  }
@@ -1 +1 @@
1
- export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY4Mzg5ODMzLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiNmJlZDQ3YmUtYzY0Zi00YmRkLTk2OGQtNjRlODU5MDc0MGIwIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.uLCWqXUGCED8kG6f2H_I7m-bGBsZmKdvbOIWzwR6RuE";
1
+ export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY4Mzk2NTIzLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiM2QzMzNjZjMtYWZkMC00MDE1LWJmODItNWQ5ZjU0MzRiM2UxIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.rxiJAxIuEK91eaovO3CpbhXQMc5z3NApdAYcOAme4io";
package/dist/constants.js CHANGED
@@ -1 +1 @@
1
- export var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY4Mzg5ODMzLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiNmJlZDQ3YmUtYzY0Zi00YmRkLTk2OGQtNjRlODU5MDc0MGIwIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.uLCWqXUGCED8kG6f2H_I7m-bGBsZmKdvbOIWzwR6RuE';
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;
@@ -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.9.18",
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.5"
27
+ "ztxkutils": "^2.10.11"
28
28
  },
29
29
  "scripts": {
30
30
  "analyze": "source-map-explorer 'dist/static/js/*.js'",