@vtx/components 3.1.16 → 3.1.18

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.
@@ -1,214 +1,215 @@
1
- @import (reference) '~antd/lib/style/themes/index.less';
2
- @import '../../style/themes/index';
3
-
4
- @prefix-cls: vtx-datagrid;
5
-
6
- .@{prefix-cls} {
7
- position: relative;
8
- overflow: hidden;
9
-
10
- &-fit {
11
- height: 100%;
12
- .ant-table-container {
13
- border-left: none !important;
14
- table > thead > tr th:first-child {
15
- border-left: 1px solid @table-border-color;
16
- }
17
- }
18
- .ant-table-body {
19
- overflow-y: auto !important;
20
- }
21
- .ant-table-header,
22
- .ant-table-body {
23
- &::-webkit-scrollbar {
24
- width: @webkit-scrollbar-width;
25
- height: @webkit-scrollbar-height;
26
- background-color: @webkit-scrollbar-color;
27
- }
28
-
29
- &::-webkit-scrollbar-thumb {
30
- background-color: @webkit-scrollbar-thumb-color;
31
- border-radius: @webkit-scrollbar-thumb-radius;
32
- }
33
- > table {
34
- min-height: 1px;
35
- }
36
- }
37
- .ant-table-tbody > tr {
38
- &:nth-child(odd) {
39
- background: @table-row-odd;
40
- > td {
41
- background: @table-row-odd !important;
42
- }
43
- }
44
- > td:first-child {
45
- border-left: 1px solid @table-border-color;
46
- }
47
- }
48
- .ant-table-fixed-header .ant-table-scroll .ant-table-header {
49
- min-width: 5px !important;
50
- }
51
- .ant-table-pagination {
52
- position: absolute;
53
- right: 0;
54
- bottom: 0;
55
- }
56
- .ant-spin-nested-loading {
57
- height: 100%;
58
- .ant-spin-container {
59
- position: relative;
60
- height: 100%;
61
- .ant-table {
62
- height: 100%;
63
- }
64
- }
65
- }
66
- }
67
- &-noFit {
68
- .ant-table-tbody > tr {
69
- &:nth-child(even) when(@theme=default) {
70
- background: #f6f6f6;
71
- > td {
72
- background: #f6f6f6 !important;
73
- }
74
- }
75
- }
76
- }
77
- // 固定列目前没有办法用细的滚动条
78
- // .ant-table-has-fix-right {
79
- // .ant-table-body {
80
- // &::-webkit-scrollbar {
81
- // width: 5px;
82
- // height: 5px;
83
- // }
84
- // }
85
- // }
86
- // mac 和 windows下有差异,window chrome下滚动条宽度17px,mac chrome下15px
87
- // &-userAgent-mac {
88
- // .ant-table-has-fix-right {
89
- // .ant-table-body {
90
- // &::-webkit-scrollbar {
91
- // width: 5px;
92
- // height: 5px;
93
- // }
94
- // }
95
- // }
96
- // }
97
- .ant-table-thead > tr > th when(@theme=default) {
98
- // antd4.0 半透明会重叠
99
- // background-color: fade(#1890ff, 8);
100
- background-color: rgba(237, 246, 255, 1);
101
- }
102
- .ant-table-tbody > tr {
103
- // &:nth-child(even) when(@theme=default) {
104
- // background: #f6f6f6;
105
- // }
106
-
107
- &.ant-table-placeholder {
108
- position: absolute;
109
- top: 25%;
110
- // top: auto;
111
- right: 0;
112
- // bottom: auto;
113
- left: 0;
114
- background-color: transparent;
115
- border-top: none;
116
- // height: 100%;
117
- & > td.ant-table-cell {
118
- display: flex;
119
- align-items: center;
120
- justify-content: center;
121
- width: 100%;
122
- height: 100%;
123
- // border-right: @border-width-base @border-style-base @table-border-color;
124
- // border-left: @border-width-base @border-style-base @table-border-color;
125
- border: none;
126
- }
127
- }
128
- }
129
- // fix: checkbox 选中时 固定列 最上面一层透明会 和下面重叠
130
- // .ant-table-tbody > tr.ant-table-row-selected td {
131
- // background: transparent;
132
- // }
133
- &-alert {
134
- margin-bottom: 8px;
135
- &-message when(@theme=default) {
136
- color: fade(@black, 65%);
137
- }
138
- &-message when(@theme=dark) {
139
- color: @text-color;
140
- }
141
- &-info-content > strong {
142
- margin: 0 4px;
143
- color: #13c2c2;
144
- }
145
- &-info-option {
146
- margin-left: 10px;
147
- }
148
- }
149
- &-nodata {
150
- .ant-table-scroll {
151
- overflow-y: hidden;
152
- }
153
- }
154
- &-toolbar {
155
- display: table;
156
- width: 100%;
157
- margin: 16px 0;
158
- color: @text-color;
159
- }
160
- &-toolbar-left,
161
- &-toolbar-right {
162
- display: inline-block;
163
- display: table-cell;
164
- vertical-align: middle;
165
- }
166
- &-toolbar-left {
167
- color: @text-color;
168
- font-size: 16px;
169
- }
170
- &-toolbar-right {
171
- float: right;
172
- }
173
- &-toolbar-setting-item {
174
- display: inline-block;
175
- margin-left: 16px;
176
- color: @icon-color;
177
- font-size: 16px;
178
- vertical-align: middle;
179
- cursor: pointer;
180
- &:hover {
181
- color: @icon-color-hover;
182
- }
183
- }
184
- &-column-setting-title {
185
- height: 32px;
186
- line-height: 32px;
187
- a {
188
- display: inline-block;
189
- float: right;
190
- vertical-align: middle;
191
- }
192
- }
193
- &-column-setting-checkbox-wrapper {
194
- color: @text-color;
195
- vertical-align: middle;
196
- }
197
- &-space-item {
198
- display: inline-block;
199
- vertical-align: middle;
200
- }
201
- .react-resizable {
202
- position: relative;
203
- background-clip: padding-box;
204
- }
205
- .react-resizable-handle {
206
- position: absolute;
207
- right: -5px;
208
- bottom: 0;
209
- z-index: 1;
210
- width: 10px;
211
- height: 100%;
212
- cursor: col-resize;
213
- }
214
- }
1
+ @import (reference) '~antd/lib/style/themes/index.less';
2
+ @import '../../style/themes/index';
3
+
4
+ @prefix-cls: vtx-datagrid;
5
+
6
+ .@{prefix-cls} {
7
+ position: relative;
8
+ width: 100%;
9
+ overflow: hidden;
10
+
11
+ &-fit {
12
+ height: 100%;
13
+ .ant-table-container {
14
+ border-left: none !important;
15
+ table > thead > tr th:first-child {
16
+ border-left: 1px solid @table-border-color;
17
+ }
18
+ }
19
+ .ant-table-body {
20
+ overflow-y: auto !important;
21
+ }
22
+ .ant-table-header,
23
+ .ant-table-body {
24
+ &::-webkit-scrollbar {
25
+ width: @webkit-scrollbar-width;
26
+ height: @webkit-scrollbar-height;
27
+ background-color: @webkit-scrollbar-color;
28
+ }
29
+
30
+ &::-webkit-scrollbar-thumb {
31
+ background-color: @webkit-scrollbar-thumb-color;
32
+ border-radius: @webkit-scrollbar-thumb-radius;
33
+ }
34
+ > table {
35
+ min-height: 1px;
36
+ }
37
+ }
38
+ .ant-table-tbody > tr {
39
+ &:nth-child(odd) {
40
+ background: @table-row-odd;
41
+ > td {
42
+ background: @table-row-odd !important;
43
+ }
44
+ }
45
+ > td:first-child {
46
+ border-left: 1px solid @table-border-color;
47
+ }
48
+ }
49
+ .ant-table-fixed-header .ant-table-scroll .ant-table-header {
50
+ min-width: 5px !important;
51
+ }
52
+ .ant-table-pagination {
53
+ position: absolute;
54
+ right: 0;
55
+ bottom: 0;
56
+ }
57
+ .ant-spin-nested-loading {
58
+ height: 100%;
59
+ .ant-spin-container {
60
+ position: relative;
61
+ height: 100%;
62
+ .ant-table {
63
+ height: 100%;
64
+ }
65
+ }
66
+ }
67
+ }
68
+ &-noFit {
69
+ .ant-table-tbody > tr {
70
+ &:nth-child(even) when(@theme=default) {
71
+ background: #f6f6f6;
72
+ > td {
73
+ background: #f6f6f6 !important;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ // 固定列目前没有办法用细的滚动条
79
+ // .ant-table-has-fix-right {
80
+ // .ant-table-body {
81
+ // &::-webkit-scrollbar {
82
+ // width: 5px;
83
+ // height: 5px;
84
+ // }
85
+ // }
86
+ // }
87
+ // mac 和 windows下有差异,window chrome下滚动条宽度17px,mac chrome下15px
88
+ // &-userAgent-mac {
89
+ // .ant-table-has-fix-right {
90
+ // .ant-table-body {
91
+ // &::-webkit-scrollbar {
92
+ // width: 5px;
93
+ // height: 5px;
94
+ // }
95
+ // }
96
+ // }
97
+ // }
98
+ .ant-table-thead > tr > th when(@theme=default) {
99
+ // antd4.0 半透明会重叠
100
+ // background-color: fade(#1890ff, 8);
101
+ background-color: rgba(237, 246, 255, 1);
102
+ }
103
+ .ant-table-tbody > tr {
104
+ // &:nth-child(even) when(@theme=default) {
105
+ // background: #f6f6f6;
106
+ // }
107
+
108
+ &.ant-table-placeholder {
109
+ position: absolute;
110
+ top: 25%;
111
+ // top: auto;
112
+ right: 0;
113
+ // bottom: auto;
114
+ left: 0;
115
+ background-color: transparent;
116
+ border-top: none;
117
+ // height: 100%;
118
+ & > td.ant-table-cell {
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ width: 100%;
123
+ height: 100%;
124
+ // border-right: @border-width-base @border-style-base @table-border-color;
125
+ // border-left: @border-width-base @border-style-base @table-border-color;
126
+ border: none;
127
+ }
128
+ }
129
+ }
130
+ // fix: checkbox 选中时 固定列 最上面一层透明会 和下面重叠
131
+ // .ant-table-tbody > tr.ant-table-row-selected td {
132
+ // background: transparent;
133
+ // }
134
+ &-alert {
135
+ margin-bottom: 8px;
136
+ &-message when(@theme=default) {
137
+ color: fade(@black, 65%);
138
+ }
139
+ &-message when(@theme=dark) {
140
+ color: @text-color;
141
+ }
142
+ &-info-content > strong {
143
+ margin: 0 4px;
144
+ color: #13c2c2;
145
+ }
146
+ &-info-option {
147
+ margin-left: 10px;
148
+ }
149
+ }
150
+ &-nodata {
151
+ .ant-table-scroll {
152
+ overflow-y: hidden;
153
+ }
154
+ }
155
+ &-toolbar {
156
+ display: table;
157
+ width: 100%;
158
+ margin: 16px 0;
159
+ color: @text-color;
160
+ }
161
+ &-toolbar-left,
162
+ &-toolbar-right {
163
+ display: inline-block;
164
+ display: table-cell;
165
+ vertical-align: middle;
166
+ }
167
+ &-toolbar-left {
168
+ color: @text-color;
169
+ font-size: 16px;
170
+ }
171
+ &-toolbar-right {
172
+ float: right;
173
+ }
174
+ &-toolbar-setting-item {
175
+ display: inline-block;
176
+ margin-left: 16px;
177
+ color: @icon-color;
178
+ font-size: 16px;
179
+ vertical-align: middle;
180
+ cursor: pointer;
181
+ &:hover {
182
+ color: @icon-color-hover;
183
+ }
184
+ }
185
+ &-column-setting-title {
186
+ height: 32px;
187
+ line-height: 32px;
188
+ a {
189
+ display: inline-block;
190
+ float: right;
191
+ vertical-align: middle;
192
+ }
193
+ }
194
+ &-column-setting-checkbox-wrapper {
195
+ color: @text-color;
196
+ vertical-align: middle;
197
+ }
198
+ &-space-item {
199
+ display: inline-block;
200
+ vertical-align: middle;
201
+ }
202
+ .react-resizable {
203
+ position: relative;
204
+ background-clip: padding-box;
205
+ }
206
+ .react-resizable-handle {
207
+ position: absolute;
208
+ right: -5px;
209
+ bottom: 0;
210
+ z-index: 1;
211
+ width: 10px;
212
+ height: 100%;
213
+ cursor: col-resize;
214
+ }
215
+ }
@@ -186,7 +186,8 @@ function VtxScrollableRow(props) {
186
186
  var showNextPrev = prev || next;
187
187
 
188
188
  var prevButton = /*#__PURE__*/_react["default"].createElement("span", {
189
- onClick: prev ? handlePrev : null,
189
+ onClick: prev ? handlePrev : null // eslint-disable-next-line react/no-unknown-property
190
+ ,
190
191
  unselectable: "on",
191
192
  className: (0, _classnames3["default"])((_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-prev"), true), _defineProperty(_classnames, "".concat(prefixCls, "-btn-disabled"), !prev), _defineProperty(_classnames, "".concat(prefixCls, "-arrow-show"), showNextPrev), _classnames))
192
193
  }, /*#__PURE__*/_react["default"].createElement("span", {
@@ -194,7 +195,8 @@ function VtxScrollableRow(props) {
194
195
  }, /*#__PURE__*/_react["default"].createElement(_LeftOutlined["default"], null)));
195
196
 
196
197
  var nextButton = /*#__PURE__*/_react["default"].createElement("span", {
197
- onClick: next ? handleNext : null,
198
+ onClick: next ? handleNext : null // eslint-disable-next-line react/no-unknown-property
199
+ ,
198
200
  unselectable: "on",
199
201
  className: (0, _classnames3["default"])((_classnames2 = {}, _defineProperty(_classnames2, "".concat(prefixCls, "-next"), true), _defineProperty(_classnames2, "".concat(prefixCls, "-btn-disabled"), !next), _defineProperty(_classnames2, "".concat(prefixCls, "-arrow-show"), showNextPrev), _classnames2))
200
202
  }, /*#__PURE__*/_react["default"].createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isTransformSupported","style","setTransform","v","transform","webkitTransform","mozTransform","VtxScrollableRow","props","useState","next","prev","state","setState","prefixCls","className","offset","useRef","containerRef","navWrapRef","navRef","useEffect","debouncedResize","debounce","setNextPrev","window","addEventListener","removeEventListener","navNodeW","current","scrollWidth","containerW","offsetWidth","navWrapNodeW","minOffset","setOffset","realOffset","setNext","setPrev","os","checkNextPrev","target","Math","min","navOffset","navStyle","transformSupported","value","name","handlePrev","handleNext","showNextPrev","prevButton","classnames","nextButton","children","propTypes","PropTypes","string","object","node"],"sources":["vtx-scrollable-row/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\nimport classnames from 'classnames';\r\nimport debounce from 'lodash/debounce';\r\nimport PropTypes from 'prop-types';\r\nimport RightOutlined from '@ant-design/icons/RightOutlined';\r\nimport LeftOutlined from '@ant-design/icons/LeftOutlined';\r\n\r\nexport function isTransformSupported(style) {\r\n return 'transform' in style || 'webkitTransform' in style || 'MozTransform' in style;\r\n}\r\n\r\nexport function setTransform(style, v) {\r\n style.transform = v;\r\n style.webkitTransform = v;\r\n style.mozTransform = v;\r\n}\r\n\r\nfunction VtxScrollableRow(props) {\r\n const [state, setState] = useState({\r\n next: false,\r\n prev: false,\r\n });\r\n const { next, prev } = state;\r\n const { prefixCls = 'vtx-scrollable-row', className, style } = props;\r\n\r\n const offset = useRef(0);\r\n const containerRef = useRef();\r\n const navWrapRef = useRef();\r\n const navRef = useRef();\r\n\r\n useEffect(() => {\r\n const debouncedResize = debounce(() => {\r\n setNextPrev();\r\n }, 200);\r\n window.addEventListener('resize', debouncedResize);\r\n setNextPrev();\r\n return () => {\r\n window.removeEventListener('resize', debouncedResize);\r\n };\r\n }, []);\r\n\r\n function setNextPrev() {\r\n const navNodeW = navRef.current.scrollWidth;\r\n const containerW = containerRef.current.offsetWidth;\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n\r\n const minOffset = containerW - navNodeW;\r\n let { next, prev } = state;\r\n if (minOffset >= 0) {\r\n next = false;\r\n setOffset(0, false);\r\n offset.current = 0;\r\n } else if (minOffset < offset.current) {\r\n next = true;\r\n } else {\r\n next = false;\r\n const realOffset = navWrapNodeW - navNodeW;\r\n setOffset(realOffset, false);\r\n offset.current = realOffset;\r\n }\r\n\r\n if (offset.current < 0) {\r\n prev = true;\r\n } else {\r\n prev = false;\r\n }\r\n setNext(next);\r\n setPrev(prev);\r\n return {\r\n next,\r\n prev,\r\n };\r\n }\r\n\r\n const setOffset = (os, checkNextPrev = true) => {\r\n const target = Math.min(0, os);\r\n if (offset.current !== target) {\r\n offset.current = target;\r\n let navOffset = {};\r\n const navStyle = navRef.current.style;\r\n const transformSupported = isTransformSupported(navStyle);\r\n if (transformSupported) {\r\n navOffset = {\r\n value: `translate3d(${target}px,0,0)`,\r\n };\r\n } else {\r\n navOffset = {\r\n name: 'left',\r\n value: `${target}px`,\r\n };\r\n }\r\n if (transformSupported) {\r\n setTransform(navStyle, navOffset.value);\r\n } else {\r\n navStyle[navOffset.name] = navOffset.value;\r\n }\r\n if (checkNextPrev) {\r\n setNextPrev();\r\n }\r\n }\r\n };\r\n\r\n const setPrev = v => {\r\n if (prev !== v) {\r\n setState({\r\n ...state,\r\n prev: v,\r\n });\r\n }\r\n };\r\n\r\n const setNext = v => {\r\n if (next !== v) {\r\n setState({\r\n ...state,\r\n next: v,\r\n });\r\n }\r\n };\r\n\r\n // 上一页\r\n const handlePrev = () => {\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n setOffset(offset.current + navWrapNodeW);\r\n };\r\n\r\n // 下一页\r\n const handleNext = () => {\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n setOffset(offset.current - navWrapNodeW);\r\n };\r\n\r\n const showNextPrev = prev || next;\r\n\r\n const prevButton = (\r\n <span\r\n onClick={prev ? handlePrev : null}\r\n unselectable=\"on\"\r\n className={classnames({\r\n [`${prefixCls}-prev`]: true,\r\n [`${prefixCls}-btn-disabled`]: !prev,\r\n [`${prefixCls}-arrow-show`]: showNextPrev,\r\n })}\r\n >\r\n <span className={`${prefixCls}-prev-icon`}>\r\n <LeftOutlined />\r\n </span>\r\n </span>\r\n );\r\n\r\n const nextButton = (\r\n <span\r\n onClick={next ? handleNext : null}\r\n unselectable=\"on\"\r\n className={classnames({\r\n [`${prefixCls}-next`]: true,\r\n [`${prefixCls}-btn-disabled`]: !next,\r\n [`${prefixCls}-arrow-show`]: showNextPrev,\r\n })}\r\n >\r\n <span className={`${prefixCls}-next-icon`}>\r\n <RightOutlined />\r\n </span>\r\n </span>\r\n );\r\n\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-container`, className)}\r\n style={style}\r\n ref={containerRef}\r\n >\r\n {prevButton}\r\n {nextButton}\r\n <div className={`${prefixCls}-nav-wrap`} ref={navWrapRef}>\r\n <div className={`${prefixCls}-nav-scroll`}>\r\n <div className={`${prefixCls}-nav`} ref={navRef}>\r\n {props.children}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default VtxScrollableRow;\r\n\r\nVtxScrollableRow.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n children: PropTypes.node,\r\n};\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["isTransformSupported","style","setTransform","v","transform","webkitTransform","mozTransform","VtxScrollableRow","props","useState","next","prev","state","setState","prefixCls","className","offset","useRef","containerRef","navWrapRef","navRef","useEffect","debouncedResize","debounce","setNextPrev","window","addEventListener","removeEventListener","navNodeW","current","scrollWidth","containerW","offsetWidth","navWrapNodeW","minOffset","setOffset","realOffset","setNext","setPrev","os","checkNextPrev","target","Math","min","navOffset","navStyle","transformSupported","value","name","handlePrev","handleNext","showNextPrev","prevButton","classnames","nextButton","children","propTypes","PropTypes","string","object","node"],"sources":["vtx-scrollable-row/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\nimport classnames from 'classnames';\r\nimport debounce from 'lodash/debounce';\r\nimport PropTypes from 'prop-types';\r\nimport RightOutlined from '@ant-design/icons/RightOutlined';\r\nimport LeftOutlined from '@ant-design/icons/LeftOutlined';\r\n\r\nexport function isTransformSupported(style) {\r\n return 'transform' in style || 'webkitTransform' in style || 'MozTransform' in style;\r\n}\r\n\r\nexport function setTransform(style, v) {\r\n style.transform = v;\r\n style.webkitTransform = v;\r\n style.mozTransform = v;\r\n}\r\n\r\nfunction VtxScrollableRow(props) {\r\n const [state, setState] = useState({\r\n next: false,\r\n prev: false,\r\n });\r\n const { next, prev } = state;\r\n const { prefixCls = 'vtx-scrollable-row', className, style } = props;\r\n\r\n const offset = useRef(0);\r\n const containerRef = useRef();\r\n const navWrapRef = useRef();\r\n const navRef = useRef();\r\n\r\n useEffect(() => {\r\n const debouncedResize = debounce(() => {\r\n setNextPrev();\r\n }, 200);\r\n window.addEventListener('resize', debouncedResize);\r\n setNextPrev();\r\n return () => {\r\n window.removeEventListener('resize', debouncedResize);\r\n };\r\n }, []);\r\n\r\n function setNextPrev() {\r\n const navNodeW = navRef.current.scrollWidth;\r\n const containerW = containerRef.current.offsetWidth;\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n\r\n const minOffset = containerW - navNodeW;\r\n let { next, prev } = state;\r\n if (minOffset >= 0) {\r\n next = false;\r\n setOffset(0, false);\r\n offset.current = 0;\r\n } else if (minOffset < offset.current) {\r\n next = true;\r\n } else {\r\n next = false;\r\n const realOffset = navWrapNodeW - navNodeW;\r\n setOffset(realOffset, false);\r\n offset.current = realOffset;\r\n }\r\n\r\n if (offset.current < 0) {\r\n prev = true;\r\n } else {\r\n prev = false;\r\n }\r\n setNext(next);\r\n setPrev(prev);\r\n return {\r\n next,\r\n prev,\r\n };\r\n }\r\n\r\n const setOffset = (os, checkNextPrev = true) => {\r\n const target = Math.min(0, os);\r\n if (offset.current !== target) {\r\n offset.current = target;\r\n let navOffset = {};\r\n const navStyle = navRef.current.style;\r\n const transformSupported = isTransformSupported(navStyle);\r\n if (transformSupported) {\r\n navOffset = {\r\n value: `translate3d(${target}px,0,0)`,\r\n };\r\n } else {\r\n navOffset = {\r\n name: 'left',\r\n value: `${target}px`,\r\n };\r\n }\r\n if (transformSupported) {\r\n setTransform(navStyle, navOffset.value);\r\n } else {\r\n navStyle[navOffset.name] = navOffset.value;\r\n }\r\n if (checkNextPrev) {\r\n setNextPrev();\r\n }\r\n }\r\n };\r\n\r\n const setPrev = v => {\r\n if (prev !== v) {\r\n setState({\r\n ...state,\r\n prev: v,\r\n });\r\n }\r\n };\r\n\r\n const setNext = v => {\r\n if (next !== v) {\r\n setState({\r\n ...state,\r\n next: v,\r\n });\r\n }\r\n };\r\n\r\n // 上一页\r\n const handlePrev = () => {\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n setOffset(offset.current + navWrapNodeW);\r\n };\r\n\r\n // 下一页\r\n const handleNext = () => {\r\n const navWrapNodeW = navWrapRef.current.offsetWidth;\r\n setOffset(offset.current - navWrapNodeW);\r\n };\r\n\r\n const showNextPrev = prev || next;\r\n\r\n const prevButton = (\r\n <span\r\n onClick={prev ? handlePrev : null}\r\n // eslint-disable-next-line react/no-unknown-property\r\n unselectable=\"on\"\r\n className={classnames({\r\n [`${prefixCls}-prev`]: true,\r\n [`${prefixCls}-btn-disabled`]: !prev,\r\n [`${prefixCls}-arrow-show`]: showNextPrev,\r\n })}\r\n >\r\n <span className={`${prefixCls}-prev-icon`}>\r\n <LeftOutlined />\r\n </span>\r\n </span>\r\n );\r\n\r\n const nextButton = (\r\n <span\r\n onClick={next ? handleNext : null}\r\n // eslint-disable-next-line react/no-unknown-property\r\n unselectable=\"on\"\r\n className={classnames({\r\n [`${prefixCls}-next`]: true,\r\n [`${prefixCls}-btn-disabled`]: !next,\r\n [`${prefixCls}-arrow-show`]: showNextPrev,\r\n })}\r\n >\r\n <span className={`${prefixCls}-next-icon`}>\r\n <RightOutlined />\r\n </span>\r\n </span>\r\n );\r\n\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-container`, className)}\r\n style={style}\r\n ref={containerRef}\r\n >\r\n {prevButton}\r\n {nextButton}\r\n <div className={`${prefixCls}-nav-wrap`} ref={navWrapRef}>\r\n <div className={`${prefixCls}-nav-scroll`}>\r\n <div className={`${prefixCls}-nav`} ref={navRef}>\r\n {props.children}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default VtxScrollableRow;\r\n\r\nVtxScrollableRow.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n children: PropTypes.node,\r\n};\r\n"],"mappings":"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"}
@@ -135,14 +135,16 @@ function VtxSearch(props) {
135
135
  newGridWeight.map(function (item) {
136
136
  weightiness += item;
137
137
  });
138
+ var padding = 16;
138
139
  setWeightiness(weightiness);
139
140
 
140
141
  if (showAll) {
141
142
  setStyle(weightiness > realColumn ? {
142
143
  height: ref.current.clientHeight
143
144
  } : initStyle);
145
+ onCollapse && onCollapse(ref.current.clientHeight + padding);
144
146
  }
145
- }, [gridWeight]);
147
+ }, [gridWeight, realColumn]);
146
148
 
147
149
  var isShowMore = function isShowMore() {
148
150
  var padding = 16;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["VtxSearch","props","layout","column","lg","md","sm","gridWeight","titles","labelWidth","wrapClassName","isConfirmButton","isClearButton","isMoreButton","confirmText","clearText","onConfirm","onClear","renderButtons","showAll","onToggleShow","vtxSearchRef","useRef","size","useColSize","realColumn","useContext","StoreCtx","onCollapse","initStyle","height","useState","weightiness","setWeightiness","useSetState","style","setStyle","boxStyle","ref","newGridWeight","filter","item","newTitles","newChildren","Array","isArray","children","rowHeight","useLayoutEffect","map","current","clientHeight","isShowMore","padding","analyzeChildren","data","cData","length","render","chData","forEach","ite","push","index","layout_h","d","i","textAlign","width","layout_v","gwt","classnames","paddingTop","propTypes","PropTypes","oneOf","objectOf","number","array","string","node","bool","func"],"sources":["vtx-search/index.jsx"],"sourcesContent":["/*\r\n * @Author: chenxinyu\r\n * @Date: 2021-03-24 21:47:52\r\n * @LastEditors: your name\r\n * @LastEditTime: 2022-03-22 16:19:00\r\n * @Description: 查询布局组件\r\n * @FilePath: \\react-components\\components\\vtx-search\\index.jsx\r\n */\r\nimport React, { useState, useLayoutEffect, useRef, useContext } from 'react';\r\nimport useSetState from 'ahooks/es/useSetState';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Button from 'antd/lib/button';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport UpOutlined from '@ant-design/icons/UpOutlined';\r\nimport DownOutlined from '@ant-design/icons/DownOutlined';\r\nimport VtxRow from './VtxRow';\r\nimport VtxCol from './VtxCol';\r\nimport { StoreCtx } from '../vtx-page-layout/TableLayout';\r\nimport useColSize from '../_util/useColSize';\r\n\r\nfunction VtxSearch(props) {\r\n //参数列表\r\n const {\r\n layout = 'horizontal',\r\n column = { lg: 4, md: 3, sm: 2 },\r\n gridWeight = [],\r\n titles = [],\r\n labelWidth = 84, //搜索条件名宽度\r\n wrapClassName,\r\n isConfirmButton = true, //是否显示确认按钮\r\n isClearButton = true, //是否显示清空按钮\r\n isMoreButton = true, //是否显示更多按钮\r\n confirmText = '查询', //确认按钮文本\r\n clearText = '重置', //情况按钮文本\r\n onConfirm, //确认按钮回调\r\n onClear, //清空按钮回调\r\n renderButtons, //自定义按钮块\r\n showAll = false, //是否展示所有查询条件\r\n onToggleShow,\r\n } = props;\r\n\r\n const vtxSearchRef = useRef();\r\n const size = useColSize(vtxSearchRef);\r\n const realColumn = column[size];\r\n\r\n const { onCollapse } = useContext(StoreCtx);\r\n\r\n const initStyle = {\r\n height: layout === 'horizontal' ? 48 : 68,\r\n };\r\n //初始化\r\n const [weightiness, setWeightiness] = useState(0);\r\n const [style, setStyle] = useSetState(initStyle);\r\n const { height, boxStyle } = style;\r\n const ref = useRef();\r\n\r\n const newGridWeight = gridWeight.filter(item => !!item);\r\n const newTitles = titles.filter(item => !!item);\r\n const newChildren = Array.isArray(props?.children)\r\n ? props?.children.filter(item => !!item)\r\n : props?.children;\r\n\r\n const rowHeight = layout === 'horizontal' ? 48 : 68;\r\n\r\n useLayoutEffect(() => {\r\n let weightiness = 0;\r\n newGridWeight.map(item => {\r\n weightiness += item;\r\n });\r\n\r\n setWeightiness(weightiness);\r\n if (showAll) {\r\n setStyle(\r\n weightiness > realColumn\r\n ? {\r\n height: ref.current.clientHeight,\r\n }\r\n : initStyle,\r\n );\r\n }\r\n }, [gridWeight]);\r\n\r\n const isShowMore = () => {\r\n const padding = 16;\r\n if (height > rowHeight) {\r\n setStyle(initStyle);\r\n if (onToggleShow && typeof onToggleShow === 'function') {\r\n onToggleShow(rowHeight + padding);\r\n }\r\n onCollapse && onCollapse(rowHeight + padding);\r\n } else {\r\n setStyle({\r\n height: ref.current.clientHeight,\r\n });\r\n if (onToggleShow && typeof onToggleShow === 'function') {\r\n onToggleShow(ref.current.clientHeight + padding);\r\n }\r\n onCollapse && onCollapse(ref.current.clientHeight + padding);\r\n }\r\n };\r\n\r\n const analyzeChildren = data => {\r\n let cData = data;\r\n if (!cData) return null;\r\n if (typeof data == 'function') {\r\n cData = data();\r\n }\r\n if (!cData.length) {\r\n return render(cData, 0);\r\n } else {\r\n let chData = [];\r\n cData.forEach(item => {\r\n if (typeof item == 'function') {\r\n let ite = item();\r\n if (Array.isArray(ite)) {\r\n chData.push(...ite);\r\n }\r\n chData.push(ite);\r\n return;\r\n }\r\n if (Array.isArray(item)) {\r\n chData.push(...item);\r\n return;\r\n }\r\n chData.push(item);\r\n });\r\n return chData.map((item, index) => {\r\n return render(item, index);\r\n });\r\n }\r\n };\r\n\r\n const layout_h = (d, i) => (\r\n <VtxRow gutter={2} attr=\"row\">\r\n <div className=\"vtx-search-label_h\" style={{ textAlign: 'right', width: labelWidth }}>\r\n <Tooltip title={newTitles[i]} placement=\"topRight\">\r\n {newTitles[i]}\r\n </Tooltip>\r\n </div>\r\n <div className=\"vtx-search-lists_h\" style={{ width: `calc(100% - ${labelWidth}px)` }}>\r\n <span className=\"vtx-search-list\">{d}</span>\r\n </div>\r\n </VtxRow>\r\n );\r\n\r\n const layout_v = (d, i) => (\r\n <VtxRow gutter={2} attr=\"row\" className=\"vtx-search-item__v\">\r\n <div className=\"vtx-search-label_v\">\r\n <Tooltip title={newTitles[i]} placement=\"topLeft\">\r\n {newTitles[i]}\r\n </Tooltip>\r\n </div>\r\n <div className=\"vtx-search-lists_v\">\r\n <span className=\"vtx-search-list\">{d}</span>\r\n </div>\r\n </VtxRow>\r\n );\r\n\r\n let render = (d, i) => {\r\n let gwt = newGridWeight[i];\r\n return (\r\n <VtxCol key={i} span={(24 / realColumn) * gwt} className=\"a\">\r\n {layout === 'horizontal' && layout_h(d, i)}\r\n {layout === 'vertical' && layout_v(d, i)}\r\n </VtxCol>\r\n );\r\n };\r\n\r\n return (\r\n <div\r\n className={classnames('vtx-search', wrapClassName)}\r\n style={{ height: `${height + 16}px`, ...boxStyle }}\r\n ref={vtxSearchRef}\r\n >\r\n <div className=\"vtx-search-element\" ref={ref}>\r\n <VtxRow gutter={24} attr=\"row\">\r\n {analyzeChildren(newChildren)}\r\n </VtxRow>\r\n </div>\r\n\r\n <div\r\n className=\"vtx-search-buttons\"\r\n style={{ paddingTop: layout === 'vertical' ? 28 : 0 }}\r\n >\r\n {renderButtons ? (\r\n <VtxRow gutter={8} attr=\"row\">\r\n {renderButtons}\r\n </VtxRow>\r\n ) : (\r\n <VtxRow gutter={8} attr=\"row\">\r\n {isConfirmButton && (\r\n <VtxCol span={9}>\r\n <span data-type={'bt'}>\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"primary\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n </span>\r\n </VtxCol>\r\n )}\r\n {isClearButton && (\r\n <VtxCol span={9}>\r\n <span data-type={'bt'}>\r\n <Button style={{ width: '100%' }} onClick={onClear}>\r\n {clearText}\r\n </Button>\r\n </span>\r\n </VtxCol>\r\n )}\r\n {weightiness > realColumn && isMoreButton && (\r\n <VtxCol span={6}>\r\n <div\r\n data-type={'bt'}\r\n onClick={() => isShowMore()}\r\n className=\"vtx-search-more\"\r\n >\r\n {height > rowHeight ? (\r\n <>\r\n 收起\r\n <UpOutlined />\r\n </>\r\n ) : (\r\n <>\r\n 展开\r\n <DownOutlined />\r\n </>\r\n )}\r\n </div>\r\n </VtxCol>\r\n )}\r\n </VtxRow>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nVtxSearch.propTypes = {\r\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\r\n column: PropTypes.objectOf(PropTypes.number),\r\n gridWeight: PropTypes.array,\r\n titles: PropTypes.array,\r\n labelWidth: PropTypes.number,\r\n wrapClassName: PropTypes.string,\r\n children: PropTypes.node,\r\n isConfirmButton: PropTypes.bool,\r\n isClearButton: PropTypes.bool,\r\n isMoreButton: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n confirmText: PropTypes.string,\r\n onClear: PropTypes.func,\r\n clearText: PropTypes.string,\r\n renderButtons: PropTypes.node,\r\n showAll: PropTypes.bool,\r\n onToggleShow: PropTypes.func,\r\n};\r\nexport default VtxSearch;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["VtxSearch","props","layout","column","lg","md","sm","gridWeight","titles","labelWidth","wrapClassName","isConfirmButton","isClearButton","isMoreButton","confirmText","clearText","onConfirm","onClear","renderButtons","showAll","onToggleShow","vtxSearchRef","useRef","size","useColSize","realColumn","useContext","StoreCtx","onCollapse","initStyle","height","useState","weightiness","setWeightiness","useSetState","style","setStyle","boxStyle","ref","newGridWeight","filter","item","newTitles","newChildren","Array","isArray","children","rowHeight","useLayoutEffect","map","padding","current","clientHeight","isShowMore","analyzeChildren","data","cData","length","render","chData","forEach","ite","push","index","layout_h","d","i","textAlign","width","layout_v","gwt","classnames","paddingTop","propTypes","PropTypes","oneOf","objectOf","number","array","string","node","bool","func"],"sources":["vtx-search/index.jsx"],"sourcesContent":["/*\r\n * @Author: chenxinyu\r\n * @Date: 2021-03-24 21:47:52\r\n * @LastEditors: your name\r\n * @LastEditTime: 2022-03-22 16:19:00\r\n * @Description: 查询布局组件\r\n * @FilePath: \\react-components\\components\\vtx-search\\index.jsx\r\n */\r\nimport React, { useState, useLayoutEffect, useRef, useContext } from 'react';\r\nimport useSetState from 'ahooks/es/useSetState';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Button from 'antd/lib/button';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport UpOutlined from '@ant-design/icons/UpOutlined';\r\nimport DownOutlined from '@ant-design/icons/DownOutlined';\r\nimport VtxRow from './VtxRow';\r\nimport VtxCol from './VtxCol';\r\nimport { StoreCtx } from '../vtx-page-layout/TableLayout';\r\nimport useColSize from '../_util/useColSize';\r\n\r\nfunction VtxSearch(props) {\r\n //参数列表\r\n const {\r\n layout = 'horizontal',\r\n column = { lg: 4, md: 3, sm: 2 },\r\n gridWeight = [],\r\n titles = [],\r\n labelWidth = 84, //搜索条件名宽度\r\n wrapClassName,\r\n isConfirmButton = true, //是否显示确认按钮\r\n isClearButton = true, //是否显示清空按钮\r\n isMoreButton = true, //是否显示更多按钮\r\n confirmText = '查询', //确认按钮文本\r\n clearText = '重置', //情况按钮文本\r\n onConfirm, //确认按钮回调\r\n onClear, //清空按钮回调\r\n renderButtons, //自定义按钮块\r\n showAll = false, //是否展示所有查询条件\r\n onToggleShow,\r\n } = props;\r\n\r\n const vtxSearchRef = useRef();\r\n const size = useColSize(vtxSearchRef);\r\n const realColumn = column[size];\r\n\r\n const { onCollapse } = useContext(StoreCtx);\r\n\r\n const initStyle = {\r\n height: layout === 'horizontal' ? 48 : 68,\r\n };\r\n //初始化\r\n const [weightiness, setWeightiness] = useState(0);\r\n const [style, setStyle] = useSetState(initStyle);\r\n const { height, boxStyle } = style;\r\n const ref = useRef();\r\n\r\n const newGridWeight = gridWeight.filter(item => !!item);\r\n const newTitles = titles.filter(item => !!item);\r\n const newChildren = Array.isArray(props?.children)\r\n ? props?.children.filter(item => !!item)\r\n : props?.children;\r\n\r\n const rowHeight = layout === 'horizontal' ? 48 : 68;\r\n\r\n useLayoutEffect(() => {\r\n let weightiness = 0;\r\n newGridWeight.map(item => {\r\n weightiness += item;\r\n });\r\n const padding = 16;\r\n setWeightiness(weightiness);\r\n\r\n if (showAll) {\r\n setStyle(\r\n weightiness > realColumn\r\n ? {\r\n height: ref.current.clientHeight,\r\n }\r\n : initStyle,\r\n );\r\n onCollapse && onCollapse(ref.current.clientHeight + padding);\r\n }\r\n }, [gridWeight, realColumn]);\r\n\r\n const isShowMore = () => {\r\n const padding = 16;\r\n if (height > rowHeight) {\r\n setStyle(initStyle);\r\n if (onToggleShow && typeof onToggleShow === 'function') {\r\n onToggleShow(rowHeight + padding);\r\n }\r\n onCollapse && onCollapse(rowHeight + padding);\r\n } else {\r\n setStyle({\r\n height: ref.current.clientHeight,\r\n });\r\n if (onToggleShow && typeof onToggleShow === 'function') {\r\n onToggleShow(ref.current.clientHeight + padding);\r\n }\r\n onCollapse && onCollapse(ref.current.clientHeight + padding);\r\n }\r\n };\r\n\r\n const analyzeChildren = data => {\r\n let cData = data;\r\n if (!cData) return null;\r\n if (typeof data == 'function') {\r\n cData = data();\r\n }\r\n if (!cData.length) {\r\n return render(cData, 0);\r\n } else {\r\n let chData = [];\r\n cData.forEach(item => {\r\n if (typeof item == 'function') {\r\n let ite = item();\r\n if (Array.isArray(ite)) {\r\n chData.push(...ite);\r\n }\r\n chData.push(ite);\r\n return;\r\n }\r\n if (Array.isArray(item)) {\r\n chData.push(...item);\r\n return;\r\n }\r\n chData.push(item);\r\n });\r\n return chData.map((item, index) => {\r\n return render(item, index);\r\n });\r\n }\r\n };\r\n\r\n const layout_h = (d, i) => (\r\n <VtxRow gutter={2} attr=\"row\">\r\n <div className=\"vtx-search-label_h\" style={{ textAlign: 'right', width: labelWidth }}>\r\n <Tooltip title={newTitles[i]} placement=\"topRight\">\r\n {newTitles[i]}\r\n </Tooltip>\r\n </div>\r\n <div className=\"vtx-search-lists_h\" style={{ width: `calc(100% - ${labelWidth}px)` }}>\r\n <span className=\"vtx-search-list\">{d}</span>\r\n </div>\r\n </VtxRow>\r\n );\r\n\r\n const layout_v = (d, i) => (\r\n <VtxRow gutter={2} attr=\"row\" className=\"vtx-search-item__v\">\r\n <div className=\"vtx-search-label_v\">\r\n <Tooltip title={newTitles[i]} placement=\"topLeft\">\r\n {newTitles[i]}\r\n </Tooltip>\r\n </div>\r\n <div className=\"vtx-search-lists_v\">\r\n <span className=\"vtx-search-list\">{d}</span>\r\n </div>\r\n </VtxRow>\r\n );\r\n\r\n let render = (d, i) => {\r\n let gwt = newGridWeight[i];\r\n return (\r\n <VtxCol key={i} span={(24 / realColumn) * gwt} className=\"a\">\r\n {layout === 'horizontal' && layout_h(d, i)}\r\n {layout === 'vertical' && layout_v(d, i)}\r\n </VtxCol>\r\n );\r\n };\r\n\r\n return (\r\n <div\r\n className={classnames('vtx-search', wrapClassName)}\r\n style={{ height: `${height + 16}px`, ...boxStyle }}\r\n ref={vtxSearchRef}\r\n >\r\n <div className=\"vtx-search-element\" ref={ref}>\r\n <VtxRow gutter={24} attr=\"row\">\r\n {analyzeChildren(newChildren)}\r\n </VtxRow>\r\n </div>\r\n\r\n <div\r\n className=\"vtx-search-buttons\"\r\n style={{ paddingTop: layout === 'vertical' ? 28 : 0 }}\r\n >\r\n {renderButtons ? (\r\n <VtxRow gutter={8} attr=\"row\">\r\n {renderButtons}\r\n </VtxRow>\r\n ) : (\r\n <VtxRow gutter={8} attr=\"row\">\r\n {isConfirmButton && (\r\n <VtxCol span={9}>\r\n <span data-type={'bt'}>\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"primary\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n </span>\r\n </VtxCol>\r\n )}\r\n {isClearButton && (\r\n <VtxCol span={9}>\r\n <span data-type={'bt'}>\r\n <Button style={{ width: '100%' }} onClick={onClear}>\r\n {clearText}\r\n </Button>\r\n </span>\r\n </VtxCol>\r\n )}\r\n {weightiness > realColumn && isMoreButton && (\r\n <VtxCol span={6}>\r\n <div\r\n data-type={'bt'}\r\n onClick={() => isShowMore()}\r\n className=\"vtx-search-more\"\r\n >\r\n {height > rowHeight ? (\r\n <>\r\n 收起\r\n <UpOutlined />\r\n </>\r\n ) : (\r\n <>\r\n 展开\r\n <DownOutlined />\r\n </>\r\n )}\r\n </div>\r\n </VtxCol>\r\n )}\r\n </VtxRow>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nVtxSearch.propTypes = {\r\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\r\n column: PropTypes.objectOf(PropTypes.number),\r\n gridWeight: PropTypes.array,\r\n titles: PropTypes.array,\r\n labelWidth: PropTypes.number,\r\n wrapClassName: PropTypes.string,\r\n children: PropTypes.node,\r\n isConfirmButton: PropTypes.bool,\r\n isClearButton: PropTypes.bool,\r\n isMoreButton: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n confirmText: PropTypes.string,\r\n onClear: PropTypes.func,\r\n clearText: PropTypes.string,\r\n renderButtons: PropTypes.node,\r\n showAll: PropTypes.bool,\r\n onToggleShow: PropTypes.func,\r\n};\r\nexport default VtxSearch;\r\n"],"mappings":"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"}