ls-pro-common 1.0.21 → 1.0.22

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.
@@ -42,25 +42,36 @@ function DtlLayout(props) {
42
42
  if (!masterObject) return '';
43
43
  return masterObject[keyField] ? '编辑' : '新增';
44
44
  }, [title, masterObject, keyField]);
45
- var btns = [/*#__PURE__*/_react.default.createElement(_button.default, {
46
- key: "btnSave",
47
- onClick: function onClick() {
48
- var _formRef$current;
45
+ var btns = (0, _react.useMemo)(function () {
46
+ var b = [/*#__PURE__*/_react.default.createElement(_button.default, {
47
+ key: "btnSave",
48
+ onClick: function onClick() {
49
+ var _formRef$current;
49
50
 
50
- if (props.onSave) {
51
- return props.onSave();
52
- }
51
+ if (props.onSave) {
52
+ return props.onSave();
53
+ }
53
54
 
54
- formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.submit();
55
- },
56
- icon: /*#__PURE__*/_react.default.createElement(_icons.SaveOutlined, null)
57
- }, " ", btnSaveText, " "), /*#__PURE__*/_react.default.createElement(_button.default, {
58
- key: "btnBack",
59
- onClick: function onClick() {
60
- return props.onExit(false);
61
- },
62
- icon: /*#__PURE__*/_react.default.createElement(_icons.ArrowLeftOutlined, null)
63
- }, " ", btnExitText, " ")];
55
+ formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.submit();
56
+ },
57
+ icon: /*#__PURE__*/_react.default.createElement(_icons.SaveOutlined, null)
58
+ }, btnSaveText), /*#__PURE__*/_react.default.createElement(_button.default, {
59
+ key: "btnBack",
60
+ onClick: function onClick() {
61
+ return props.onExit(false);
62
+ },
63
+ icon: /*#__PURE__*/_react.default.createElement(_icons.ArrowLeftOutlined, null)
64
+ }, btnExitText)];
65
+
66
+ if (props.onAudit) {
67
+ b.unshift( /*#__PURE__*/_react.default.createElement(_button.default, {
68
+ key: "btnAudit",
69
+ icon: /*#__PURE__*/_react.default.createElement(_icons.CheckOutlined, null)
70
+ }, "\u5BA1\u6838"));
71
+ }
72
+
73
+ return b;
74
+ }, [props]);
64
75
  var buttons = renderButton ? renderButton(btns) : btns;
