ztxkui 2.6.8 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Demo.js CHANGED
@@ -15,7 +15,7 @@ function Demo() {
15
15
  console.log('rerender');
16
16
  var _a = useState([]), list = _a[0], setList = _a[1];
17
17
  var _b = useState([]), setDefaultList = _b[1];
18
- var _c = useState(''), value = _c[0], setValue = _c[1];
18
+ var _c = useState(), value = _c[0], setValue = _c[1];
19
19
  var params = useState({
20
20
  tenantId: '000000',
21
21
  isCreateUser: 0,
@@ -83,7 +83,10 @@ function Demo() {
83
83
  }), request: request, isCatch: true }),
84
84
  React.createElement("h2", null, "\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22"),
85
85
  React.createElement("button", { onClick: function () { return setValue('1462433051208762629'); } }, "\u4FEE\u6539"),
86
- React.createElement(EnhanceSelect, { style: selectStyle, placeholder: "\u53EF\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22", url: "http://192.168.0.83:8000/api/zmdms-system/employee/page", request: request, remoteSearch: true, dataKey: "id", titleKey: "empName", value: value, showAll: true, onChange: function (value, option, fullData) {
86
+ React.createElement(EnhanceSelect, { style: selectStyle, defaultList: [
87
+ { id: 1, empName: '21' },
88
+ { id: 2, empName: '33' },
89
+ ], placeholder: "\u53EF\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22", url: "http://192.168.0.83:8000/api/zmdms-system/employee/page", request: request, remoteSearch: true, isRemoteSearchDataKey: false, dataKey: "id", titleKey: "empName", value: value, showAll: true, onChange: function (value, option, fullData) {
87
90
  setValue(value);
88
91
  }, params: JSON.stringify(params),
89
92
  // value={value}
@@ -7,7 +7,7 @@ function BasicDemo() {
7
7
  React.createElement(InputNumber, { value: value, onChange: function (value) {
8
8
  console.log(value);
9
9
  setValue(value);
10
- }, formatterType: "percent" }),
10
+ }, min: 0, max: 10, formatterType: "percent" }),
11
11
  React.createElement("div", null,
12
12
  React.createElement(Tag, null, "\u4F60\u597D"),
13
13
  React.createElement(Tag, { type: "normal" }, "\u4F60\u597D"),
@@ -21,14 +21,14 @@ function CollapseDemo() {
21
21
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"))),
22
22
  React.createElement(Collapse.Panel, { key: "2", header: "22" },
23
23
  React.createElement(GridList, null,
24
+ React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5\u6D4B\u8BD5\u6D4B\u8BD5\u6D4B\u8BD5\u6D4B\u8BD5saasasass" }, "\u518D\u89C1"),
24
25
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
25
26
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
26
27
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
27
28
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
28
29
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
29
30
  React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
30
- React.createElement(GridList.FormItem, { span: 8, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
31
- React.createElement(GridList.FormItem, { span: 16, titleSpan: Math.floor(8 * 0.4), title: "\u6D4B\u8BD5" }, "\u518D\u89C1"))),
31
+ React.createElement(GridList.FormItem, { span: 16, titleSpan: 4, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"))),
32
32
  React.createElement(Collapse.Panel, { key: "3", header: "33" },
33
33
  React.createElement(GridList, { border: false, showBackground: false },
34
34
  React.createElement(GridList.FormItem, { span: 6, title: "\u6D4B\u8BD5" }, "\u518D\u89C1"),
@@ -568,14 +568,16 @@ var TableDemo = function () {
568
568
  type: 'inputNumber',
569
569
  // min: 0,
570
570
  minHandle: function (record) {
571
- return {
572
- number: 0,
573
- };
571
+ return 0;
572
+ },
573
+ overMaxTip: function (record, index) {
574
+ return "\u7B2C" + (index + 1) + "\u884C\uFF0C\u8D85\u51FA\u6700\u5927\u503C\uFF0C\u5DF2\u4FEE\u6539\u6210\u6700\u5927\u503C";
574
575
  },
575
576
  maxHandle: function (record) {
576
- return {
577
- number: 10,
578
- };
577
+ return 10;
578
+ },
579
+ lowMinTip: function (record, index) {
580
+ return "\u7B2C" + (index + 1) + "\u884C\uFF0C\u4F4E\u4E8E\u6700\u5C0F\u503C\uFF0C\u5DF2\u4FEE\u6539\u6210\u6700\u5C0F\u503C";
579
581
  },
580
582
  precision: 3,
581
583
  },
@@ -43,6 +43,7 @@ function UploadDemo() {
43
43
  var _this = this;
44
44
  var _a = useState(originFileList), fileList = _a[0], setFileList = _a[1];
45
45
  var upload = useRef();
46
+ var uploadTableRef = useRef();
46
47
  useEffect(function () {
47
48
  setTimeout(function () {
48
49
  setFileList([
@@ -162,6 +163,9 @@ function UploadDemo() {
162
163
  }
163
164
  });
164
165
  }); };
166
+ var getHandle = function () {
167
+ console.log(uploadTableRef.current.getSelectedRows());
168
+ };
165
169
  return (React.createElement("div", null,
166
170
  React.createElement(Link, { to: "/test" }, "test"),
167
171
  React.createElement(Upload, { method: "post", headers: {
@@ -178,7 +182,7 @@ function UploadDemo() {
178
182
  system: '2',
179
183
  }, apiBaseUrl: "http://192.168.0.83:8888", fileBaseUrl: "http://192.168.0.83:88", originFileList: fileList, callback: uploadCallbackFn, onDeleteCallback: function (index, file) {
180
184
  console.log(index, file);
181
- }, upload: upload }),
185
+ }, upload: upload, rowSelection: "checkbox", uploadTableRef: uploadTableRef }),
182
186
  React.createElement(Upload, { maxSize: 200 * 1024, ztAccept: ['.jpg', '.jpeg', '.png', '.bmp', '.gif'], listType: "picture-card", method: "post", headers: {
183
187
  'Zmdms-Auth': token,
184
188
  }, showUploadList: {
@@ -188,6 +192,7 @@ function UploadDemo() {
188
192
  }, apiBaseUrl: "http://192.168.0.83:8888", fileBaseUrl: "http://192.168.0.83:88", showTable: false, showTip: false, originFileList: fileList, maxCount: 1, callback: uploadCallbackFn, onDeleteCallback: function (index, file) {
189
193
  console.log(index, file);
190
194
  }, authToken: token }),
191
- React.createElement("button", { onClick: checkHandle }, "\u68C0\u67E5")));
195
+ React.createElement("button", { onClick: checkHandle }, "\u68C0\u67E5"),
196
+ React.createElement("button", { onClick: getHandle }, "\u83B7\u53D6\u9009\u4E2D\u9879")));
192
197
  }
193
198
  export default UploadDemo;
@@ -77,6 +77,7 @@ function getData(request, options) {
77
77
  */
78
78
  function EnhanceSelect(_a) {
79
79
  var list = _a.list, defaultList = _a.defaultList, params = _a.params, url = _a.url, _b = _a.method, method = _b === void 0 ? 'GET' : _b, _c = _a.timeout, timeout = _c === void 0 ? 10000 : _c, _d = _a.dataKey, dataKey = _d === void 0 ? 'id' : _d, componentKey = _a.componentKey, _e = _a.titleKey, titleKey = _e === void 0 ? 'name' : _e, showAll = _a.showAll, isCatch = _a.isCatch, onCompleted = _a.onCompleted, onChange = _a.onChange, request = _a.request, remoteSearch = _a.remoteSearch, remoteSearchKey = _a.remoteSearchKey, remoteSearchDataKey = _a.remoteSearchDataKey, _f = _a.isRemoteSearchDataKey, isRemoteSearchDataKey = _f === void 0 ? true : _f, transformData = _a.transformData, joinKey = _a.joinKey, _g = _a.joinStr, joinStr = _g === void 0 ? '-' : _g, mustHasParams = _a.mustHasParams, disabledValues = _a.disabledValues, restProps = __rest(_a, ["list", "defaultList", "params", "url", "method", "timeout", "dataKey", "componentKey", "titleKey", "showAll", "isCatch", "onCompleted", "onChange", "request", "remoteSearch", "remoteSearchKey", "remoteSearchDataKey", "isRemoteSearchDataKey", "transformData", "joinKey", "joinStr", "mustHasParams", "disabledValues"]);
80
+ var currentClick = useRef(true);
80
81
  // 下拉数据源
81
82
  var _h = useFetchState([]), selectList = _h[0], setSelectList = _h[1];
82
83
  // 多选时,自己需要合并的数据
@@ -414,6 +415,12 @@ function EnhanceSelect(_a) {
414
415
  };
415
416
  // onChange 方法
416
417
  var onChangeHandle = function (value, option) {
418
+ if ((Array.isArray(value) && value.length === 0) || !value) {
419
+ currentClick.current = true;
420
+ }
421
+ else {
422
+ currentClick.current = false;
423
+ }
417
424
  setFirstLoading(true);
418
425
  if (((Array.isArray(value) && value.length === 0) || !value) &&
419
426
  remoteSearch &&
@@ -447,12 +454,41 @@ function EnhanceSelect(_a) {
447
454
  }
448
455
  };
449
456
  // 焦点事件
450
- var onFocusHandle = function () {
457
+ var onFocusHandle = function (e) {
458
+ // console.log('焦点事件');
451
459
  setIsOpen(true);
460
+ currentClick.current = false;
452
461
  };
453
462
  var onBlurHandle = function () {
463
+ // console.log('失去焦点事件');
454
464
  setIsOpen(false);
465
+ currentClick.current = false;
466
+ };
467
+ // 清空数据时
468
+ var onClearHandle = function () {
469
+ // console.log('清空数据事件');
470
+ setIsOpen(false);
471
+ };
472
+ // 选中时
473
+ var onSelectHandle = function () {
474
+ // console.log('选中数据事件');
475
+ if (!restProps.mode) {
476
+ setIsOpen(false);
477
+ }
478
+ };
479
+ // 点击时
480
+ var onClickHandle = function (e) {
481
+ // console.log('点击事件', currentClick.current);
482
+ if (currentClick.current) {
483
+ if (isOpen) {
484
+ setIsOpen(false);
485
+ }
486
+ else {
487
+ setIsOpen(true);
488
+ }
489
+ }
490
+ currentClick.current = true;
455
491
  };
456
- return (React.createElement(Select, __assign({ defaultValue: showAll ? '' : undefined, allowClear: true, showSearch: true, filterOption: remoteSearch ? false : filterOptionHandle, onSearch: remoteSearch ? onSearchHandle : undefined, onChange: onChangeHandle, optionLabelProp: "title", loading: loading, onFocus: onFocusHandle, onBlur: onBlurHandle, open: isOpen }, restProps, { disabled: remoteSearch ? restProps.disabled : loading || restProps.disabled }), renderSelectOption()));
492
+ return (React.createElement(Select, __assign({ defaultValue: showAll ? '' : undefined, allowClear: true, showSearch: true, filterOption: remoteSearch ? false : filterOptionHandle, onSearch: remoteSearch ? onSearchHandle : undefined, onChange: onChangeHandle, optionLabelProp: "title", loading: loading, onFocus: onFocusHandle, onBlur: onBlurHandle, onClear: onClearHandle, onSelect: onSelectHandle, onClick: onClickHandle, open: isOpen }, restProps, { disabled: remoteSearch ? restProps.disabled : loading || restProps.disabled }), renderSelectOption()));
457
493
  }
458
494
  export default memo(EnhanceSelect);
@@ -13,6 +13,18 @@ interface IProps extends InputNumberProps {
13
13
  * 货币转换符号
14
14
  */
15
15
  currencySymbol?: ICurrencySymbol;
16
+ /**
17
+ * 超出最大值提示
18
+ */
19
+ overMaxTip?: string;
20
+ /**
21
+ * 低于最小值提示
22
+ */
23
+ lowMinTip?: string;
24
+ /**
25
+ * 超出最大值或最小值触发得事件
26
+ */
27
+ onOverRange?: (type: 'maxType' | 'minType') => void;
16
28
  }
17
29
  declare function InputNumber(props: IProps): JSX.Element;
18
30
  export default InputNumber;
@@ -20,12 +20,43 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React from 'react';
23
+ import React, { useRef } from 'react';
24
24
  import { InputNumber as AntInputNumber } from 'antd';
25
+ import { message } from '../../index';
25
26
  import useFormatter from '../../hooks/useFormatter';
26
27
  function InputNumber(props) {
27
- var formatterType = props.formatterType, currencySymbol = props.currencySymbol, formatter = props.formatter, parser = props.parser, precision = props.precision, restProps = __rest(props, ["formatterType", "currencySymbol", "formatter", "parser", "precision"]);
28
+ var formatterType = props.formatterType, currencySymbol = props.currencySymbol, formatter = props.formatter, parser = props.parser, precision = props.precision, max = props.max, min = props.min, onChange = props.onChange, onBlur = props.onBlur, onPressEnter = props.onPressEnter, onOverRange = props.onOverRange, overMaxTip = props.overMaxTip, lowMinTip = props.lowMinTip, restProps = __rest(props, ["formatterType", "currencySymbol", "formatter", "parser", "precision", "max", "min", "onChange", "onBlur", "onPressEnter", "onOverRange", "overMaxTip", "lowMinTip"]);
29
+ var selfValue = useRef();
28
30
  var _a = useFormatter(formatterType, currencySymbol), _formatter = _a.formatter, _parser = _a.parser, _precision = _a.precision;
29
- return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision || _precision }, restProps)));
31
+ var onChangeHandle = function (value) {
32
+ selfValue.current = value;
33
+ onChange && onChange(value);
34
+ };
35
+ /**
36
+ * 超出范围触发得事件
37
+ */
38
+ var onOverRangeHandle = function () {
39
+ if (typeof min === 'number' && selfValue.current < min) {
40
+ selfValue.current = min;
41
+ onChange && onChange(min);
42
+ onOverRange && onOverRange('minType');
43
+ message.info(lowMinTip || '低于最小值,已修改成最小值!');
44
+ }
45
+ if (typeof max === 'number' && selfValue.current > max) {
46
+ selfValue.current = max;
47
+ onChange && onChange(max);
48
+ onOverRange && onOverRange('maxType');
49
+ message.info(overMaxTip || '高于最大值,已修改成最大值!');
50
+ }
51
+ };
52
+ var onBlurHandle = function (e) {
53
+ onOverRangeHandle();
54
+ onBlur && onBlur(e);
55
+ };
56
+ var onPressEnterHandle = function (e) {
57
+ onOverRangeHandle();
58
+ onPressEnter && onPressEnter(e);
59
+ };
60
+ return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision || _precision, onChange: onChangeHandle, onBlur: onBlurHandle, onPressEnter: onPressEnterHandle }, restProps)));
30
61
  }
31
62
  export default InputNumber;
@@ -20,20 +20,59 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { useState } from 'react';
23
+ import React, { useState, useRef } from 'react';
24
24
  import { Select as AntSelect } from 'antd';
25
25
  function Select(props) {
26
- var children = props.children, restProps = __rest(props, ["children"]);
26
+ var children = props.children, onChange = props.onChange, restProps = __rest(props, ["children", "onChange"]);
27
27
  // 获得焦点选中
28
28
  var _a = useState(false), isOpen = _a[0], setIsOpen = _a[1];
29
+ var currentClick = useRef(true);
30
+ var onChangeHandle = function (value, option) {
31
+ if ((Array.isArray(value) && value.length === 0) || !value) {
32
+ currentClick.current = true;
33
+ }
34
+ else {
35
+ currentClick.current = false;
36
+ }
37
+ onChange && onChange(value, option);
38
+ };
29
39
  // 焦点事件
30
- var onFocusHandle = function () {
40
+ var onFocusHandle = function (e) {
41
+ // console.log('焦点事件');
31
42
  setIsOpen(true);
43
+ currentClick.current = false;
32
44
  };
33
45
  var onBlurHandle = function () {
46
+ // console.log('失去焦点事件');
47
+ setIsOpen(false);
48
+ currentClick.current = false;
49
+ };
50
+ // 清空数据时
51
+ var onClearHandle = function () {
52
+ // console.log('清空数据事件');
34
53
  setIsOpen(false);
35
54
  };
36
- return (React.createElement(AntSelect, __assign({ onFocus: onFocusHandle, onBlur: onBlurHandle, open: isOpen }, restProps), children));
55
+ // 选中时
56
+ var onSelectHandle = function () {
57
+ // console.log('选中数据事件');
58
+ if (!restProps.mode) {
59
+ setIsOpen(false);
60
+ }
61
+ };
62
+ // 点击时
63
+ var onClickHandle = function (e) {
64
+ // console.log('点击事件', currentClick.current);
65
+ if (currentClick.current) {
66
+ if (isOpen) {
67
+ setIsOpen(false);
68
+ }
69
+ else {
70
+ setIsOpen(true);
71
+ }
72
+ }
73
+ currentClick.current = true;
74
+ };
75
+ return (React.createElement(AntSelect, __assign({ onChange: onChangeHandle, onFocus: onFocusHandle, onBlur: onBlurHandle, onClear: onClearHandle, onSelect: onSelectHandle, onClick: onClickHandle, open: isOpen }, restProps), children));
37
76
  }
38
77
  Select.Option = AntSelect.Option;
39
78
  Select.OptGroup = AntSelect.OptGroup;
@@ -10,6 +10,10 @@ export interface IEditableConfig {
10
10
  };
11
11
  maxHandle?: (record: any) => any;
12
12
  minHandle?: (record: any) => any;
13
+ /** 超出最大值提示 */
14
+ overMaxTip?: string | ((record: any, index: any) => string);
15
+ /** 低于最小值提示 */
16
+ lowMinTip?: string | ((record: any, index: any) => string);
13
17
  /**是否禁用 */
14
18
  disabledHandle?: (record: any, index?: number) => boolean;
15
19
  /**数字输入框的转换类型:内置 货币和百分比 */
@@ -124,7 +124,7 @@ var TableEnhanceCell = memo(function (_a) {
124
124
  }
125
125
  } })));
126
126
  }
