@ccs-ui/rc-pro 1.1.25-beta-3 → 1.1.25-beta-4

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.
@@ -13,89 +13,21 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
13
13
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
14
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
15
15
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
- import { useEventEmitter } from 'ahooks';
17
16
  import { Empty, Form, theme } from 'antd';
18
17
  import classNames from 'classnames';
19
- import _isArray from 'lodash/isArray';
20
18
  import React, { useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
21
19
  import { CcsUtils, CcsWaterMark } from '..';
22
20
  import { useCcsPage } from "../";
23
21
  import CcsTable from "../table";
22
+ import { getAllChildrenId, getDataById, isComponent, onTableInModalOrDrawer, onTableInTabItem } from "./_utils";
24
23
  import "./index.less";
24
+ import TableOperation from "./operation";
25
25
  import SearchComponent from "./search";
26
26
  import TableTree from "./tree";
27
+
28
+ // 同 antd FormLayout; tradition为传统布局模式
27
29
  import { jsx as _jsx } from "react/jsx-runtime";
28
30
  import { jsxs as _jsxs } from "react/jsx-runtime";
29
- // 判断组件所处dom
30
- var onTableInModalOrDrawer = function onTableInModalOrDrawer(node) {
31
- var _parent$classList, _parent$classList2, _parent$classList3, _parent$classList4, _parent$classList5;
32
- var parent = node.parentNode;
33
- if (!parent) return false;
34
- if (
35
- // 通过指定dom吸顶
36
- (_parent$classList = parent.classList) !== null && _parent$classList !== void 0 && _parent$classList.contains('ccs-trigger-container') || (_parent$classList2 = parent.classList) !== null && _parent$classList2 !== void 0 && _parent$classList2.contains('ccs-drawer-content') || (_parent$classList3 = parent.classList) !== null && _parent$classList3 !== void 0 && _parent$classList3.contains('ant-drawer-body')) {
37
- return {
38
- getContainer: function getContainer() {
39
- return parent;
40
- },
41
- isInDialog: true
42
- };
43
- }
44
-
45
- // 在弹出框中吸顶top
46
- if ((_parent$classList4 = parent.classList) !== null && _parent$classList4 !== void 0 && _parent$classList4.contains('ant-modal') || (_parent$classList5 = parent.classList) !== null && _parent$classList5 !== void 0 && _parent$classList5.contains('ant-drawer')) {
47
- return {
48
- offsetHeader: 0,
49
- isInDialog: true
50
- };
51
- }
52
- return onTableInModalOrDrawer(parent);
53
- };
54
- var onTableInTabItem = function onTableInTabItem(node) {
55
- var _parent$classList6;
56
- var parent = node.parentNode;
57
- if (!parent) return false;
58
- if ( // 通过指定dom吸顶
59
- (_parent$classList6 = parent.classList) !== null && _parent$classList6 !== void 0 && _parent$classList6.contains('ccs-table-item-scroll')) {
60
- return {
61
- getContainer: function getContainer() {
62
- return node;
63
- }
64
- };
65
- }
66
-
67
- // if (
68
- // // 通过指定dom吸顶
69
- // parent.classList?.contains('ccs-single-page')
70
- // ) {
71
- // return { getContainer: () => node };
72
- // }
73
-
74
- return onTableInTabItem(parent);
75
- };
76
-
77
- // 根据ID查找树形节点
78
- var getDataById = function getDataById(data, rowKey, id) {
79
- if (!_isArray(data)) return;
80
- for (var i = 0; i < data.length; i += 1) {
81
- if (data[i][rowKey] === id) {
82
- return data[i];
83
- }
84
- if (data[i].children) {
85
- var v = getDataById(data[i].children, rowKey, id);
86
- if (v) return v;
87
- }
88
- }
89
- };
90
- var getAllChildrenId = function getAllChildrenId(data, rowKey) {
91
- return data.reduce(function (keys, item) {
92
- keys.push(item[rowKey]);
93
- if (item.children && _isArray(item.children)) {
94
- return keys.concat(getAllChildrenId(item.children, rowKey));
95
- }
96
- return keys;
97
- }, []);
98
- };
99
31
  export var classPrefix = 'ccs-pl';
100
32
 
101
33
  /**
@@ -126,7 +58,6 @@ var InternalProTable = function InternalProTable(props) {
126
58
  formInitValues = _props$formInitValues === void 0 ? {} : _props$formInitValues,
127
59
  onSearchBefore = props.onSearchBefore,
128
60
  onSearchAfter = props.onSearchAfter;
129
- var tableRef = useRef(null);
130
61
  var _useCcsPage = useCcsPage(),
131
62
  onAuth = _useCcsPage.onAuth;
132
63
  var _ref = table || {},
@@ -140,6 +71,10 @@ var InternalProTable = function InternalProTable(props) {
140
71
  var stickyRef = useRef(false);
141
72
  // column filter
142
73
  var filtersRef = useRef({});
74
+ // table content
75
+ var tableContentRef = useRef(null);
76
+ // table ref
77
+ var tableRef = useRef();
143
78
  // 查询form
144
79
  var _Form$useForm = Form.useForm(),
145
80
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
@@ -154,10 +89,13 @@ var InternalProTable = function InternalProTable(props) {
154
89
  _useState2 = _slicedToArray(_useState, 2),
155
90
  data = _useState2[0],
156
91
  setData = _useState2[1];
157
- var event$ = useEventEmitter();
158
92
  var treeRef = useRef(null);
159
93
  var _theme$useToken = theme.useToken(),
160
94
  token = _theme$useToken.token;
95
+ var _useState3 = useState([]),
96
+ _useState4 = _slicedToArray(_useState3, 2),
97
+ selectedRows = _useState4[0],
98
+ setSelectedRows = _useState4[1];
161
99
 
162
100
  // 权限判断
163
101
  var isAuth = useMemo(function () {
@@ -322,14 +260,14 @@ var InternalProTable = function InternalProTable(props) {
322
260
 
323
261
  useEffect(function () {
324
262
  // 判断是否在弹出框中
325
- var inMd = onTableInModalOrDrawer(tableRef.current);
263
+ var inMd = onTableInModalOrDrawer(tableContentRef.current);
326
264
  if (inMd) {
327
265
  stickyRef.current = inMd;
328
266
  return;
329
267
  }
330
268
 
331
269
  // 判断在tab中
332
- var inTab = onTableInTabItem(tableRef.current);
270
+ var inTab = onTableInTabItem(tableContentRef.current);
333
271
  if (inTab) {
334
272
  stickyRef.current = inTab;
335
273
  return;
@@ -380,6 +318,9 @@ var InternalProTable = function InternalProTable(props) {
380
318
  // form 数据 查询,重载,重置方法
381
319
  useImperativeHandle(proRef, function () {
382
320
  return {
321
+ data: data,
322
+ selectedRows: selectedRows,
323
+ formValues: form.getFieldsValue(),
383
324
  onSearch: function onSearch() {
384
325
  _onSearch();
385
326
  },
@@ -393,8 +334,9 @@ var InternalProTable = function InternalProTable(props) {
393
334
  _onReset();
394
335
  },
395
336
  onChangeData: setData,
396
- formValues: form.getFieldsValue(),
397
- data: data
337
+ onClearSelected: function onClearSelected() {
338
+ return setSelectedRows([]);
339
+ }
398
340
  };
399
341
  });
400
342
 
@@ -478,13 +420,38 @@ var InternalProTable = function InternalProTable(props) {
478
420
  }
479
421
  }
480
422
 
423
+ // selection
424
+ var rowSelection = table.rowSelection && CcsUtils.isEmpty(table.rowSelection) ? {
425
+ selectedRowKeys: selectedRows.map(function (k) {
426
+ return k[rowKey];
427
+ }),
428
+ onChange: function onChange(_, rows) {
429
+ return setSelectedRows(rows);
430
+ },
431
+ preserveSelectedRowKeys: true
432
+ } : table.rowSelection;
433
+
434
+ // table title
435
+ var tableTitle = table.title ? table.title({
436
+ selectedRows: selectedRows,
437
+ data: data.result || [],
438
+ onClear: function onClear() {
439
+ return setSelectedRows([]);
440
+ }
441
+ }) : undefined;
442
+
481
443
  // 异步树
482
444
  if (parentFieldName) {
483
445
  return /*#__PURE__*/_jsx(TableTree, {
484
446
  data: data,
485
- table: table,
486
- event$: event$,
447
+ table: _objectSpread(_objectSpread({}, table), {}, {
448
+ rowSelection: rowSelection,
449
+ title: tableTitle ? function () {
450
+ return tableTitle;
451
+ } : undefined
452
+ }),
487
453
  treeRef: treeRef,
454
+ tableRef: tableRef,
488
455
  sticky: stickyRef.current || true,
489
456
  parentFieldName: parentFieldName,
490
457
  setData: setData,
@@ -495,18 +462,32 @@ var InternalProTable = function InternalProTable(props) {
495
462
  });
496
463
  }
497
464
  return /*#__PURE__*/_jsx(CcsTable, _objectSpread(_objectSpread({
498
- onChange: handlePageChange,
499
465
  data: data,
500
- event$: event$,
466
+ tableRef: tableRef,
467
+ onChange: handlePageChange,
501
468
  size: isInModalOrDrawer ? 'small' : 'middle',
502
469
  sticky: stickyRef.current || true
503
470
  }, table), {}, {
504
471
  columns: columns,
505
472
  showSorterTooltip: true,
473
+ rowSelection: rowSelection,
474
+ showNumber: props.showNumber,
506
475
  loading: table.loading || data.loading || false,
507
- showNumber: props.showNumber
476
+ title: tableTitle ? function () {
477
+ return tableTitle;
478
+ } : undefined
508
479
  }));
509
480
  };
