ztxkui 3.0.3 → 3.0.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.
@@ -2,6 +2,7 @@ import InputNumber from 'components/InputNumber';
2
2
  import Tag from 'components/Tag';
3
3
  import Input from 'components/Input';
4
4
  import { FormList, RangePicker, Button } from '../index';
5
+ import { InputNumber as AntInputNumber } from 'antd';
5
6
  import GridList from 'components/business/NewList';
6
7
  import { useState } from 'react';
7
8
  import './style.scss';
@@ -53,9 +54,15 @@ function BasicDemo() {
53
54
  ]), rangeValue = _b[0], setRangeValue = _b[1];
54
55
  return (React.createElement(React.Fragment, null,
55
56
  React.createElement(InputNumber, { value: value, onChange: function (value) {
56
- console.log(value);
57
+ console.log(value, 1);
57
58
  setValue(value);
58
- }, min: 0, max: 10, formatterType: "percent" }),
59
+ }, precision: 4, formatterType: "currency", style: { width: '300px' } }),
60
+ React.createElement(AntInputNumber, { value: value, onChange: function (value) {
61
+ console.log(value, 1);
62
+ setValue(value);
63
+ }, formatter: function (value) {
64
+ return ("$ " + value).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
65
+ }, parser: function (value) { return value.replace(/\$\s?|(,*)/g, ''); }, style: { width: '300px' } }),
59
66
  React.createElement("div", null,
60
67
  React.createElement(Tag, null, "\u4F60\u597D"),
61
68
  React.createElement(Tag, { type: "normal" }, "\u4F60\u597D"),
@@ -117,7 +124,6 @@ function BasicDemo() {
117
124
  } }, "\u8DF3\u8F6C"),
118
125
  React.createElement(Button, { type: "link", onClick: function () {
119
126
  console.log(111);
120
- }, showCopy: true, style: { width: '200px' } },
121
- React.createElement("span", null, "\u6211\u662F\u4E00\u4E2A\u94FE\u63A51111111111111111111"))));
127
+ }, showCopy: true }, "\u6211\u662F\u4E00\u4E2A\u94FE\u63A51111111111111111111")));
122
128
  }
123
129
  export default BasicDemo;
@@ -435,14 +435,15 @@ var list1 = [
435
435
  var TableDemo = function () {
436
436
  var _a = useGetTableRecords(), records = _a.records, setRecords = _a.setRecords;
437
437
  var _b = useGetSelectList(), list = _b.list, loading = _b.loading, setLoading = _b.setLoading;
438
+ var _c = useState(false), btnLoading = _c[0], setBtnLoading = _c[1];
438
439
  // 表格数据引用
439
440
  var recordsRef = useRef([]);
440
441
  // 初始化渲染,针对配置了editable、editableConfig的列配置
441
- var _c = useState(false), firstRender = _c[0], setFirstRender = _c[1];
442
+ var _d = useState(false), firstRender = _d[0], setFirstRender = _d[1];
442
443
  // 新增删除行改变
443
- var _d = useState(false), lengthChange = _d[0], setLengthChange = _d[1];
444
+ var _e = useState(false), lengthChange = _e[0], setLengthChange = _e[1];
444
445
  // 表格行拖拽改变
445
- var _e = useState(false), moveChange = _e[0], setMoveChange = _e[1];
446
+ var _f = useState(false), moveChange = _f[0], setMoveChange = _f[1];
446
447
  useEffect(function () {
447
448
  setFirstRender(true);
448
449
  }, []);
@@ -580,12 +581,21 @@ var TableDemo = function () {
580
581
  return "\u7B2C" + (index + 1) + "\u884C\uFF0C\u8D85\u51FA\u6700\u5927\u503C\uFF0C\u5DF2\u4FEE\u6539\u6210\u6700\u5927\u503C";
581
582
  },
582
583
  maxHandle: function (record) {
583
- return 10;
584
+ return 10000;
584
585
  },
585
586
  lowMinTip: function (record, index) {
586
587
  return "\u7B2C" + (index + 1) + "\u884C\uFF0C\u4F4E\u4E8E\u6700\u5C0F\u503C\uFF0C\u5DF2\u4FEE\u6539\u6210\u6700\u5C0F\u503C";
587
588
  },
588
589
  precision: 3,
590
+ formatterType: 'currency',
591
+ onBlur: function () {
592
+ setBtnLoading(false);
593
+ console.log('失去焦点了');
594
+ },
595
+ onFocus: function () {
596
+ setBtnLoading(true);
597
+ console.log('获得焦点了');
598
+ },
589
599
  },
590
600
  },