127
- var type = editableConfig.type, data = editableConfig.data, keyValue = editableConfig.keyValue, maxHandle = editableConfig.maxHandle, minHandle = editableConfig.minHandle, disabledHandle = editableConfig.disabledHandle, editableProps = __rest(editableConfig, ["type", "data", "keyValue", "maxHandle", "minHandle", "disabledHandle"]);
127
+ var type = editableConfig.type, data = editableConfig.data, keyValue = editableConfig.keyValue, maxHandle = editableConfig.maxHandle, minHandle = editableConfig.minHandle, overMaxTip = editableConfig.overMaxTip, lowMinTip = editableConfig.lowMinTip, disabledHandle = editableConfig.disabledHandle, editableProps = __rest(editableConfig, ["type", "data", "keyValue", "maxHandle", "minHandle", "overMaxTip", "lowMinTip", "disabledHandle"]);
128
128
  var selectData = data; // 下拉框使用到得数据
129
129
  // 下拉框键值对对象
130
130
  var selectKeyValue = keyValue || {
@@ -144,7 +144,7 @@ var TableEnhanceCell = memo(function (_a) {
144
144
  inputNumMaxMin.max = result;
145
145
  }
146
146
  else {
147
- maxResult = result;
147
+ inputNumMaxMin.max = result === null || result === void 0 ? void 0 : result.number;
148
148
  }
149
149
  }
150
150
  if (minHandle && minHandle instanceof Function) {
@@ -153,9 +153,22 @@ var TableEnhanceCell = memo(function (_a) {
153
153
  inputNumMaxMin.min = result;
154
154
  }
155
155
  else {
156
- minResult = result;
156
+ inputNumMaxMin.min = result === null || result === void 0 ? void 0 : result.number;
157
157
  }
158
158
  }
159
+ var inputNumberRangeTip = {};
160
+ if (typeof overMaxTip === 'string') {
161
+ inputNumberRangeTip.overMaxTip = overMaxTip;
162
+ }
163
+ else if (typeof overMaxTip === 'function') {
164
+ inputNumberRangeTip.overMaxTip = overMaxTip(record, index);
165
+ }
166
+ if (typeof lowMinTip === 'string') {
167
+ inputNumberRangeTip.lowMinTip = lowMinTip;
168
+ }
169
+ else if (typeof lowMinTip === 'function') {
170
+ inputNumberRangeTip.lowMinTip = lowMinTip(record, index);
171
+ }
159
172
  if (disabledHandle && disabledHandle instanceof Function) {
160
173
  disabledResult = disabledHandle(record, index);
161
174
  }
@@ -167,7 +180,7 @@ var TableEnhanceCell = memo(function (_a) {
167
180
  }
168
181
  else if (type === 'inputNumber') {
169
182
  return (React.createElement(Form.Item, { className: "zt-table__enhance-cell", name: dataIndex },
170
- React.createElement(InputNumber, __assign({ autoComplete: "new-password", maxLength: 50 }, inputNumMaxMin, editableProps, { disabled: disabledResult, onPressEnter: function () { return save({ maxResult: maxResult, minResult: minResult }); }, onBlur: function () { return save({ maxResult: maxResult, minResult: minResult }); } }))));
183
+ React.createElement(InputNumber, __assign({ autoComplete: "new-password", maxLength: 50 }, inputNumMaxMin, editableProps, inputNumberRangeTip, { disabled: disabledResult, onPressEnter: function () { return save({ maxResult: maxResult, minResult: minResult }); }, onBlur: function () { return save({ maxResult: maxResult, minResult: minResult }); } }))));
171
184
  }
172
185
  else if (type === 'textArea') {
173
186
  return (React.createElement(Form.Item, { className: "zt-table__enhance-cell", name: dataIndex },
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { TableRowSelection } from '../Table';
2
3
  import { UploadFile } from 'antd/lib/upload/interface';
3
4
  interface IProps {
4
5
  fileList?: UploadFile[];
@@ -26,6 +27,9 @@ interface IProps {
26
27
  startColumns?: any;
27
28
  otherColumns?: any;
28
29
  showUploadBtn?: boolean;
30
+ /**是否显示selection */
31
+ rowSelection?: TableRowSelection<any> | 'checkbox' | 'radio';
32
+ uploadTableRef?: any;
29
33
  }
30
34
  declare const _default: React.NamedExoticComponent<IProps>;
31
35
  export default _default;
@@ -61,7 +61,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
61
61
  to[j] = from[i];
62
62
  return to;
63
63
  };
64
- import React, { useState, useEffect, memo } from 'react';
64
+ import React, { useState, useEffect, memo, useMemo, useImperativeHandle, } from 'react';
65
65
  import { Button, Progress, message, Popconfirm } from '../../index';
66
66
  import Table from '../Table';
67
67
  import dayjs from 'dayjs';
@@ -69,9 +69,13 @@ import { divide, round, times } from 'number-precision';
69
69
  import { downloadFileCallBack, downloadPublicFile, previewFile, } from 'ztxkutils/dist/fileOperation';
70
70
  import { transformFileSize } from 'ztxkutils/dist/tools';
71
71
  var UploadTable = function (_a) {
72
- var fileList = _a.fileList, action = _a.action, headers = _a.headers, authToken = _a.authToken, method = _a.method, apiBaseUrl = _a.apiBaseUrl, uploadUser = _a.uploadUser, _b = _a.fileBaseUrl, fileBaseUrl = _b === void 0 ? '' : _b, onDelete = _a.onDelete, onUpload = _a.onUpload, showDeleteBtn = _a.showDeleteBtn, isAutoDelete = _a.isAutoDelete, onDownLoadCallbackBefore = _a.onDownLoadCallbackBefore, showDownloadBtn = _a.showDownloadBtn, onDownLoadCallbackAfter = _a.onDownLoadCallbackAfter, onPreviewCallbackBefore = _a.onPreviewCallbackBefore, showPreviewBtn = _a.showPreviewBtn, isPublic = _a.isPublic, data = _a.data, _c = _a.startColumns, startColumns = _c === void 0 ? [] : _c, _d = _a.otherColumns, otherColumns = _d === void 0 ? [] : _d, showUploadBtn = _a.showUploadBtn;
72
+ var fileList = _a.fileList, action = _a.action, headers = _a.headers, authToken = _a.authToken, method = _a.method, apiBaseUrl = _a.apiBaseUrl, uploadUser = _a.uploadUser, _b = _a.fileBaseUrl, fileBaseUrl = _b === void 0 ? '' : _b, onDelete = _a.onDelete, onUpload = _a.onUpload, showDeleteBtn = _a.showDeleteBtn, isAutoDelete = _a.isAutoDelete, onDownLoadCallbackBefore = _a.onDownLoadCallbackBefore, showDownloadBtn = _a.showDownloadBtn, onDownLoadCallbackAfter = _a.onDownLoadCallbackAfter, onPreviewCallbackBefore = _a.onPreviewCallbackBefore, showPreviewBtn = _a.showPreviewBtn, isPublic = _a.isPublic, data = _a.data, _c = _a.startColumns, startColumns = _c === void 0 ? [] : _c, _d = _a.otherColumns, otherColumns = _d === void 0 ? [] : _d, showUploadBtn = _a.showUploadBtn, rowSelection = _a.rowSelection, uploadTableRef = _a.uploadTableRef;
73
73
  var _e = useState([]), dataSource = _e[0], setDataSource = _e[1];
74
74
  var _f = useState(false), loading = _f[0], setLoading = _f[1];
75
+ var _g = useState(), selectedRows = _g[0], setSelectedRows = _g[1];
76
+ useImperativeHandle(uploadTableRef, function () { return ({
77
+ getSelectedRows: function () { return selectedRows; },
78
+ }); }, [selectedRows]);
75
79
  var columns = showUploadBtn
76
80
  ? __spreadArray(__spreadArray(__spreadArray(__spreadArray([], startColumns), [
77
81
  {
@@ -401,6 +405,16 @@ var UploadTable = function (_a) {
401
405
  setDataSource(newDataSource);
402
406
  }
403
407
  }, [fileList, uploadUser]);
404
- return (React.createElement(Table, { columns: columns, dataSource: dataSource, rowKey: "id", loading: loading }));
408
+ var myRowSelection = useMemo(function () {
409
+ return rowSelection === 'checkbox' || rowSelection === 'radio'
410
+ ? {
411
+ type: rowSelection,
412
+ onChange: function (selectedRowKeys, selectedRows) {
413
+ setSelectedRows(selectedRows);
414
+ },
415
+ }
416
+ : rowSelection;
417
+ }, [rowSelection]);
418
+ return (React.createElement(Table, { columns: columns, dataSource: dataSource, rowKey: "id", loading: loading, rowSelection: myRowSelection }));
405
419
  };
406
420
  export default memo(UploadTable);
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { UploadProps } from 'antd/lib/upload';
3
3
  import { UploadFile } from './';
4
+ import { TableRowSelection } from '../Table';
4
5
  export interface IUploadRef {
5
6
  validate?: (info?: any) => any;
6
7
  }
@@ -62,6 +63,10 @@ export interface IProps extends UploadProps {
62
63
  isDirect?: boolean;
63
64
  /**附件上传对象 */
64
65
  upload?: any;
66
+ /**是否显示selection */
67
+ rowSelection?: TableRowSelection<any> | 'checkbox' | 'radio';
68
+ /**组件提供给外部调用的一些方法 */
69
+ uploadTableRef?: any;
65
70
  }
66
71
  declare const Upload: React.FC<IProps>;
67
72
  export default Upload;
@@ -81,7 +81,7 @@ var _accept = [
81
81
  ];
82
82
  var statusArr = ['error', 'success', 'done', 'uploading', 'removed'];
83
83
  var Upload = function (props) {
84
- 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, 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"]);
84
+ 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, 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"]);
85
85
  var _j = useState(originFileList || []), fileList = _j[0], setFileList = _j[1];
86
86
  var _k = useState('20M'), maxSizeTransStr = _k[0], setMaxSizeTransStr = _k[1];
87
87
  useEffect(function () {
@@ -305,6 +305,6 @@ var Upload = function (props) {
305
305
  ? ztShowTipText
306
306
  : 'PDF、Word、Excel、Txt、JPG、PNG、BMP、GIF、RAR、ZIP',
307
307
  ")")))),
308
- showTable && (React.createElement(UploadTable, { fileList: fileList, action: fileAction, apiBaseUrl: apiBaseUrl, fileBaseUrl: fileBaseUrl, headers: headers, method: method, uploadUser: uploadUser, onDelete: onDeleteHandle, onUpload: onUploadHandle, showDeleteBtn: showDeleteBtn, onDownLoadCallbackBefore: onDownLoadCallbackBefore, showDownloadBtn: showDownloadBtn, onDownLoadCallbackAfter: onDownLoadCallbackAfter, showPreviewBtn: showPreviewBtn, onPreviewCallbackBefore: onPreviewCallbackBefore, isAutoDelete: isAutoDelete, authToken: authToken, isPublic: isPublic, data: data, startColumns: startColumns, otherColumns: otherColumns, showUploadBtn: showUploadBtn }))));
308
+ showTable && (React.createElement(UploadTable, { fileList: fileList, action: fileAction, apiBaseUrl: apiBaseUrl, fileBaseUrl: fileBaseUrl, headers: headers, method: method, uploadUser: uploadUser, onDelete: onDeleteHandle, onUpload: onUploadHandle, showDeleteBtn: showDeleteBtn, onDownLoadCallbackBefore: onDownLoadCallbackBefore, showDownloadBtn: showDownloadBtn, onDownLoadCallbackAfter: onDownLoadCallbackAfter, showPreviewBtn: showPreviewBtn, onPreviewCallbackBefore: onPreviewCallbackBefore, isAutoDelete: isAutoDelete, authToken: authToken, isPublic: isPublic, data: data, startColumns: startColumns, otherColumns: otherColumns, showUploadBtn: showUploadBtn, rowSelection: rowSelection, uploadTableRef: uploadTableRef }))));
309
309
  };
310
310
  export default Upload;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "2.6.8",
3
+ "version": "2.7.1",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",