481
+ var isAuthGroupToolbar = isComponent(toolbar, 'AuthGroup');
482
+ var isAuthGroupToolbarExtra = isComponent(toolbarExtra, 'AuthGroup');
483
+ var newToolbar = isAuthGroupToolbar ? /*#__PURE__*/React.cloneElement(toolbar, {
484
+ selectedRows: selectedRows
485
+ }) : toolbar;
486
+ var newToolbarExtra = isAuthGroupToolbarExtra ? /*#__PURE__*/React.cloneElement(toolbarExtra, {
487
+ selectedRows: selectedRows
488
+ }) : toolbarExtra;
489
+
490
+ // 暗黑模式
510
491
  var isDark = token._appTheme === 'dark';
511
492
  var render = /*#__PURE__*/_jsxs("div", {
512
493
  className: classNames(classPrefix, className, _defineProperty({}, 'dark-table', isDark)),
@@ -515,23 +496,25 @@ var InternalProTable = function InternalProTable(props) {
515
496
  form: form,
516
497
  title: title,
517
498
  titleBordered: table === null || table === void 0 ? void 0 : table.bordered,
518
- toolbar: toolbar,
519
- columns: columns,
499
+ toolbar: newToolbar,
520
500
  formItems: formItems,
521
501
  expandForm: expandForm,
522
502
  formInitValues: formInitValues,
523
- isInModalOrDrawer: isInModalOrDrawer,
524
503
  formItemLabelWidth: props.formItemLabelWidth,
525
504
  formItemLayout: props.formItemLayout,
526
505
  formItemCol: props.formItemCol,
527
- event$: event$,
528
506
  onSearch: _onSearch,
529
- onReset: _onReset,
530
- children: toolbarExtra
507
+ tableOperation: /*#__PURE__*/_jsx(TableOperation, {
508
+ isInModalOrDrawer: isInModalOrDrawer,
509
+ onReset: _onReset,
510
+ columns: columns,
511
+ tableRef: tableRef
512
+ }),
513
+ children: newToolbarExtra
531
514
  }), /*#__PURE__*/_jsxs("div", {
532
- className: "".concat(classPrefix, "-table-content"),
515
+ className: "".concat(classPrefix, "-table-content ").concat(props.formItemLayout),
533
516
  style: tableStyle,
534
- ref: tableRef,
517
+ ref: tableContentRef,
535
518
  children: [renderTable(), children]
536
519
  })]