65
76
  return /*#__PURE__*/_react.default.createElement("div", {
66
77
  className: "dtl-layout"
@@ -28,5 +28,6 @@ declare function useDtl(dtlParam: DtlParamType): {
28
28
  onRemoveMst: () => Promise<boolean | undefined>;
29
29
  onExportDtl: (url: string, param: exportParam) => Promise<boolean>;
30
30
  isAudit: () => boolean;
31
+ onAudit: () => Promise<void>;
31
32
  };
32
33
  export default useDtl;
@@ -51,7 +51,9 @@ function useDtl(dtlParam) {
51
51
  beforeRemove = dtlParam.beforeRemove,
52
52
  afterSave = dtlParam.afterSave,
53
53
  afterRemove = dtlParam.afterRemove,
54
- btnStatus = dtlParam.btnStatus;
54
+ btnStatus = dtlParam.btnStatus,
55
+ beforeAudit = dtlParam.beforeAudit,
56
+ afterAudit = dtlParam.afterAudit;
55
57
  /** @name 选中行数据 */
56
58
 
57
59
  var _useState = (0, _react.useState)([]),
@@ -202,73 +204,82 @@ function useDtl(dtlParam) {
202
204
  return _context2.abrupt("return", false);
203
205
 
204
206
  case 2:
205
- _context2.next = 4;
207
+ if (!isAudit()) {
208
+ _context2.next = 5;
209
+ break;
210
+ }
211
+
212
+ (0, _utils.showWarn)('当前单据已审核,不能删除');
213
+ return _context2.abrupt("return", false);
214
+
215
+ case 5:
216
+ _context2.next = 7;
206
217
  return (0, _utils.showConfirm)('确认要删除当前数据?');
207
218
 
208
- case 4:
219
+ case 7:
209
220
  if (!beforeRemove) {
210
- _context2.next = 10;
221
+ _context2.next = 13;
211
222
  break;
212
223
  }
213
224
 
214
- _context2.next = 7;
225
+ _context2.next = 10;
215
226
  return beforeRemove([masterObject]);
216
227
 
217
- case 7:
228
+ case 10:
218
229
  ids = _context2.sent;
219
230
 
220
231
  if (!(ids === false)) {
221
- _context2.next = 10;
232
+ _context2.next = 13;
222
233
  break;
223
234
  }
224
235
 
225
236
  return _context2.abrupt("return", false);
226
237
 
227
- case 10:
238
+ case 13:
228
239
  if (!ids) {
229
240
  ids = [masterObject[mstKeyField]];
230
241
  }
231
242
 
232
- _context2.next = 13;
243
+ _context2.next = 16;
233
244
  return mstService.remove(ids);
234
245
 
235
- case 13:
246
+ case 16:
236
247
  result = _context2.sent;
237
248
  _context2.t0 = afterRemove;
238
249
 
239
250
  if (!_context2.t0) {
240
- _context2.next = 20;
251
+ _context2.next = 23;
241
252
  break;
242
253
  }
243
254
 
244
- _context2.next = 18;
255
+ _context2.next = 21;
245
256
  return afterRemove(result, masterObject);
246
257
 
247
- case 18:
258
+ case 21:
248
259
  _context2.t1 = _context2.sent;
249
260
  _context2.t0 = _context2.t1 === false;
250
261
 
251
- case 20:
262
+ case 23:
252
263
  if (!_context2.t0) {
253
- _context2.next = 22;
264
+ _context2.next = 25;
254
265
  break;
255
266
  }
256
267
 
257
268
  return _context2.abrupt("return");
258
269
 
259
- case 22:
270
+ case 25:
260
271
  if (!((result === null || result === void 0 ? void 0 : (_result$flag2 = result.flag) === null || _result$flag2 === void 0 ? void 0 : _result$flag2.retCode) === '0')) {
261
- _context2.next = 25;
272
+ _context2.next = 28;
262
273
  break;
263
274
  }
264
275
 
265
276
  (0, _utils.showSuccess)(result.flag.retMsg);
266
277
  return _context2.abrupt("return", true);
267
278
 
268
- case 25:
279
+ case 28:
269
280
  return _context2.abrupt("return", false);
270
281
 
271
- case 26:
282
+ case 29:
272
283
  case "end":
273
284
  return _context2.stop();
274
285
  }
@@ -777,6 +788,105 @@ function useDtl(dtlParam) {
777
788
  return _ref8.apply(this, arguments);
778
789
  };
779
790
  }();
791
+ /** 审核按钮事件 */
792
+
793
+
794
+ var onAudit = /*#__PURE__*/function () {
795
+ var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
796
+ var obj, _result$flag8, result;
797
+
798
+ return _regenerator.default.wrap(function _callee9$(_context9) {
799
+ while (1) {
800
+ switch (_context9.prev = _context9.next) {
801
+ case 0:
802
+ if (!isAudit()) {
803
+ _context9.next = 3;
804
+ break;
805
+ }
806
+
807
+ (0, _utils.showWarn)('当前数据已审核,不能再做审核操作!');
808
+ return _context9.abrupt("return");
809
+
810
+ case 3:
811
+ obj = (0, _objectSpread2.default)({}, masterObject); // beforeAudit 强式终止
812
+
813
+ _context9.t0 = beforeAudit;
814
+
815
+ if (!_context9.t0) {
816
+ _context9.next = 10;
817
+ break;
818
+ }
819
+
820
+ _context9.next = 8;
821
+ return beforeAudit(obj);
822
+
823
+ case 8:
824
+ _context9.t1 = _context9.sent;
825
+ _context9.t0 = _context9.t1 === false;
826
+
827
+ case 10:
828
+ if (!_context9.t0) {
829
+ _context9.next = 12;
830
+ break;
831
+ }
832
+
833
+ return _context9.abrupt("return");
834
+
835
+ case 12:
836
+ _context9.prev = 12;
837
+ _context9.next = 15;
838
+ return mstService.audit([obj]);
839
+
840
+ case 15:
841
+ result = _context9.sent;
842
+ _context9.t2 = afterAudit;
843
+
844
+ if (!_context9.t2) {
845
+ _context9.next = 22;
846
+ break;
847
+ }
848
+
849
+ _context9.next = 20;
850
+ return afterAudit(result, [obj]);
851
+
852
+ case 20:
853
+ _context9.t3 = _context9.sent;
854
+ _context9.t2 = _context9.t3 === false;
855
+
856
+ case 22:
857
+ if (!_context9.t2) {
858
+ _context9.next = 24;
859
+ break;
860
+ }
861
+
862
+ return _context9.abrupt("return");
863
+
864
+ case 24:
865
+ if ((result === null || result === void 0 ? void 0 : (_result$flag8 = result.flag) === null || _result$flag8 === void 0 ? void 0 : _result$flag8.retCode) === '0') {
866
+ (0, _utils.showSuccess)(result.flag.retMsg);
867
+ Object.assign(masterObject, result.data);
868
+ }
869
+
870
+ _context9.next = 30;
871
+ break;
872
+
873
+ case 27:
874
+ _context9.prev = 27;
875
+ _context9.t4 = _context9["catch"](12);
876
+ console.log(_context9.t4);
877
+
878
+ case 30:
879
+ case "end":
880
+ return _context9.stop();
881
+ }
882
+ }
883
+ }, _callee9, null, [[12, 27]]);
884
+ }));
885
+
886
+ return function onAudit() {
887
+ return _ref9.apply(this, arguments);
888
+ };
889
+ }();
780
890
 
