ztxkui 3.1.3 → 3.1.6

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.
Files changed (30) hide show
  1. package/dist/DemoCom/SinaturesDemo.js +110 -18
  2. package/dist/DemoCom/TableDemo.js +138 -36
  3. package/dist/components/Table/hooks/useColumns.d.ts +17 -1
  4. package/dist/components/Table/hooks/useColumns.js +88 -7
  5. package/dist/components/Table/index.d.ts +28 -4
  6. package/dist/components/Table/index.js +4 -1
  7. package/dist/components/Table/table-enhance-cell.js +18 -3
  8. package/dist/components/Table/table-resizable-title.d.ts +11 -0
  9. package/dist/components/Table/table-resizable-title.js +39 -0
  10. package/dist/components/Table/table.d.ts +15 -0
  11. package/dist/components/Table/table.js +189 -31
  12. package/dist/components/Table/utils/dom.d.ts +7 -0
  13. package/dist/components/Table/utils/dom.js +24 -0
  14. package/dist/components/Table/utils/validate.d.ts +1 -0
  15. package/dist/components/Table/utils/validate.js +151 -0
  16. package/dist/components/business/NewList/item.d.ts +3 -0
  17. package/dist/components/business/NewList/item.js +7 -3
  18. package/dist/components/business/Signatures/components/CompareResult.d.ts +0 -2
  19. package/dist/components/business/Signatures/components/CompareResult.js +15 -17
  20. package/dist/components/business/Signatures/components/ElectronicSeal.js +1 -1
  21. package/dist/components/business/Signatures/components/QunjSeal.js +2 -1
  22. package/dist/components/business/Signatures/components/TemplateAttach.d.ts +1 -1
  23. package/dist/components/business/Signatures/components/TemplateAttach.js +4 -7
  24. package/dist/components/business/Signatures/index.js +60 -13
  25. package/dist/components/business/Signatures/props.d.ts +1 -1
  26. package/dist/components/business/Signatures/utils.d.ts +2 -1
  27. package/dist/components/business/Signatures/utils.js +7 -1
  28. package/dist/index.css +25 -0
  29. package/dist/index.css.map +1 -1
  30. package/package.json +2 -1
@@ -1,29 +1,123 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
1
48
  /**
2
49
  * @author 陈亚雄
3
50
  * @description
4
51
  */
5
52
  import React, { useRef, useState } from 'react';
6
- import { stringify } from 'qs';
7
53
  // redux
8
54
  // ztxkui公共组件
9
55
  import { Sinatures } from '../index';
10
56
  import Template from './Template';
57
+ import { stringify } from 'qs';
11
58
  // 路由配置
12
59
  // store
13
60
  // 自定义组件
14
61
  // 其他文件
62
+ var ZT_API_BASEURL = 'http://192.168.0.83:8000';
63
+ var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoi5ZGo54Sw5rW3IiwiZW1wX25hbWUiOiLlkajnhLDmtbciLCJlbXBfbnVtYmVyIjoiWUcyMjA1MDAyIiwiaW10X2lkIjpudWxsLCJyZWFsX25hbWUiOiLlkajnhLDmtbciLCJjbGllbnRfdHlwZSI6IndlYiIsImRhdGFfcm9sZV9pZCI6IjEzNDU5Nzg1MDUzMDIwNTY5NjIsMTQ2ODAzNTM1MTYyNTI4NTYzNCIsImNsaWVudF9pZCI6InN3b3JkIiwidXNlcl90eXBlIjoid2ViIiwicm9sZV9pZCI6IjE0NDY4MTk0NjM2OTM4NDQ0ODIsMTQ2NzAxNTk3NTQ4NDc2MDA2NiwxNDY4MDM0NDM3MTU3OTYxNzI5IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjpudWxsLCJleHAiOjE2NTcxNzkzMTMsIm9yZ19uYW1lIjoi5rWZ5ZWG5Lit5ouT6ZuG5Zui6IKh5Lu95pyJ6ZmQ5YWs5Y-4IiwianRpIjoiZWQ1YjMwMGEtNGYwOC00MWEzLTgxNWItYWY5Yjg2NDdjY2UyIiwibWVtYmVyX2lkIjoxNTI2MTEwOTQ1Mjk4MjcyMjU3LCJjb21wYW55X2lkIjoxNDE1ODM3OTkxNzAxMDM3MDU3LCJzeXN0ZW1faWQiOiIzIiwiZGVwdF9uYW1lIjoi5rWZ5ZWG5Lit5ouTLeW3peeoi-mFjemAgeS6jOmDqCIsImF2YXRhciI6IiIsImRhdGFfcm9sZV9uYW1lIjoiYWRtaW4sYWRtaW4iLCJhdXRob3JpdGllcyI6WyJhZG1pbiIsInVzZXIiLCJhZG1pbmlzdHJhdG9yIl0sInJvbGVfbmFtZSI6ImFkbWluaXN0cmF0b3IsdXNlcixhZG1pbiIsInJlc3VtZV90ZW1wbGF0ZSI6bnVsbCwibGljZW5zZSI6InBvd2VyZWQgYnkgem1kbXMiLCJwb3N0X2lkIjoiIiwidXNlcl9pZCI6IjE1MjYxMTEzMTgwNDYwNjg3MzciLCJvcmdfaWQiOjE0NTc1Mjc3NjU5MTg1MTUyMDEsIm5pY2tfbmFtZSI6IuWRqOeEsOa1tyIsImNvbXBhbnlfbmFtZSI6Iua1meWVhuS4reaLk-mbhuWbouiCoeS7veaciemZkOWFrOWPuCIsImRlcHRfaWQiOiIxNDE0ODUyODQ3MDM1MDAyODgxIiwiaGFuZGxlX2hyX25hbWUiOm51bGwsImFjY291bnQiOiLlkajnhLDmtbciLCJyZXN1bWVfaWQiOm51bGx9.X-apyMFUmkzRQqFLCXA3nF6u36ShH1OLHWE7boj5CBQ';
15
64
  /**
16
65
  * @description 封装请求方法
17
66
  */