537
520
  });
@@ -1,8 +1,8 @@
1
- import { EventEmitter } from 'ahooks/lib/useEventEmitter';
2
1
  import { TableSticky } from 'rc-table/lib/interface';
3
2
  import { RefObject } from 'react';
4
3
  import CCS from '..';
5
4
  import { HttpResult } from '../ccs';
5
+ import { TableRefType } from '../table';
6
6
  import { CcsProTableProps, SearchEventType } from './table';
7
7
  export type TreeInstance<T> = {
8
8
  onRequestTree: (query: any, record: T | any) => void;
@@ -10,17 +10,15 @@ export type TreeInstance<T> = {
10
10
  };
11
11
  type TreeTableProps<T> = Pick<CcsProTableProps<T>, 'table' | 'onSearchBefore' | 'parentFieldName'> & {
12
12
  data: CCS.TableData<T>;
13
- event$: EventEmitter<{
14
- key: 'formFilter' | 'columnFilter' | 'columnFilter';
15
- }>;
16
- treeRef: RefObject<TreeInstance<T>>;
17
13
  isInModalOrDrawer: boolean;
18
14
  sticky: boolean | TableSticky;
15
+ treeRef: RefObject<TreeInstance<T>>;
16
+ tableRef: React.MutableRefObject<TableRefType | undefined>;
19
17
  setData: React.Dispatch<React.SetStateAction<CCS.TableData<T>>>;
20
18
  handlePageChange: any;
21
19
  onSearchAfter: (data: HttpResult<T[]>, eventType?: SearchEventType) => HttpResult<(T & {
22
20
  children: T[];
23
21
  })[]>;
24
22
  };
25
- declare const TableTree: <T extends object = any>({ data, table, event$, treeRef, sticky, setData, onSearchAfter, onSearchBefore, parentFieldName, handlePageChange, isInModalOrDrawer, }: TreeTableProps<T>) => import("react/jsx-runtime").JSX.Element;
23
+ declare const TableTree: <T extends object = any>({ data, table, sticky, treeRef, tableRef, setData, onSearchAfter, onSearchBefore, parentFieldName, handlePageChange, isInModalOrDrawer, }: TreeTableProps<T>) => import("react/jsx-runtime").JSX.Element;
26
24
  export default TableTree;
@@ -23,9 +23,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
23
23
  var TableTree = function TableTree(_ref) {
24
24
  var data = _ref.data,
25
25
  table = _ref.table,
26
- event$ = _ref.event$,
27
- treeRef = _ref.treeRef,
28
26
  sticky = _ref.sticky,
27
+ treeRef = _ref.treeRef,
28
+ tableRef = _ref.tableRef,
29
29
  setData = _ref.setData,
30
30
  onSearchAfter = _ref.onSearchAfter,
31
31
  onSearchBefore = _ref.onSearchBefore,
@@ -150,8 +150,6 @@ var TableTree = function TableTree(_ref) {
150
150
  }));
