@vtx/components 2.4.2 → 2.5.0

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 (100) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/lib/vtx-datagrid/Alert.js +45 -0
  3. package/lib/vtx-datagrid/Alert.js.map +1 -0
  4. package/lib/vtx-datagrid/index.js +60 -16
  5. package/lib/vtx-datagrid/index.js.map +1 -1
  6. package/lib/vtx-datagrid/style/css.js +4 -0
  7. package/lib/vtx-datagrid/style/css.js.map +1 -1
  8. package/lib/vtx-datagrid/style/index.css +22 -1
  9. package/lib/vtx-datagrid/style/index.js +4 -0
  10. package/lib/vtx-datagrid/style/index.js.map +1 -1
  11. package/lib/vtx-datagrid/style/index.less +25 -1
  12. package/lib/vtx-form-layout/Card.js +83 -0
  13. package/lib/vtx-form-layout/Card.js.map +1 -0
  14. package/lib/vtx-form-layout/Divider.js +22 -0
  15. package/lib/vtx-form-layout/Divider.js.map +1 -0
  16. package/lib/vtx-form-layout/FormItem.js +26 -12
  17. package/lib/vtx-form-layout/FormItem.js.map +1 -1
  18. package/lib/vtx-form-layout/Pane.js +34 -0
  19. package/lib/vtx-form-layout/Pane.js.map +1 -0
  20. package/lib/vtx-form-layout/Row.js +25 -0
  21. package/lib/vtx-form-layout/Row.js.map +1 -0
  22. package/lib/vtx-form-layout/demo/Modal.css +42 -0
  23. package/lib/vtx-form-layout/demo/Modal.less +41 -0
  24. package/lib/vtx-form-layout/index.js +30 -7
  25. package/lib/vtx-form-layout/index.js.map +1 -1
  26. package/lib/vtx-form-layout/style/css.js +4 -0
  27. package/lib/vtx-form-layout/style/css.js.map +1 -1
  28. package/lib/vtx-form-layout/style/index.css +116 -0
  29. package/lib/vtx-form-layout/style/index.js +4 -0
  30. package/lib/vtx-form-layout/style/index.js.map +1 -1
  31. package/lib/vtx-form-layout/style/index.less +133 -0
  32. package/lib/vtx-input/index.js +13 -2
  33. package/lib/vtx-input/index.js.map +1 -1
  34. package/lib/vtx-modal/Title.js +32 -0
  35. package/lib/vtx-modal/Title.js.map +1 -0
  36. package/lib/vtx-modal/index.js +10 -0
  37. package/lib/vtx-modal/index.js.map +1 -1
  38. package/lib/vtx-modal/style/index.css +11 -0
  39. package/lib/vtx-modal/style/index.less +16 -0
  40. package/lib/vtx-page-layout/Basic.js +0 -1
  41. package/lib/vtx-page-layout/Basic.js.map +1 -1
  42. package/lib/vtx-page-layout/Pane.js +50 -0
  43. package/lib/vtx-page-layout/Pane.js.map +1 -0
  44. package/lib/vtx-page-layout/TableLayout.js +165 -0
  45. package/lib/vtx-page-layout/TableLayout.js.map +1 -0
  46. package/lib/vtx-page-layout/index.js +6 -0
  47. package/lib/vtx-page-layout/index.js.map +1 -1
  48. package/lib/vtx-page-layout/style/index.css +50 -1
  49. package/lib/vtx-page-layout/style/index.less +55 -1
  50. package/lib/vtx-rps-frame/index.js +1 -1
  51. package/lib/vtx-rps-frame/index.js.map +1 -1
  52. package/lib/vtx-scrollable-row/index.js +227 -0
  53. package/lib/vtx-scrollable-row/index.js.map +1 -0
  54. package/lib/vtx-scrollable-row/style/css.js +6 -0
  55. package/lib/vtx-scrollable-row/style/css.js.map +1 -0
  56. package/lib/vtx-scrollable-row/style/index.css +111 -0
  57. package/lib/vtx-scrollable-row/style/index.js +6 -0
  58. package/lib/vtx-scrollable-row/style/index.js.map +1 -0
  59. package/lib/vtx-scrollable-row/style/index.less +111 -0
  60. package/lib/vtx-search/VtxCol.js +2 -2
  61. package/lib/vtx-search/VtxCol.js.map +1 -1
  62. package/lib/vtx-search/VtxRow.js +6 -3
  63. package/lib/vtx-search/VtxRow.js.map +1 -1
  64. package/lib/vtx-search/index.js +42 -38
  65. package/lib/vtx-search/index.js.map +1 -1
  66. package/lib/vtx-search/style/css.js +2 -0
  67. package/lib/vtx-search/style/css.js.map +1 -1
  68. package/lib/vtx-search/style/index.css +25 -24
  69. package/lib/vtx-search/style/index.js +2 -0
  70. package/lib/vtx-search/style/index.js.map +1 -1
  71. package/lib/vtx-search/style/index.less +27 -25
  72. package/lib/vtx-select/index.js +2 -1
  73. package/lib/vtx-select/index.js.map +1 -1
  74. package/lib/vtx-split-pane/SplitPane.js +1 -0
  75. package/lib/vtx-split-pane/SplitPane.js.map +1 -1
  76. package/lib/vtx-statistics-column/Back.js +29 -0
  77. package/lib/vtx-statistics-column/Back.js.map +1 -0
  78. package/lib/vtx-statistics-column/Item.js +68 -0
  79. package/lib/vtx-statistics-column/Item.js.map +1 -0
  80. package/lib/vtx-statistics-column/Total.js +68 -0
  81. package/lib/vtx-statistics-column/Total.js.map +1 -0
  82. package/lib/vtx-statistics-column/context.js +12 -0
  83. package/lib/vtx-statistics-column/context.js.map +1 -0
  84. package/lib/vtx-statistics-column/index.js +63 -0
  85. package/lib/vtx-statistics-column/index.js.map +1 -0
  86. package/lib/vtx-statistics-column/style/css.js +4 -0
  87. package/lib/vtx-statistics-column/style/css.js.map +1 -0
  88. package/lib/vtx-statistics-column/style/index.css +55 -0
  89. package/lib/vtx-statistics-column/style/index.js +4 -0
  90. package/lib/vtx-statistics-column/style/index.js.map +1 -0
  91. package/lib/vtx-statistics-column/style/index.less +61 -0
  92. package/lib/vtx-upload/index.js +3 -3
  93. package/lib/vtx-upload/index.js.map +1 -1
  94. package/lib/vtx-ztree/style/index.css +5 -5
  95. package/lib/vtx-ztree/style/index.less +5 -5
  96. package/lib/vtx-ztree-select/index.js +4 -8
  97. package/lib/vtx-ztree-select/index.js.map +1 -1
  98. package/lib/vtx-ztree-select/style/index.css +20 -1
  99. package/lib/vtx-ztree-select/style/index.less +28 -2
  100. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,69 @@
