@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.
- package/CHANGELOG.md +40 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/lib/vtx-datagrid/index.js +1 -1
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-datagrid/style/index.css +1 -0
- package/lib/vtx-datagrid/style/index.less +215 -214
- package/lib/vtx-scrollable-row/index.js +4 -2
- package/lib/vtx-scrollable-row/index.js.map +1 -1
- package/lib/vtx-search/index.js +3 -1
- package/lib/vtx-search/index.js.map +1 -1
- package/lib/vtx-search-map-input/index.js +18 -4
- package/lib/vtx-search-map-input/index.js.map +1 -1
- package/lib/vtx-wang-editor/index.js +246 -0
- package/lib/vtx-wang-editor/index.js.map +1 -0
- package/lib/vtx-wang-editor/style/css.js +6 -0
- package/lib/vtx-wang-editor/style/css.js.map +1 -0
- package/lib/vtx-wang-editor/style/index.css +20 -0
- package/lib/vtx-wang-editor/style/index.js +6 -0
- package/lib/vtx-wang-editor/style/index.js.map +1 -0
- package/lib/vtx-wang-editor/style/index.less +24 -0
- package/lib/vtx-wang-editor/wangEditorUtil.js +229 -0
- package/lib/vtx-wang-editor/wangEditorUtil.js.map +1 -0
- package/package.json +4 -1
|
@@ -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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.ant-table-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
//
|
|
100
|
-
background-color:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// border-
|
|
125
|
-
border:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
&-toolbar-
|
|
162
|
-
|
|
163
|
-
display:
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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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"}
|
package/lib/vtx-search/index.js
CHANGED
|
@@ -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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"}
|