781
891
  var btnDisabled = function btnDisabled(key) {
782
892
  if (btnStatus && typeof btnStatus(key) === 'boolean') return btnStatus(key);
@@ -854,7 +964,8 @@ function useDtl(dtlParam) {
854
964
  onSaveMst: onSaveMst,
855
965
  onRemoveMst: onRemoveMst,
856
966
  onExportDtl: onExportDtl,
857
- isAudit: isAudit
967
+ isAudit: isAudit,
968
+ onAudit: onAudit
858
969
  };
859
970
  }
860
971
 
@@ -47,6 +47,6 @@ declare function useSingle(inParam: SingleParamType): {
47
47
  onAudit: (row: any) => Promise<void>;
48
48
  resourceId: any;
49
49
  checkRight: (val: number) => boolean;
50
- isAudit: () => boolean;
50
+ isAudit: (row?: any) => boolean;
51
51
  };
52
52
  export default useSingle;
@@ -212,6 +212,11 @@ function useSingle(inParam) {
212
212
  return;
213
213
  }
214
214
 
215
+ if (isAudit(row)) {
216
+ (0, _utils.showWarn)('选择中数据中有已审核,不能删除!');
217
+ return;
218
+ }
219
+
215
220
  (0, _utils.showConfirm)('确认要删除选择的数据?').then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
216
221
  var rows, ids, _result$flag, result;
217
222
 
@@ -319,48 +324,61 @@ function useSingle(inParam) {
319
324
  return _context4.abrupt("return");
320
325
 
321
326
  case 3:
327
+ if (!isAudit(row)) {
328
+ _context4.next = 6;
329
+ break;
330
+ }
331
+
332
+ (0, _utils.showWarn)('选择中数据中有已审核,不能再次进行操作!');
333
+ return _context4.abrupt("return");
334
+
335
+ case 6:
322
336
  rows = (row ? [row] : selectedRows).map(function (o) {
323
- return (0, _objectSpread2.default)({}, o);
324
- });
337
+ var obj = (0, _objectSpread2.default)({}, o); //@ts-ignore
338
+
339
+ obj[statusField] = auditStatus;
340
+ return obj;
341
+ }); // beforeAudit 强式终止
342
+
325
343
  _context4.t0 = beforeAudit;
326
344
 
327
345
  if (!_context4.t0) {
328
- _context4.next = 10;
346
+ _context4.next = 13;
329
347
  break;
330
348
  }
331
349
 
332
- _context4.next = 8;
350
+ _context4.next = 11;
333
351
  return beforeAudit(rows);