1
+ # [2.5.0](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.4.2...2.5.0) (2021-11-23)
2
+
3
+
4
+ ### ✨ Features
5
+
6
+ * 上传附近VtxUpload支持自定义headers和beforeUpload回调中添加file参数 ([1f41160](https://git.cloudhw.cn:3443/front-end/react-components/commit/1f41160)) by: **gongjinhua**
7
+ * 下拉树VtxZtreeSelect清除图标样式和Antd样式统一 ([26befd7](https://git.cloudhw.cn:3443/front-end/react-components/commit/26befd7)) by: **gongjinhua**
8
+ * 下拉选VtxSelect默认支持清除 ([76e54bf](https://git.cloudhw.cn:3443/front-end/react-components/commit/76e54bf)) by: **gongjinhua**
9
+ * 报表VtxRpsFrame属性data_param支持Array ([0b590ef](https://git.cloudhw.cn:3443/front-end/react-components/commit/0b590ef)) by: **gongjinhua**
10
+ * 数据表格VtxDatagrid新增统计列 ([f3f5477](https://git.cloudhw.cn:3443/front-end/react-components/commit/f3f5477)) by: **gongjinhua**
11
+ * 数据表格VtxDatagrid添加indexFixed属性 ([5492760](https://git.cloudhw.cn:3443/front-end/react-components/commit/5492760)) by: **gongjinhua**
12
+ * 文本VtxInput默认过滤两边空格 ([bd9ae00](https://git.cloudhw.cn:3443/front-end/react-components/commit/bd9ae00)) by: **gongjinhua**
13
+ * 文本框VtxInput设置autocomplete为false关闭自动完成 ([549c638](https://git.cloudhw.cn:3443/front-end/react-components/commit/549c638)) by: **gongjinhua**
14
+ * 新增可横向滚动列VtxScrollableRow ([3920852](https://git.cloudhw.cn:3443/front-end/react-components/commit/3920852)) by: **gongjinhua**
15
+ * 新增统计栏VtxStatisticsColumn ([f7a615b](https://git.cloudhw.cn:3443/front-end/react-components/commit/f7a615b)) by: **gongjinhua**
16
+ * 查询布局VtxSearch样式修改 ([4d93dfd](https://git.cloudhw.cn:3443/front-end/react-components/commit/4d93dfd)) by: **gongjinhua**
17
+ * 树ztree搜索框间距调整为12px ([28f857c](https://git.cloudhw.cn:3443/front-end/react-components/commit/28f857c)) by: **gongjinhua**
18
+ * 模态框VtxModal上下内间距调整为20px ([31a2ff2](https://git.cloudhw.cn:3443/front-end/react-components/commit/31a2ff2)) by: **gongjinhua**
19
+ * 模态框VtxModal新增大小配置 ([de1eaa0](https://git.cloudhw.cn:3443/front-end/react-components/commit/de1eaa0)) by: **gongjinhua**
20
+ * 模态框新增标题VtxModal.Title组件 ([2dafc6a](https://git.cloudhw.cn:3443/front-end/react-components/commit/2dafc6a)) by: **gongjinhua**
21
+ * 表单布局VtxFormLayout修改 ([0ea5e88](https://git.cloudhw.cn:3443/front-end/react-components/commit/0ea5e88)) by: **gongjinhua**
22
+ * 表单布局VtxFormLayout布局模式修改 ([46c6cc8](https://git.cloudhw.cn:3443/front-end/react-components/commit/46c6cc8)) by: **gongjinhua**
23
+ * 表单布局VtxFormLayout标签名称后去除冒号":"显示 ([a9e2cdc](https://git.cloudhw.cn:3443/front-end/react-components/commit/a9e2cdc)) by: **gongjinhua**
24
+ * 表单组件VtxFormLayout标签分组和窗格分组 ([59f0495](https://git.cloudhw.cn:3443/front-end/react-components/commit/59f0495)) by: **gongjinhua**
25
+ * 表格VtxDatagrid单元格去除选中背景色 ([f5fade9](https://git.cloudhw.cn:3443/front-end/react-components/commit/f5fade9)) by: **gongjinhua**
26
+ * 表格VtxDatagrid空数据时图标修改,表格样式调整 ([b7a8888](https://git.cloudhw.cn:3443/front-end/react-components/commit/b7a8888)) by: **gongjinhua**
27
+ * 页面布局VtxPageLayout新增左右布局窗格 ([184b7e5](https://git.cloudhw.cn:3443/front-end/react-components/commit/184b7e5)) by: **gongjinhua**
28
+ * 页面布局VtxPageLayout添加统计表格布局 ([44c9f81](https://git.cloudhw.cn:3443/front-end/react-components/commit/44c9f81)) by: **gongjinhua**
29
+ * 页面布局新增CRUD布局 ([f6bb676](https://git.cloudhw.cn:3443/front-end/react-components/commit/f6bb676)) by: **gongjinhua**
30
+
31
+
32
+ ### 🎫 Chores
33
+
34
+ * 设置antd主题样式border-radius-base为2px ([bb88a79](https://git.cloudhw.cn:3443/front-end/react-components/commit/bb88a79)) by: **gongjinhua**
35
+ * 调整demo内样式 ([47e2145](https://git.cloudhw.cn:3443/front-end/react-components/commit/47e2145)) by: **gongjinhua**
36
+
37
+
38
+ ### 🐛 Bug Fixes
39
+
40
+ * 修复分割面板VtxSplitPane组件销毁后onresize监听事件仍存在导致报错的问题 ([08186c4](https://git.cloudhw.cn:3443/front-end/react-components/commit/08186c4)) by: **gongjinhua**
41
+ * 暂时使用本地变量打包,后续改成antd主题文件中获取 ([b2bf089](https://git.cloudhw.cn:3443/front-end/react-components/commit/b2bf089)) by: **gongjinhua**
42
+
43
+
44
+ ### 📝 Documentation
45
+
46
+ * 完善统计栏VtxStatisticsColumn文档 ([bce60c9](https://git.cloudhw.cn:3443/front-end/react-components/commit/bce60c9)) by: **gongjinhua**
47
+ * 数据表格VtxDatagrid添加固定列示例 ([30b9753](https://git.cloudhw.cn:3443/front-end/react-components/commit/30b9753)) by: **gongjinhua**
48
+ * 样式调整 ([2668d35](https://git.cloudhw.cn:3443/front-end/react-components/commit/2668d35)) by: **gongjinhua**
49
+ * 添加富文本空值检验示例 ([00f31c7](https://git.cloudhw.cn:3443/front-end/react-components/commit/00f31c7)) by: **gongjinhua**
50
+ * 添加模态框VtxModal大小配置 ([71b847d](https://git.cloudhw.cn:3443/front-end/react-components/commit/71b847d)) by: **gongjinhua**
51
+ * 版本号修改为2.5.0 ([081963b](https://git.cloudhw.cn:3443/front-end/react-components/commit/081963b)) by: **gongjinhua**
52
+ * 统计栏VtxStatisticsColumn归类到数据显示中 ([4a856aa](https://git.cloudhw.cn:3443/front-end/react-components/commit/4a856aa)) by: **gongjinhua**
53
+ * 表单布局文档示例中模态框宽度使用VtxModal.size ([8f5c0aa](https://git.cloudhw.cn:3443/front-end/react-components/commit/8f5c0aa)) by: **gongjinhua**
54
+ * 表单布局示例文字修改 ([4c6bf94](https://git.cloudhw.cn:3443/front-end/react-components/commit/4c6bf94)) by: **gongjinhua**
55
+ * 表格列设置示例修改 ([2a5c92c](https://git.cloudhw.cn:3443/front-end/react-components/commit/2a5c92c)) by: **gongjinhua**
56
+
57
+
58
+
1
59
  ## [2.4.2](https://git.cloudhw.cn:3443/front-end/react-components/compare/2.4.1...2.4.2) (2021-10-25)
2
60
 
3
61
 
62
+ ### 🎫 Chores
63
+
64
+ * release v2.4.2 ([f70e16f](https://git.cloudhw.cn:3443/front-end/react-components/commit/f70e16f)) by: **gongjinhua**
65
+
66
+
4
67
  ### 🐛 Bug Fixes
5
68
 
6
69
  * 修复VtxImage放大预览时图片路径不全导致图片显示错误的问题 ([e77a582](https://git.cloudhw.cn:3443/front-end/react-components/commit/e77a582)) by: **gongjinhua**
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _alert = _interopRequireDefault(require("antd/es/alert"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function TableAlert(_ref) {
17
+ var prefixCls = _ref.prefixCls,
18
+ _ref$selectedRowKeys = _ref.selectedRowKeys,
19
+ selectedRowKeys = _ref$selectedRowKeys === void 0 ? [] : _ref$selectedRowKeys,
20
+ claerRowSelection = _ref.claerRowSelection;
21
+
22
+ var message = /*#__PURE__*/_react["default"].createElement("div", {
23
+ className: "".concat(prefixCls, "-alert-message")
24
+ }, /*#__PURE__*/_react["default"].createElement("span", {
25
+ className: "".concat(prefixCls, "-alert-info-content")
26
+ }, "\u5DF2\u9009\u62E9", /*#__PURE__*/_react["default"].createElement("strong", null, selectedRowKeys.length), "\u9879"), /*#__PURE__*/_react["default"].createElement("a", {
27
+ className: "".concat(prefixCls, "-alert-info-option"),
28
+ onClick: claerRowSelection
29
+ }, "\u6E05\u7A7A\u9009\u62E9"));
30
+
31
+ return /*#__PURE__*/_react["default"].createElement(_alert["default"], {
32
+ type: "info",
33
+ showIcon: true,
34
+ message: message
35
+ });
36
+ }
37
+
38
+ var _default = TableAlert;
39
+ exports["default"] = _default;
40
+ TableAlert.propTypes = {
41
+ prefixCls: _propTypes["default"].string,
42
+ selectedRowKeys: _propTypes["default"].array,
43
+ claerRowSelection: _propTypes["default"].func
44
+ };
45
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["vtx-datagrid/Alert.jsx"],"names":["TableAlert","prefixCls","selectedRowKeys","claerRowSelection","message","length","propTypes","PropTypes","string","array","func"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,SAASA,UAAT,OAA4E;AAAA,MAAtDC,SAAsD,QAAtDA,SAAsD;AAAA,kCAA3CC,eAA2C;AAAA,MAA3CA,eAA2C,qCAAzB,EAAyB;AAAA,MAArBC,iBAAqB,QAArBA,iBAAqB;;AACxE,MAAMC,OAAO,gBACT;AAAK,IAAA,SAAS,YAAKH,SAAL;AAAd,kBACI;AAAM,IAAA,SAAS,YAAKA,SAAL;AAAf,wCACO,gDAASC,eAAe,CAACG,MAAzB,CADP,WADJ,eAII;AAAG,IAAA,SAAS,YAAKJ,SAAL,uBAAZ;AAAgD,IAAA,OAAO,EAAEE;AAAzD,gCAJJ,CADJ;;AAUA,sBAAO,gCAAC,iBAAD;AAAO,IAAA,IAAI,EAAC,MAAZ;AAAmB,IAAA,QAAQ,MAA3B;AAA4B,IAAA,OAAO,EAAEC;AAArC,IAAP;AACH;;eAEcJ,U;;AAEfA,UAAU,CAACM,SAAX,GAAuB;AACnBL,EAAAA,SAAS,EAAEM,sBAAUC,MADF;AAEnBN,EAAAA,eAAe,EAAEK,sBAAUE,KAFR;AAGnBN,EAAAA,iBAAiB,EAAEI,sBAAUG;AAHV,CAAvB","sourcesContent":["import React from 'react';\nimport Alert from 'antd/es/alert';\nimport PropTypes from 'prop-types';\n\nfunction TableAlert({ prefixCls, selectedRowKeys = [], claerRowSelection }) {\n const message = (\n <div className={`${prefixCls}-alert-message`}>\n <span className={`${prefixCls}-alert-info-content`}>\n 已选择<strong>{selectedRowKeys.length}</strong>项\n </span>\n <a className={`${prefixCls}-alert-info-option`} onClick={claerRowSelection}>\n 清空选择\n </a>\n </div>\n );\n return <Alert type=\"info\" showIcon message={message} />;\n}\n\nexport default TableAlert;\n\nTableAlert.propTypes = {\n prefixCls: PropTypes.string,\n selectedRowKeys: PropTypes.array,\n claerRowSelection: PropTypes.func,\n};\n"],"file":"Alert.js"}
@@ -19,10 +19,14 @@ var _dropdown = _interopRequireDefault(require("antd/es/dropdown"));
19
19
 
20
20
  var _menu = _interopRequireDefault(require("antd/es/menu"));
21
21
 
22
+ var _empty = _interopRequireDefault(require("antd/es/empty"));
23
+
22
24
  var _classnames2 = _interopRequireDefault(require("classnames"));
23
25
 
24
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
27
 
28
+ var _Alert = _interopRequireDefault(require("./Alert"));
29
+
26
30
  var _ColumnSetting = _interopRequireDefault(require("./ColumnSetting"));
27
31
 
28
32
  var _ResizeableTitle = _interopRequireDefault(require("./ResizeableTitle"));
@@ -72,7 +76,7 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
72
76
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
73
77
 
74
78
  function VtxDatagrid(props) {
75
- var _dataSource2, _classnames;
79
+ var _rest$rowSelection, _rest$rowSelection2, _dataSource2, _classnames, _rest$rowSelection3;
76
80
 
77
81
  var _useSet = (0, _useSet3["default"])({
78
82
  // 显示列
@@ -83,7 +87,7 @@ function VtxDatagrid(props) {
83
87
  columnSettingOptions: [],
84
88
  datagridId: "vtx-datagrid-".concat(new Date().getTime()),
85
89
  scrollY: null,
86
- size: 'default'
90
+ size: 'middle'
87
91
  }),
88
92
  _useSet2 = _slicedToArray(_useSet, 2),
89
93
  state = _useSet2[0],
@@ -94,7 +98,11 @@ function VtxDatagrid(props) {
94
98
  columnSettingOptions = state.columnSettingOptions,
95
99
  datagridId = state.datagridId,
96
100
  scrollY = state.scrollY,
97
- size = state.size;
101
+ size = state.size; // 列设置提示高度
102
+
103
+ var alertHeight = (0, _react.useRef)(0); // 工具栏高度
104
+
105
+ var toolbarHeight = (0, _react.useRef)(0);
98
106
 
99
107
  var _props$prefixCls = props.prefixCls,
100
108
  prefixCls = _props$prefixCls === void 0 ? 'vtx-datagrid' : _props$prefixCls,
@@ -114,6 +122,10 @@ function VtxDatagrid(props) {
114
122
  onRefresh = props.onRefresh,
115
123
  _props$indexColumn = props.indexColumn,
116
124
  indexColumn = _props$indexColumn === void 0 ? true : _props$indexColumn,
125
+ _props$indexFixed = props.indexFixed,
126
+ indexFixed = _props$indexFixed === void 0 ? false : _props$indexFixed,
127
+ _props$bordered = props.bordered,
128
+ bordered = _props$bordered === void 0 ? true : _props$bordered,
117
129
  _props$indexTitle = props.indexTitle,
118
130
  indexTitle = _props$indexTitle === void 0 ? '序号' : _props$indexTitle,
119
131
  _props$startIndex = props.startIndex,
@@ -125,7 +137,11 @@ function VtxDatagrid(props) {
125
137
  columnResizable = props.columnResizable,
126
138
  className = props.className,
127
139
  style = props.style,
128
- rest = _objectWithoutProperties(props, ["prefixCls", "toolbar", "toolbarClassName", "toolbarTilte", "buttonGroup", "refreshIconVisible", "hideColumnSetting", "hideColumnHeight", "visibleColumnKeys", "defaultVisibleColumnKeys", "onVisibleColumnsChange", "onRefresh", "indexColumn", "indexTitle", "startIndex", "autoFit", "headFootHeight", "columnResizable", "className", "style"]);
140
+ _props$emptyText = props.emptyText,
141
+ emptyText = _props$emptyText === void 0 ? '暂无数据' : _props$emptyText,
142
+ claerRowSelection = props.claerRowSelection,
143
+ searchCollapseEvent$ = props.searchCollapseEvent$,
144
+ rest = _objectWithoutProperties(props, ["prefixCls", "toolbar", "toolbarClassName", "toolbarTilte", "buttonGroup", "refreshIconVisible", "hideColumnSetting", "hideColumnHeight", "visibleColumnKeys", "defaultVisibleColumnKeys", "onVisibleColumnsChange", "onRefresh", "indexColumn", "indexFixed", "bordered", "indexTitle", "startIndex", "autoFit", "headFootHeight", "columnResizable", "className", "style", "emptyText", "claerRowSelection", "searchCollapseEvent$"]);
129
145
 
130
146
  (0, _react.useEffect)(function () {
131
147
  // componentDidMount
@@ -144,7 +160,20 @@ function VtxDatagrid(props) {
144
160
  if (autoFit) {
145
161
  calculateHeight();
146
162
  }
147
- }, [scrollY]);
163
+ }, [(((_rest$rowSelection = rest.rowSelection) === null || _rest$rowSelection === void 0 ? void 0 : _rest$rowSelection.selectedRowKeys) || []).join(',')]); // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数
164
+
165
+ if (searchCollapseEvent$) {
166
+ // eslint-disable-next-line react/prop-types
167
+ searchCollapseEvent$.useSubscription(function () {
168
+ // 350ms 是为了等待css动画时间
169
+ var timer = setTimeout(function () {
170
+ calculateHeight();
171
+ timer = '';
172
+ clearTimeout(timer);
173
+ }, 350);
174
+ });
175
+ }
176
+
148
177
  (0, _react.useEffect)(function () {
149
178
  var _rest$columns;
150
179
 
@@ -188,15 +217,12 @@ function VtxDatagrid(props) {
188
217
  }
189
218
  };
190
219
 
191
- var toolbarHeight = toolbar ? 56 : 0; // 高度计算
220
+ var hasAlert = (((_rest$rowSelection2 = rest.rowSelection) === null || _rest$rowSelection2 === void 0 ? void 0 : _rest$rowSelection2.selectedRowKeys) || []).length > 0;
221
+ alertHeight.current = hasAlert ? 49 : 0;
222
+ toolbarHeight.current = toolbar ? 56 : 0; // 高度计算
192
223
 
193
224
  var calculateHeight = function calculateHeight() {
194
- var bodyHeight = document.getElementById(datagridId).clientHeight - headFootHeight;
195
-
196
- if (toolbar) {
197
- bodyHeight = bodyHeight - toolbarHeight;
198
- }
199
-
225
+ var bodyHeight = document.getElementById(datagridId).clientHeight - headFootHeight - toolbarHeight.current - alertHeight.current;
200
226
  var divs = document.getElementById(datagridId).getElementsByTagName('div');
201
227
  var bodyDiv = Array.prototype.filter.call(divs, function (dom) {
202
228
  return dom.className == 'ant-table-body';
@@ -357,7 +383,8 @@ function VtxDatagrid(props) {
357
383
  title: indexTitle,
358
384
  dataIndex: '_serialNum',
359
385
  key: '_serialNum',
360
- width: 70
386
+ width: 70,
387
+ fixed: indexFixed
361
388
  }].concat(_toConsumableArray(columns));
362
389
  dataSource = (_dataSource = dataSource) === null || _dataSource === void 0 ? void 0 : _dataSource.map(function (item, i) {
363
390
  return _objectSpread(_objectSpread({}, item), {}, {
@@ -378,16 +405,28 @@ function VtxDatagrid(props) {
378
405
  id: datagridId,
379
406
  className: (0, _classnames2["default"])(prefixCls, className, (_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-fit"), autoFit), _defineProperty(_classnames, "".concat(prefixCls, "-nodata"), !((_dataSource2 = dataSource) !== null && _dataSource2 !== void 0 && _dataSource2.length)), _classnames)),
380
407
  style: style
381
- }, toolbarRender, /*#__PURE__*/_react["default"].createElement(_table["default"], _extends({
382
- size: size
408
+ }, toolbarRender, hasAlert && /*#__PURE__*/_react["default"].createElement("div", {
409
+ className: "".concat(prefixCls, "-alert")
410
+ }, /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
411
+ prefixCls: prefixCls,
412
+ selectedRowKeys: (_rest$rowSelection3 = rest.rowSelection) === null || _rest$rowSelection3 === void 0 ? void 0 : _rest$rowSelection3.selectedRowKeys,
413
+ claerRowSelection: claerRowSelection
414
+ })), /*#__PURE__*/_react["default"].createElement(_table["default"], _extends({
415
+ size: size,
416
+ bordered: bordered
383
417
  }, rest, {
384
418
  columns: columns,
385
419
  dataSource: dataSource,
386
420
  scroll: scroll,
387
421
  pagination: getPagination(rest.pagination),
388
422
  style: {
389
- height: "calc(100% - ".concat(toolbarHeight, "px)")
423
+ height: "calc(100% - ".concat(toolbarHeight.current + alertHeight.current, "px)")
390
424
  },
425
+ locale: _objectSpread({
426
+ emptyText: /*#__PURE__*/_react["default"].createElement(_empty["default"], {
427
+ description: emptyText
428
+ })
429
+ }, rest.locale),
391
430
  components: columnResizable ? {
392
431
  header: {
393
432
  cell: _ResizeableTitle["default"]
@@ -401,6 +440,7 @@ VtxDatagrid.propTypes = {
401
440
  refreshIconVisible: _propTypes["default"].bool,
402
441
  hideColumnSetting: _propTypes["default"].bool,
403
442
  hideColumnHeight: _propTypes["default"].bool,
443
+ bordered: _propTypes["default"].bool,
404
444
  visibleColumnKeys: _propTypes["default"].array,
405
445
  defaultVisibleColumnKeys: _propTypes["default"].array,
406
446
  onVisibleColumnsChange: _propTypes["default"].func,
@@ -409,12 +449,16 @@ VtxDatagrid.propTypes = {
409
449
  toolbarTilte: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
410
450
  onRefresh: _propTypes["default"].func,
411
451
  indexColumn: _propTypes["default"].bool,
452
+ indexFixed: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]),
412
453
  indexTitle: _propTypes["default"].string,
413
454
  startIndex: _propTypes["default"].number,
414
455
  buttonGroup: _propTypes["default"].node,
415
456
  autoFit: _propTypes["default"].bool,
416
457
  headFootHeight: _propTypes["default"].number,
417
458
  columnResizable: _propTypes["default"].bool,
459
+ emptyText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
460
+ claerRowSelection: _propTypes["default"].func,
461
+ searchCollapseEvent$: _propTypes["default"].object,
418
462
  className: _propTypes["default"].string,
419
463
  style: _propTypes["default"].object
420
464
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["vtx-datagrid/index.jsx"],"names":["VtxDatagrid","props","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","className","style","rest","window","addEventListener","calculateHeight","removeEventListener","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","toolbarHeight","bodyHeight","document","getElementById","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","text","record","index","onHeaderCell","width","onResize","handleResize","e","nextColumns","dataSource","title","i","_serialNum","scroll","y","length","height","header","cell","ResizeableTitle","undefined","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"mappings":"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","sourcesContent":["import React, { useEffect, useLayoutEffect } from 'react';\nimport Table from 'antd/es/table';\nimport Icon from 'antd/es/icon';\nimport Tooltip from 'antd/es/tooltip';\nimport Dropdown from 'antd/es/dropdown';\nimport Menu from 'antd/es/menu';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport ColumnSetting from './ColumnSetting';\nimport ResizeableTitle from './ResizeableTitle';\nimport renderColumnButtons from './renderColumnButtons';\nimport useSet from '../_util/useSet';\nimport isFunction from '../_util/isFunction';\n\nexport default function VtxDatagrid(props) {\n const [state, setState] = useSet({\n // 显示列\n visibleColumns: [],\n // 列设置选中的列\n checkedColumnKeys: [],\n // 列设置选项\n columnSettingOptions: [],\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\n scrollY: null,\n size: 'default',\n });\n const {\n visibleColumns,\n checkedColumnKeys,\n columnSettingOptions,\n datagridId,\n scrollY,\n size,\n } = state;\n\n const {\n prefixCls = 'vtx-datagrid',\n toolbar = true,\n toolbarClassName,\n toolbarTilte = '查询结果',\n buttonGroup,\n refreshIconVisible = true,\n hideColumnSetting,\n hideColumnHeight,\n visibleColumnKeys,\n defaultVisibleColumnKeys,\n onVisibleColumnsChange,\n onRefresh,\n indexColumn = true,\n indexTitle = '序号',\n startIndex = 1,\n autoFit = true,\n headFootHeight = 115,\n columnResizable,\n className,\n style,\n ...rest\n } = props;\n\n useEffect(() => {\n // componentDidMount\n if (autoFit) {\n window.addEventListener('resize', calculateHeight, false);\n }\n return () => {\n // componentWillUnmount\n if (autoFit) {\n window.removeEventListener('resize', calculateHeight, false);\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n if (autoFit) {\n calculateHeight();\n }\n }, [scrollY]);\n\n useEffect(() => {\n parseColumns();\n setState({\n columnSettingOptions: rest.columns?.map(col => ({\n ...col,\n key: col.dataIndex || col.key,\n })),\n });\n }, [rest.columns]);\n\n const parseColumns = type => {\n // 显示工具栏的同时并显示列设置\n if (toolbar && !hideColumnSetting) {\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\n const columnKeys =\n type === 'reset'\n ? defaultVisibleColumnKeys\n : visibleColumnKeys || defaultVisibleColumnKeys;\n setState({\n checkedColumnKeys: columnKeys,\n visibleColumns: rest.columns?.filter(item =>\n columnKeys.includes(item.dataIndex || item.key),\n ),\n });\n } else {\n setState({\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\n visibleColumns: rest.columns,\n });\n }\n } else {\n setState({\n visibleColumns: rest.columns,\n });\n }\n };\n\n const toolbarHeight = toolbar ? 56 : 0;\n // 高度计算\n const calculateHeight = () => {\n let bodyHeight = document.getElementById(datagridId).clientHeight - headFootHeight;\n\n if (toolbar) {\n bodyHeight = bodyHeight - toolbarHeight;\n }\n const divs = document.getElementById(datagridId).getElementsByTagName('div');\n const bodyDiv = Array.prototype.filter.call(\n divs,\n dom => dom.className == 'ant-table-body',\n )[0];\n bodyDiv.style.minHeight = `${bodyHeight}px`;\n setState({\n scrollY: bodyHeight,\n });\n };\n\n // 列设置回调\n const handleChangeColumns = keys => {\n setState({\n checkedColumnKeys: keys,\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\n });\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\n };\n\n // 工具栏\n let toolbarRender;\n if (toolbar) {\n toolbarRender = (\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\n <div className={`${prefixCls}-toolbar-right`}>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-actions`,\n )}\n >\n {buttonGroup}\n </div>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-setting`,\n )}\n >\n {refreshIconVisible && (\n <div\n className={`${prefixCls}-toolbar-setting-item`}\n onClick={() => {\n onRefresh && onRefresh();\n }}\n >\n <Tooltip title=\"刷新\">\n <Icon type=\"redo\" />\n </Tooltip>\n </div>\n )}\n {!hideColumnHeight && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <Dropdown\n overlay={\n <Menu\n onClick={({ key }) => setState({ size: key })}\n selectedKeys={[size]}\n >\n <Menu.Item key=\"default\">默认</Menu.Item>\n <Menu.Item key=\"middle\">中等</Menu.Item>\n <Menu.Item key=\"small\">紧凑</Menu.Item>\n </Menu>\n }\n trigger={['click']}\n >\n <Tooltip title=\"列密度\">\n <Icon type=\"column-height\" />\n </Tooltip>\n </Dropdown>\n </div>\n )}\n {!hideColumnSetting && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <ColumnSetting\n prefixCls={prefixCls}\n checkedColumnKeys={checkedColumnKeys}\n columnSettingOptions={columnSettingOptions}\n onChange={handleChangeColumns}\n onReset={() => parseColumns('reset')}\n >\n <Tooltip title=\"列设置\">\n <Icon type=\"setting\" />\n </Tooltip>\n </ColumnSetting>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n // 分页\n const getPagination = pagination => {\n if (typeof pagination === 'boolean' && !pagination) {\n return pagination;\n }\n return {\n pageSizeOptions: ['10', '20', '30', '40', '50'],\n showSizeChanger: true,\n showQuickJumper: true,\n showTotal(total) {\n return `共 ${total} 条`;\n },\n ...pagination,\n };\n };\n\n // 处理操作按钮\n let columns = (visibleColumns || []).map(column => {\n const newColumn = { ...column };\n if (newColumn.renderButtons) {\n delete newColumn.renderButtons;\n }\n if (newColumn.renderButtonsVisibleNum) {\n delete newColumn.renderButtonsVisibleNum;\n }\n return {\n ...newColumn,\n render: isFunction(column.renderButtons)\n ? function(text, record, index) {\n return renderColumnButtons(\n column.renderButtons,\n column.renderButtonsVisibleNum,\n text,\n record,\n index,\n );\n }\n : column.render,\n };\n });\n // 配置了列可伸缩\n if (columnResizable) {\n columns = columns.map((col, index) => ({\n ...col,\n onHeaderCell: column => ({\n width: column.width,\n onResize: handleResize(index),\n }),\n }));\n const handleResize = index => (e, { size }) => {\n setState(({ visibleColumns }) => {\n const nextColumns = [...visibleColumns];\n nextColumns[index] = {\n ...nextColumns[index],\n width: size.width,\n };\n return { visibleColumns: nextColumns };\n });\n };\n }\n\n // 序号添加\n let dataSource = rest.dataSource;\n if (indexColumn) {\n columns = [\n {\n title: indexTitle,\n dataIndex: '_serialNum',\n key: '_serialNum',\n width: 70,\n },\n ...columns,\n ];\n dataSource = dataSource?.map((item, i) => {\n return {\n ...item,\n _serialNum: i + startIndex,\n };\n });\n }\n\n let scroll;\n if (autoFit) {\n scroll = {\n ...(rest.scroll || {}),\n y: scrollY,\n };\n }\n\n return (\n <div\n id={datagridId}\n className={classnames(prefixCls, className, {\n [`${prefixCls}-fit`]: autoFit,\n [`${prefixCls}-nodata`]: !dataSource?.length,\n })}\n style={style}\n >\n {toolbarRender}\n <Table\n size={size}\n {...rest}\n columns={columns}\n dataSource={dataSource}\n scroll={scroll}\n pagination={getPagination(rest.pagination)}\n style={{ height: `calc(100% - ${toolbarHeight}px)` }}\n components={\n columnResizable\n ? {\n header: {\n cell: ResizeableTitle,\n },\n }\n : undefined\n }\n />\n </div>\n );\n}\n\nVtxDatagrid.propTypes = {\n prefixCls: PropTypes.string,\n refreshIconVisible: PropTypes.bool,\n hideColumnSetting: PropTypes.bool,\n hideColumnHeight: PropTypes.bool,\n visibleColumnKeys: PropTypes.array,\n defaultVisibleColumnKeys: PropTypes.array,\n onVisibleColumnsChange: PropTypes.func,\n toolbarClassName: PropTypes.string,\n toolbar: PropTypes.bool,\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onRefresh: PropTypes.func,\n indexColumn: PropTypes.bool,\n indexTitle: PropTypes.string,\n startIndex: PropTypes.number,\n buttonGroup: PropTypes.node,\n autoFit: PropTypes.bool,\n headFootHeight: PropTypes.number,\n columnResizable: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["vtx-datagrid/index.jsx"],"names":["VtxDatagrid","props","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","alertHeight","toolbarHeight","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","className","style","emptyText","claerRowSelection","searchCollapseEvent$","rest","window","addEventListener","calculateHeight","removeEventListener","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","length","current","bodyHeight","document","getElementById","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","text","record","index","onHeaderCell","width","onResize","handleResize","e","nextColumns","dataSource","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","undefined","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"mappings":"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","sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport Table from 'antd/es/table';\nimport Icon from 'antd/es/icon';\nimport Tooltip from 'antd/es/tooltip';\nimport Dropdown from 'antd/es/dropdown';\nimport Menu from 'antd/es/menu';\nimport Empty from 'antd/es/empty';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Alert from './Alert';\nimport ColumnSetting from './ColumnSetting';\nimport ResizeableTitle from './ResizeableTitle';\nimport renderColumnButtons from './renderColumnButtons';\nimport useSet from '../_util/useSet';\nimport isFunction from '../_util/isFunction';\n\nexport default function VtxDatagrid(props) {\n const [state, setState] = useSet({\n // 显示列\n visibleColumns: [],\n // 列设置选中的列\n checkedColumnKeys: [],\n // 列设置选项\n columnSettingOptions: [],\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\n scrollY: null,\n size: 'middle',\n });\n const {\n visibleColumns,\n checkedColumnKeys,\n columnSettingOptions,\n datagridId,\n scrollY,\n size,\n } = state;\n\n // 列设置提示高度\n const alertHeight = useRef(0);\n // 工具栏高度\n const toolbarHeight = useRef(0);\n\n const {\n prefixCls = 'vtx-datagrid',\n toolbar = true,\n toolbarClassName,\n toolbarTilte = '查询结果',\n buttonGroup,\n refreshIconVisible = true,\n hideColumnSetting,\n hideColumnHeight,\n visibleColumnKeys,\n defaultVisibleColumnKeys,\n onVisibleColumnsChange,\n onRefresh,\n indexColumn = true,\n indexFixed = false,\n bordered = true,\n indexTitle = '序号',\n startIndex = 1,\n autoFit = true,\n headFootHeight = 115,\n columnResizable,\n className,\n style,\n emptyText = '暂无数据',\n claerRowSelection,\n searchCollapseEvent$,\n ...rest\n } = props;\n\n useEffect(() => {\n // componentDidMount\n if (autoFit) {\n window.addEventListener('resize', calculateHeight, false);\n }\n return () => {\n // componentWillUnmount\n if (autoFit) {\n window.removeEventListener('resize', calculateHeight, false);\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n if (autoFit) {\n calculateHeight();\n }\n }, [(rest.rowSelection?.selectedRowKeys || []).join(',')]);\n\n // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\n if (searchCollapseEvent$) {\n // eslint-disable-next-line react/prop-types\n searchCollapseEvent$.useSubscription(() => {\n // 350ms 是为了等待css动画时间\n let timer = setTimeout(() => {\n calculateHeight();\n timer = '';\n clearTimeout(timer);\n }, 350);\n });\n }\n\n useEffect(() => {\n parseColumns();\n setState({\n columnSettingOptions: rest.columns?.map(col => ({\n ...col,\n key: col.dataIndex || col.key,\n })),\n });\n }, [rest.columns]);\n\n const parseColumns = type => {\n // 显示工具栏的同时并显示列设置\n if (toolbar && !hideColumnSetting) {\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\n const columnKeys =\n type === 'reset'\n ? defaultVisibleColumnKeys\n : visibleColumnKeys || defaultVisibleColumnKeys;\n setState({\n checkedColumnKeys: columnKeys,\n visibleColumns: rest.columns?.filter(item =>\n columnKeys.includes(item.dataIndex || item.key),\n ),\n });\n } else {\n setState({\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\n visibleColumns: rest.columns,\n });\n }\n } else {\n setState({\n visibleColumns: rest.columns,\n });\n }\n };\n\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\n alertHeight.current = hasAlert ? 49 : 0;\n toolbarHeight.current = toolbar ? 56 : 0;\n // 高度计算\n const calculateHeight = () => {\n const bodyHeight =\n document.getElementById(datagridId).clientHeight -\n headFootHeight -\n toolbarHeight.current -\n alertHeight.current;\n const divs = document.getElementById(datagridId).getElementsByTagName('div');\n const bodyDiv = Array.prototype.filter.call(\n divs,\n dom => dom.className == 'ant-table-body',\n )[0];\n bodyDiv.style.minHeight = `${bodyHeight}px`;\n setState({\n scrollY: bodyHeight,\n });\n };\n\n // 列设置回调\n const handleChangeColumns = keys => {\n setState({\n checkedColumnKeys: keys,\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\n });\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\n };\n\n // 工具栏\n let toolbarRender;\n if (toolbar) {\n toolbarRender = (\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\n <div className={`${prefixCls}-toolbar-right`}>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-actions`,\n )}\n >\n {buttonGroup}\n </div>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-setting`,\n )}\n >\n {refreshIconVisible && (\n <div\n className={`${prefixCls}-toolbar-setting-item`}\n onClick={() => {\n onRefresh && onRefresh();\n }}\n >\n <Tooltip title=\"刷新\">\n <Icon type=\"redo\" />\n </Tooltip>\n </div>\n )}\n {!hideColumnHeight && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <Dropdown\n overlay={\n <Menu\n onClick={({ key }) => setState({ size: key })}\n selectedKeys={[size]}\n >\n <Menu.Item key=\"default\">默认</Menu.Item>\n <Menu.Item key=\"middle\">中等</Menu.Item>\n <Menu.Item key=\"small\">紧凑</Menu.Item>\n </Menu>\n }\n trigger={['click']}\n >\n <Tooltip title=\"列密度\">\n <Icon type=\"column-height\" />\n </Tooltip>\n </Dropdown>\n </div>\n )}\n {!hideColumnSetting && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <ColumnSetting\n prefixCls={prefixCls}\n checkedColumnKeys={checkedColumnKeys}\n columnSettingOptions={columnSettingOptions}\n onChange={handleChangeColumns}\n onReset={() => parseColumns('reset')}\n >\n <Tooltip title=\"列设置\">\n <Icon type=\"setting\" />\n </Tooltip>\n </ColumnSetting>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n // 分页\n const getPagination = pagination => {\n if (typeof pagination === 'boolean' && !pagination) {\n return pagination;\n }\n return {\n pageSizeOptions: ['10', '20', '30', '40', '50'],\n showSizeChanger: true,\n showQuickJumper: true,\n showTotal(total) {\n return `共 ${total} 条`;\n },\n ...pagination,\n };\n };\n\n // 处理操作按钮\n let columns = (visibleColumns || []).map(column => {\n const newColumn = { ...column };\n if (newColumn.renderButtons) {\n delete newColumn.renderButtons;\n }\n if (newColumn.renderButtonsVisibleNum) {\n delete newColumn.renderButtonsVisibleNum;\n }\n return {\n ...newColumn,\n render: isFunction(column.renderButtons)\n ? function(text, record, index) {\n return renderColumnButtons(\n column.renderButtons,\n column.renderButtonsVisibleNum,\n text,\n record,\n index,\n );\n }\n : column.render,\n };\n });\n // 配置了列可伸缩\n if (columnResizable) {\n columns = columns.map((col, index) => ({\n ...col,\n onHeaderCell: column => ({\n width: column.width,\n onResize: handleResize(index),\n }),\n }));\n const handleResize = index => (e, { size }) => {\n setState(({ visibleColumns }) => {\n const nextColumns = [...visibleColumns];\n nextColumns[index] = {\n ...nextColumns[index],\n width: size.width,\n };\n return { visibleColumns: nextColumns };\n });\n };\n }\n\n // 序号添加\n let dataSource = rest.dataSource;\n if (indexColumn) {\n columns = [\n {\n title: indexTitle,\n dataIndex: '_serialNum',\n key: '_serialNum',\n width: 70,\n fixed: indexFixed,\n },\n ...columns,\n ];\n dataSource = dataSource?.map((item, i) => {\n return {\n ...item,\n _serialNum: i + startIndex,\n };\n });\n }\n\n let scroll;\n if (autoFit) {\n scroll = {\n ...(rest.scroll || {}),\n y: scrollY,\n };\n }\n\n return (\n <div\n id={datagridId}\n className={classnames(prefixCls, className, {\n [`${prefixCls}-fit`]: autoFit,\n [`${prefixCls}-nodata`]: !dataSource?.length,\n })}\n style={style}\n >\n {toolbarRender}\n {hasAlert && (\n <div className={`${prefixCls}-alert`}>\n <Alert\n prefixCls={prefixCls}\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\n claerRowSelection={claerRowSelection}\n />\n </div>\n )}\n <Table\n size={size}\n bordered={bordered}\n {...rest}\n columns={columns}\n dataSource={dataSource}\n scroll={scroll}\n pagination={getPagination(rest.pagination)}\n style={{ height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)` }}\n locale={{\n emptyText: <Empty description={emptyText} />,\n ...rest.locale,\n }}\n components={\n columnResizable\n ? {\n header: {\n cell: ResizeableTitle,\n },\n }\n : undefined\n }\n />\n </div>\n );\n}\n\nVtxDatagrid.propTypes = {\n prefixCls: PropTypes.string,\n refreshIconVisible: PropTypes.bool,\n hideColumnSetting: PropTypes.bool,\n hideColumnHeight: PropTypes.bool,\n bordered: PropTypes.bool,\n visibleColumnKeys: PropTypes.array,\n defaultVisibleColumnKeys: PropTypes.array,\n onVisibleColumnsChange: PropTypes.func,\n toolbarClassName: PropTypes.string,\n toolbar: PropTypes.bool,\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onRefresh: PropTypes.func,\n indexColumn: PropTypes.bool,\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indexTitle: PropTypes.string,\n startIndex: PropTypes.number,\n buttonGroup: PropTypes.node,\n autoFit: PropTypes.bool,\n headFootHeight: PropTypes.number,\n columnResizable: PropTypes.bool,\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n claerRowSelection: PropTypes.func,\n searchCollapseEvent$: PropTypes.object,\n className: PropTypes.string,\n style: PropTypes.object,\n};\n"],"file":"index.js"}
@@ -16,5 +16,9 @@ require("antd/es/menu/style/css");
16
16
 
17
17
  require("antd/es/divider/style/css");
18
18
 
19
+ require("antd/es/empty/style/css");
20
+
21
+ require("antd/es/alert/style/css");
22
+
19
23
  require("./index.css");
20
24
  //# sourceMappingURL=css.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["vtx-datagrid/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/table/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/popover/style/css';\nimport 'antd/es/checkbox/style/css';\nimport 'antd/es/popconfirm/style/css';\nimport 'antd/es/dropdown/style/css';\nimport 'antd/es/menu/style/css';\nimport 'antd/es/divider/style/css';\nimport './index.less';\n"],"file":"css.js"}
1
+ {"version":3,"sources":["vtx-datagrid/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/table/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/popover/style/css';\nimport 'antd/es/checkbox/style/css';\nimport 'antd/es/popconfirm/style/css';\nimport 'antd/es/dropdown/style/css';\nimport 'antd/es/menu/style/css';\nimport 'antd/es/divider/style/css';\nimport 'antd/es/empty/style/css';\nimport 'antd/es/alert/style/css';\nimport './index.less';\n"],"file":"css.js"}
@@ -40,6 +40,28 @@
40
40
  left: 0;
41
41
  border-top: none;
42
42
  }
43
+ .vtx-datagrid .ant-table-thead > tr > th {
44
+ background-color: rgba(24, 144, 255, 0.08);
45
+ }
46
+ .vtx-datagrid .ant-table-tbody > tr:nth-child(even) {
47
+ background: #f6f6f6;
48
+ }
49
+ .vtx-datagrid .ant-table-tbody > tr.ant-table-row-selected td {
50
+ background: transparent;
51
+ }
52
+ .vtx-datagrid-alert {
53
+ margin-bottom: 8px;
54
+ }
55
+ .vtx-datagrid-alert-message {
56
+ color: rgba(0, 0, 0, 0.65);
57
+ }
58
+ .vtx-datagrid-alert-info-content > strong {
59
+ margin: 0 4px;
60
+ color: #13c2c2;
61
+ }
62
+ .vtx-datagrid-alert-info-option {
63
+ margin-left: 10px;
64
+ }
43
65
  .vtx-datagrid-nodata .ant-table-scroll {
44
66
  overflow-y: hidden;
45
67
  }
@@ -47,7 +69,6 @@
47
69
  display: table;
48
70
  width: 100%;
49
71
  margin: 16px 0;
50
- padding: 0 16px;
51
72
  }
52
73
  .vtx-datagrid-toolbar-left,
53
74
  .vtx-datagrid-toolbar-right {
@@ -16,5 +16,9 @@ require("antd/es/menu/style/css");
16
16
 
17
17
  require("antd/es/divider/style/css");
18
18
 
19
+ require("antd/es/empty/style/css");
20
+
21
+ require("antd/es/alert/style/css");
22
+
19
23
  require("./index.less");
20
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["vtx-datagrid/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/table/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/popover/style/css';\nimport 'antd/es/checkbox/style/css';\nimport 'antd/es/popconfirm/style/css';\nimport 'antd/es/dropdown/style/css';\nimport 'antd/es/menu/style/css';\nimport 'antd/es/divider/style/css';\nimport './index.less';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["vtx-datagrid/style/index.js"],"names":[],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import 'antd/es/table/style/css';\nimport 'antd/es/tooltip/style/css';\nimport 'antd/es/popover/style/css';\nimport 'antd/es/checkbox/style/css';\nimport 'antd/es/popconfirm/style/css';\nimport 'antd/es/dropdown/style/css';\nimport 'antd/es/menu/style/css';\nimport 'antd/es/divider/style/css';\nimport 'antd/es/empty/style/css';\nimport 'antd/es/alert/style/css';\nimport './index.less';\n"],"file":"index.js"}
@@ -16,6 +16,7 @@
16
16
  border-radius: 3px;
17
17
  }
18
18
  }
19
+
19
20
  .ant-table-fixed-header .ant-table-scroll .ant-table-header {
20
21
  min-width: 5px !important;
21
22
  }
@@ -42,6 +43,30 @@
42
43
  border-top: none;
43
44
  }
44
45
  }
46
+ .ant-table-thead > tr > th {
47
+ background-color: fade(#1890ff, 8);
48
+ }
49
+ .ant-table-tbody > tr {
50
+ &:nth-child(even) {
51
+ background: #f6f6f6;
52
+ }
53
+ }
54
+ .ant-table-tbody > tr.ant-table-row-selected td {
55
+ background: transparent;
56
+ }
57
+ &-alert {
58
+ margin-bottom: 8px;
59
+ &-message {
60
+ color: fade(#000, 65);
61
+ }
62
+ &-info-content > strong {
63
+ margin: 0 4px;
64
+ color: #13c2c2;
65
+ }
66
+ &-info-option {
67
+ margin-left: 10px;
68
+ }
69
+ }
45
70
  &-nodata {
46
71
  .ant-table-scroll {
47
72
  overflow-y: hidden;
@@ -51,7 +76,6 @@
51
76
  display: table;
52
77
  width: 100%;
53
78
  margin: 16px 0;
54
- padding: 0 16px;
55
79
  }
56
80
  &-toolbar-left,
57
81
  &-toolbar-right {
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _card = _interopRequireDefault(require("antd/es/card"));
17
+
18
+ var _icon = _interopRequireDefault(require("antd/es/icon"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
23
+
24
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
29
+
30
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
31
+
32
+ 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; }
33
+
34
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ function VtxCard(props) {
39
+ var title = props.title,
40
+ _props$expand = props.expand,
41
+ expand = _props$expand === void 0 ? true : _props$expand;
42
+
43
+ var _useState = (0, _react.useState)(expand),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ visible = _useState2[0],
46
+ setVisible = _useState2[1];
47
+
48
+ var style = {};
49
+
50
+ if (visible) {
51
+ style = {
52
+ transform: 'rotate(90deg)'
53
+ };
54
+ }
55
+
56
+ return /*#__PURE__*/_react["default"].createElement(_card["default"], {
57
+ title: title,
58
+ className: "vtx-form-card",
59
+ extra: /*#__PURE__*/_react["default"].createElement(_icon["default"], {
60
+ className: "vtx-form-card-expand-icon",
61
+ type: "right",
62
+ style: style,
63
+ onClick: function onClick() {
64
+ return setVisible(function (pre) {
65
+ return !pre;
66
+ });
67
+ }
68
+ })
69
+ }, /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: (0, _classnames["default"])('vtx-form-card-content', {
71
+ 'vtx-form-card-content-hide': !visible
72
+ })
73
+ }, props.children));
74
+ }
75
+
76
+ VtxCard.propTypes = {
77
+ expand: _propTypes["default"].bool,
78
+ title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
79
+ children: _propTypes["default"].node
80
+ };
81
+ var _default = VtxCard;
82
+ exports["default"] = _default;
83
+ //# sourceMappingURL=Card.js.map