ztxkui 4.2.23-613 → 4.2.23-615

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.
@@ -83,6 +83,7 @@ import ElectronicSeal from './components/ElectronicSeal';
83
83
  import DetailTable from './components/DetailTable';
84
84
  import { useRecords, useQunjData, useElectronicData } from './hooks';
85
85
  import useLastest from '../../utils/useLastest';
86
+ import checkSealCoUse from '../../utils/checkSealCoUse';
86
87
  /** 需要存样板合同类型 采购合同 销售合同 双边合同 */
87
88
  var NEED_SAVE_TEMPLATE = [
88
89
  'scm_order_contract_cght',
@@ -384,123 +385,117 @@ var Sinatures = function (_a) {
384
385
  companyTypes,
385
386
  ]);
386
387
  /** 指定签署位置 */
387
- var checkSealFn = function (flag, needEconomicObj) {
388
- setVisible(false);
389
- // 已勾选的附件中存在attachId为空的标识
390
- var isError = false;
391
- // 已勾选的要加盖电子印章的附件id列表
392
- var checkedElecSealIds = [];
393
- records === null || records === void 0 ? void 0 : records.forEach(function (item, index) {
394
- if (!!item.isElectronicSeal) {
395
- if (!item.attachId && !isError) {
396
- message.error(i18next.t('第{{slot0}}行附件没有附件id,无法盖章!', {
397
- slot0: index + 1,
398
- }));
399
- isError = true;
400
- }
401
- else {
402
- checkedElecSealIds.push(item.attachId);
403
- }
404
- }
405
- });
406
- if (isError) {
407
- return;
408
- }
409
- if (innerElectronicSeal.length === 0) {
410
- message.info(i18next.t('请勾选电子印章!'));
411
- return;
412
- }
413
- // 校验带有"必须共同使用"标识的印章(mustUseWithOthers + useWithSealIds)
414
- if (innerElectronicSeal.length > 0 && electronicList.length > 0) {
415
- var selectedSealIds_1 = new Set(innerElectronicSeal.map(function (id) { return id + ''; }));
416
- for (var _i = 0, electronicList_1 = electronicList; _i < electronicList_1.length; _i++) {
417
- var seal = electronicList_1[_i];
418
- if (selectedSealIds_1.has(seal.sealId + '') &&
419
- seal.mustUseWithOthers &&
420
- seal.useWithSealIds) {
421
- var requiredIds = seal.useWithSealIds
422
- .split(',')
423
- .map(function (id) { return id.trim(); })
424
- .filter(Boolean);
425
- var hasMatch = requiredIds.some(function (id) { return selectedSealIds_1.has(id); });
426
- if (!hasMatch) {
427
- var msg = i18next.t('当前所选的{{sealName}},要求必须和{{requiredSealNames}}其中之一一起使用,请重新勾选印章。', {
428
- sealName: seal.sealName,
429
- requiredSealNames: seal.useWithSealNames,
430
- });
431
- message.warning(msg);
432
- return;
388
+ var checkSealFn = function (flag, needEconomicObj) { return __awaiter(void 0, void 0, void 0, function () {
389
+ var isError, checkedElecSealIds, isCoUsePass, params;
390
+ var _a;
391
+ return __generator(this, function (_b) {
392
+ switch (_b.label) {
393
+ case 0:
394
+ setVisible(false);
395
+ isError = false;
396
+ checkedElecSealIds = [];
397
+ records === null || records === void 0 ? void 0 : records.forEach(function (item, index) {
398
+ if (!!item.isElectronicSeal) {
399
+ if (!item.attachId && !isError) {
400
+ message.error(i18next.t('第{{slot0}}行附件没有附件id,无法盖章!', {
401
+ slot0: index + 1,
402
+ }));
403
+ isError = true;
404
+ }
405
+ else {
406
+ checkedElecSealIds.push(item.attachId);
407
+ }
408
+ }
409
+ });
410
+ if (isError) {
411
+ return [2 /*return*/];
433
412
  }
434
- }
435
- }
436
- }
437
- setLoading(true);
438
- var params = __assign({ attachIdList: [], sealIdList: innerElectronicSeal, deleteAttachIdList: [], docAttachMap: attachMap, deptId: deptId, needYjzrr: isEconomic }, (needEconomicObj || {}));
439
- if (!contractId) {
440
- setDocumentIds([]);
441
- setSealedIds([]);
442
- params.attachIdList = checkedElecSealIds;
443
- params.deleteAttachIdList = [];
444
- }
445
- else {
446
- params.contractId = contractId;
447
- // 已勾选的要加盖电子印章的附件id列表与已盖章附件id(用于校验上传的附件是新增还是删除)比较
448
- checkedElecSealIds.forEach(function (n) {
449
- if (sealedIds.length !== 0 && !sealedIds.includes(n)) {
450
- params.attachIdList.push(n);
451
- }
452
- });
453
- }
454
- // 已盖章的附件id列表中筛选出要删除的附件id列表
455
- sealedIds.forEach(function (n) {
456
- if (checkedElecSealIds.length !== 0 && !checkedElecSealIds.includes(n)) {
457
- params.deleteAttachIdList.push(n);
458
- }
459
- });
460
- // 上一次盖章时的参数信息
461
- setPrevParam(params);
462
- request({
463
- url: '/api/zmdms-resource/seal/confirm-seal-info',
464
- method: 'POST',
465
- timeout: 90000,
466
- data: params,
467
- })
468
- .then(function (res) {
469
- var _a;
470
- setLoading(false);
471
- if (res.status === 200 &&
472
- res.data.code === 200 &&
473
- res.data.data.preSignUrl) {
474
- var sealedIdsCopy = __spreadArray([], sealedIds);
475
- for (var i = sealedIdsCopy.length; i--; i >= 0) {
476
- if ((_a = res.data.data.deleteAttachIdList) === null || _a === void 0 ? void 0 : _a.includes(sealedIdsCopy[i])) {
477
- sealedIdsCopy.splice(i, 1);
413
+ if (innerElectronicSeal.length === 0) {
414
+ message.info(i18next.t('请勾选电子印章!'));
415
+ return [2 /*return*/];
478
416
  }
479
- }
480
- setSealedIds(__spreadArray(__spreadArray([], sealedIdsCopy), res.data.data.attachIdList));
481
- setContractId(res.data.data.contractId);
482
- setAttachMap(res.data.data.docAttachMap);
483
- setDocumentIds(res.data.data.documentIdList);
484
- if (onSigValuesChange) {
485
- onSigValuesChange(sigValuesChange('docAttachMap', res.data.data.docAttachMap));
486
- onSigValuesChange(sigValuesChange('checkAttachIdList', __spreadArray(__spreadArray([], sealedIdsCopy), res.data.data.attachIdList)));
487
- onSigValuesChange(sigValuesChange('documentIdList', res.data.data.documentIdList));
488
- }
489
- // 如果未盖章列表用户全部都取消 不用跳转
490
- if (!(needReSealList.length === 0 && flag === 'needReSeal')) {
491
- window.open(res.data.data.preSignUrl);
492
- }
493
- }
494
- else {
495
- message.error(res.data.msg || i18next.t('出错了'));
417
+ return [4 /*yield*/, checkSealCoUse({
418
+ request: request,
419
+ qysSealIds: innerElectronicSeal,
420
+ qjSealNos: needQj && checked
421
+ ? ((_a = innerQunjSeal === null || innerQunjSeal === void 0 ? void 0 : innerQunjSeal.details) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.sealNo; })) || []
422
+ : [],
423
+ })];
424
+ case 1:
425
+ isCoUsePass = _b.sent();
426
+ if (!isCoUsePass) {
427
+ return [2 /*return*/];
428
+ }
429
+ setLoading(true);
430
+ params = __assign({ attachIdList: [], sealIdList: innerElectronicSeal, deleteAttachIdList: [], docAttachMap: attachMap, deptId: deptId, needYjzrr: isEconomic }, (needEconomicObj || {}));
431
+ if (!contractId) {
432
+ setDocumentIds([]);
433
+ setSealedIds([]);
434
+ params.attachIdList = checkedElecSealIds;
435
+ params.deleteAttachIdList = [];
436
+ }
437
+ else {
438
+ params.contractId = contractId;
439
+ // 已勾选的要加盖电子印章的附件id列表与已盖章附件id(用于校验上传的附件是新增还是删除)比较
440
+ checkedElecSealIds.forEach(function (n) {
441
+ if (sealedIds.length !== 0 && !sealedIds.includes(n)) {
442
+ params.attachIdList.push(n);
443
+ }
444
+ });
445
+ }
446
+ // 已盖章的附件id列表中筛选出要删除的附件id列表
447
+ sealedIds.forEach(function (n) {
448
+ if (checkedElecSealIds.length !== 0 && !checkedElecSealIds.includes(n)) {
449
+ params.deleteAttachIdList.push(n);
450
+ }
451
+ });
452
+ // 上一次盖章时的参数信息
453
+ setPrevParam(params);
454
+ request({
455
+ url: '/api/zmdms-resource/seal/confirm-seal-info',
456
+ method: 'POST',
457
+ timeout: 90000,
458
+ data: params,
459
+ })
460
+ .then(function (res) {
461
+ var _a;
462
+ setLoading(false);
463
+ if (res.status === 200 &&
464
+ res.data.code === 200 &&
465
+ res.data.data.preSignUrl) {
466
+ var sealedIdsCopy = __spreadArray([], sealedIds);
467
+ for (var i = sealedIdsCopy.length; i--; i >= 0) {
468
+ if ((_a = res.data.data.deleteAttachIdList) === null || _a === void 0 ? void 0 : _a.includes(sealedIdsCopy[i])) {
469
+ sealedIdsCopy.splice(i, 1);
470
+ }
471
+ }
472
+ setSealedIds(__spreadArray(__spreadArray([], sealedIdsCopy), res.data.data.attachIdList));
473
+ setContractId(res.data.data.contractId);
474
+ setAttachMap(res.data.data.docAttachMap);
475
+ setDocumentIds(res.data.data.documentIdList);
476
+ if (onSigValuesChange) {
477
+ onSigValuesChange(sigValuesChange('docAttachMap', res.data.data.docAttachMap));
478
+ onSigValuesChange(sigValuesChange('checkAttachIdList', __spreadArray(__spreadArray([], sealedIdsCopy), res.data.data.attachIdList)));
479
+ onSigValuesChange(sigValuesChange('documentIdList', res.data.data.documentIdList));
480
+ }
481
+ // 如果未盖章列表用户全部都取消 不用跳转
482
+ if (!(needReSealList.length === 0 && flag === 'needReSeal')) {
483
+ window.open(res.data.data.preSignUrl);
484
+ }
485
+ }
486
+ else {
487
+ message.error(res.data.msg || i18next.t('出错了'));
488
+ }
489
+ })
490
+ .catch(function (error) {
491
+ var _a, _b;
492
+ setLoading(false);
493
+ message.error(((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || i18next.t('请求失败!'));
494
+ });
495
+ return [2 /*return*/];
496
496
  }
497
- })
498
- .catch(function (error) {
499
- var _a, _b;
500
- setLoading(false);
501
- message.error(((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || i18next.t('请求失败!'));
502
497
  });
503
- };
498
+ }); };
504
499
  /** 查询未确认盖章位置的印章信息列表 */
505
500
  var getNoSealInfoList = function () {
506
501
  return new Promise(function (resolve, reject) {
@@ -1122,10 +1117,10 @@ var Sinatures = function (_a) {
1122
1117
  },
1123
1118
  /** 签章组件相关校验 */
1124
1119
  validateSealFn: function () { return __awaiter(void 0, void 0, void 0, function () {
1125
- var hasElectronicSeal, selectedSealIds_2, _i, electronicList_2, seal, requiredIds, hasMatch;
1126
- var _a;
1127
- return __generator(this, function (_b) {
1128
- switch (_b.label) {
1120
+ var hasElectronicSeal, qjSealNos, isCoUsePass;
1121
+ var _a, _b;
1122
+ return __generator(this, function (_c) {
1123
+ switch (_c.label) {
1129
1124
  case 0:
1130
1125
  // 确认盖章后 勾选的信息有更改
1131
1126
  if (isEdit &&
@@ -1192,36 +1187,29 @@ var Sinatures = function (_a) {
1192
1187
  return [2 /*return*/, false];
1193
1188
  }
1194
1189
  }
1195
- // 校验契约锁印章中带有"必须共同使用"标识的印章(mustUseWithOthers + useWithSealIds)
1196
- if (isEdit && needQys && (innerElectronicSeal === null || innerElectronicSeal === void 0 ? void 0 : innerElectronicSeal.length) > 0) {
1197
- selectedSealIds_2 = new Set(innerElectronicSeal.map(function (id) { return id + ''; }));
1198
- for (_i = 0, electronicList_2 = electronicList; _i < electronicList_2.length; _i++) {
1199
- seal = electronicList_2[_i];
1200
- if (selectedSealIds_2.has(seal.sealId + '') &&
1201
- seal.mustUseWithOthers &&
1202
- seal.useWithSealIds) {
1203
- requiredIds = seal.useWithSealIds
1204
- .split(',')
1205
- .map(function (id) { return id.trim(); })
1206
- .filter(Boolean);
1207
- hasMatch = requiredIds.some(function (id) { return selectedSealIds_2.has(id); });
1208
- if (!hasMatch) {
1209
- message.warning(i18next.t('当前所选的{{sealName}},要求必须和{{requiredSealNames}}其中之一一起使用,请重新勾选印章。', {
1210
- sealName: seal.sealName,
1211
- requiredSealNames: seal.useWithSealNames,
1212
- }));
1213
- return [2 /*return*/, false];
1214
- }
1215
- }
1216
- }
1190
+ qjSealNos = isEdit && needQj && checked
1191
+ ? ((_b = innerQunjSeal === null || innerQunjSeal === void 0 ? void 0 : innerQunjSeal.details) === null || _b === void 0 ? void 0 : _b.map(function (item) { return item.sealNo; })) || []
1192
+ : [];
1193
+ if (!(isEdit && ((innerElectronicSeal === null || innerElectronicSeal === void 0 ? void 0 : innerElectronicSeal.length) > 0 || qjSealNos.length > 0))) return [3 /*break*/, 2];
1194
+ return [4 /*yield*/, checkSealCoUse({
1195
+ request: request,
1196
+ qysSealIds: innerElectronicSeal,
1197
+ qjSealNos: qjSealNos,
1198
+ })];
1199
+ case 1:
1200
+ isCoUsePass = _c.sent();
1201
+ if (!isCoUsePass) {
1202
+ return [2 /*return*/, false];
1217
1203
  }
1204
+ _c.label = 2;
1205
+ case 2:
1218
1206
  if (!(needQys &&
1219
1207
  isEdit &&
1220
1208
  hasElectronicSeal &&
1221
- (innerElectronicSeal === null || innerElectronicSeal === void 0 ? void 0 : innerElectronicSeal.length) > 0)) return [3 /*break*/, 2];
1209
+ (innerElectronicSeal === null || innerElectronicSeal === void 0 ? void 0 : innerElectronicSeal.length) > 0)) return [3 /*break*/, 4];
1222
1210
  return [4 /*yield*/, getNoSealInfoList()];
1223
- case 1: return [2 /*return*/, _b.sent()];
1224
- case 2: return [2 /*return*/, true];
1211
+ case 3: return [2 /*return*/, _c.sent()];
1212
+ case 4: return [2 /*return*/, true];
1225
1213
  }
1226
1214
  });
1227
1215
  }); },