591
601
  {
@@ -714,7 +724,7 @@ var TableDemo = function () {
714
724
  },
715
725
  ];
716
726
  // 本地偏好设置相关
717
- var _f = useState(getStorage('test-table') || []), tableLayout = _f[0], setTableLayout = _f[1];
727
+ var _g = useState(getStorage('test-table') || []), tableLayout = _g[0], setTableLayout = _g[1];
718
728
  var onDynamicChange = useCallback(function (tableLayout) {
719
729
  // 剔除调一些可能不可序列化的字段,只保留关键数据
720
730
  var newTableLayout = tableLayout.map(function (item) { return ({
@@ -789,7 +799,10 @@ var TableDemo = function () {
789
799
  // 表格行拖拽
790
800
  onMoveRow: onMoveRowHandle }),
791
801
  React.createElement("div", null,
792
- React.createElement("button", { onClick: function () { return console.log(records); } }, "\u83B7\u53D6\u6570\u636E")),
802
+ React.createElement("button", { onClick: function () { return console.log(records); } }, "\u83B7\u53D6\u6570\u636E"),
803
+ React.createElement(Button, { loading: btnLoading, onClick: function () {
804
+ console.log(111);
805
+ } }, "\u70B9\u51FB")),
793
806
  React.createElement(Empty, null)));
794
807
  };
795
808
  function getStorage(key) {
@@ -28,7 +28,6 @@ import React, { useCallback, useEffect, memo, useRef, useState } from 'react';
28
28
  import { Select } from 'antd';
29
29
  import { useFetchState } from 'ztxkutils/dist/hooks';
30
30
  import debounce from 'lodash/debounce';
31
- import axios from 'axios';
32
31
  /**
33
32
  * 组件缓存的数据格式,在当前浏览器运行内,能保证是唯一的引用,用来缓存数据用
34
33
  * {
@@ -262,7 +261,6 @@ function EnhanceSelect(_a) {
262
261
  if (!url || remoteSearch) {
263
262
  return;
264
263
  }
265
- var source = null;
266
264
  // console.log('TEST: 异步获取');
267
265
  if (isCatch) {
268
266
  // 如果是走缓存的话,那么先往缓存数据中取,有没有当前数据,如果没有就发请求
@@ -278,45 +276,24 @@ function EnhanceSelect(_a) {
278
276
  }
279
277
  else {
280
278
  // 发送接口请求,并设置缓存数据
281
- source = axios.CancelToken.source();
282
- getDataHandle(request, { url: url, params: params, method: method, timeout: timeout, cancelToken: source.token }, {
279
+ getDataHandle(request, { url: url, params: params, method: method, timeout: timeout }, {
283
280
  appointObj: {
284
281
  obj: catchData,
285
282
  key: catchDataKey,
286
283
  },
287
- successCallback: function () {
288
- source = null;
289
- },
290
- errorCallback: function () {
291
- source = null;
292
- },
293
284
  });
294
285
  }
295
286
  }
296
287
  }
297
288
  else {
298
289
  // 直接发送接口请求
299
- source = axios.CancelToken.source();
300
290
  getDataHandle(request, {
301
291
  url: url,
302
292
  params: params,
303
293
  method: method,
304
294
  timeout: timeout,
305
- cancelToken: source.token,
306
- }, {
307
- successCallback: function () {
308
- source = null;
309
- },
310
- errorCallback: function () {
311
- source = null;
312
- },
313
295
  });
314
296
  }
315
- return function () {
316
- if (source) {
317
- source.cancel();
318
- }
319
- };
320
297
  }, [
321
298
  url,
322
299
  params,
@@ -335,7 +312,6 @@ function EnhanceSelect(_a) {
335
312
  if (!url || !remoteSearch) {
336
313
  return;
337
314
  }
338
- var source = null;
339
315
  // console.log('TEST: 远程搜索');
340
316
  // 如果初始化请求已经做过了,那么这个副作用直接返回
341
317
  if (firstLoading) {
@@ -350,39 +326,16 @@ function EnhanceSelect(_a) {
350
326
  }
351
327
  if (!restProps.value) {
352
328
  // console.log('第一次请求数据');
353
- source = axios.CancelToken.source();
354
- getRemoteDataHandle('', '', {
355
- options: { cancelToken: source.token },
356
- successCallback: function () {
357
- source = null;
358
- },
359
- errorCallback: function () {
360
- source = null;
361
- },
362
- });
329
+ getRemoteDataHandle('', '');
363
330
  }
364
331
  else {
365
332
  if (typeof restProps.value === 'string' ||
366
333
  (Array.isArray(restProps.value) && restProps.value.length > 0)) {
367
334
  // console.log('第二次请求数据,默认为需要根据主键去请求', restProps.value);
368
335
  setFirstLoading(true);
369
- source = axios.CancelToken.source();
370
- getRemoteDataHandle('', restProps.value, {
371
- options: { cancelToken: source.token },
372
- successCallback: function () {
373
- source = null;
374
- },
375
- errorCallback: function () {
376
- source = null;
377
- },
378
- });
336
+ getRemoteDataHandle('', restProps.value);
379
337
  }
380
338
  }
381
- return function () {
382
- if (source) {
383
- source.cancel();
384
- }
385
- };
386
339
  }, [
387
340
  url,
388
341
  remoteSearch,
@@ -396,27 +349,12 @@ function EnhanceSelect(_a) {
396
349
  if (!url || !remoteSearch) {
397
350
  return;
398
351
  }
399
- var source = null;
400
352
  // console.log('TEST: 远程搜索');
401
353
  // 这种情况不需要启用远程搜索key值
402
354
  if (!isRemoteSearchDataKey) {
403
- source = axios.CancelToken.source();
404
- getRemoteDataHandle('', '', {
405
- options: { cancelToken: source.token },
406
- successCallback: function () {
407
- source = null;
408
- },
409
- errorCallback: function () {
410
- source = null;
411
- },
412
- });
355
+ getRemoteDataHandle('', '');
413
356
  setFirstLoading(true);
414
357
  }
415
- return function () {
416
- if (source) {
417
- source.cancel();
418
- }
419
- };
420
358
  }, [
421
359
  url,
422
360
  remoteSearch,
@@ -23,11 +23,11 @@ var __rest = (this && this.__rest) || function (s, e) {
23
23
  import React, { useRef } from 'react';
24
24
  import { InputNumber as AntInputNumber } from 'antd';
25
25
  import { message } from '../../index';
26
- import useFormatter from '../../hooks/useFormatter';
26
+ import { getFormatter, } from '../../hooks/useFormatter';
27
27
  function InputNumber(props) {
28
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
29
  var selfValue = useRef();
30
- var _a = useFormatter(formatterType, currencySymbol), _formatter = _a.formatter, _parser = _a.parser, _precision = _a.precision;
30
+ var _a = getFormatter(formatterType, currencySymbol), _formatter = _a.formatter, _parser = _a.parser, _precision = _a.precision;
31
31
  var onChangeHandle = function (value) {
32
32
  selfValue.current = value;
33
33
  onChange && onChange(value);
@@ -180,7 +180,15 @@ var TableEnhanceCell = memo(function (_a) {
180
180
  }
181
181
  else if (type === 'inputNumber') {
182
182
  return (React.createElement(Form.Item, { className: "zt-table__enhance-cell", name: dataIndex },
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 }); } }))));
183
+ React.createElement(InputNumber, __assign({ autoComplete: "new-password", maxLength: 50 }, inputNumMaxMin, editableProps, inputNumberRangeTip, { disabled: disabledResult, onPressEnter: function (e) {
184
+ editableProps.onPressEnter && editableProps.onPressEnter(e);
185
+ save({ maxResult: maxResult, minResult: minResult });
186
+ }, onBlur: function (e) {
187
+ editableProps.onBlur && editableProps.onBlur(e);
188
+ save({ maxResult: maxResult, minResult: minResult });
189
+ }, onFocus: function (e) {
190
+ editableProps.onFocus(e);
191
+ } }))));
184
192
  }
185
193
  else if (type === 'textArea') {
186
194
  return (React.createElement(Form.Item, { className: "zt-table__enhance-cell", name: dataIndex },
@@ -16,4 +16,9 @@ declare function useFormatter(formatterType: IFormatterType | undefined, currenc
16
16
  parser: IParserFuc;
17
17
  precision: number;
18
18
  };
19
+ export declare function getFormatter(formatterType: IFormatterType | undefined, currencySymbol?: ICurrencySymbol): {
20
+ formatter: IFormatterFuc;
21
+ parser: IParserFuc;
22
+ precision: number;
23
+ };
19
24
  export default useFormatter;
@@ -20,7 +20,7 @@ function useFormatter(formatterType, currencySymbol) {
20
20
  // /\$\s?|(,*)/g
21
21
  return value
22
22
  ? // eslint-disable-next-line no-eval
23
- value.replace(eval("/" + currencySymbol + "s?|(,*)/g"), '')
23
+ value.replace(eval("/${currencySymbol}\\s?|(,*)/g"), '')
24
24
  : Number(value);
25
25
  };
26
26
  setFormatter(function () {
@@ -64,4 +64,45 @@ function useFormatter(formatterType, currencySymbol) {
64
64
  precision: precision,
65
65
  };
66
66
  }
67
+ export function getFormatter(formatterType, currencySymbol) {
68
+ if (currencySymbol === void 0) { currencySymbol = '$'; }
69
+ if (formatterType === 'currency') {
70
+ var formatterFn = function (value) {
71
+ return ("" + value).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
72
+ };
73
+ var parserFn = function (value) { return value.replace(/(,*)/g, ''); };
74
+ return {
75
+ formatter: formatterFn,
76
+ parser: parserFn,
77
+ precision: MONEY_PRECISION,
78
+ };
79
+ }
80
+ if (formatterType === 'percent') {
81
+ var formatterFn = function (value) { return value + "%"; };
82
+ var parserFn = function (value) {
83
+ return value ? value.replace('%', '') : Number(value);
84
+ };
85
+ return {
86
+ formatter: formatterFn,
87
+ parser: parserFn,
88
+ precision: QUANTITY_PRECISION,
89
+ };
90
+ }
91
+ if (formatterType === 'thousands') {
92
+ var formatterFn = function (value) { return value + "\u2030"; };
93
+ var parserFn = function (value) {
94
+ return value ? value.replace('‰', '') : Number(value);
95
+ };
96
+ return {
97
+ formatter: formatterFn,
98
+ parser: parserFn,
99
+ precision: QUANTITY_PRECISION,
100
+ };
101
+ }
102
+ return {
103
+ formatter: undefined,
104
+ parser: undefined,
105
+ precision: undefined,
106
+ };
107
+ }
67
108
  export default useFormatter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "3.0.3",
3
+ "version": "3.0.6",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",