18
- function myRequest(options) {
19
- return fetch(options.url + "?" + stringify(options.params), {
20
- headers: {
21
- 'Zmdms-Auth': 'bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOiLpmYjkuprpm4QiLCJlbXBfbnVtYmVyIjoiWUcyMTA3MDA4IiwiaW10X2lkIjpudWxsLCJyZWFsX25hbWUiOiLpmYjkuprpm4QiLCJjbGllbnRfdHlwZSI6IndlYiIsImRhdGFfcm9sZV9pZCI6IjEzNDU5Nzg1MDUzMDIwNTY5NjIsMTQxMjYxNDExMDY0NzM4NjExNCwxNDEyNjE1Njc3MTE5MjY2ODE3LDE0NDgxMjEwODY1MDQzMDA1NDYsMTQ1MjgyMDI5MzgwMjcxMzA5MCwxNDUzOTI1MDAxNTMxNDc4MDE3LDE0NTg3MTIwODIwODIzNTcyNTAsMTQ1ODgyNjIzODE4NTg4OTc5NCwxNDU4ODI3NzAxMDEyMzI0MzUzLDE0NTg4MjgzNjA4MDE1MDkzNzcsMTQ2MDA4OTI2MjAxMjAzMDk3NywxNDYxMTM3Nzg4NjQ1MTI2MTQ2IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTQxMjYwODc0Mjk1MzI4NzY4MiwxNDM4MzIyNTQzMjk1OTI2Mjc0LDE0NDM0NzU0NzU5NzI3MzQ5NzcsMTQ0NjgxOTQ2MzY5Mzg0NDQ4MiwxNDYwMDg1NDI2ODE1OTUwODQ5LDE0NjI2MjI5OTIzNzUyMDk5ODYiLCJwb3N0X25hbWUiOm51bGwsInNjb3BlIjpbImFsbCJdLCJpbnRlcnZpZXdfaWQiOm51bGwsImV4cCI6MTY0MjU3MjMxOSwib3JnX25hbWUiOiLmuZbljZfkuK3mi5Pkv6Hmga_np5HmioDmnInpmZDlhazlj7giLCJqdGkiOiJjYmNjMGVlNy01ODE4LTQ1ZjMtOWYzNS0xMTBhNjdiODFkYmIiLCJtZW1iZXJfaWQiOjE0MTI5NTMyMDUyNjk1MTYyOTAsImNvbXBhbnlfaWQiOjEzOTcwNzQ2MDU0MTI2OTYwNjYsInN5c3RlbV9pZCI6IjQiLCJkZXB0X25hbWUiOiLkuJrliqHkuIDpg6giLCJhdmF0YXIiOiIiLCJkYXRhX3JvbGVfbmFtZSI6ImFkbWluLHVzZXIsdXNlcixhZG1pbixhZG1pbix1c2VyLHVzZXIsdXNlcix1c2VyLHVzZXIsdXNlcix1c2VyIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iLCJ1c2VyIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJ1c2VyLGFkbWluaXN0cmF0b3IsYWRtaW4sYWRtaW5pc3RyYXRvcix1c2VyLHVzZXIiLCJyZXN1bWVfdGVtcGxhdGUiOm51bGwsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IHptZG1zIiwicG9zdF9pZCI6IiIsInVzZXJfaWQiOiIxNDEyOTUzODA0MzMzNTU1NzE0Iiwib3JnX2lkIjoxNDU3NTI3NzY1OTE4NTE1NTM1LCJuaWNrX25hbWUiOiLpmYjkuprpm4QiLCJjb21wYW55X25hbWUiOiLmtZnllYbkuK3mi5Ppm4blm6LnianmtYHnp5HmioDmnInpmZDlhazlj7giLCJkZXB0X2lkIjoiMTM5NzA4MTkzMDMyODQyNDQ0OSIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjpudWxsfQ.FzJkqhtmGgkSsDZd6RBylQEGxBsJRslLDtX9DXgfW-M',
22
- },
23
- method: options.method,
24
- }).then(function (response) { return response.json(); });
67
+ function myRequest(url, params, method) {
68
+ var _this = this;
69
+ if (params === void 0) { params = null; }
70
+ if (method === void 0) { method = 'GET'; }
71
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
72
+ var headers, config, response, error_1;
73
+ return __generator(this, function (_a) {
74
+ switch (_a.label) {
75
+ case 0:
76
+ headers = {
77
+ 'Zmdms-Auth': token,
78
+ };
79
+ config = {
80
+ headers: headers,
81
+ };
82
+ // 判断请求类型
83
+ if (method === 'GET') {
84
+ if (params) {
85
+ url += '?' + stringify(params);
86
+ }
87
+ }
88
+ else if (method === 'POST') {
89
+ config = {
90
+ method: method,
91
+ headers: __assign({ 'Content-Type': 'application/json', Authorization: 'Basic c3dvcmQ6c3dvcmRfc2VjcmV0' }, config.headers),
92
+ };
93
+ if (params) {
94
+ config = __assign(__assign({}, config), { body: JSON.stringify(params) });
95
+ }
96
+ }
97
+ _a.label = 1;
98
+ case 1:
99
+ _a.trys.push([1, 3, , 4]);
100
+ return [4 /*yield*/, fetch(ZT_API_BASEURL + "/" + url, __assign({}, config))];
101
+ case 2:
102
+ response = _a.sent();
103
+ response
104
+ .json()
105
+ .then(function (res) {
106
+ resolve(res);
107
+ })
108
+ .catch(function (error) {
109
+ reject(error);
110
+ });
111
+ return [3 /*break*/, 4];
112
+ case 3:
113
+ error_1 = _a.sent();
114
+ reject(error_1);
115
+ return [3 /*break*/, 4];
116
+ case 4: return [2 /*return*/];
117
+ }
118
+ });
119
+ }); });
25
120
  }