151
151
  }
152
152
  };
153
-
154
- // 添加吸顶
155
153
  var tableParams = _objectSpread(_objectSpread({
156
154
  sticky: sticky
157
155
  }, table), {}, {
@@ -161,7 +159,7 @@ var TableTree = function TableTree(_ref) {
161
159
  return /*#__PURE__*/_jsx(CcsTable, _objectSpread(_objectSpread({
162
160
  onChange: handlePageChange,
163
161
  data: data,
164
- event$: event$,
162
+ tableRef: tableRef,
165
163
  size: isInModalOrDrawer ? 'small' : 'middle'
166
164
  }, tableParams), {}, {
167
165
  columns: columns,
@@ -1,5 +1,13 @@
1
+ /// <reference types="react" />
1
2
  import { CcsProTableProps, CcsTableProps } from '../pro-table/table';
2
3
  import './index.less';
3
- type TableProps<T> = Omit<CcsTableProps<T>, 'request' | 'requestParam'> & Pick<CcsProTableProps<T>, 'showNumber'>;
4
+ type TableProps<T> = Omit<CcsTableProps<T>, 'request' | 'requestParam' | 'title'> & Pick<CcsProTableProps<T>, 'showNumber'> & {
5
+ title?: any;
6
+ tableRef?: React.MutableRefObject<TableRefType | undefined>;
7
+ };
8
+ export type TableRefType = {
9
+ onColumnFilter: (e: any) => void;
10
+ onFullScreen: () => void;
11
+ };
4
12
  declare const CustomTable: <T extends object = any>(props: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
5
13
  export default CustomTable;
package/es/table/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
  var _excluded = ["onResize", "width"],
3
- _excluded2 = ["data", "style", "scroll", "event$", "rowKey", "columns", "pagination", "rowSelection", "className"];
3
+ _excluded2 = ["data", "style", "scroll", "rowKey", "columns", "tableRef", "pagination", "rowSelection", "className"];
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -11,7 +11,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
11
11
  import { useDebounceFn, useEventListener, useUpdate, useUpdateEffect } from 'ahooks';
12
12
  import { Table, Tooltip, theme } from 'antd';
13
13
  import classNames from 'classnames';
14
- import { useRef } from 'react';
14
+ import { useImperativeHandle, useRef } from 'react';
15
15
  import { Resizable } from 'react-resizable';
16
16
  import CcsResult from "../result";
17
17
  import "./index.less";
@@ -50,9 +50,9 @@ var CustomTable = function CustomTable(props) {
50
50
  var data = props.data,
51
51
  style = props.style,
52
52
  scroll = props.scroll,
53
- event$ = props.event$,
54
53
  rowKey = props.rowKey,
55
54
  columns = props.columns,
55
+ tableRef = props.tableRef,
56
56
  pagination = props.pagination,
57
57
  rowSelection = props.rowSelection,
58
58
  _props$className = props.className,
@@ -71,29 +71,30 @@ var CustomTable = function CustomTable(props) {
71
71
  // table 固定表头,内容滚动
72
72
  var _useDebounceFn = useDebounceFn(function () {
73
73
  if ((scroll === null || scroll === void 0 ? void 0 : scroll.y) === 'auto') {
74
- var _ref$current, _ref$current2, _ref$current3, _ref$current4;
75
- var _ref2 = (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getBoundingClientRect()) || {
74
+ var _ref$current, _ref$current2;
75
+ var tableBody = ref.current.getElementsByClassName('ant-table-body')[0];
76
+ if (!tableBody) return;
77
+ var _ref2 = tableBody.getBoundingClientRect() || {
76
78
  top: 0
77
79
  },
78
80
  top = _ref2.top;
79
81
  var bodyHeight = document.body.clientHeight;
80
- var theadHeight = 0;
81
- var pageHeight = 0;
82
- var thead = (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.getElementsByClassName('ant-table-thead');
83
- if (thead && thead.length > 0) {
84
- theadHeight = thead[0].clientHeight;
85
- }
86
- var _pagination = (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.getElementsByClassName('ant-pagination');
82
+ var pageHeight = 0,
83
+ footerHeight = 0;
84
+ var _pagination = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getElementsByClassName('ant-pagination');
87
85
  if (_pagination && _pagination.length > 0) {
88
86
  pageHeight = _pagination[0].clientHeight;
89
87
  }
90
- var scrollHeight = bodyHeight - top - 16 - theadHeight - pageHeight - (restProps.title ? 46 : 0) - (restProps.footer ? 46 : 0);
88
+ var footer = (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.getElementsByClassName('ant-table-footer');
89
+ if (footer && footer.length > 0) {
90
+ footerHeight = footer[0].clientHeight;
91
+ }
92
+
93
+ // 计算table数据区高度
94
+ var scrollHeight = bodyHeight - top - pageHeight - footerHeight - 16;
91
95
 
92
96
  // 固定tbody高度
93
- var tbody = (_ref$current4 = ref.current) === null || _ref$current4 === void 0 ? void 0 : _ref$current4.getElementsByClassName('ant-table-body');
94
- if (tbody && tbody.length > 0 && tbody[0].style) {
95
- tbody[0].style.height = "".concat(scrollHeight, "px");
96
- }
97
+ tableBody.style.height = "".concat(scrollHeight, "px");
97
98
  }
98
99
  }, {
99
100
  wait: 500,
@@ -110,16 +111,16 @@ var CustomTable = function CustomTable(props) {
110
111
  });
111
112
 
112
113
  // 监听列筛选事件
113
- event$ === null || event$ === void 0 ? void 0 : event$.useSubscription(function (e) {
114
- if (e.key === 'columnFilter') {
115
- columns === null || columns === void 0 ? void 0 : columns.forEach(function (c) {
116
- c.hidden = e.columnHiddenKeys.includes(c.dataIndex);
117
- });
118
- update();
119
- }
120
- if (e.key === 'fullScreen') {
121
- onFixedThead();
122
- }
114
+ useImperativeHandle(tableRef, function () {
115
+ return {
116
+ onColumnFilter: function onColumnFilter(e) {
117
+ columns === null || columns === void 0 ? void 0 : columns.forEach(function (c) {
118
+ c.hidden = e.columnHiddenKeys.includes(c.dataIndex);
119
+ });
120
+ update();
121
+ },
122
+ onFullScreen: onFixedThead
123
+ };
123
124
  });
124
125
 
125
126
  // 改变列宽
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ccs-ui/rc-pro",
3
- "version": "1.1.25-beta-3",
4
- "description": "验证码组件兼容暗黑模式;",
3
+ "version": "1.1.25-beta-4",
4
+ "description": "验证码组件兼容暗黑模式;proTable封装rowselection代码;proTable添加传统布局模式;",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Hong",