334
352
 
335
- case 8:
353
+ case 11:
336
354
  _context4.t1 = _context4.sent;
337
355
  _context4.t0 = _context4.t1 === false;
338
356
 
339
- case 10:
357
+ case 13:
340
358
  if (!_context4.t0) {
341
- _context4.next = 12;
359
+ _context4.next = 15;
342
360
  break;
343
361
  }
344
362
 
345
363
  return _context4.abrupt("return");
346
364
 
347
- case 12:
348
- _context4.prev = 12;
349
- _context4.next = 15;
365
+ case 15:
366
+ _context4.prev = 15;
367
+ _context4.next = 18;
350
368
  return service.audit(rows);
351
369
 
352
- case 15:
370
+ case 18:
353
371
  result = _context4.sent;
354
372
 
355
373
  if (!afterAudit) {
356
- _context4.next = 19;
374
+ _context4.next = 22;
357
375
  break;
358
376
  }
359
377
 
360
378
  afterAudit(result, rows);
361
379
  return _context4.abrupt("return");
362
380
 
363
- case 19:
381
+ case 22:
364
382
  if ((result === null || result === void 0 ? void 0 : (_result$flag2 = result.flag) === null || _result$flag2 === void 0 ? void 0 : _result$flag2.retCode) === '0') {
365
383
  (0, _utils.showSuccess)(result.flag.retMsg);
366
384
 
@@ -369,20 +387,20 @@ function useSingle(inParam) {
369
387
  }
370
388
  }
371
389
 
372
- _context4.next = 25;
390
+ _context4.next = 28;
373
391
  break;
374
392
 
375
- case 22:
376
- _context4.prev = 22;
377
- _context4.t2 = _context4["catch"](12);
393
+ case 25:
394
+ _context4.prev = 25;
395
+ _context4.t2 = _context4["catch"](15);
378
396
  console.log(_context4.t2);
379
397
 
380
- case 25:
398
+ case 28:
381
399
  case "end":
382
400
  return _context4.stop();
383
401
  }
384
402
  }
385
- }, _callee4, null, [[12, 22]]);
403
+ }, _callee4, null, [[15, 25]]);
386
404
  }));
387
405
 
388
406
  return function onAudit(_x3) {
@@ -643,14 +661,23 @@ function useSingle(inParam) {
643
661
  return false;
644
662
  }
645
663
  };
664
+ /** 判断是否已审核,只有传入审核状态和状态字段才进行判断 */
665
+
646
666
 