26
- var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOiLpmYjkuprpm4QiLCJlbXBfbnVtYmVyIjoiMDAwMTcwODkiLCJpbXRfaWQiOm51bGwsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNDEyNjE0MTEwNjQ3Mzg2MTE0LDE0MTI2MTU2NzcxMTkyNjY4MTcsMTQ0ODEyMTA4NjUwNDMwMDU0NiwxNDUyODIwMjkzODAyNzEzMDkwLDE0NTM5MjUwMDE1MzE0NzgwMTcsMTQ1ODcxMjA4MjA4MjM1NzI1MCwxNDU4ODI2MjM4MTg1ODg5Nzk0LDE0NTg4Mjc3MDEwMTIzMjQzNTMsMTQ1ODgyODM2MDgwMTUwOTM3NywxNDYwMDg5MjYyMDEyMDMwOTc3LDE0NjExMzc3ODg2NDUxMjYxNDYsMTQ2ODAzNTM1MTYyNTI4NTYzNCIsImNsaWVudF9pZCI6InN3b3JkIiwidXNlcl90eXBlIjoid2ViIiwicm9sZV9pZCI6IjExMjM1OTg4MTY3Mzg2NzUyMDEsMTQxMjYwODc0Mjk1MzI4NzY4MiwxNDM4MzIyNTQzMjk1OTI2Mjc0LDE0NDM0NzU0NzU5NzI3MzQ5NzcsMTQ0NjgxOTQ2MzY5Mzg0NDQ4MiwxNDYwMDg1NDI2ODE1OTUwODQ5LDE0NjI2MjI5OTIzNzUyMDk5ODYsMTQ2NzAxNTk3NTQ4NDc2MDA2NiwxNDY4MDM0NDM3MTU3OTYxNzI5LDE0NzI4NDA2NzY4MjQwMTg5NDUiLCJwb3N0X25hbWUiOm51bGwsInNjb3BlIjpbImFsbCJdLCJpbnRlcnZpZXdfaWQiOm51bGwsImV4cCI6MTY1NjQ4ODE5Mywib3JnX25hbWUiOm51bGwsImp0aSI6ImNlYWEyYTMxLWU2NDEtNDhiNy1iNjFlLWU2MmY1OWRiNDk3ZCIsIm1lbWJlcl9pZCI6MTM0NTk5Mjg3ODE2MjY0OTA5MCwiY29tcGFueV9pZCI6MTI5NTkwODYyNzk4NDY3MDcyMiwic3lzdGVtX2lkIjpudWxsLCJkZXB0X25hbWUiOiLkuJrliqHkuIDpg6giLCJhdmF0YXIiOiIiLCJkYXRhX3JvbGVfbmFtZSI6ImFkbWluLHVzZXIsdXNlcixhZG1pbixhZG1pbix1c2VyLHVzZXIsdXNlcix1c2VyLHVzZXIsdXNlcix1c2VyLGFkbWluIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iLCJ1c2VyIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLHVzZXIsYWRtaW5pc3RyYXRvcixhZG1pbixhZG1pbmlzdHJhdG9yLHVzZXIsdXNlcix1c2VyLGFkbWluLHVzZXIiLCJyZXN1bWVfdGVtcGxhdGUiOm51bGwsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IHptZG1zIiwicG9zdF9pZCI6IiIsInVzZXJfaWQiOiIxNDEyOTUzODA0MzMzNTU1NzE0Iiwib3JnX2lkIjpudWxsLCJuaWNrX25hbWUiOiLpmYjkuprpm4QiLCJjb21wYW55X25hbWUiOiLmtZnllYbkuK3mi5Ppm4blm6LvvIjph43luobvvInmnInpmZDlhazlj7giLCJkZXB0X2lkIjoiMTM5NzA4MTkzMDMyODQyNDQ0OSIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjpudWxsfQ.xvUZAA0tLrpNTPK5nRhihdSyQbTQyAmcOJS724OUnHY';
27
121
  var list = [
28
122
  {
29
123
  attachId: '1326475920778194945',
@@ -68,10 +162,12 @@ var qunjSeal = {
68
162
  ],
69
163
  };
70
164
  var electronicSealList = [
71
- { name: '浙商中拓集团(上海)合同专用章' },
72
- { name: '浙商/浙江中拓法人签字章' },
165
+ { name: '浙商中拓集团(上海)合同专用章', id: '2980019783467188885' },
166
+ { name: '浙商/浙江中拓法人签字章', id: '2980019871597904544' },
167
+ ];
168
+ var electronicSeal = [
169
+ { name: '浙商中拓集团(上海)合同专用章', id: '2980019783467188885' },
73
170
  ];
74
- var electronicSeal = ['浙商中拓集团(上海)合同专用章'];
75
171
  var SinaturesDemo = function () {
76
172
  var _a = useState(0), rIndex = _a[0], setRIndex = _a[1];
77
173
  var openCustomerModalHandle = function (index) {
@@ -82,15 +178,11 @@ var SinaturesDemo = function () {
82
178
  var handleRef = useRef({});
83
179
  var templateRef = useRef({});
84
180
  return (React.createElement("div", null,
85
- React.createElement(Sinatures, { isUpdate: true, fileList: list, fileTypeList: fileTypeList, qunjSealList: qunjSealList, qunjSeal: qunjSeal, electronicSealList: electronicSealList, electronicSeal: electronicSeal, ZT_API_BASEURL: "http://192.168.0.83:8000", ZT_FILE_BASEURL: "http://192.168.0.83:88", token: token, openCustomerModalHandle: openCustomerModalHandle, handleRef: handleRef, request: myRequest, compareTaskUrl: "api/zmdms-resource/seal/create-compare-task", queryCompareTaskUrl: "api/zmdms-resource/seal/query-compare-task", downloadCompareFileUrl: "api/zmdms-resource/seal/download-compare-file" }),
181
+ React.createElement(Sinatures, { isUpdate: true, fileList: list, fileTypeList: fileTypeList, qunjSealList: qunjSealList, qunjSeal: qunjSeal, electronicSealList: electronicSealList, electronicSeal: electronicSeal, ZT_API_BASEURL: ZT_API_BASEURL, ZT_FILE_BASEURL: "http://192.168.0.83:88", token: token, openCustomerModalHandle: openCustomerModalHandle, handleRef: handleRef, request: myRequest, compareTaskUrl: "api/zmdms-resource/seal/create-compare-task", queryCompareTaskUrl: "api/zmdms-resource/seal/query-compare-task", downloadCompareFileUrl: "api/zmdms-resource/seal/download-compare-file" }),
86
182
  React.createElement(Template, { handleRef: handleRef, rIndex: rIndex, templateRef: templateRef }),
87
183
  React.createElement("button", { onClick: function () {
88
184
  var _a;
89
185
  console.log((_a = handleRef.current) === null || _a === void 0 ? void 0 : _a.getData());
90
- } }, "\u83B7\u53D6\u6570\u636E"),
91
- React.createElement("button", { onClick: function () {
92
- var _a;
93
- console.log((_a = handleRef.current) === null || _a === void 0 ? void 0 : _a.getData());
94
- } }, "\u76D6\u7AE0")));
186
+ } }, "\u83B7\u53D6\u6570\u636E")));
95
187
  };
