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.
@@ -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
- onSelectChange?: (item: any) => void;
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 _excluded = ["columns", "url", "textName", "name", "tableConfig", "tableHeight", "tableWidth", "readonly", "multiple", "valueField", "labelWidth", "textField", "onSelectChange", "beforeLoad", "afterLoad", "isV2", "allowClear", "keepSelect", "fieldProps"],
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
- rest = (0, _objectWithoutProperties2.default)(prop, _excluded);
98
- var textNameProp = textName || name + '__text';
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
- var _formRef$current2, _formRef$current3;
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
- var _formRef$current4, _formRef$current5;
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: function onInput(e) {
274
- var _formRef$current6;
275
-
276
- var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 ? void 0 : _formRef$current6.getFieldsValue();
277
- var val = e.target.value;
278
- formValue[name] = val;
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
- onChange: function onChange(e) {
283
- if (!e.target.value) {
284
- var _formRef$current7;
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: function onInput(e) {
318
- var _formRef$current8;
319
-
320
- var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current8 = formRef.current) === null || _formRef$current8 === void 0 ? void 0 : _formRef$current8.getFieldsValue();
321
- var val = e.target.value;
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
- onChange: function onChange(e) {
328
- //用于清除当前组件值
329
- if (!e.target.value) {
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ls-pro-common",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "description": "ls-pro-common",
5
5
  "keywords": [
6
6
  "antd",