ls-pro-common 1.0.31 → 1.0.32
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/dist/common.js +1 -1
- package/dist/common.min.js +1 -1
- package/es/components/IconSelector.js +48 -14
- package/es/components/InputTable.d.ts +23 -1
- package/es/components/InputTable.js +164 -68
- package/lib/components/IconSelector.js +47 -13
- package/lib/components/InputTable.d.ts +23 -1
- package/lib/components/InputTable.js +163 -67
- package/package.json +1 -1
|
@@ -2,21 +2,43 @@
|
|
|
2
2
|
import type { InputProps } from 'antd';
|
|
3
3
|
import type { ProFormItemProps } from 'ls-pro-form';
|
|
4
4
|
export declare type InputTableProps = ProFormItemProps<InputProps> & {
|
|
5
|
+
/**@name 弹框选择表格列配置 */
|
|
5
6
|
columns: any[];
|
|
7
|
+
/**@name 调用后端API地址 */
|
|
6
8
|
url: string;
|
|
9
|
+
/**@name 弹框表格高度,默认400 */
|
|
7
10
|
tableHeight?: number;
|
|
11
|
+
/**@name 弹框表格宽度,默认650*/
|
|
8
12
|
tableWidth?: number;
|
|
13
|
+
/**@name 是否支持多选 */
|
|
9
14
|
multiple?: boolean;
|
|
15
|
+
/**@name 表单项name, 跟 form.item 的 name一致 */
|
|
10
16
|
name: string;
|
|
17
|
+
/**@name 返回的值字段,表格中valueField配置的字段时返回给name */
|
|
11
18
|
valueField: string;
|
|
19
|
+
/**@name 返回输入框显示的字段,textField字段值返回给textName */
|
|
12
20
|
textField?: string;
|
|
21
|
+
/**@name 用于接收textField返回的值 */
|
|
13
22
|
textName?: string;
|
|
23
|
+
/** @name 表格的其它配置 */
|
|
14
24
|
tableConfig?: any;
|
|
25
|
+
/**@name 表单label宽度,默认70 */
|
|
15
26
|
labelWidth?: number;
|
|
27
|
+
/**@name 是否2.0接口 */
|
|
16
28
|
isV2?: boolean;
|
|
29
|
+
/**@name 是否支持跨页选择 */
|
|
17
30
|
keepSelect?: boolean;
|
|
18
|
-
|
|
31
|
+
/**@name 回车事件查询关键字 */
|
|
32
|
+
searchField?: string;
|
|
33
|
+
/**@name 填充其它表单项目配置 */
|
|
34
|
+
fillMap?: Record<string, string>;
|
|
35
|
+
/**@name 输入后检查数据的触发方式,默认为entry回车触发 */
|
|
36
|
+
triggerCheck?: 'entry' | 'blur';
|
|
37
|
+
/**@name 选择行事件 */
|
|
38
|
+
onSelectChange?: (item: any, formRef?: any) => void;
|
|
39
|
+
/**@name 加载之前事件,param为查询条件对象,可以通过此方法调整 */
|
|
19
40
|
beforeLoad?: (param: any) => void;
|
|
41
|
+
/**@name 加载之后事件,row为接口返回数据,可以通过此方法调整 */
|
|
20
42
|
afterLoad?: (rows: any[]) => void;
|
|
21
43
|
};
|
|
22
44
|
declare function InputTable(prop: InputTableProps): JSX.Element;
|
|
@@ -43,7 +43,9 @@ var _icons = require("@ant-design/icons");
|
|
|
43
43
|
|
|
44
44
|
var _http = require("../http");
|
|
45
45
|
|
|
46
|
-
var
|
|
46
|
+
var _utils = require("../utils");
|
|
47
|
+
|
|
48
|
+
var _excluded = ["columns", "url", "textName", "name", "tableConfig", "tableHeight", "tableWidth", "readonly", "multiple", "valueField", "labelWidth", "textField", "onSelectChange", "beforeLoad", "afterLoad", "isV2", "allowClear", "keepSelect", "fieldProps", "searchField", "fillMap", "triggerCheck"],
|
|
47
49
|
_excluded2 = ["current", "pageSize"];
|
|
48
50
|
|
|
49
51
|
function InputTable(prop) {
|
|
@@ -94,8 +96,36 @@ function InputTable(prop) {
|
|
|
94
96
|
_prop$keepSelect = prop.keepSelect,
|
|
95
97
|
keepSelect = _prop$keepSelect === void 0 ? false : _prop$keepSelect,
|
|
96
98
|
fieldProps = prop.fieldProps,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
searchField = prop.searchField,
|
|
100
|
+
fillMap = prop.fillMap,
|
|
101
|
+
_prop$triggerCheck = prop.triggerCheck,
|
|
102
|
+
triggerCheck = _prop$triggerCheck === void 0 ? 'entry' : _prop$triggerCheck,
|
|
103
|
+
rest = (0, _objectWithoutProperties2.default)(prop, _excluded); //显示输入框绑定的name,如果不设置textName,设置为$name__text
|
|
104
|
+
|
|
105
|
+
var textNameProp = (0, _react.useMemo)(function () {
|
|
106
|
+
return textName || name + '__text';
|
|
107
|
+
}, [textName, name]); // 输入框回车时,调用查询参数字段
|
|
108
|
+
|
|
109
|
+
var searchKey = (0, _react.useMemo)(function () {
|
|
110
|
+
if (searchField) return searchField;
|
|
111
|
+
var col; //先取显示字段
|
|
112
|
+
|
|
113
|
+
if (textField) {
|
|
114
|
+
col = columns.find(function (o) {
|
|
115
|
+
return o.dataIndex === textField || o.key === textField;
|
|
116
|
+
});
|
|
117
|
+
} //取不到时取值字段
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
if (!col) {
|
|
121
|
+
col = columns.find(function (o) {
|
|
122
|
+
return o.dataIndex === valueField || o.key === valueField;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (col) return col.searchField || col.dataIndex;
|
|
127
|
+
return textField || valueField;
|
|
128
|
+
}, [columns, searchField, valueField, textField]);
|
|
99
129
|
|
|
100
130
|
var loadData = /*#__PURE__*/function () {
|
|
101
131
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
|
|
@@ -145,7 +175,7 @@ function InputTable(prop) {
|
|
|
145
175
|
|
|
146
176
|
return _context.abrupt("return", {
|
|
147
177
|
data: rows,
|
|
148
|
-
total: result.total || 0,
|
|
178
|
+
total: Number(result.total || 0),
|
|
149
179
|
success: true
|
|
150
180
|
});
|
|
151
181
|
|
|
@@ -171,7 +201,111 @@ function InputTable(prop) {
|
|
|
171
201
|
formValue[textNameProp] = formValue[name];
|
|
172
202
|
formRef === null || formRef === void 0 ? void 0 : formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
173
203
|
}
|
|
174
|
-
}, []);
|
|
204
|
+
}, []); // 处理返回数据
|
|
205
|
+
|
|
206
|
+
var handleValue = function handleValue(row) {
|
|
207
|
+
var _formRef$current2, _formRef$current3;
|
|
208
|
+
|
|
209
|
+
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
|
|
210
|
+
var txt; //支持多选
|
|
211
|
+
|
|
212
|
+
if (Array.isArray(row)) {
|
|
213
|
+
//返回值
|
|
214
|
+
formValue[name] = row.map(function (o) {
|
|
215
|
+
return o[valueField];
|
|
216
|
+
}).join(','); //显示值
|
|
217
|
+
|
|
218
|
+
txt = row.map(function (o) {
|
|
219
|
+
return o[textField || valueField];
|
|
220
|
+
}).join(','); //处理填充其它字段
|
|
221
|
+
|
|
222
|
+
if (fillMap) {
|
|
223
|
+
var _loop = function _loop(key) {
|
|
224
|
+
formValue[key] = row.map(function (o) {
|
|
225
|
+
return o[fillMap[key]];
|
|
226
|
+
}).join(',');
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
for (var key in fillMap) {
|
|
230
|
+
_loop(key);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
} else {
|
|
234
|
+
formValue[name] = row[valueField] || '';
|
|
235
|
+
txt = row[textField || valueField] || '';
|
|
236
|
+
|
|
237
|
+
if (fillMap) {
|
|
238
|
+
for (var _key in fillMap) {
|
|
239
|
+
formValue[_key] = row[fillMap[_key]] || '';
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
formValue[textNameProp] = txt;
|
|
245
|
+
setText(txt);
|
|
246
|
+
setVisible(false);
|
|
247
|
+
(_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
248
|
+
onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(row, formRef);
|
|
249
|
+
}; // 可输入时,回车或失去焦点调接口查询数据
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
var onQuery = function onQuery(e) {
|
|
253
|
+
if (rest.disabled || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.disabled) || readonly) return;
|
|
254
|
+
var val = e.target.value;
|
|
255
|
+
|
|
256
|
+
if (val) {
|
|
257
|
+
var param = {
|
|
258
|
+
current: 1,
|
|
259
|
+
pageSize: 10
|
|
260
|
+
};
|
|
261
|
+
param[searchKey] = val;
|
|
262
|
+
loadData(param).then(function (result) {
|
|
263
|
+
var rows = result.data || [];
|
|
264
|
+
|
|
265
|
+
if (!rows.length) {
|
|
266
|
+
handleValue({});
|
|
267
|
+
(0, _utils.showWarn)("".concat(val, "\u67E5\u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u8BB0\u5F55\uFF01"));
|
|
268
|
+
} else if (multiple) {
|
|
269
|
+
handleValue(rows);
|
|
270
|
+
} else {
|
|
271
|
+
handleValue(rows[0]);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
e.stopPropagation();
|
|
275
|
+
e.preventDefault();
|
|
276
|
+
}
|
|
277
|
+
}; //直接输入不回车,value 和 text 为同一个值
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
var onInput = function onInput(e) {
|
|
281
|
+
var _formRef$current4;
|
|
282
|
+
|
|
283
|
+
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : _formRef$current4.getFieldsValue();
|
|
284
|
+
var val = e.target.value;
|
|
285
|
+
formValue[name] = val;
|
|
286
|
+
formValue[textNameProp] = val;
|
|
287
|
+
setText(val);
|
|
288
|
+
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
289
|
+
}; // 当表单重置或点clear时,处理值
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
var clearValue = function clearValue(e) {
|
|
293
|
+
if (!e.target.value) {
|
|
294
|
+
var _formRef$current5;
|
|
295
|
+
|
|
296
|
+
setText('');
|
|
297
|
+
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : _formRef$current5.getFieldsValue();
|
|
298
|
+
formValue[name] = '';
|
|
299
|
+
formValue[textNameProp] = ''; // 不处理,其它表单自己清空
|
|
300
|
+
// if (fillMap) {
|
|
301
|
+
// for (let key in fillMap) {
|
|
302
|
+
// formValue[key] = '';
|
|
303
|
+
// }
|
|
304
|
+
// }
|
|
305
|
+
|
|
306
|
+
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
307
|
+
}
|
|
308
|
+
};
|
|
175
309
|
|
|
176
310
|
var tableDom = /*#__PURE__*/_react.default.createElement(_lsProTable.default, (0, _extends2.default)({
|
|
177
311
|
columns: columns,
|
|
@@ -203,36 +337,14 @@ function InputTable(prop) {
|
|
|
203
337
|
onRow: function onRow(record) {
|
|
204
338
|
return {
|
|
205
339
|
onDoubleClick: function onDoubleClick() {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
|
|
209
|
-
formValue[name] = record[valueField];
|
|
210
|
-
var txt = record[textField || valueField];
|
|
211
|
-
formValue[textNameProp] = txt;
|
|
212
|
-
setText(txt);
|
|
213
|
-
(_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
214
|
-
setVisible(false);
|
|
215
|
-
onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(record);
|
|
340
|
+
handleValue(record);
|
|
216
341
|
}
|
|
217
342
|
};
|
|
218
343
|
},
|
|
219
344
|
toolBarRender: function toolBarRender() {
|
|
220
345
|
return [/*#__PURE__*/_react.default.createElement(_button.default, {
|
|
221
346
|
onClick: function onClick() {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : _formRef$current4.getFieldsValue();
|
|
225
|
-
formValue[name] = selectedRows.map(function (o) {
|
|
226
|
-
return o[valueField];
|
|
227
|
-
}).join(',');
|
|
228
|
-
var txt = selectedRows.map(function (o) {
|
|
229
|
-
return o[textField || valueField];
|
|
230
|
-
}).join(',');
|
|
231
|
-
formValue[textNameProp] = txt;
|
|
232
|
-
setText(txt);
|
|
233
|
-
(_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : _formRef$current5.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
234
|
-
onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(selectedRows);
|
|
235
|
-
setVisible(false);
|
|
347
|
+
handleValue(selectedRows);
|
|
236
348
|
}
|
|
237
349
|
}, "\u786E\u8BA4")];
|
|
238
350
|
},
|
|
@@ -262,31 +374,25 @@ function InputTable(prop) {
|
|
|
262
374
|
onVisibleChange: setVisible
|
|
263
375
|
}, /*#__PURE__*/_react.default.createElement(_icons.MoreOutlined, {
|
|
264
376
|
onClick: function onClick(e) {
|
|
377
|
+
if (rest.disabled || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.disabled)) return;
|
|
265
378
|
setVisible(true);
|
|
266
379
|
e.stopPropagation && e.stopPropagation();
|
|
267
380
|
}
|
|
268
381
|
})),
|
|
269
382
|
onClick: function onClick() {
|
|
270
|
-
if (readonly) return;
|
|
383
|
+
if (!readonly) return;
|
|
271
384
|
setVisible(true);
|
|
272
385
|
},
|
|
273
|
-
onInput:
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
formValue[textNameProp] = val;
|
|
280
|
-
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
386
|
+
onInput: onInput,
|
|
387
|
+
onChange: clearValue,
|
|
388
|
+
onPressEnter: function onPressEnter(e) {
|
|
389
|
+
if (triggerCheck === 'entry') {
|
|
390
|
+
onQuery(e);
|
|
391
|
+
}
|
|
281
392
|
},
|
|
282
|
-
|
|
283
|
-
if (
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current7 = formRef.current) === null || _formRef$current7 === void 0 ? void 0 : _formRef$current7.getFieldsValue();
|
|
287
|
-
formValue[name] = '';
|
|
288
|
-
formValue[textNameProp] = '';
|
|
289
|
-
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
393
|
+
onBlur: function onBlur(e) {
|
|
394
|
+
if (triggerCheck === 'blur') {
|
|
395
|
+
onQuery(e);
|
|
290
396
|
}
|
|
291
397
|
},
|
|
292
398
|
readOnly: readonly,
|
|
@@ -306,36 +412,26 @@ function InputTable(prop) {
|
|
|
306
412
|
onVisibleChange: setVisible
|
|
307
413
|
}, /*#__PURE__*/_react.default.createElement(_icons.MoreOutlined, {
|
|
308
414
|
onClick: function onClick(e) {
|
|
415
|
+
if (rest.disabled || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.disabled)) return;
|
|
309
416
|
setVisible(true);
|
|
310
|
-
e.stopPropagation && e.stopPropagation();
|
|
311
417
|
}
|
|
312
418
|
})),
|
|
313
419
|
onClick: function onClick() {
|
|
314
|
-
if (readonly) return;
|
|
420
|
+
if (!readonly) return;
|
|
315
421
|
setVisible(true);
|
|
316
422
|
},
|
|
317
|
-
onInput:
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
formValue[name] = val;
|
|
323
|
-
formValue[textNameProp] = val;
|
|
324
|
-
setText(val);
|
|
325
|
-
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
423
|
+
onInput: onInput,
|
|
424
|
+
onPressEnter: function onPressEnter(e) {
|
|
425
|
+
if (triggerCheck === 'entry') {
|
|
426
|
+
onQuery(e);
|
|
427
|
+
}
|
|
326
428
|
},
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
var _formRef$current9;
|
|
331
|
-
|
|
332
|
-
setText('');
|
|
333
|
-
var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current9 = formRef.current) === null || _formRef$current9 === void 0 ? void 0 : _formRef$current9.getFieldsValue();
|
|
334
|
-
formValue[name] = '';
|
|
335
|
-
formValue[textNameProp] = '';
|
|
336
|
-
formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
|
|
429
|
+
onBlur: function onBlur(e) {
|
|
430
|
+
if (triggerCheck === 'blur') {
|
|
431
|
+
onQuery(e);
|
|
337
432
|
}
|
|
338
433
|
},
|
|
434
|
+
onChange: clearValue,
|
|
339
435
|
readOnly: readonly,
|
|
340
436
|
value: text,
|
|
341
437
|
allowClear: allowClear
|