@vtx/components 3.1.55 → 3.1.56
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.
|
@@ -17,10 +17,16 @@ var _button = _interopRequireDefault(require("antd/lib/button"));
|
|
|
17
17
|
|
|
18
18
|
var _checkbox = _interopRequireDefault(require("antd/lib/checkbox"));
|
|
19
19
|
|
|
20
|
+
var _message = _interopRequireDefault(require("antd/lib/message"));
|
|
21
|
+
|
|
20
22
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
23
|
|
|
22
24
|
var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
23
25
|
|
|
26
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
27
|
+
|
|
28
|
+
var _getUrlParam2 = _interopRequireDefault(require("../_util/getUrlParam"));
|
|
29
|
+
|
|
24
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
31
|
|
|
26
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -48,9 +54,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
48
54
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
49
55
|
|
|
50
56
|
function ColumnSetting(props) {
|
|
57
|
+
var _getUrlParam = (0, _getUrlParam2["default"])(),
|
|
58
|
+
_getUrlParam$token = _getUrlParam.token,
|
|
59
|
+
token = _getUrlParam$token === void 0 ? '' : _getUrlParam$token,
|
|
60
|
+
_getUrlParam$userId = _getUrlParam.userId,
|
|
61
|
+
userId = _getUrlParam$userId === void 0 ? '' : _getUrlParam$userId,
|
|
62
|
+
_getUrlParam$tenantId = _getUrlParam.tenantId,
|
|
63
|
+
tenantId = _getUrlParam$tenantId === void 0 ? '' : _getUrlParam$tenantId;
|
|
64
|
+
|
|
51
65
|
var _useSet = (0, _useSet3["default"])({
|
|
52
66
|
indeterminate: false,
|
|
53
|
-
checkAll: false
|
|
67
|
+
checkAll: false,
|
|
68
|
+
columnSettingId: ''
|
|
54
69
|
}),
|
|
55
70
|
_useSet2 = _slicedToArray(_useSet, 2),
|
|
56
71
|
state = _useSet2[0],
|
|
@@ -63,7 +78,8 @@ function ColumnSetting(props) {
|
|
|
63
78
|
onReset = props.onReset,
|
|
64
79
|
_props$disabledColumn = props.disabledColumnKeys,
|
|
65
80
|
disabledColumnKeys = _props$disabledColumn === void 0 ? [] : _props$disabledColumn,
|
|
66
|
-
onColumnsSave = props.onColumnsSave
|
|
81
|
+
onColumnsSave = props.onColumnsSave,
|
|
82
|
+
uniqueKey = props.uniqueKey;
|
|
67
83
|
(0, _react.useEffect)(function () {
|
|
68
84
|
var chkLen = checkedColumnKeys === null || checkedColumnKeys === void 0 ? void 0 : checkedColumnKeys.length;
|
|
69
85
|
var optionLen = columnSettingOptions === null || columnSettingOptions === void 0 ? void 0 : columnSettingOptions.length;
|
|
@@ -101,6 +117,74 @@ function ColumnSetting(props) {
|
|
|
101
117
|
}
|
|
102
118
|
};
|
|
103
119
|
|
|
120
|
+
function getUmsColumns() {
|
|
121
|
+
if (!onColumnsSave && !!uniqueKey) {
|
|
122
|
+
(0, _axios["default"])({
|
|
123
|
+
method: 'GET',
|
|
124
|
+
url: '/cloud/management/api/v101/user/config/table/page',
|
|
125
|
+
headers: {
|
|
126
|
+
Authorization: token ? "Bearer ".concat(token) : ''
|
|
127
|
+
},
|
|
128
|
+
params: {
|
|
129
|
+
tableCode: uniqueKey
|
|
130
|
+
}
|
|
131
|
+
}).then(function (_ref) {
|
|
132
|
+
var data = _ref.data;
|
|
133
|
+
|
|
134
|
+
if ((data === null || data === void 0 ? void 0 : data.result) == 0 && (data === null || data === void 0 ? void 0 : data.data.total) > 0) {
|
|
135
|
+
var record = data.data.rows[0];
|
|
136
|
+
(record === null || record === void 0 ? void 0 : record.id) && setState({
|
|
137
|
+
columnSettingId: record.id
|
|
138
|
+
});
|
|
139
|
+
var timer = setTimeout(function () {
|
|
140
|
+
(record === null || record === void 0 ? void 0 : record.showColumns) && onChange(record.showColumns.split(","));
|
|
141
|
+
clearTimeout(timer);
|
|
142
|
+
}, 500);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
} //
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
var saveColumns = function saveColumns() {
|
|
150
|
+
if ((checkedColumnKeys || []).length == 0) {
|
|
151
|
+
_message["default"].warn('至少勾选一列保存');
|
|
152
|
+
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
(0, _axios["default"])({
|
|
157
|
+
method: 'POST',
|
|
158
|
+
url: '/cloud/management/api/v101/user/config/table/save',
|
|
159
|
+
headers: {
|
|
160
|
+
Authorization: token ? "Bearer ".concat(token) : '',
|
|
161
|
+
'Content-Type': 'application/json'
|
|
162
|
+
},
|
|
163
|
+
data: JSON.stringify({
|
|
164
|
+
showColumns: (checkedColumnKeys || []).join(','),
|
|
165
|
+
tableCode: uniqueKey,
|
|
166
|
+
name: uniqueKey,
|
|
167
|
+
userId: userId,
|
|
168
|
+
tenantId: tenantId,
|
|
169
|
+
id: state.columnSettingId
|
|
170
|
+
})
|
|
171
|
+
}).then(function (_ref2) {
|
|
172
|
+
var data = _ref2.data;
|
|
173
|
+
|
|
174
|
+
if ((data === null || data === void 0 ? void 0 : data.result) == 0) {
|
|
175
|
+
_message["default"].success('操作成功');
|
|
176
|
+
|
|
177
|
+
getUmsColumns();
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
var isReady = columnSettingOptions.length > 0;
|
|
183
|
+
(0, _react.useEffect)(function () {
|
|
184
|
+
if (isReady && uniqueKey) {
|
|
185
|
+
getUmsColumns();
|
|
186
|
+
}
|
|
187
|
+
}, [isReady, uniqueKey]);
|
|
104
188
|
return /*#__PURE__*/_react["default"].createElement(_popover["default"], {
|
|
105
189
|
trigger: "click",
|
|
106
190
|
placement: "bottomRight",
|
|
@@ -138,6 +222,15 @@ function ColumnSetting(props) {
|
|
|
138
222
|
onClick: function onClick() {
|
|
139
223
|
return onSaveChange();
|
|
140
224
|
}
|
|
225
|
+
}, "\u4FDD\u5B58")) : null, !onColumnsSave && uniqueKey ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_divider["default"], {
|
|
226
|
+
style: {
|
|
227
|
+
margin: '5px 0 10px 0'
|
|
228
|
+
}
|
|
229
|
+
}), /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
230
|
+
block: true,
|
|
231
|
+
onClick: function onClick() {
|
|
232
|
+
return saveColumns();
|
|
233
|
+
}
|
|
141
234
|
}, "\u4FDD\u5B58")) : null)
|
|
142
235
|
}, props.children);
|
|
143
236
|
}
|
|
@@ -150,6 +243,7 @@ ColumnSetting.propTypes = {
|
|
|
150
243
|
onChange: _propTypes["default"].func,
|
|
151
244
|
onReset: _propTypes["default"].func,
|
|
152
245
|
disabledColumnKeys: _propTypes["default"].array,
|
|
153
|
-
onColumnsSave: _propTypes["default"].func
|
|
246
|
+
onColumnsSave: _propTypes["default"].func,
|
|
247
|
+
uniqueKey: _propTypes["default"].string
|
|
154
248
|
};
|
|
155
249
|
//# sourceMappingURL=ColumnSetting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","useSet","indeterminate","checkAll","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","opt","dataIndex","includes","title","margin","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Popover from 'antd/lib/popover';\nimport Divider from 'antd/lib/divider';\nimport Button from 'antd/lib/button';\nimport Checkbox from 'antd/lib/checkbox';\nimport PropTypes from 'prop-types';\n\nimport useSet from '../_util/useSet';\n\nexport default function ColumnSetting(props) {\n const [state, setState] = useSet({\n indeterminate: false,\n checkAll: false,\n });\n const {\n prefixCls,\n checkedColumnKeys,\n columnSettingOptions,\n onChange,\n onReset,\n disabledColumnKeys = [],\n onColumnsSave,\n } = props;\n\n useEffect(() => {\n const chkLen = checkedColumnKeys?.length;\n const optionLen = columnSettingOptions?.length;\n setState({\n checkAll: chkLen == optionLen,\n indeterminate: chkLen && chkLen < optionLen,\n });\n }, [checkedColumnKeys]);\n\n const { indeterminate, checkAll } = state;\n\n // 单选\n const onCheckChange = (e, key) => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? [...checkedColumnKeys, key]\n : checkedColumnKeys?.filter(item => item != key);\n onChange(newCheckedColumnKeys);\n }\n };\n\n // 全选\n const onCheckAllChange = e => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? columnSettingOptions?.map(item => item.key)\n : [];\n onChange(newCheckedColumnKeys);\n }\n };\n // 保存按钮\n const onSaveChange = () => {\n if (onChange) {\n onColumnsSave(checkedColumnKeys);\n }\n };\n return (\n <Popover\n trigger=\"click\"\n placement=\"bottomRight\"\n arrowPointAtCenter\n title={\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\n <Checkbox\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\n indeterminate={indeterminate}\n checked={checkAll}\n onChange={onCheckAllChange}\n >\n 列展示\n </Checkbox>\n <a onClick={onReset}>重置</a>\n </div>\n }\n content={\n <div className={`${prefixCls}-column-setting-list`}>\n {columnSettingOptions?.map(opt => {\n const key = opt.key || opt.dataIndex;\n return (\n <div key={key}>\n <Checkbox\n checked={checkedColumnKeys?.includes(key)}\n onChange={e => onCheckChange(e, key)}\n disabled={disabledColumnKeys.includes(key)}\n >\n {opt.title}\n </Checkbox>\n </div>\n );\n })}\n {typeof onColumnsSave === 'function' ? (\n <>\n <Divider style={{ margin: '5px 0 10px 0' }} />\n <Button block={true} onClick={() => onSaveChange()}>\n 保存\n </Button>\n </>\n ) : null}\n </div>\n }\n >\n {props.children}\n </Popover>\n );\n}\n\nColumnSetting.propTypes = {\n prefixCls: PropTypes.string,\n checkedColumnKeys: PropTypes.array,\n columnSettingOptions: PropTypes.array,\n children: PropTypes.node,\n onChange: PropTypes.func,\n onReset: PropTypes.func,\n disabledColumnKeys: PropTypes.array,\n onColumnsSave: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","getUrlParam","token","userId","tenantId","useSet","indeterminate","checkAll","columnSettingId","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","uniqueKey","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","getUmsColumns","axios","method","url","headers","Authorization","params","tableCode","then","data","result","total","record","rows","id","timer","setTimeout","showColumns","split","clearTimeout","saveColumns","message","warn","JSON","stringify","join","name","success","isReady","opt","dataIndex","includes","title","margin","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Popover from 'antd/lib/popover';\nimport Divider from 'antd/lib/divider';\nimport Button from 'antd/lib/button';\nimport Checkbox from 'antd/lib/checkbox';\nimport message from 'antd/lib/message';\nimport PropTypes from 'prop-types';\nimport useSet from '../_util/useSet';\nimport axios from 'axios';\nimport getUrlParam from '../_util/getUrlParam';\n\nexport default function ColumnSetting(props) {\n const { token='', userId='', tenantId='' } = getUrlParam();\n const [state, setState] = useSet({\n indeterminate: false,\n checkAll: false,\n columnSettingId: '',\n });\n const {\n prefixCls,\n checkedColumnKeys,\n columnSettingOptions,\n onChange,\n onReset,\n disabledColumnKeys = [],\n onColumnsSave,\n uniqueKey\n } = props;\n\n useEffect(() => {\n const chkLen = checkedColumnKeys?.length;\n const optionLen = columnSettingOptions?.length;\n setState({\n checkAll: chkLen == optionLen,\n indeterminate: chkLen && chkLen < optionLen,\n });\n }, [checkedColumnKeys]);\n\n const { indeterminate, checkAll } = state;\n\n // 单选\n const onCheckChange = (e, key) => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? [...checkedColumnKeys, key]\n : checkedColumnKeys?.filter(item => item != key);\n onChange(newCheckedColumnKeys);\n }\n };\n\n // 全选\n const onCheckAllChange = e => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? columnSettingOptions?.map(item => item.key)\n : [];\n onChange(newCheckedColumnKeys);\n }\n };\n // 保存按钮\n const onSaveChange = () => {\n if (onChange) {\n onColumnsSave(checkedColumnKeys);\n }\n };\n function getUmsColumns (){\n if(!onColumnsSave && !!uniqueKey){\n axios({\n method: 'GET',\n url: '/cloud/management/api/v101/user/config/table/page',\n headers: {\n Authorization: token ? `Bearer ${token}` : '',\n },\n params: {\n tableCode: uniqueKey,\n }\n }).then(({data})=>{\n if(data?.result == 0 && data?.data.total>0){\n let record = data.data.rows[0];\n record?.id && setState({columnSettingId: record.id});\n let timer = setTimeout(()=>{\n record?.showColumns && onChange(record.showColumns.split(\",\"));\n clearTimeout(timer)\n },500)\n }\n })\n }\n }\n // \n const saveColumns = ()=>{\n if((checkedColumnKeys||[]).length == 0){\n message.warn('至少勾选一列保存');\n return false;\n }\n axios({\n method: 'POST',\n url: '/cloud/management/api/v101/user/config/table/save',\n headers: {\n Authorization: token ? `Bearer ${token}` : '',\n 'Content-Type': 'application/json',\n },\n data: JSON.stringify({\n showColumns: (checkedColumnKeys||[]).join(','),\n tableCode: uniqueKey,\n name: uniqueKey,\n userId,\n tenantId,\n id: state.columnSettingId\n })\n }).then(({data})=>{\n if(data?.result == 0){\n message.success('操作成功');\n getUmsColumns();\n }\n })\n }\n const isReady = columnSettingOptions.length>0;\n\n useEffect(()=>{\n if(isReady && uniqueKey){\n getUmsColumns();\n }\n },[isReady, uniqueKey])\n return (\n <Popover\n trigger=\"click\"\n placement=\"bottomRight\"\n arrowPointAtCenter\n title={\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\n <Checkbox\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\n indeterminate={indeterminate}\n checked={checkAll}\n onChange={onCheckAllChange}\n >\n 列展示\n </Checkbox>\n <a onClick={onReset}>重置</a>\n </div>\n }\n content={\n <div className={`${prefixCls}-column-setting-list`}>\n {columnSettingOptions?.map(opt => {\n const key = opt.key || opt.dataIndex;\n return (\n <div key={key}>\n <Checkbox\n checked={checkedColumnKeys?.includes(key)}\n onChange={e => onCheckChange(e, key)}\n disabled={disabledColumnKeys.includes(key)}\n >\n {opt.title}\n </Checkbox>\n </div>\n );\n })}\n {typeof onColumnsSave === 'function' ? (\n <>\n <Divider style={{ margin: '5px 0 10px 0' }} />\n <Button block={true} onClick={() => onSaveChange()}>\n 保存\n </Button>\n </>\n ) : null}\n {!onColumnsSave && uniqueKey ? (\n <>\n <Divider style={{ margin: '5px 0 10px 0' }} />\n <Button block={true} onClick={() => saveColumns()}>\n 保存\n </Button>\n </>\n ) : null}\n </div>\n }\n >\n {props.children}\n </Popover>\n );\n}\n\nColumnSetting.propTypes = {\n prefixCls: PropTypes.string,\n checkedColumnKeys: PropTypes.array,\n columnSettingOptions: PropTypes.array,\n children: PropTypes.node,\n onChange: PropTypes.func,\n onReset: PropTypes.func,\n disabledColumnKeys: PropTypes.array,\n onColumnsSave: PropTypes.func,\n uniqueKey: PropTypes.string,\n};\n"],"mappings":"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"}
|
|
@@ -41,7 +41,9 @@ var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
|
41
41
|
|
|
42
42
|
var _isFunction = _interopRequireDefault(require("../_util/isFunction"));
|
|
43
43
|
|
|
44
|
-
var
|
|
44
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
45
|
+
|
|
46
|
+
var _excluded = ["prefixCls", "toolbar", "toolbarClassName", "toolbarTilte", "buttonGroup", "refreshIconVisible", "hideColumnSetting", "hideColumnHeight", "visibleColumnKeys", "defaultVisibleColumnKeys", "onVisibleColumnsChange", "onRefresh", "indexColumn", "indexFixed", "bordered", "indexTitle", "startIndex", "autoFit", "headFootHeight", "columnResizable", "components", "className", "style", "emptyText", "onRowSelectionClear", "searchCollapseEvent$", "disabledColumnKeys", "onColumnsSave", "uniqueKey", "customEnumText"];
|
|
45
47
|
|
|
46
48
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
47
49
|
|
|
@@ -95,7 +97,8 @@ function VtxDatagrid(props) {
|
|
|
95
97
|
columnSettingOptions: [],
|
|
96
98
|
datagridId: "vtx-datagrid-".concat(new Date().getTime()),
|
|
97
99
|
scrollY: 0,
|
|
98
|
-
size: 'middle'
|
|
100
|
+
size: 'middle',
|
|
101
|
+
projectKey: ''
|
|
99
102
|
}),
|
|
100
103
|
_useSet2 = _slicedToArray(_useSet, 2),
|
|
101
104
|
state = _useSet2[0],
|
|
@@ -153,12 +156,38 @@ function VtxDatagrid(props) {
|
|
|
153
156
|
searchCollapseEvent$ = props.searchCollapseEvent$,
|
|
154
157
|
disabledColumnKeys = props.disabledColumnKeys,
|
|
155
158
|
onColumnsSave = props.onColumnsSave,
|
|
159
|
+
uniqueKey = props.uniqueKey,
|
|
156
160
|
_props$customEnumText = props.customEnumText,
|
|
157
161
|
customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText,
|
|
158
|
-
rest = _objectWithoutProperties(props, _excluded);
|
|
162
|
+
rest = _objectWithoutProperties(props, _excluded); // 规则,菜单根目录_页面路由
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
function getUniqueKey() {
|
|
166
|
+
var route = location.href.match(/#\/(\S*)\?/);
|
|
167
|
+
|
|
168
|
+
if (route) {
|
|
169
|
+
(0, _axios["default"])({
|
|
170
|
+
method: 'GET',
|
|
171
|
+
url: "".concat(location.pathname, "resources/json/menu.json")
|
|
172
|
+
}).then(function (res) {
|
|
173
|
+
var _res$data;
|
|
174
|
+
|
|
175
|
+
if ((res === null || res === void 0 ? void 0 : res.status) == 200 && (_res$data = res.data) !== null && _res$data !== void 0 && _res$data.key) {
|
|
176
|
+
setState({
|
|
177
|
+
projectKey: "".concat(res.data.key, "_").concat(route ? route[1] : 'test')
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
159
183
|
|
|
160
184
|
(0, _react.useEffect)(function () {
|
|
161
|
-
//
|
|
185
|
+
// 当没有传入唯一值而且没有自定义列保存的时候根据规则自动生成唯一值
|
|
186
|
+
if (!uniqueKey && !onColumnsSave) {
|
|
187
|
+
getUniqueKey();
|
|
188
|
+
} // componentDidMount
|
|
189
|
+
|
|
190
|
+
|
|
162
191
|
if (autoFit) {
|
|
163
192
|
window.addEventListener('resize', calculateHeight, false);
|
|
164
193
|
}
|
|
@@ -255,6 +284,9 @@ function VtxDatagrid(props) {
|
|
|
255
284
|
|
|
256
285
|
|
|
257
286
|
var handleChangeColumns = function handleChangeColumns(keys) {
|
|
287
|
+
console.log(keys, columnSettingOptions === null || columnSettingOptions === void 0 ? void 0 : columnSettingOptions.filter(function (item) {
|
|
288
|
+
return keys.includes(item.key);
|
|
289
|
+
}));
|
|
258
290
|
setState({
|
|
259
291
|
checkedColumnKeys: keys,
|
|
260
292
|
visibleColumns: columnSettingOptions === null || columnSettingOptions === void 0 ? void 0 : columnSettingOptions.filter(function (item) {
|
|
@@ -317,7 +349,8 @@ function VtxDatagrid(props) {
|
|
|
317
349
|
return parseColumns('reset');
|
|
318
350
|
},
|
|
319
351
|
disabledColumnKeys: disabledColumnKeys,
|
|
320
|
-
onColumnsSave: onColumnsSave
|
|
352
|
+
onColumnsSave: onColumnsSave,
|
|
353
|
+
uniqueKey: uniqueKey || state.projectKey
|
|
321
354
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
322
355
|
title: (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.columnSettingText) || "列设置"
|
|
323
356
|
}, /*#__PURE__*/_react["default"].createElement(_SettingOutlined["default"], null)))))));
|
|
@@ -483,6 +516,7 @@ VtxDatagrid.propTypes = {
|
|
|
483
516
|
disabledColumnKeys: _propTypes["default"].array,
|
|
484
517
|
onColumnsSave: _propTypes["default"].func,
|
|
485
518
|
components: _propTypes["default"].object,
|
|
486
|
-
customEnumText: _propTypes["default"].object
|
|
519
|
+
customEnumText: _propTypes["default"].object,
|
|
520
|
+
uniqueKey: _propTypes["default"].string
|
|
487
521
|
};
|
|
488
522
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","components","className","style","emptyText","onRowSelectionClear","searchCollapseEvent$","disabledColumnKeys","onColumnsSave","customEnumText","rest","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","classnames","refreshText","densityDefaultText","densityMiddleText","densitySmallText","columnDensityText","columnSettingText","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","isFunction","text","record","index","renderColumnButtons","undefined","onHeaderCell","width","onResize","handleResize","e","nextColumns","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Table from 'antd/lib/table';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport Menu from 'antd/lib/menu';\r\nimport Empty from 'antd/lib/empty';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\nimport ColumnHeightOutlined from '@ant-design/icons/ColumnHeightOutlined';\r\nimport SettingOutlined from '@ant-design/icons/SettingOutlined';\r\nimport Alert from './Alert';\r\nimport ColumnSetting from './ColumnSetting';\r\nimport ResizeableTitle from './ResizeableTitle';\r\nimport renderColumnButtons from './renderColumnButtons';\r\nimport useSet from '../_util/useSet';\r\nimport isFunction from '../_util/isFunction';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n\r\n const {\r\n prefixCls = 'vtx-datagrid',\r\n toolbar = true,\r\n toolbarClassName,\r\n toolbarTilte = '查询结果',\r\n buttonGroup,\r\n refreshIconVisible = true,\r\n hideColumnSetting,\r\n hideColumnHeight,\r\n visibleColumnKeys,\r\n defaultVisibleColumnKeys,\r\n onVisibleColumnsChange,\r\n onRefresh,\r\n indexColumn = true,\r\n indexFixed = false,\r\n bordered = true,\r\n indexTitle = '序号',\r\n startIndex = 1,\r\n autoFit = true,\r\n headFootHeight = 115,\r\n columnResizable,\r\n components,\r\n className,\r\n style,\r\n emptyText = '暂无数据',\r\n onRowSelectionClear,\r\n searchCollapseEvent$,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n customEnumText = {},\r\n ...rest\r\n } = props;\r\n\r\n useEffect(() => {\r\n // componentDidMount\r\n if (autoFit) {\r\n window.addEventListener('resize', calculateHeight, false);\r\n }\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n window.removeEventListener('resize', calculateHeight, false);\r\n }\r\n };\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n if (autoFit) {\r\n calculateHeight();\r\n }\r\n }, [rest.dataSource?.length, (rest.rowSelection?.selectedRowKeys || []).join(',')]);\r\n\r\n // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\r\n if (searchCollapseEvent$) {\r\n // eslint-disable-next-line react/prop-types\r\n searchCollapseEvent$.useSubscription(() => {\r\n // 350ms 是为了等待css动画时间\r\n let timer = setTimeout(() => {\r\n calculateHeight();\r\n timer = '';\r\n clearTimeout(timer);\r\n }, 350);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n parseColumns();\r\n setState({\r\n columnSettingOptions: rest.columns?.map(col => ({\r\n ...col,\r\n key: col.dataIndex || col.key,\r\n })),\r\n });\r\n }, [rest.columns]);\r\n\r\n const parseColumns = type => {\r\n // 显示工具栏的同时并显示列设置\r\n if (toolbar && !hideColumnSetting) {\r\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : visibleColumnKeys || defaultVisibleColumnKeys;\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: rest.columns?.filter(item =>\r\n columnKeys.includes(item.dataIndex || item.key),\r\n ),\r\n });\r\n } else {\r\n setState({\r\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n } else {\r\n setState({\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n };\r\n\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n // 高度计算\r\n const calculateHeight = () => {\r\n if (!datagridRef.current) {\r\n return null;\r\n }\r\n const bodyHeight =\r\n datagridRef.current?.clientHeight -\r\n headFootHeight -\r\n toolbarHeight.current -\r\n alertHeight.current;\r\n const divs = datagridRef.current.getElementsByTagName('div');\r\n const bodyDiv = Array.prototype.filter.call(\r\n divs,\r\n dom =>\r\n dom.className.includes('ant-table-body') ||\r\n dom.className.includes('ant-table-content'),\r\n )[0];\r\n bodyDiv.style.minHeight = `${bodyHeight}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n };\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n setState({\r\n checkedColumnKeys: keys,\r\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\r\n };\r\n\r\n // 工具栏\r\n let toolbarRender;\r\n if (toolbar) {\r\n toolbarRender = (\r\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\r\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\r\n <div className={`${prefixCls}-toolbar-right`}>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-actions`,\r\n )}\r\n >\r\n {buttonGroup}\r\n </div>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n )}\r\n >\r\n {refreshIconVisible && (\r\n <div\r\n className={`${prefixCls}-toolbar-setting-item`}\r\n onClick={() => {\r\n onRefresh && onRefresh();\r\n }}\r\n >\r\n <Tooltip title={customEnumText?.refreshText || \"刷新\"}>\r\n <RedoOutlined />\r\n </Tooltip>\r\n </div>\r\n )}\r\n {!hideColumnHeight && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <Dropdown\r\n overlay={\r\n <Menu\r\n onClick={({ key }) => setState({ size: key })}\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">{customEnumText?.densityDefaultText ||\"默认\"}</Menu.Item>\r\n <Menu.Item key=\"middle\">{customEnumText?.densityMiddleText || \"中等\"}</Menu.Item>\r\n <Menu.Item key=\"small\">{customEnumText?.densitySmallText ||\"紧凑\"}</Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title={customEnumText?.columnDensityText || \"列密度\"}>\r\n <ColumnHeightOutlined />\r\n </Tooltip>\r\n </Dropdown>\r\n </div>\r\n )}\r\n {!hideColumnSetting && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <ColumnSetting\r\n prefixCls={prefixCls}\r\n checkedColumnKeys={checkedColumnKeys}\r\n columnSettingOptions={columnSettingOptions}\r\n onChange={handleChangeColumns}\r\n onReset={() => parseColumns('reset')}\r\n disabledColumnKeys={disabledColumnKeys}\r\n onColumnsSave={onColumnsSave}\r\n >\r\n <Tooltip title={customEnumText?.columnSettingText || \"列设置\"}>\r\n <SettingOutlined />\r\n </Tooltip>\r\n </ColumnSetting>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 分页\r\n const getPagination = pagination => {\r\n if (typeof pagination === 'boolean' && !pagination) {\r\n return pagination;\r\n }\r\n return {\r\n pageSizeOptions: ['10', '20', '30', '40', '50'],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n showTotal(total) {\r\n return `共 ${total} 条`;\r\n },\r\n ...pagination,\r\n };\r\n };\r\n\r\n // 处理操作按钮\r\n let columns = (visibleColumns || []).map(column => {\r\n const newColumn = { ...column };\r\n if (newColumn.renderButtons) {\r\n delete newColumn.renderButtons;\r\n }\r\n if (newColumn.renderButtonsVisibleNum) {\r\n delete newColumn.renderButtonsVisibleNum;\r\n }\r\n return {\r\n ...newColumn,\r\n render: isFunction(column.renderButtons)\r\n ? function(text, record, index) {\r\n return renderColumnButtons(\r\n column.renderButtons,\r\n column.renderButtonsVisibleNum,\r\n text,\r\n record,\r\n index,\r\n customEnumText\r\n );\r\n }\r\n : 'render' in column\r\n ? column.render\r\n : function(text) {\r\n return ['', null, undefined].includes(text) ? '-' : text;\r\n },\r\n };\r\n });\r\n // 配置了列可伸缩\r\n if (columnResizable) {\r\n columns = columns.map((col, index) => ({\r\n ...col,\r\n onHeaderCell: column => ({\r\n width: column.width,\r\n onResize: handleResize(index),\r\n }),\r\n }));\r\n const handleResize = index => (e, { size }) => {\r\n setState(({ visibleColumns }) => {\r\n const nextColumns = [...visibleColumns];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n return { visibleColumns: nextColumns };\r\n });\r\n };\r\n }\r\n\r\n // 序号添加\r\n let dataSource = rest.dataSource;\r\n if (indexColumn) {\r\n columns = [\r\n {\r\n title: indexTitle,\r\n dataIndex: '_serialNum',\r\n key: '_serialNum',\r\n width: 70,\r\n fixed: indexFixed,\r\n },\r\n ...columns,\r\n ];\r\n dataSource = dataSource?.map((item, i) => {\r\n return {\r\n ...item,\r\n _serialNum: i + startIndex,\r\n };\r\n });\r\n }\r\n\r\n let scroll;\r\n if (autoFit) {\r\n scroll = {\r\n ...(rest.scroll || {}),\r\n y: scrollY,\r\n };\r\n }\r\n\r\n return (\r\n <div\r\n id={datagridId}\r\n className={classnames(prefixCls, className, {\r\n [`${prefixCls}-fit`]: autoFit,\r\n [`${prefixCls}-noFit`]: !autoFit,\r\n [`${prefixCls}-nodata`]: !dataSource?.length,\r\n [`${prefixCls}-userAgent-mac`]: isMac,\r\n })}\r\n style={style}\r\n ref={datagridRef}\r\n >\r\n {toolbarRender}\r\n {hasAlert && (\r\n <div className={`${prefixCls}-alert`}>\r\n <Alert\r\n prefixCls={prefixCls}\r\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\r\n onRowSelectionClear={onRowSelectionClear}\r\n />\r\n </div>\r\n )}\r\n <Table\r\n size={size}\r\n bordered={dataSource?.length > 0 ? bordered : false}\r\n {...rest}\r\n columns={columns}\r\n dataSource={dataSource}\r\n scroll={scroll}\r\n pagination={getPagination(rest.pagination)}\r\n style={{\r\n height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)`,\r\n }}\r\n locale={{\r\n emptyText: <Empty description={emptyText} />,\r\n ...rest.locale,\r\n }}\r\n components={\r\n columnResizable\r\n ? {\r\n ...(components || {}),\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n }\r\n : components\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nVtxDatagrid.propTypes = {\r\n prefixCls: PropTypes.string,\r\n refreshIconVisible: PropTypes.bool,\r\n hideColumnSetting: PropTypes.bool,\r\n hideColumnHeight: PropTypes.bool,\r\n bordered: PropTypes.bool,\r\n visibleColumnKeys: PropTypes.array,\r\n defaultVisibleColumnKeys: PropTypes.array,\r\n onVisibleColumnsChange: PropTypes.func,\r\n toolbarClassName: PropTypes.string,\r\n toolbar: PropTypes.bool,\r\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRefresh: PropTypes.func,\r\n indexColumn: PropTypes.bool,\r\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n indexTitle: PropTypes.string,\r\n startIndex: PropTypes.number,\r\n buttonGroup: PropTypes.node,\r\n autoFit: PropTypes.bool,\r\n headFootHeight: PropTypes.number,\r\n columnResizable: PropTypes.bool,\r\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRowSelectionClear: PropTypes.func,\r\n searchCollapseEvent$: PropTypes.object,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n components: PropTypes.object,\r\n customEnumText: PropTypes.object\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","projectKey","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","components","className","style","emptyText","onRowSelectionClear","searchCollapseEvent$","disabledColumnKeys","onColumnsSave","uniqueKey","customEnumText","rest","getUniqueKey","route","location","href","match","axios","method","url","pathname","then","res","status","data","key","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","console","log","toolbarRender","classnames","refreshText","densityDefaultText","densityMiddleText","densitySmallText","columnDensityText","columnSettingText","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","isFunction","text","record","index","renderColumnButtons","undefined","onHeaderCell","width","onResize","handleResize","e","nextColumns","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Table from 'antd/lib/table';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport Menu from 'antd/lib/menu';\r\nimport Empty from 'antd/lib/empty';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\nimport ColumnHeightOutlined from '@ant-design/icons/ColumnHeightOutlined';\r\nimport SettingOutlined from '@ant-design/icons/SettingOutlined';\r\nimport Alert from './Alert';\r\nimport ColumnSetting from './ColumnSetting';\r\nimport ResizeableTitle from './ResizeableTitle';\r\nimport renderColumnButtons from './renderColumnButtons';\r\nimport useSet from '../_util/useSet';\r\nimport isFunction from '../_util/isFunction';\r\nimport axios from 'axios';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n projectKey: ''\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n\r\n const {\r\n prefixCls = 'vtx-datagrid',\r\n toolbar = true,\r\n toolbarClassName,\r\n toolbarTilte = '查询结果',\r\n buttonGroup,\r\n refreshIconVisible = true,\r\n hideColumnSetting,\r\n hideColumnHeight,\r\n visibleColumnKeys,\r\n defaultVisibleColumnKeys,\r\n onVisibleColumnsChange,\r\n onRefresh,\r\n indexColumn = true,\r\n indexFixed = false,\r\n bordered = true,\r\n indexTitle = '序号',\r\n startIndex = 1,\r\n autoFit = true,\r\n headFootHeight = 115,\r\n columnResizable,\r\n components,\r\n className,\r\n style,\r\n emptyText = '暂无数据',\r\n onRowSelectionClear,\r\n searchCollapseEvent$,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n uniqueKey,\r\n customEnumText = {},\r\n ...rest\r\n } = props;\r\n \r\n // 规则,菜单根目录_页面路由\r\n function getUniqueKey(){\r\n let route = location.href.match(/#\\/(\\S*)\\?/);\r\n if(route){\r\n axios({\r\n method: 'GET',\r\n url: `${location.pathname}resources/json/menu.json`\r\n }).then(res=>{\r\n if(res?.status == 200 && res.data?.key){\r\n setState({projectKey: `${res.data.key}_${route?route[1]:'test'}`})\r\n }\r\n })\r\n }\r\n }\r\n useEffect(() => {\r\n // 当没有传入唯一值而且没有自定义列保存的时候根据规则自动生成唯一值\r\n if(!uniqueKey && !onColumnsSave){\r\n getUniqueKey();\r\n }\r\n // componentDidMount\r\n if (autoFit) {\r\n window.addEventListener('resize', calculateHeight, false);\r\n }\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n window.removeEventListener('resize', calculateHeight, false);\r\n }\r\n };\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n if (autoFit) {\r\n calculateHeight();\r\n }\r\n }, [rest.dataSource?.length, (rest.rowSelection?.selectedRowKeys || []).join(',')]);\r\n\r\n // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\r\n if (searchCollapseEvent$) {\r\n // eslint-disable-next-line react/prop-types\r\n searchCollapseEvent$.useSubscription(() => {\r\n // 350ms 是为了等待css动画时间\r\n let timer = setTimeout(() => {\r\n calculateHeight();\r\n timer = '';\r\n clearTimeout(timer);\r\n }, 350);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n parseColumns();\r\n setState({\r\n columnSettingOptions: rest.columns?.map(col => ({\r\n ...col,\r\n key: col.dataIndex || col.key,\r\n })),\r\n });\r\n }, [rest.columns]);\r\n\r\n const parseColumns = type => {\r\n // 显示工具栏的同时并显示列设置\r\n if (toolbar && !hideColumnSetting) {\r\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : visibleColumnKeys || defaultVisibleColumnKeys;\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: rest.columns?.filter(item =>\r\n columnKeys.includes(item.dataIndex || item.key),\r\n ),\r\n });\r\n } else {\r\n setState({\r\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n } else {\r\n setState({\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n };\r\n\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n // 高度计算\r\n const calculateHeight = () => {\r\n if (!datagridRef.current) {\r\n return null;\r\n }\r\n const bodyHeight =\r\n datagridRef.current?.clientHeight -\r\n headFootHeight -\r\n toolbarHeight.current -\r\n alertHeight.current;\r\n const divs = datagridRef.current.getElementsByTagName('div');\r\n const bodyDiv = Array.prototype.filter.call(\r\n divs,\r\n dom =>\r\n dom.className.includes('ant-table-body') ||\r\n dom.className.includes('ant-table-content'),\r\n )[0];\r\n bodyDiv.style.minHeight = `${bodyHeight}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n };\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n console.log(keys, columnSettingOptions?.filter(item => keys.includes(item.key)));\r\n setState({\r\n checkedColumnKeys: keys,\r\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\r\n };\r\n\r\n // 工具栏\r\n let toolbarRender;\r\n if (toolbar) {\r\n toolbarRender = (\r\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\r\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\r\n <div className={`${prefixCls}-toolbar-right`}>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-actions`,\r\n )}\r\n >\r\n {buttonGroup}\r\n </div>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n )}\r\n >\r\n {refreshIconVisible && (\r\n <div\r\n className={`${prefixCls}-toolbar-setting-item`}\r\n onClick={() => {\r\n onRefresh && onRefresh();\r\n }}\r\n >\r\n <Tooltip title={customEnumText?.refreshText || \"刷新\"}>\r\n <RedoOutlined />\r\n </Tooltip>\r\n </div>\r\n )}\r\n {!hideColumnHeight && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <Dropdown\r\n overlay={\r\n <Menu\r\n onClick={({ key }) => setState({ size: key })}\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">{customEnumText?.densityDefaultText ||\"默认\"}</Menu.Item>\r\n <Menu.Item key=\"middle\">{customEnumText?.densityMiddleText || \"中等\"}</Menu.Item>\r\n <Menu.Item key=\"small\">{customEnumText?.densitySmallText ||\"紧凑\"}</Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title={customEnumText?.columnDensityText || \"列密度\"}>\r\n <ColumnHeightOutlined />\r\n </Tooltip>\r\n </Dropdown>\r\n </div>\r\n )}\r\n {!hideColumnSetting && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <ColumnSetting\r\n prefixCls={prefixCls}\r\n checkedColumnKeys={checkedColumnKeys}\r\n columnSettingOptions={columnSettingOptions}\r\n onChange={handleChangeColumns}\r\n onReset={() => parseColumns('reset')}\r\n disabledColumnKeys={disabledColumnKeys}\r\n onColumnsSave={onColumnsSave}\r\n uniqueKey={uniqueKey || state.projectKey}\r\n >\r\n <Tooltip title={customEnumText?.columnSettingText || \"列设置\"}>\r\n <SettingOutlined />\r\n </Tooltip>\r\n </ColumnSetting>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 分页\r\n const getPagination = pagination => {\r\n if (typeof pagination === 'boolean' && !pagination) {\r\n return pagination;\r\n }\r\n return {\r\n pageSizeOptions: ['10', '20', '30', '40', '50'],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n showTotal(total) {\r\n return `共 ${total} 条`;\r\n },\r\n ...pagination,\r\n };\r\n };\r\n\r\n // 处理操作按钮\r\n let columns = (visibleColumns || []).map(column => {\r\n const newColumn = { ...column };\r\n if (newColumn.renderButtons) {\r\n delete newColumn.renderButtons;\r\n }\r\n if (newColumn.renderButtonsVisibleNum) {\r\n delete newColumn.renderButtonsVisibleNum;\r\n }\r\n return {\r\n ...newColumn,\r\n render: isFunction(column.renderButtons)\r\n ? function(text, record, index) {\r\n return renderColumnButtons(\r\n column.renderButtons,\r\n column.renderButtonsVisibleNum,\r\n text,\r\n record,\r\n index,\r\n customEnumText\r\n );\r\n }\r\n : 'render' in column\r\n ? column.render\r\n : function(text) {\r\n return ['', null, undefined].includes(text) ? '-' : text;\r\n },\r\n };\r\n });\r\n // 配置了列可伸缩\r\n if (columnResizable) {\r\n columns = columns.map((col, index) => ({\r\n ...col,\r\n onHeaderCell: column => ({\r\n width: column.width,\r\n onResize: handleResize(index),\r\n }),\r\n }));\r\n const handleResize = index => (e, { size }) => {\r\n setState(({ visibleColumns }) => {\r\n const nextColumns = [...visibleColumns];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n return { visibleColumns: nextColumns };\r\n });\r\n };\r\n }\r\n\r\n // 序号添加\r\n let dataSource = rest.dataSource;\r\n if (indexColumn) {\r\n columns = [\r\n {\r\n title: indexTitle,\r\n dataIndex: '_serialNum',\r\n key: '_serialNum',\r\n width: 70,\r\n fixed: indexFixed,\r\n },\r\n ...columns,\r\n ];\r\n dataSource = dataSource?.map((item, i) => {\r\n return {\r\n ...item,\r\n _serialNum: i + startIndex,\r\n };\r\n });\r\n }\r\n\r\n let scroll;\r\n if (autoFit) {\r\n scroll = {\r\n ...(rest.scroll || {}),\r\n y: scrollY,\r\n };\r\n }\r\n\r\n return (\r\n <div\r\n id={datagridId}\r\n className={classnames(prefixCls, className, {\r\n [`${prefixCls}-fit`]: autoFit,\r\n [`${prefixCls}-noFit`]: !autoFit,\r\n [`${prefixCls}-nodata`]: !dataSource?.length,\r\n [`${prefixCls}-userAgent-mac`]: isMac,\r\n })}\r\n style={style}\r\n ref={datagridRef}\r\n >\r\n {toolbarRender}\r\n {hasAlert && (\r\n <div className={`${prefixCls}-alert`}>\r\n <Alert\r\n prefixCls={prefixCls}\r\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\r\n onRowSelectionClear={onRowSelectionClear}\r\n />\r\n </div>\r\n )}\r\n <Table\r\n size={size}\r\n bordered={dataSource?.length > 0 ? bordered : false}\r\n {...rest}\r\n columns={columns}\r\n dataSource={dataSource}\r\n scroll={scroll}\r\n pagination={getPagination(rest.pagination)}\r\n style={{\r\n height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)`,\r\n }}\r\n locale={{\r\n emptyText: <Empty description={emptyText} />,\r\n ...rest.locale,\r\n }}\r\n components={\r\n columnResizable\r\n ? {\r\n ...(components || {}),\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n }\r\n : components\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nVtxDatagrid.propTypes = {\r\n prefixCls: PropTypes.string,\r\n refreshIconVisible: PropTypes.bool,\r\n hideColumnSetting: PropTypes.bool,\r\n hideColumnHeight: PropTypes.bool,\r\n bordered: PropTypes.bool,\r\n visibleColumnKeys: PropTypes.array,\r\n defaultVisibleColumnKeys: PropTypes.array,\r\n onVisibleColumnsChange: PropTypes.func,\r\n toolbarClassName: PropTypes.string,\r\n toolbar: PropTypes.bool,\r\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRefresh: PropTypes.func,\r\n indexColumn: PropTypes.bool,\r\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n indexTitle: PropTypes.string,\r\n startIndex: PropTypes.number,\r\n buttonGroup: PropTypes.node,\r\n autoFit: PropTypes.bool,\r\n headFootHeight: PropTypes.number,\r\n columnResizable: PropTypes.bool,\r\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRowSelectionClear: PropTypes.func,\r\n searchCollapseEvent$: PropTypes.object,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n components: PropTypes.object,\r\n customEnumText: PropTypes.object,\r\n uniqueKey: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
package/lib/vtx-select/index.js
CHANGED
|
@@ -201,9 +201,21 @@ var VtxSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
201
201
|
|
|
202
202
|
return true;
|
|
203
203
|
});
|
|
204
|
-
var keys =
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
var keys = [];
|
|
205
|
+
|
|
206
|
+
if (props.labelInValue) {
|
|
207
|
+
keys = tempChildren.map(function (item) {
|
|
208
|
+
return {
|
|
209
|
+
label: item.props.children,
|
|
210
|
+
value: item.key
|
|
211
|
+
};
|
|
212
|
+
});
|
|
213
|
+
} else {
|
|
214
|
+
keys = tempChildren.map(function (item) {
|
|
215
|
+
return item.key;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
207
219
|
_onChange && _onChange(keys, tempChildren);
|
|
208
220
|
} else {
|
|
209
221
|
_onChange && _onChange([], []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["VtxSelect","forwardRef","props","ref","useState","popWidth","setPopWidth","elRef","useRef","elId","Date","now","searchValue","setSearchValue","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","selectSearchAll","defaultBindBodyToPopupContainer","useEffect","timer","setInterval","_width","current","clientWidth","clearInterval","newChildren","children","Array","isArray","getContent","child","forEach","item","key","length","map","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","allowClear","onSearch","String","toLowerCase","onBlur","dropdownRender","menu","valueLength","target","checked","tempChildren","indexOf","keys","classnames","style","paddingRight","triggerNode","document","body","width","isObject","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"sources":["vtx-select/index.jsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Select from 'antd/lib/select';\r\nimport Tag from 'antd/lib/tag';\r\nimport Button from 'antd/lib/button';\r\nimport Empty from 'antd/lib/empty';\r\nimport Popover from 'antd/lib/popover';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport Divider from 'antd/lib/divider';\r\nimport MoreOutlined from '@ant-design/icons/MoreOutlined';\r\nimport isObject from '../_util/isObject';\r\n\r\nconst VtxSelect = forwardRef((props, ref) => {\r\n const [popWidth, setPopWidth] = useState(0);\r\n const elRef = useRef();\r\n const elId = useRef(`vtx-select-${Date.now()}`);\r\n const [searchValue,setSearchValue] = useState('');\r\n\r\n const {\r\n value,\r\n mode,\r\n size = 'default', //同步button大小\r\n onChange,\r\n maxTagCount = 2,\r\n maxTagTextLength = 5,\r\n maxTagPlaceholder = '...',\r\n showAll = true, //是否显示全部选项\r\n selectStyle,\r\n selectAll = true,\r\n selectSearchAll = true,\r\n defaultBindBodyToPopupContainer = true,\r\n } = props;\r\n\r\n useEffect(() => {\r\n if(mode === 'multiple') {\r\n const timer = setInterval(() => {\r\n const _width = elRef.current?.clientWidth;\r\n if(_width > 0) {\r\n setPopWidth(_width);\r\n clearInterval(timer);\r\n }\r\n }, 1000)\r\n return () => clearInterval(timer);\r\n }\r\n }, []);\r\n\r\n const newChildren = props.children\r\n ? Array.isArray(props.children)\r\n ? props.children\r\n : [props.children]\r\n : [];\r\n\r\n const getContent = () => {\r\n const child = {};\r\n newChildren.forEach(item => {\r\n child[item.key] = item?.props?.children;\r\n });\r\n return (\r\n <div className=\"vtx-all-list\">\r\n {Array.isArray(value) && value.length ? (\r\n value.map((item, index) => {\r\n const name = getChildren(child, item);\r\n return (\r\n <Tag\r\n style={{ margin: '4px' }}\r\n key={index}\r\n closable\r\n onClose={e => {\r\n e.preventDefault();\r\n const valueClone = [...value];\r\n valueClone.splice(index, 1);\r\n const options = newChildren.filter(ite =>\r\n valueClone.includes(ite.props.value),\r\n );\r\n onChange(valueClone, options);\r\n }}\r\n >\r\n <Tooltip title={name}>\r\n {name.length > maxTagTextLength\r\n ? `${name.substring(0, maxTagTextLength)}...`\r\n : name}\r\n </Tooltip>\r\n </Tag>\r\n );\r\n })\r\n ) : (\r\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n let newProps = {\r\n showSearch: true,\r\n optionFilterProp: 'children',\r\n placeholder: '请选择',\r\n allowClear: true,\r\n ...props,\r\n onSearch: value=>{\r\n setSearchValue(value?String(value).toLowerCase():'');\r\n props.onSearch && props.onSearch(value);\r\n },\r\n onBlur: e=>{\r\n setSearchValue('');\r\n props.onBlur && props.onBlur(e);\r\n }\r\n };\r\n\r\n if (mode === 'multiple') {\r\n newProps = {\r\n ...newProps,\r\n maxTagCount: maxTagCount,\r\n maxTagTextLength: maxTagTextLength,\r\n maxTagPlaceholder: maxTagPlaceholder,\r\n };\r\n if (selectAll) {\r\n newProps = {\r\n ...newProps,\r\n dropdownRender: menu => {\r\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\r\n return (\r\n <div>\r\n <div\r\n className=\"vtx-multi-select-all\"\r\n onMouseDown={e => e.preventDefault()}\r\n >\r\n <Checkbox\r\n indeterminate={valueLength && valueLength < newChildren.length}\r\n checked={valueLength && valueLength === newChildren.length}\r\n onChange={e => {\r\n if (e.target.checked) {\r\n let tempChildren = newChildren.filter(item=>{\r\n if(selectSearchAll && searchValue){\r\n return String(item.props.children).toLowerCase().indexOf(searchValue)>-1;\r\n }\r\n return true;\r\n })\r\n const keys = tempChildren.map(item => item.key);\r\n onChange && onChange(keys, tempChildren);\r\n } else {\r\n onChange && onChange([], []);\r\n }\r\n }}\r\n >\r\n 全选\r\n </Checkbox>\r\n </div>\r\n <Divider style={{ margin: '4px 0' }} />\r\n {menu}\r\n </div>\r\n );\r\n },\r\n };\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={classnames({\r\n 'vtx-select': mode !== 'multiple',\r\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\r\n })}\r\n id={elId.current}\r\n ref={elRef}\r\n style={{\r\n ...props.style,\r\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\r\n }}\r\n >\r\n <Select\r\n ref={ref}\r\n getPopupContainer={triggerNode => {\r\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\r\n }}\r\n {...newProps}\r\n style={{ width: '100%', ...selectStyle }}\r\n >\r\n {props.children}\r\n </Select>\r\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\r\n <Popover\r\n content={getContent()}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ width: popWidth }}\r\n >\r\n <Button className=\"vtx-select-count\" icon={<MoreOutlined />} size={size} />\r\n </Popover>\r\n ) : null}\r\n </div>\r\n );\r\n});\r\n\r\nfunction getChildren(child = {}, value) {\r\n const key = isObject(value) ? value.key : value;\r\n return child[key] || '';\r\n}\r\n\r\nVtxSelect.Option = Select.Option;\r\nVtxSelect.OptGroup = Select.OptGroup;\r\n\r\nVtxSelect.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.array,\r\n PropTypes.number,\r\n PropTypes.object,\r\n ]),\r\n mode: PropTypes.string,\r\n size: PropTypes.string,\r\n style: PropTypes.object,\r\n selectStyle: PropTypes.object,\r\n onChange: PropTypes.func,\r\n defaultBindBodyToPopupContainer: PropTypes.bool,\r\n maxTagCount: PropTypes.number,\r\n maxTagTextLength: PropTypes.number,\r\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\r\n showAll: PropTypes.bool,\r\n children: PropTypes.node,\r\n selectAll: PropTypes.bool,\r\n selectSearchAll: PropTypes.bool,\r\n};\r\n\r\nexport default VtxSelect;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxSelect","forwardRef","props","ref","useState","popWidth","setPopWidth","elRef","useRef","elId","Date","now","searchValue","setSearchValue","value","mode","size","onChange","maxTagCount","maxTagTextLength","maxTagPlaceholder","showAll","selectStyle","selectAll","selectSearchAll","defaultBindBodyToPopupContainer","useEffect","timer","setInterval","_width","current","clientWidth","clearInterval","newChildren","children","Array","isArray","getContent","child","forEach","item","key","length","map","index","name","getChildren","margin","e","preventDefault","valueClone","splice","options","filter","ite","includes","substring","Empty","PRESENTED_IMAGE_SIMPLE","newProps","showSearch","optionFilterProp","placeholder","allowClear","onSearch","String","toLowerCase","onBlur","dropdownRender","menu","valueLength","target","checked","tempChildren","indexOf","keys","labelInValue","label","classnames","style","paddingRight","triggerNode","document","body","width","isObject","Option","Select","OptGroup","propTypes","PropTypes","oneOfType","string","array","number","object","func","bool","node"],"sources":["vtx-select/index.jsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Select from 'antd/lib/select';\r\nimport Tag from 'antd/lib/tag';\r\nimport Button from 'antd/lib/button';\r\nimport Empty from 'antd/lib/empty';\r\nimport Popover from 'antd/lib/popover';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport Divider from 'antd/lib/divider';\r\nimport MoreOutlined from '@ant-design/icons/MoreOutlined';\r\nimport isObject from '../_util/isObject';\r\n\r\nconst VtxSelect = forwardRef((props, ref) => {\r\n const [popWidth, setPopWidth] = useState(0);\r\n const elRef = useRef();\r\n const elId = useRef(`vtx-select-${Date.now()}`);\r\n const [searchValue,setSearchValue] = useState('');\r\n\r\n const {\r\n value,\r\n mode,\r\n size = 'default', //同步button大小\r\n onChange,\r\n maxTagCount = 2,\r\n maxTagTextLength = 5,\r\n maxTagPlaceholder = '...',\r\n showAll = true, //是否显示全部选项\r\n selectStyle,\r\n selectAll = true,\r\n selectSearchAll = true,\r\n defaultBindBodyToPopupContainer = true,\r\n } = props;\r\n\r\n useEffect(() => {\r\n if(mode === 'multiple') {\r\n const timer = setInterval(() => {\r\n const _width = elRef.current?.clientWidth;\r\n if(_width > 0) {\r\n setPopWidth(_width);\r\n clearInterval(timer);\r\n }\r\n }, 1000)\r\n return () => clearInterval(timer);\r\n }\r\n }, []);\r\n\r\n const newChildren = props.children\r\n ? Array.isArray(props.children)\r\n ? props.children\r\n : [props.children]\r\n : [];\r\n\r\n const getContent = () => {\r\n const child = {};\r\n newChildren.forEach(item => {\r\n child[item.key] = item?.props?.children;\r\n });\r\n return (\r\n <div className=\"vtx-all-list\">\r\n {Array.isArray(value) && value.length ? (\r\n value.map((item, index) => {\r\n const name = getChildren(child, item);\r\n return (\r\n <Tag\r\n style={{ margin: '4px' }}\r\n key={index}\r\n closable\r\n onClose={e => {\r\n e.preventDefault();\r\n const valueClone = [...value];\r\n valueClone.splice(index, 1);\r\n const options = newChildren.filter(ite =>\r\n valueClone.includes(ite.props.value),\r\n );\r\n onChange(valueClone, options);\r\n }}\r\n >\r\n <Tooltip title={name}>\r\n {name.length > maxTagTextLength\r\n ? `${name.substring(0, maxTagTextLength)}...`\r\n : name}\r\n </Tooltip>\r\n </Tag>\r\n );\r\n })\r\n ) : (\r\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n let newProps = {\r\n showSearch: true,\r\n optionFilterProp: 'children',\r\n placeholder: '请选择',\r\n allowClear: true,\r\n ...props,\r\n onSearch: value=>{\r\n setSearchValue(value?String(value).toLowerCase():'');\r\n props.onSearch && props.onSearch(value);\r\n },\r\n onBlur: e=>{\r\n setSearchValue('');\r\n props.onBlur && props.onBlur(e);\r\n }\r\n };\r\n\r\n if (mode === 'multiple') {\r\n newProps = {\r\n ...newProps,\r\n maxTagCount: maxTagCount,\r\n maxTagTextLength: maxTagTextLength,\r\n maxTagPlaceholder: maxTagPlaceholder,\r\n };\r\n if (selectAll) {\r\n newProps = {\r\n ...newProps,\r\n dropdownRender: menu => {\r\n const valueLength = Array.isArray(value) && value.length ? value.length : 0;\r\n return (\r\n <div>\r\n <div\r\n className=\"vtx-multi-select-all\"\r\n onMouseDown={e => e.preventDefault()}\r\n >\r\n <Checkbox\r\n indeterminate={valueLength && valueLength < newChildren.length}\r\n checked={valueLength && valueLength === newChildren.length}\r\n onChange={e => {\r\n if (e.target.checked) {\r\n let tempChildren = newChildren.filter(item=>{\r\n if(selectSearchAll && searchValue){\r\n return String(item.props.children).toLowerCase().indexOf(searchValue)>-1;\r\n }\r\n return true;\r\n })\r\n let keys = [];\r\n if(props.labelInValue){\r\n keys = tempChildren.map(item => ({\r\n label: item.props.children,\r\n value: item.key\r\n }));\r\n }else {\r\n keys = tempChildren.map(item => item.key);\r\n }\r\n onChange && onChange(keys, tempChildren);\r\n } else {\r\n onChange && onChange([], []);\r\n }\r\n }}\r\n >\r\n 全选\r\n </Checkbox>\r\n </div>\r\n <Divider style={{ margin: '4px 0' }} />\r\n {menu}\r\n </div>\r\n );\r\n },\r\n };\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={classnames({\r\n 'vtx-select': mode !== 'multiple',\r\n 'vtx-multi-select': mode == 'multiple' || mode == 'tags',\r\n })}\r\n id={elId.current}\r\n ref={elRef}\r\n style={{\r\n ...props.style,\r\n paddingRight: (mode == 'multiple' || mode == 'tags') && showAll ? 32 : 0,\r\n }}\r\n >\r\n <Select\r\n ref={ref}\r\n getPopupContainer={triggerNode => {\r\n return defaultBindBodyToPopupContainer ? document.body : triggerNode;\r\n }}\r\n {...newProps}\r\n style={{ width: '100%', ...selectStyle }}\r\n >\r\n {props.children}\r\n </Select>\r\n {(mode == 'multiple' || mode == 'tags') && showAll ? (\r\n <Popover\r\n content={getContent()}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ width: popWidth }}\r\n >\r\n <Button className=\"vtx-select-count\" icon={<MoreOutlined />} size={size} />\r\n </Popover>\r\n ) : null}\r\n </div>\r\n );\r\n});\r\n\r\nfunction getChildren(child = {}, value) {\r\n const key = isObject(value) ? value.key : value;\r\n return child[key] || '';\r\n}\r\n\r\nVtxSelect.Option = Select.Option;\r\nVtxSelect.OptGroup = Select.OptGroup;\r\n\r\nVtxSelect.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.array,\r\n PropTypes.number,\r\n PropTypes.object,\r\n ]),\r\n mode: PropTypes.string,\r\n size: PropTypes.string,\r\n style: PropTypes.object,\r\n selectStyle: PropTypes.object,\r\n onChange: PropTypes.func,\r\n defaultBindBodyToPopupContainer: PropTypes.bool,\r\n maxTagCount: PropTypes.number,\r\n maxTagTextLength: PropTypes.number,\r\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\r\n showAll: PropTypes.bool,\r\n children: PropTypes.node,\r\n selectAll: PropTypes.bool,\r\n selectSearchAll: PropTypes.bool,\r\n};\r\n\r\nexport default VtxSelect;\r\n"],"mappings":"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"}
|