647
667
  var isAudit = (0, _react.useCallback)(function () {
668
+ var row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
648
669
  if (!auditStatus || !statusField) return false;
649
- if (!selectedRows.length) return false;
670
+ if (!row && !selectedRows.length) return false;
671
+
672
+ if (row) {
673
+ return Number(row[statusField] || 0) >= auditStatus;
674
+ }
675
+
650
676
  return selectedRows.findIndex(function (o) {
651
677
  return Number(o[statusField] || 0) >= auditStatus;
652
678
  }) > -1;
653
- }, [auditStatus, statusField, selectedRows]);
679
+ }, [auditStatus, statusField, selectedRows]); // 处理内置 table 按钮,新增,编辑,删除,审核,导入,导出
680
+
654
681
  var tableTools = (0, _react.useMemo)(function () {
655
682
  return [(toolConfig === null || toolConfig === void 0 ? void 0 : toolConfig.add) && checkRight(2) ? /*#__PURE__*/_react.default.createElement(_button.default, {
656
683
  key: "add",
package/lib/index.d.ts CHANGED
@@ -8,8 +8,9 @@ import * as utils from './utils';
8
8
  /** Hooks */
9
9
  import useSingle from './hooks/useSingle';
10
10
  import useDtl from './hooks/useDtl';
11
+ import usePermission from './hooks/usePermission';
11
12
  /** Type */
12
13
  import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
13
14
  import type { DtlLyaoutProps } from './components/DtlLayout';
14
15
  export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps };
15
- export { DtlLayout, InputTable, Page404, Loading, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl };
16
+ export { DtlLayout, InputTable, Page404, Loading, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
package/lib/index.js CHANGED
@@ -85,6 +85,12 @@ Object.defineProperty(exports, "useDtl", {
85
85
  return _useDtl.default;
86
86
  }
87
87
  });
88
+ Object.defineProperty(exports, "usePermission", {
89
+ enumerable: true,
90
+ get: function get() {
91
+ return _usePermission.default;
92
+ }
93
+ });
88
94
  Object.defineProperty(exports, "useSingle", {
89
95
  enumerable: true,
90
96
  get: function get() {
@@ -111,4 +117,6 @@ exports.utils = utils;
111
117
 
112
118
  var _useSingle = _interopRequireDefault(require("./hooks/useSingle"));
113
119
 
114
- var _useDtl = _interopRequireDefault(require("./hooks/useDtl"));
120
+ var _useDtl = _interopRequireDefault(require("./hooks/useDtl"));
121
+
122
+ var _usePermission = _interopRequireDefault(require("./hooks/usePermission"));
@@ -11,5 +11,6 @@ declare class BaseService {
11
11
  save(data: Record<string, any>): Promise<any>;
12
12
  /** 批量删除对象方法,@param data id集合 */
13
13
  remove(data: any[]): Promise<any>;
14
+ audit(data: any[]): Promise<any>;
14
15
  }
15
16
  export default BaseService;
@@ -171,9 +171,9 @@ var BaseService = /*#__PURE__*/function () {
171
171
  break;
172
172
  }
173
173
 
174
- _message2.default.error("加载方法没有配置api");
174
+ _message2.default.error("删除方法没有配置api");
175
175
 
176
- return _context3.abrupt("return", Promise.reject("加载方法没有配置api"));
176
+ return _context3.abrupt("return", Promise.reject("删除方法没有配置api"));
177
177
 
178
178
  case 4:
179
179
  if (!(this.method.delete === 'post')) {
@@ -208,6 +208,49 @@ var BaseService = /*#__PURE__*/function () {
208
208
 
209
209
  return remove;
210
210
  }()
211
+ }, {
212
+ key: "audit",
213
+ value: function () {
214
+ var _audit = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(data) {
215
+ var _this$api4;
216
+
217
+ var url;
218
+ return _regenerator.default.wrap(function _callee4$(_context4) {
219
+ while (1) {
220
+ switch (_context4.prev = _context4.next) {
221
+ case 0:
222
+ url = (_this$api4 = this.api) === null || _this$api4 === void 0 ? void 0 : _this$api4.audit;
223
+
224
+ if (url) {
225
+ _context4.next = 4;
226
+ break;
227
+ }
228
+
229
+ _message2.default.error("审核方法没有配置api");
230
+
231
+ return _context4.abrupt("return", Promise.reject("审核方法没有配置api"));
232
+
233
+ case 4:
234
+ _context4.next = 6;
235
+ return (0, _http.httpPost)(url, data);
236
+
237
+ case 6:
238
+ return _context4.abrupt("return", _context4.sent);
239
+
240
+ case 7:
241
+ case "end":
242
+ return _context4.stop();
243
+ }
244
+ }
245
+ }, _callee4, this);
246
+ }));
247
+
248
+ function audit(_x4) {
249
+ return _audit.apply(this, arguments);
250
+ }
251
+
252
+ return audit;
253
+ }()
211
254
  }]);
212
255
  return BaseService;
213
256
  }();
package/lib/typing.d.ts CHANGED
@@ -33,6 +33,8 @@ export declare type BaseApiType = {
33
33
  import?: string;
34
34
  /**导出数据api,如果跟加载数据api一致,可不指定 */
35
35
  export?: string;
36
+ /** 审核接口 */
37
+ audit?: string;
36
38
  };
37
39
  /**请求后端接口方法 */
38
40
  export declare type MethodType = {
@@ -111,7 +111,7 @@ var setCookie = function setCookie(key, value) {
111
111
  exports.setCookie = setCookie;
112
112
 
113
113
  var isLogin = function isLogin() {
114
- return !!getCookie('inline');
114
+ return !!getCookie('online');
115
115
  };
116
116
  /**
117
117
  * 设置本地缓存
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ls-pro-common",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "ls-pro-common",
5
5
  "keywords": [
6
6
  "antd",