96
188
  export default SinaturesDemo;
@@ -9,6 +9,42 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  var __spreadArray = (this && this.__spreadArray) || function (to, from) {
13
49
  for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
14
50
  to[j] = from[i];
@@ -17,7 +53,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
17
53
  import React, { useEffect, useState, useCallback, useRef } from 'react';
18
54
  import Table from 'components/Table';
19
55
  import EnhanceSelect from 'components/EnhanceSelect';
20
- import { OperationBtnGroup, Empty, Button } from '../index';
56
+ import { OperationBtnGroup, Empty, Button, message } from '../index';
21
57
  import MaterialComp, {
22
58
  // clearData,
23
59
  clearDataFn,
@@ -444,6 +480,20 @@ var TableDemo = function () {
444
480
  var _e = useState(false), lengthChange = _e[0], setLengthChange = _e[1];
445
481
  // 表格行拖拽改变
446
482
  var _f = useState(false), moveChange = _f[0], setMoveChange = _f[1];
483
+ // 表格配置
484
+ var _g = useState({
485
+ materialId: { isChangeable: 1, isDisplay: 1, isRequired: 1 },
486
+ test1: { isChangeable: 1, isDisplay: 1, isRequired: 1 },
487
+ }), tableConfig = _g[0], setTableConfig = _g[1];
488
+ useEffect(function () {
489
+ setTimeout(function () {
490
+ setTableConfig({
491
+ materialId: { isChangeable: 1, isDisplay: 1, isRequired: 0 },
492
+ test1: { isChangeable: 1, isDisplay: 1, isRequired: 1 },
493
+ test2: { isChangeable: 1, isDisplay: 1, isRequired: 1 },
494
+ });
495
+ }, 5000);
496
+ }, []);
447
497
  useEffect(function () {
448
498
  setFirstRender(true);
449
499
  }, []);
@@ -466,6 +516,7 @@ var TableDemo = function () {
466
516
  width: 100,
467
517
  dataIndex: 'materialId',
468
518
  key: 'materialId',
519
+ validate: {},
469
520
  shouldCellUpdate: function (record, preRecord) {
470
521
  if (lengthChange) {
471
522
  setLengthChange(false);
@@ -479,6 +530,7 @@ var TableDemo = function () {
479
530
  },
480
531
  render: function (text, record, index) {
481
532
  return (React.createElement(EnhanceSelect, { value: text, list: list1, dataKey: "id", titleKey: "materialDesc", dropdownMatchSelectWidth: 130, onChange: function (value, option, fullData) {
533
+ tableHandleRef.current.clearErrorClass(index);
482
534
  var newRecord = __assign({ materialId: value, materialDesc: fullData === null || fullData === void 0 ? void 0 : fullData.materialDesc }, clearDataFn({ prefix: 'prefix' }));
483
535
  onEditableSaveHandle(newRecord, index);
484
536
  } }));
@@ -539,6 +591,20 @@ var TableDemo = function () {
539
591
  key: 'test3',
540
592
  // 普通的输入框
541
593
  editable: true,
594
+ validate: {
595
+ validate: function (value, record, index, title) {
596
+ if (Object.keys(tableConfig).length === 2 || !value) {
597
+ return Promise.reject({
598
+ errorFields: [
599
+ {
600
+ errors: "\u91C7\u8D2D\u57FA\u672C\u6570\u636E-\u660E\u7EC6\u8868 \u7B2C" + index + "\u884C \u91C7\u8D2D\u4ED8\u6B3E\u6761\u4EF62 \u5FC5\u586B\uFF01",
601
+ },
602
+ ],
603
+ });
604
+ }
605
+ return Promise.resolve();
606
+ },
607
+ },
542
608
  shouldCellUpdate: function (record, preRecord) {
543
609
  if (firstRender) {
544
610
  setFirstRender(false);
@@ -562,6 +628,7 @@ var TableDemo = function () {
562
628
  key: 'test4',
563
629
  // 简单配置的输入框
564
630
  editable: true,
631
+ validate: {},
565
632
  shouldCellUpdate: function (record, preRecord) {
566
633
  if (firstRender) {
567
634
  setFirstRender(false);
@@ -730,17 +797,19 @@ var TableDemo = function () {
730
797
  },
731
798
  ];
732
799
  // 本地偏好设置相关
733
- var _g = useState(getStorage('test-table') || []), tableLayout = _g[0], setTableLayout = _g[1];
734
- var onDynamicChange = useCallback(function (tableLayout) {
735
- // 剔除调一些可能不可序列化的字段,只保留关键数据
736
- var newTableLayout = tableLayout.map(function (item) { return ({
737
- key: item === null || item === void 0 ? void 0 : item.key,
738
- dataIndex: item === null || item === void 0 ? void 0 : item.dataIndex,
739
- hideColumn: item === null || item === void 0 ? void 0 : item.hideColumn,
740
- }); });
741
- setTableLayout(newTableLayout);
742
- setStorege('test-table', newTableLayout);
743
- }, []);
800
+ // const [tableLayout, setTableLayout] = useState<any>(
801
+ // getStorage('test-table') || []
802
+ // );
803
+ // const onDynamicChange = useCallback((tableLayout: any) => {
804
+ // // 剔除调一些可能不可序列化的字段,只保留关键数据
805
+ // const newTableLayout = tableLayout.map((item) => ({
806
+ // key: item?.key,
807
+ // dataIndex: item?.dataIndex,
808
+ // hideColumn: item?.hideColumn,
809
+ // }));
810
+ // setTableLayout(newTableLayout);
811
+ // setStorege('test-table', newTableLayout);
812
+ // }, []);
744
813
  // 本地偏好设置end
745
814
  // 表格数据改变相关
746
815
  var onEditableSaveHandle = useCallback(function (record, index, _dataIndex) {
@@ -790,43 +859,76 @@ var TableDemo = function () {
790
859
  setRecords(newDataSource);
791
860
  setMoveChange(true);
792
861
  }, [setRecords]);
862
+ var tableHandleRef = useRef();
793
863
  return (React.createElement(React.Fragment, null,
864
+ React.createElement("div", null,
865
+ React.createElement("button", { onClick: function () { return console.log(records); } }, "\u83B7\u53D6\u6570\u636E"),
866
+ React.createElement(Button, { loading: btnLoading, onClick: function () {
867
+ console.log(111);
868
+ (function () {
869
+ return __awaiter(this, void 0, void 0, function () {
870
+ var err_1, errorFields;
871
+ return __generator(this, function (_a) {
872
+ switch (_a.label) {
873
+ case 0:
874
+ _a.trys.push([0, 2, , 3]);
875
+ return [4 /*yield*/, tableHandleRef.current.validate()];
876
+ case 1:
877
+ _a.sent();
878
+ return [3 /*break*/, 3];
879
+ case 2:
880
+ err_1 = _a.sent();
881
+ console.log(err_1);
882
+ errorFields = err_1.errorFields;
883
+ if (errorFields) {
884
+ message.warning(errorFields[0].errors + '');
885
+ }
886
+ return [3 /*break*/, 3];
887
+ case 3: return [2 /*return*/];
888
+ }
889
+ });
890
+ });
891
+ })();
892
+ } }, "\u70B9\u51FB")),
893
+ React.createElement("div", { style: { height: '2000px' } }),
794
894
  React.createElement(Table
795
895
  // 如果需要保留本地偏好,那么这里需要预处理一下columns数据
896
+ // columns={getTableLayoutFullData(columns, tableLayout)}
897
+ // initColumns={columns}
796
898
  , {
797
899
  // 如果需要保留本地偏好,那么这里需要预处理一下columns数据
798
- columns: getTableLayoutFullData(columns, tableLayout), initColumns: columns, dataSource: records, rowKey: "id",
900
+ // columns={getTableLayoutFullData(columns, tableLayout)}
901
+ // initColumns={columns}
902
+ columns: columns, dataSource: records, rowKey: "id", tableHandleRef: tableHandleRef,
903
+ // 配置表格列
904
+ configInfo: tableConfig,
799
905
  // 添加动态列配置
800
- showColumnDynamic: true, onDynamicChange: onDynamicChange,
906
+ showColumnDynamic: true, showColumnDynamicKey: "testkey",
907
+ // onDynamicChange={onDynamicChange}
801
908
  // 表格项可输入
802
909
  onEditableSave: onEditableSaveHandle,
803
910
  // 新增删除行
804
911
  onAddAndDelHandle: onAddAndDelHandle,
805
912
  // 表格行拖拽
806
- onMoveRow: onMoveRowHandle }),
807
- React.createElement("div", null,
808
- React.createElement("button", { onClick: function () { return console.log(records); } }, "\u83B7\u53D6\u6570\u636E"),
809
- React.createElement(Button, { loading: btnLoading, onClick: function () {
810
- console.log(111);
811
- } }, "\u70B9\u51FB")),
913
+ onMoveRow: onMoveRowHandle,
914
+ // 自动伸缩列
915
+ isResizableColumn: true }),
812
916
  React.createElement(Empty, null)));
813
917
  };
814
- function getStorage(key) {
815
- try {
816
- var result = localStorage.getItem(key) || '';
817
- return JSON.parse(result);
818
- }
819
- catch (err) {
820
- return null;
821
- }
822
- }
823
- function setStorege(key, value) {
824
- try {
825
- var _value = typeof value === 'object' ? JSON.stringify(value) : value;
826
- localStorage.setItem(key, _value);
827
- }
828
- catch (err) { }
829
- }
918
+ // function getStorage(key) {
919
+ // try {
920
+ // const result = localStorage.getItem(key) || '';
921
+ // return JSON.parse(result);
922
+ // } catch (err) {
923
+ // return null;
924
+ // }
925
+ // }
926
+ // function setStorege(key, value) {
927
+ // try {
928
+ // const _value = typeof value === 'object' ? JSON.stringify(value) : value;
929
+ // localStorage.setItem(key, _value);
930
+ // } catch (err) {}
931
+ // }
830
932
  function myRequest(options) {
831
933
  return new Promise(function (resolve, reject) {
832
934
  console.log(options);
@@ -1,7 +1,16 @@
1
+ import React from 'react';
1
2
  import { ColumnsType } from '../';
3
+ export interface IConfigInfo {
4
+ [props: string]: {
5
+ isChangeable?: any;
6
+ isDisplay?: any;
7
+ isRequired?: any;
8
+ };
9
+ }
2
10
  interface IProps<RecordType> {
3
11
  columns: ColumnsType<RecordType> | undefined;
4
12
  showColumnDynamic?: boolean;
13
+ showColumnDynamicKey?: string;
5
14
  /**新增行删除行方法 */
6
15
  onAddAndDelHandle?: (type: 'add' | 'del', index: number) => void;
7
16
  /**隐藏新增icon */
@@ -11,6 +20,13 @@ interface IProps<RecordType> {
11
20
  showDynamicHandle?: () => void;
12
21
  /**表格列编辑事件 */
13
22
  onEditableSave?: (record: RecordType, index: number | undefined, dataIndex: string) => void;
23
+ /** 表格列配置相关信息 */
24
+ configInfo?: IConfigInfo;
14
25
  }
15
- declare function useColumns<RecordType>(props: IProps<RecordType>): ColumnsType<RecordType>[];
26
+ export declare const getTableLayoutFullData: (columns: any, tableLayout: any) => any;
27
+ declare function useColumns<RecordType>(props: IProps<RecordType>): {
28
+ newColumns: any;
29
+ dynamicColumns: any;
30
+ setNewColumns: React.Dispatch<any>;
31
+ };
16
32
  export default useColumns;
@@ -9,25 +9,95 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
13
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
14
+ to[j] = from[i];
15
+ return to;
16
+ };
12
17
  import React, { useCallback, useEffect, useState } from 'react';
13
18
  import { PicRightOutlined } from '@ant-design/icons';
14
19
  import TableAddDelColumn from '../table-adddel-column';
20
+ // 获取表格columns完整数据
21
+ export var getTableLayoutFullData = function (columns, tableLayout) {
22
+ if (Array.isArray(tableLayout) && tableLayout.length > 0) {
23
+ var newColumns = tableLayout.map(function (item) {
24
+ if ((item === null || item === void 0 ? void 0 : item.key) || (item === null || item === void 0 ? void 0 : item.dataIndex)) {
25
+ var result = columns.find(function (column) {
26
+ if (column.key) {
27
+ return column.key === (item === null || item === void 0 ? void 0 : item.key);
28
+ }
29
+ if (column.dataIndex) {
30
+ return column.dataIndex === (item === null || item === void 0 ? void 0 : item.dataIndex);
31
+ }
32
+ return false;
33
+ });
34
+ return __assign(__assign({}, result), item);
35
+ }
36
+ return __assign({}, item);
37
+ });
38
+ var newAddColumns = columns.filter(function (column) { return !tableLayout.find(function (item) { return item.key === column.key; }); });
39
+ return __spreadArray(__spreadArray([], newColumns), newAddColumns);
40
+ }
41
+ return columns;
42
+ };
43
+ function getStorage(key) {
44
+ try {
45
+ var result = localStorage.getItem(key) || '';
46
+ return JSON.parse(result);
47
+ }
48
+ catch (err) {
49
+ return null;
50
+ }
51
+ }
15
52
  function useColumns(props) {
16
- var columns = props.columns, showColumnDynamic = props.showColumnDynamic, onAddAndDelHandle = props.onAddAndDelHandle, hideAddIcon = props.hideAddIcon, hideDelIcon = props.hideDelIcon, showDynamicHandle = props.showDynamicHandle, onEditableSave = props.onEditableSave;
53
+ var columns = props.columns, showColumnDynamic = props.showColumnDynamic, showColumnDynamicKey = props.showColumnDynamicKey, onAddAndDelHandle = props.onAddAndDelHandle, hideAddIcon = props.hideAddIcon, hideDelIcon = props.hideDelIcon, showDynamicHandle = props.showDynamicHandle, onEditableSave = props.onEditableSave, configInfo = props.configInfo;
54
+ var tableLayout = getStorage(showColumnDynamicKey);
17
55
  // 新的columns
18
- var _a = useState(columns), newColumns = _a[0], setNewColumns = _a[1];
56
+ var _a = useState(getTableLayoutFullData(columns, tableLayout)), newColumns = _a[0], setNewColumns = _a[1];
19
57
  // 需要动态配置的列
20
- var _b = useState(columns), dynamicColumns = _b[0], setDynamicColumns = _b[1];
58
+ var _b = useState(getTableLayoutFullData(columns, tableLayout)), dynamicColumns = _b[0], setDynamicColumns = _b[1];
21
59
  // 动态列配置显隐
22
60
  var ColumnDynamicCom = useCallback(function () { return (React.createElement(PicRightOutlined, { className: "zt-column--daynamic-icon", onClick: showDynamicHandle })); }, [showDynamicHandle]);
23
61
  useEffect(function () {
24
- if (!Array.isArray(columns)) {
62
+ var tableLayout = getStorage(showColumnDynamicKey);
63
+ var catchColumns = getTableLayoutFullData(columns, tableLayout);
64
+ if (!Array.isArray(catchColumns)) {
25
65
  throw new Error('columns 必须为一个数组');
26
66
  }
67
+ // 根据配置处理columns
68
+ // 主要处理是否隐藏
69
+ // 是否添加required配置
70
+ var _columns = [];
71
+ if (configInfo && Object.keys(configInfo).length > 0) {
72
+ catchColumns.forEach(function (col) {
73
+ var _a, _b, _c, _d;
74
+ var _column = __assign({}, col);
75
+ var dataIndex = _column.dataIndex;
76
+ if (!dataIndex) {
77
+ _columns.push(__assign({}, _column));
78
+ }
79
+ else {
80
+ // 如果没有配置,或者配置isRequired为存在
81
+ if (((_a = configInfo[dataIndex]) === null || _a === void 0 ? void 0 : _a.isRequired) === 1 ||
82
+ ((_b = configInfo[dataIndex]) === null || _b === void 0 ? void 0 : _b.isRequired) === '1') {
83
+ _column.required = true;
84
+ }
85
+ // 如果没有配置,或者配置isDisplay为存在
86
+ if (!configInfo[dataIndex] ||
87
+ ((_c = configInfo[dataIndex]) === null || _c === void 0 ? void 0 : _c.isDisplay) === 1 ||
88
+ ((_d = configInfo[dataIndex]) === null || _d === void 0 ? void 0 : _d.isDisplay) === '1') {
89
+ _columns.push(__assign({}, _column));
90
+ }
91
+ }
92
+ });
93
+ }
94
+ else {
95
+ _columns = catchColumns;
96
+ }
27
97
  var _newColumns = [];
28
98
  var _dynamicColumns = [];
29
99
  // 处理columns
30
- columns.forEach(function (col) {
100
+ _columns.forEach(function (col) {
31
101
  var _column = __assign({}, col);
32
102
  // 添加超出隐藏
33
103
  // !_column.render 兼容下拉框滚动行为,设置了ellipsis的话,会导致overflow:hidden,导致一些问题
@@ -58,7 +128,16 @@ function useColumns(props) {
58
128
  _dynamicColumns.push(__assign({}, col));
59
129
  }
60
130
  // 添加必填标识
61
- if (_column.required) {
131
+ if (typeof _column.required === 'function') {
132
+ var res = _column.required();
133
+ var _res = typeof res === 'boolean' ? res : res === 1 || res === '1';
134
+ if (_res) {
135
+ _column.title = (React.createElement(React.Fragment, null,
136
+ React.createElement("i", { className: "zt-column--required" }, "*"),
137
+ _column.title));
138
+ }
139
+ }
140
+ else if (_column.required) {
62
141
  _column.title = (React.createElement(React.Fragment, null,
63
142
  React.createElement("i", { className: "zt-column--required" }, "*"),
64
143
  _column.title));
@@ -112,7 +191,9 @@ function useColumns(props) {
112
191
  hideDelIcon,
113
192
  ColumnDynamicCom,
114
193
  onEditableSave,
194
+ configInfo,
195
+ showColumnDynamicKey,
115
196
  ]);
116
- return [newColumns, dynamicColumns];
197
+ return { newColumns: newColumns, dynamicColumns: dynamicColumns, setNewColumns: setNewColumns };
117
198
  }
118
199
  export default useColumns;
@@ -4,15 +4,36 @@ import { ColumnType } from 'antd/lib/table';
4
4
  import { TableRowSelection as AntTableRowSelection } from 'antd/lib/table/interface';
5
5
  import { ISummaryConfig as TableISummaryConfig } from './utils/getSummaryData';
6
6
  import { IEditableConfig } from './table-enhance-cell';
7
- export interface IColumnType<RecordType> extends ColumnType<RecordType> {
8
- /**是否隐藏该列 */
9
- hideColumn?: boolean;
10
- /**是否增加必填title */
7
+ export interface IValidate {
8
+ /** 需要验证得key, 如果不传,组件会取当前列配置的dataIndex */
9
+ dataIndex?: string;
10
+ /** 提示的列头,如果不传,组件会取当前列配置的title */
11
+ title?: string;
12
+ /**
13
+ * 验证方式
14
+ * required 如果只传入这个key 那么已这个为准
15
+ * validate 验证函数 返回一个promise对象
16
+ * 也可以传入一个对象,对象有两个key 一个pattern正则 一个message提示信息
17
+ */
11
18
  required?: boolean;
19
+ validate?: (value: any, record: any, index: any, title: any) => Promise<any> | {
20
+ pattern: any;
21
+ message: string;
22
+ };
23
+ /** 当前index位置 */
24
+ index?: number;
25
+ }
26
+ export interface IColumnType<RecordType> extends ColumnType<RecordType> {
27
+ /**是否隐藏该列 可以传入一个返回boolean值得函数 */
28
+ hideColumn?: boolean | (() => boolean);
29
+ /**是否增加必填title, 可以传入一个返回boolean值的函数 */
30
+ required?: boolean | (() => boolean);
12
31
  /**是否可以编辑 */
13
32
  editable?: boolean;
14
33
  /**可编辑列配置 */
15
34
  editableConfig?: IEditableConfig;
35
+ /** 表格单元格验证逻辑 */
36
+ validate?: IValidate;
16
37
  }
17
38
  export interface IColumnGroupType<RecordType> extends Omit<IColumnType<RecordType>, ''> {
18
39
  children: ColumnsType<RecordType>;
@@ -21,6 +42,8 @@ export declare type ISummaryConfig = TableISummaryConfig;
21
42
  export declare type ColumnsTypeProp<RecordType> = IColumnGroupType<RecordType> | IColumnType<RecordType>;
22
43
  export declare type ColumnsType<RecordType = unknown> = ColumnsTypeProp<RecordType>[];
23
44
  export declare type TableRowSelection<T> = AntTableRowSelection<T>;
45
+ export declare const DIFF_CLASSNAME = "zt-table--diff-row";
46
+ export declare const ERROR_TD_CLASSNAME = "zt-error-validate-td";
24
47
  export declare type ITableComponent = typeof Table & {
25
48
  SELECTION_ALL: typeof AntTable.SELECTION_ALL;
26
49
  SELECTION_INVERT: typeof AntTable.SELECTION_INVERT;
@@ -29,6 +52,7 @@ export declare type ITableComponent = typeof Table & {
29
52
  ColumnGroup: typeof AntTable.ColumnGroup;
30
53
  Summary: typeof AntTable.Summary;
31
54
  DiffClassName: string;
55
+ ErrorTdCallName: string;
32
56
  };
33
57
  declare const TransTable: ITableComponent;
34
58
  export default TransTable;