@openli1115/lowcode-edit-pro-table 1.0.108 → 1.0.110

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.
Files changed (34) hide show
  1. package/build/docs/404.html +3 -3
  2. package/build/docs/_demos/:uuid +3 -3
  3. package/build/docs/colorful-button.html +3 -3
  4. package/build/docs/colorful-input.html +3 -3
  5. package/build/docs/index.html +3 -3
  6. package/build/docs/umi.b94b6487.js +1 -0
  7. package/build/docs/~demos/:uuid.html +3 -3
  8. package/build/docs/~demos/colorful-button-demo.html +3 -3
  9. package/build/docs/~demos/colorful-input-demo.html +3 -3
  10. package/build/lowcode/assets-daily.json +13 -13
  11. package/build/lowcode/assets-dev.json +2 -2
  12. package/build/lowcode/assets-prod.json +13 -13
  13. package/build/lowcode/meta.design.js +1 -1
  14. package/build/lowcode/meta.js +1 -1
  15. package/build/lowcode/render/default/view.js +2 -2
  16. package/build/lowcode/view.js +2 -2
  17. package/dist/BizComps.js +2 -2
  18. package/dist/BizComps.js.map +1 -1
  19. package/es/components/ProCascaderSelect/index.js +1 -0
  20. package/es/components/ProCheckbox/index.d.ts +5 -0
  21. package/es/components/ProCheckbox/index.js +17 -5
  22. package/es/components/ProSearch/index.js +51 -16
  23. package/es/components/ProSelect/index.js +1 -0
  24. package/es/components/edit-pro-table/edit-pro-table.js +1 -0
  25. package/lib/components/ProCascaderSelect/index.js +1 -0
  26. package/lib/components/ProCheckbox/index.d.ts +5 -0
  27. package/lib/components/ProCheckbox/index.js +17 -5
  28. package/lib/components/ProSearch/index.js +62 -27
  29. package/lib/components/ProSelect/index.js +1 -0
  30. package/lib/components/edit-pro-table/edit-pro-table.js +1 -0
  31. package/lowcode_es/meta.js +1 -1
  32. package/lowcode_lib/meta.js +1 -1
  33. package/package.json +3 -3
  34. package/build/docs/umi.4ce4cbe7.js +0 -1
@@ -421,6 +421,7 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
421
421
  return /*#__PURE__*/React.createElement("span", {
422
422
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
423
423
  }, /*#__PURE__*/React.createElement(_CascaderSelect, _extends({}, props, {
424
+ hasClear: true,
424
425
  readOnly: disableEdit ? true : readOnlyProp,
425
426
  disabled: disabledProp,
426
427
  dataSource: cascaderOptions,
@@ -1,6 +1,11 @@
1
1
  import { Checkbox } from '@alifd/next';
2
2
  /**
3
3
  * ProCheckbox — 复选框(单框 checked)
4
+ *
5
+ * 值映射规则:
6
+ * - 选中时:提交 checkedValue 配置项的值(而非 true)
7
+ * - 取消选中时:提交 null(而非 false)
8
+ * - 判断是否选中:value === checkedValue(后端返回空值则不勾选)
4
9
  */
5
10
  declare const ProCheckbox: typeof Checkbox;
6
11
  export default ProCheckbox;
@@ -6,13 +6,19 @@ var createElement = window.React.createElement;
6
6
 
7
7
  /**
8
8
  * ProCheckbox — 复选框(单框 checked)
9
+ *
10
+ * 值映射规则:
11
+ * - 选中时:提交 checkedValue 配置项的值(而非 true)
12
+ * - 取消选中时:提交 null(而非 false)
13
+ * - 判断是否选中:value === checkedValue(后端返回空值则不勾选)
9
14
  */
10
15
  var ProCheckbox = function ProCheckbox(props) {
11
16
  var screen_structure = props.screen_structure,
12
17
  screen_structure_field = props.screen_structure_field,
13
18
  screen_inner_id = props.screen_inner_id,
14
19
  range_inner_table = props.range_inner_table,
15
- checkedValue = props.checkedValue,
20
+ _props$checkedValue = props.checkedValue,
21
+ checkedValue = _props$checkedValue === void 0 ? '1' : _props$checkedValue,
16
22
  _checkedProp = props.checked,
17
23
  disableEdit = props.disableEdit,
18
24
  readOnlyProp = props.readOnly,
@@ -27,12 +33,18 @@ var ProCheckbox = function ProCheckbox(props) {
27
33
  structureName = _resolveProScreenBind.structureName,
28
34
  structureField = _resolveProScreenBind.structureField,
29
35
  fieldPath = _resolveProScreenBind.fieldPath;
30
- var _useProBoundValue = useProBoundValue(fieldPath, false, false),
36
+ var _useProBoundValue = useProBoundValue(fieldPath, null, null),
31
37
  value = _useProBoundValue.value,
32
38
  commit = _useProBoundValue.commit;
39
+
40
+ // 选中状态:当前值严格等于 checkedValue 时才勾选
41
+ // 后端返回空值(null / undefined / '')时不会匹配 checkedValue,因此不显示勾
42
+ var isChecked = value != null && value !== '' && String(value) === String(checkedValue);
33
43
  var handleChange = function handleChange(checked) {
34
- commit(checked);
35
- schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(checked, structureName, structureField);
44
+ // 选中 → 提交配置项的值;取消选中 → 提交 null
45
+ var nextValue = checked ? checkedValue : null;
46
+ commit(nextValue);
47
+ schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(nextValue, structureName, structureField);
36
48
  };
37
49
  return /*#__PURE__*/React.createElement("span", {
38
50
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
@@ -40,7 +52,7 @@ var ProCheckbox = function ProCheckbox(props) {
40
52
  readOnly: disableEdit ? true : readOnlyProp,
41
53
  disabled: disabledProp,
42
54
  checkedValue: checkedValue,
43
- checked: Boolean(value),
55
+ checked: isChecked,
44
56
  onChange: handleChange
45
57
  })));
46
58
  };
@@ -12,9 +12,6 @@ import { useState, useEffect } from 'react';
12
12
  import { SearchOutlined } from '@ant-design/icons';
13
13
  import moment from 'moment';
14
14
  var OPTION_OPTIONS = [{
15
- label: '(留空)',
16
- value: ''
17
- }, {
18
15
  label: '等于',
19
16
  value: 'EQ'
20
17
  }, {
@@ -68,12 +65,20 @@ var newCondRow = function newCondRow(sign) {
68
65
  return {
69
66
  id: genId(),
70
67
  sign: sign,
71
- option: '',
68
+ option: 'EQ',
72
69
  low: '',
73
70
  high: ''
74
71
  };
75
72
  };
76
73
 
74
+ /** 根据 low/high 是否都有值,自动推断比较符:都有值 → BT,否则 EQ */
75
+ var autoAdjustOption = function autoAdjustOption(currentOpt, low, high) {
76
+ if (low && high) return 'BT';
77
+ // high 或 low 被清空时,若之前是 BT 则回退到 EQ
78
+ if (currentOpt === 'BT') return 'EQ';
79
+ return currentOpt;
80
+ };
81
+
77
82
  // ConditionTable: multi-value rows inside the modal
78
83
  var ConditionTable = function ConditionTable(_ref) {
79
84
  var sign = _ref.sign,
@@ -82,7 +87,13 @@ var ConditionTable = function ConditionTable(_ref) {
82
87
  var update = function update(id, key, val) {
83
88
  return onChange(rows.map(function (r) {
84
89
  var _extends2;
85
- return r.id === id ? _extends({}, r, (_extends2 = {}, _extends2[key] = val, _extends2)) : r;
90
+ if (r.id !== id) return r;
91
+ var updated = _extends({}, r, (_extends2 = {}, _extends2[key] = val, _extends2));
92
+ // 修改 low/high 时自动调整比较符:都有值 → BT,否则回退 EQ
93
+ if (key === 'low' || key === 'high') {
94
+ updated.option = autoAdjustOption(r.option, updated.low, updated.high);
95
+ }
96
+ return updated;
86
97
  }));
87
98
  };
88
99
  var remove = function remove(id) {
@@ -250,7 +261,7 @@ var ProSearch = function ProSearch(_ref2) {
250
261
  var screenRows = [];
251
262
  if (fv.conditions.length) {
252
263
  fv.conditions.forEach(function (c) {
253
- if (c.low || c.high || c.option) {
264
+ if (c.low || c.high) {
254
265
  screenRows.push({
255
266
  sign: c.sign,
256
267
  option: c.option || 'EQ',
@@ -324,9 +335,9 @@ var ProSearch = function ProSearch(_ref2) {
324
335
  var confirmModal = function confirmModal() {
325
336
  if (!activeFieldId) return;
326
337
  var conditions = [].concat(includeRows.filter(function (r) {
327
- return r.low || r.option;
338
+ return r.low || r.high;
328
339
  }), excludeRows.filter(function (r) {
329
- return r.low || r.option;
340
+ return r.low || r.high;
330
341
  }));
331
342
  setFieldValues(function (prev) {
332
343
  var _extends7;
@@ -408,14 +419,14 @@ var ProSearch = function ProSearch(_ref2) {
408
419
  if (modalTab === 'include') {
409
420
  setIncludeRows(function (prev) {
410
421
  var base = prev.filter(function (r) {
411
- return r.low || r.high || r.option;
422
+ return r.low || r.high;
412
423
  });
413
424
  return base.length ? [].concat(base, newRows) : newRows;
414
425
  });
415
426
  } else {
416
427
  setExcludeRows(function (prev) {
417
428
  var base = prev.filter(function (r) {
418
- return r.low || r.high || r.option;
429
+ return r.low || r.high;
419
430
  });
420
431
  return base.length ? [].concat(base, newRows) : newRows;
421
432
  });
@@ -447,7 +458,7 @@ var ProSearch = function ProSearch(_ref2) {
447
458
  });
448
459
  } else if (fv.low || fv.high) {
449
460
  var _rows$push2;
450
- rows.push((_rows$push2 = {}, _rows$push2[si + "-sign"] = 'I', _rows$push2[si + "-option"] = 'EQ', _rows$push2[si + "-low"] = fv.low, _rows$push2[si + "-high"] = fv.high, _rows$push2));
461
+ rows.push((_rows$push2 = {}, _rows$push2[si + "-sign"] = 'I', _rows$push2[si + "-option"] = fv.high ? 'BT' : 'EQ', _rows$push2[si + "-low"] = fv.low, _rows$push2[si + "-high"] = fv.high, _rows$push2));
451
462
  }
452
463
  if (rows.length) data[si] = rows;
453
464
 
@@ -458,7 +469,7 @@ var ProSearch = function ProSearch(_ref2) {
458
469
  var screenRows = [];
459
470
  if (fv.conditions.length) {
460
471
  fv.conditions.forEach(function (c) {
461
- if (c.low || c.high || c.option) {
472
+ if (c.low || c.high) {
462
473
  screenRows.push({
463
474
  sign: c.sign,
464
475
  option: c.option || 'EQ',
@@ -494,8 +505,24 @@ var ProSearch = function ProSearch(_ref2) {
494
505
  var val = displayCond ? key === 'low' ? displayCond.low : displayCond.high : fv[key];
495
506
  var _onChange = function onChange(v) {
496
507
  if (displayCond) {
497
- // 将修改同步到多值弹窗的第一行对应字段
498
- updateConditionRow(field.id, displayCond.id, key, v);
508
+ // 将修改同步到多值弹窗的第一行对应字段,并自动调整比较符
509
+ var newLow = key === 'low' ? v : displayCond.low;
510
+ var newHigh = key === 'high' ? v : displayCond.high;
511
+ var newOpt = autoAdjustOption(displayCond.option, newLow, newHigh);
512
+ setFieldValues(function (prev) {
513
+ var _extends9;
514
+ var fv = prev[field.id] || {
515
+ low: '',
516
+ high: '',
517
+ conditions: []
518
+ };
519
+ return _extends({}, prev, (_extends9 = {}, _extends9[field.id] = _extends({}, fv, {
520
+ conditions: fv.conditions.map(function (c) {
521
+ var _extends8;
522
+ return c.id === displayCond.id ? _extends({}, c, (_extends8 = {}, _extends8[key] = v, _extends8.option = newOpt, _extends8)) : c;
523
+ })
524
+ }), _extends9));
525
+ });
499
526
  } else {
500
527
  updateVal(field.id, key, v);
501
528
  }
@@ -593,6 +620,14 @@ var ProSearch = function ProSearch(_ref2) {
593
620
  })
594
621
  }, _sym);
595
622
  }
623
+ // 无多值条件时:low 和 high 都有值 → 显示绿底"~"(介于)
624
+ if (fv.low && fv.high) {
625
+ return /*#__PURE__*/React.createElement("span", {
626
+ style: _extends({}, badgeStyle, {
627
+ background: '#52c41a'
628
+ })
629
+ }, OPTION_SYMBOL['BT']);
630
+ }
596
631
  return null;
597
632
  };
598
633
  var headerSize = {
@@ -603,10 +638,10 @@ var ProSearch = function ProSearch(_ref2) {
603
638
  return f.id === activeFieldId;
604
639
  });
605
640
  var incCount = includeRows.filter(function (r) {
606
- return r.low || r.option;
641
+ return r.low || r.high;
607
642
  }).length;
608
643
  var excCount = excludeRows.filter(function (r) {
609
- return r.low || r.option;
644
+ return r.low || r.high;
610
645
  }).length;
611
646
  return /*#__PURE__*/React.createElement("div", {
612
647
  style: {
@@ -34,6 +34,7 @@ var ProSelect = function ProSelect(props) {
34
34
  return /*#__PURE__*/React.createElement("span", {
35
35
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
36
36
  }, /*#__PURE__*/React.createElement(_Select, _extends({}, props, {
37
+ hasClear: true,
37
38
  readOnly: disableEdit ? true : readOnlyProp,
38
39
  disabled: disabledProp,
39
40
  dataSource: dataSource,
@@ -101,6 +101,7 @@ var EditProTable = function EditProTable(_ref) {
101
101
  if (column.valueType === 'select') {
102
102
  return /*#__PURE__*/React.createElement(_Select, {
103
103
  disabled: disabled,
104
+ allowClear: true,
104
105
  options: column.valueEnum ? Object.keys(column.valueEnum).map(function (key) {
105
106
  return {
106
107
  label: key,
@@ -426,6 +426,7 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
426
426
  return /*#__PURE__*/React.createElement("span", {
427
427
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
428
428
  }, /*#__PURE__*/React.createElement(_cascaderSelect["default"], (0, _extends2["default"])({}, props, {
429
+ hasClear: true,
429
430
  readOnly: disableEdit ? true : readOnlyProp,
430
431
  disabled: disabledProp,
431
432
  dataSource: cascaderOptions,
@@ -1,6 +1,11 @@
1
1
  import { Checkbox } from '@alifd/next';
2
2
  /**
3
3
  * ProCheckbox — 复选框(单框 checked)
4
+ *
5
+ * 值映射规则:
6
+ * - 选中时:提交 checkedValue 配置项的值(而非 true)
7
+ * - 取消选中时:提交 null(而非 false)
8
+ * - 判断是否选中:value === checkedValue(后端返回空值则不勾选)
4
9
  */
5
10
  declare const ProCheckbox: typeof Checkbox;
6
11
  export default ProCheckbox;
@@ -11,13 +11,19 @@ var createElement = window.React.createElement;
11
11
 
12
12
  /**
13
13
  * ProCheckbox — 复选框(单框 checked)
14
+ *
15
+ * 值映射规则:
16
+ * - 选中时:提交 checkedValue 配置项的值(而非 true)
17
+ * - 取消选中时:提交 null(而非 false)
18
+ * - 判断是否选中:value === checkedValue(后端返回空值则不勾选)
14
19
  */
15
20
  var ProCheckbox = function ProCheckbox(props) {
16
21
  var screen_structure = props.screen_structure,
17
22
  screen_structure_field = props.screen_structure_field,
18
23
  screen_inner_id = props.screen_inner_id,
19
24
  range_inner_table = props.range_inner_table,
20
- checkedValue = props.checkedValue,
25
+ _props$checkedValue = props.checkedValue,
26
+ checkedValue = _props$checkedValue === void 0 ? '1' : _props$checkedValue,
21
27
  _checkedProp = props.checked,
22
28
  disableEdit = props.disableEdit,
23
29
  readOnlyProp = props.readOnly,
@@ -32,12 +38,18 @@ var ProCheckbox = function ProCheckbox(props) {
32
38
  structureName = _resolveProScreenBind.structureName,
33
39
  structureField = _resolveProScreenBind.structureField,
34
40
  fieldPath = _resolveProScreenBind.fieldPath;
35
- var _useProBoundValue = (0, _useProBoundValue2.useProBoundValue)(fieldPath, false, false),
41
+ var _useProBoundValue = (0, _useProBoundValue2.useProBoundValue)(fieldPath, null, null),
36
42
  value = _useProBoundValue.value,
37
43
  commit = _useProBoundValue.commit;
44
+
45
+ // 选中状态:当前值严格等于 checkedValue 时才勾选
46
+ // 后端返回空值(null / undefined / '')时不会匹配 checkedValue,因此不显示勾
47
+ var isChecked = value != null && value !== '' && String(value) === String(checkedValue);
38
48
  var handleChange = function handleChange(checked) {
39
- commit(checked);
40
- schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(checked, structureName, structureField);
49
+ // 选中 → 提交配置项的值;取消选中 → 提交 null
50
+ var nextValue = checked ? checkedValue : null;
51
+ commit(nextValue);
52
+ schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(nextValue, structureName, structureField);
41
53
  };
42
54
  return /*#__PURE__*/React.createElement("span", {
43
55
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
@@ -45,7 +57,7 @@ var ProCheckbox = function ProCheckbox(props) {
45
57
  readOnly: disableEdit ? true : readOnlyProp,
46
58
  disabled: disabledProp,
47
59
  checkedValue: checkedValue,
48
- checked: Boolean(value),
60
+ checked: isChecked,
49
61
  onChange: handleChange
50
62
  })));
51
63
  };
@@ -11,16 +11,13 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _button = _interopRequireDefault(require("antd/lib/button"));
12
12
  var _input = _interopRequireDefault(require("antd/lib/input"));
13
13
  var _select = _interopRequireDefault(require("antd/lib/select"));
14
- var _extends8 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
+ var _extends0 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
16
  var React = _react;
17
17
  var _icons = require("@ant-design/icons");
18
18
  var _moment = _interopRequireDefault(require("moment"));
19
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
20
20
  var OPTION_OPTIONS = [{
21
- label: '(留空)',
22
- value: ''
23
- }, {
24
21
  label: '等于',
25
22
  value: 'EQ'
26
23
  }, {
@@ -74,12 +71,20 @@ var newCondRow = function newCondRow(sign) {
74
71
  return {
75
72
  id: genId(),
76
73
  sign: sign,
77
- option: '',
74
+ option: 'EQ',
78
75
  low: '',
79
76
  high: ''
80
77
  };
81
78
  };
82
79
 
80
+ /** 根据 low/high 是否都有值,自动推断比较符:都有值 → BT,否则 EQ */
81
+ var autoAdjustOption = function autoAdjustOption(currentOpt, low, high) {
82
+ if (low && high) return 'BT';
83
+ // high 或 low 被清空时,若之前是 BT 则回退到 EQ
84
+ if (currentOpt === 'BT') return 'EQ';
85
+ return currentOpt;
86
+ };
87
+
83
88
  // ConditionTable: multi-value rows inside the modal
84
89
  var ConditionTable = function ConditionTable(_ref) {
85
90
  var sign = _ref.sign,
@@ -88,7 +93,13 @@ var ConditionTable = function ConditionTable(_ref) {
88
93
  var update = function update(id, key, val) {
89
94
  return onChange(rows.map(function (r) {
90
95
  var _extends2;
91
- return r.id === id ? (0, _extends8["default"])({}, r, (_extends2 = {}, _extends2[key] = val, _extends2)) : r;
96
+ if (r.id !== id) return r;
97
+ var updated = (0, _extends0["default"])({}, r, (_extends2 = {}, _extends2[key] = val, _extends2));
98
+ // 修改 low/high 时自动调整比较符:都有值 → BT,否则回退 EQ
99
+ if (key === 'low' || key === 'high') {
100
+ updated.option = autoAdjustOption(r.option, updated.low, updated.high);
101
+ }
102
+ return updated;
92
103
  }));
93
104
  };
94
105
  var remove = function remove(id) {
@@ -256,7 +267,7 @@ var ProSearch = function ProSearch(_ref2) {
256
267
  var screenRows = [];
257
268
  if (fv.conditions.length) {
258
269
  fv.conditions.forEach(function (c) {
259
- if (c.low || c.high || c.option) {
270
+ if (c.low || c.high) {
260
271
  screenRows.push({
261
272
  sign: c.sign,
262
273
  option: c.option || 'EQ',
@@ -284,7 +295,7 @@ var ProSearch = function ProSearch(_ref2) {
284
295
  var updateVal = function updateVal(id, key, val) {
285
296
  return setFieldValues(function (prev) {
286
297
  var _extends3, _extends4;
287
- return (0, _extends8["default"])({}, prev, (_extends4 = {}, _extends4[id] = (0, _extends8["default"])({}, prev[id] || {
298
+ return (0, _extends0["default"])({}, prev, (_extends4 = {}, _extends4[id] = (0, _extends0["default"])({}, prev[id] || {
288
299
  low: '',
289
300
  high: '',
290
301
  conditions: []
@@ -301,10 +312,10 @@ var ProSearch = function ProSearch(_ref2) {
301
312
  high: '',
302
313
  conditions: []
303
314
  };
304
- return (0, _extends8["default"])({}, prev, (_extends6 = {}, _extends6[fieldId] = (0, _extends8["default"])({}, fv, {
315
+ return (0, _extends0["default"])({}, prev, (_extends6 = {}, _extends6[fieldId] = (0, _extends0["default"])({}, fv, {
305
316
  conditions: fv.conditions.map(function (c) {
306
317
  var _extends5;
307
- return c.id === condId ? (0, _extends8["default"])({}, c, (_extends5 = {}, _extends5[key] = val, _extends5)) : c;
318
+ return c.id === condId ? (0, _extends0["default"])({}, c, (_extends5 = {}, _extends5[key] = val, _extends5)) : c;
308
319
  })
309
320
  }), _extends6));
310
321
  });
@@ -330,13 +341,13 @@ var ProSearch = function ProSearch(_ref2) {
330
341
  var confirmModal = function confirmModal() {
331
342
  if (!activeFieldId) return;
332
343
  var conditions = [].concat(includeRows.filter(function (r) {
333
- return r.low || r.option;
344
+ return r.low || r.high;
334
345
  }), excludeRows.filter(function (r) {
335
- return r.low || r.option;
346
+ return r.low || r.high;
336
347
  }));
337
348
  setFieldValues(function (prev) {
338
349
  var _extends7;
339
- return (0, _extends8["default"])({}, prev, (_extends7 = {}, _extends7[activeFieldId] = (0, _extends8["default"])({}, prev[activeFieldId] || {
350
+ return (0, _extends0["default"])({}, prev, (_extends7 = {}, _extends7[activeFieldId] = (0, _extends0["default"])({}, prev[activeFieldId] || {
340
351
  low: '',
341
352
  high: ''
342
353
  }, {
@@ -414,14 +425,14 @@ var ProSearch = function ProSearch(_ref2) {
414
425
  if (modalTab === 'include') {
415
426
  setIncludeRows(function (prev) {
416
427
  var base = prev.filter(function (r) {
417
- return r.low || r.high || r.option;
428
+ return r.low || r.high;
418
429
  });
419
430
  return base.length ? [].concat(base, newRows) : newRows;
420
431
  });
421
432
  } else {
422
433
  setExcludeRows(function (prev) {
423
434
  var base = prev.filter(function (r) {
424
- return r.low || r.high || r.option;
435
+ return r.low || r.high;
425
436
  });
426
437
  return base.length ? [].concat(base, newRows) : newRows;
427
438
  });
@@ -453,7 +464,7 @@ var ProSearch = function ProSearch(_ref2) {
453
464
  });
454
465
  } else if (fv.low || fv.high) {
455
466
  var _rows$push2;
456
- rows.push((_rows$push2 = {}, _rows$push2[si + "-sign"] = 'I', _rows$push2[si + "-option"] = 'EQ', _rows$push2[si + "-low"] = fv.low, _rows$push2[si + "-high"] = fv.high, _rows$push2));
467
+ rows.push((_rows$push2 = {}, _rows$push2[si + "-sign"] = 'I', _rows$push2[si + "-option"] = fv.high ? 'BT' : 'EQ', _rows$push2[si + "-low"] = fv.low, _rows$push2[si + "-high"] = fv.high, _rows$push2));
457
468
  }
458
469
  if (rows.length) data[si] = rows;
459
470
 
@@ -464,7 +475,7 @@ var ProSearch = function ProSearch(_ref2) {
464
475
  var screenRows = [];
465
476
  if (fv.conditions.length) {
466
477
  fv.conditions.forEach(function (c) {
467
- if (c.low || c.high || c.option) {
478
+ if (c.low || c.high) {
468
479
  screenRows.push({
469
480
  sign: c.sign,
470
481
  option: c.option || 'EQ',
@@ -500,22 +511,38 @@ var ProSearch = function ProSearch(_ref2) {
500
511
  var val = displayCond ? key === 'low' ? displayCond.low : displayCond.high : fv[key];
501
512
  var _onChange = function onChange(v) {
502
513
  if (displayCond) {
503
- // 将修改同步到多值弹窗的第一行对应字段
504
- updateConditionRow(field.id, displayCond.id, key, v);
514
+ // 将修改同步到多值弹窗的第一行对应字段,并自动调整比较符
515
+ var newLow = key === 'low' ? v : displayCond.low;
516
+ var newHigh = key === 'high' ? v : displayCond.high;
517
+ var newOpt = autoAdjustOption(displayCond.option, newLow, newHigh);
518
+ setFieldValues(function (prev) {
519
+ var _extends9;
520
+ var fv = prev[field.id] || {
521
+ low: '',
522
+ high: '',
523
+ conditions: []
524
+ };
525
+ return (0, _extends0["default"])({}, prev, (_extends9 = {}, _extends9[field.id] = (0, _extends0["default"])({}, fv, {
526
+ conditions: fv.conditions.map(function (c) {
527
+ var _extends8;
528
+ return c.id === displayCond.id ? (0, _extends0["default"])({}, c, (_extends8 = {}, _extends8[key] = v, _extends8.option = newOpt, _extends8)) : c;
529
+ })
530
+ }), _extends9));
531
+ });
505
532
  } else {
506
533
  updateVal(field.id, key, v);
507
534
  }
508
535
  };
509
536
 
510
537
  // 将样式 tab 的所有属性直接应用于输入框
511
- var inputStyle = style ? (0, _extends8["default"])({}, style) : {};
538
+ var inputStyle = style ? (0, _extends0["default"])({}, style) : {};
512
539
 
513
540
  // IS_EMPTY / IS_NOT_EMPTY 时输入框置灰
514
541
  var isEmptyOp = displayCond && (displayCond.option === 'IS_EMPTY' || displayCond.option === 'IS_NOT_EMPTY');
515
542
  var isDisabled = !!isEmptyOp;
516
543
  if (field.fieldType === 'date') {
517
544
  return /*#__PURE__*/React.createElement(_datePicker["default"], {
518
- style: (0, _extends8["default"])({
545
+ style: (0, _extends0["default"])({
519
546
  width: '100%'
520
547
  }, inputStyle),
521
548
  value: val ? (0, _moment["default"])(val) : null,
@@ -527,7 +554,7 @@ var ProSearch = function ProSearch(_ref2) {
527
554
  }
528
555
  if (field.fieldType === 'time') {
529
556
  return /*#__PURE__*/React.createElement(_timePicker["default"], {
530
- style: (0, _extends8["default"])({
557
+ style: (0, _extends0["default"])({
531
558
  width: '100%'
532
559
  }, inputStyle),
533
560
  value: val ? (0, _moment["default"])(val, 'HH:mm:ss') : null,
@@ -584,7 +611,7 @@ var ProSearch = function ProSearch(_ref2) {
584
611
  var sym = OPTION_SYMBOL[opt];
585
612
  if (!sym) return null;
586
613
  return /*#__PURE__*/React.createElement("span", {
587
- style: (0, _extends8["default"])({}, badgeStyle, {
614
+ style: (0, _extends0["default"])({}, badgeStyle, {
588
615
  background: '#52c41a'
589
616
  })
590
617
  }, sym);
@@ -594,11 +621,19 @@ var ProSearch = function ProSearch(_ref2) {
594
621
  // 4.5.2:空 / EQ 也要显示红底 "=" ;其它按 OPTION_SYMBOL 显示
595
622
  var _sym = _opt && OPTION_SYMBOL[_opt] || '=';
596
623
  return /*#__PURE__*/React.createElement("span", {
597
- style: (0, _extends8["default"])({}, badgeStyle, {
624
+ style: (0, _extends0["default"])({}, badgeStyle, {
598
625
  background: '#ff4d4f'
599
626
  })
600
627
  }, _sym);
601
628
  }
629
+ // 无多值条件时:low 和 high 都有值 → 显示绿底"~"(介于)
630
+ if (fv.low && fv.high) {
631
+ return /*#__PURE__*/React.createElement("span", {
632
+ style: (0, _extends0["default"])({}, badgeStyle, {
633
+ background: '#52c41a'
634
+ })
635
+ }, OPTION_SYMBOL['BT']);
636
+ }
602
637
  return null;
603
638
  };
604
639
  var headerSize = {
@@ -609,10 +644,10 @@ var ProSearch = function ProSearch(_ref2) {
609
644
  return f.id === activeFieldId;
610
645
  });
611
646
  var incCount = includeRows.filter(function (r) {
612
- return r.low || r.option;
647
+ return r.low || r.high;
613
648
  }).length;
614
649
  var excCount = excludeRows.filter(function (r) {
615
- return r.low || r.option;
650
+ return r.low || r.high;
616
651
  }).length;
617
652
  return /*#__PURE__*/React.createElement("div", {
618
653
  style: {
@@ -623,7 +658,7 @@ var ProSearch = function ProSearch(_ref2) {
623
658
  padding: '0 4px 8px 4px'
624
659
  }
625
660
  }, showHeader && /*#__PURE__*/React.createElement("div", {
626
- style: (0, _extends8["default"])({
661
+ style: (0, _extends0["default"])({
627
662
  display: 'flex',
628
663
  padding: '4px 8px',
629
664
  gap: 6,
@@ -39,6 +39,7 @@ var ProSelect = function ProSelect(props) {
39
39
  return /*#__PURE__*/React.createElement("span", {
40
40
  className: "field-wrapper " + (disableEdit ? 'disable-edit' : 'enable-edit')
41
41
  }, /*#__PURE__*/React.createElement(_select["default"], (0, _extends2["default"])({}, props, {
42
+ hasClear: true,
42
43
  readOnly: disableEdit ? true : readOnlyProp,
43
44
  disabled: disabledProp,
44
45
  dataSource: dataSource,
@@ -106,6 +106,7 @@ var EditProTable = function EditProTable(_ref) {
106
106
  if (column.valueType === 'select') {
107
107
  return /*#__PURE__*/React.createElement(_select["default"], {
108
108
  disabled: disabled,
109
+ allowClear: true,
109
110
  options: column.valueEnum ? Object.keys(column.valueEnum).map(function (key) {
110
111
  return {
111
112
  label: key,
@@ -102,7 +102,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
102
102
  packageName = '@openli1115/lowcode-edit-pro-table';
103
103
  }
104
104
  if (version === void 0) {
105
- version = '1.0.108';
105
+ version = '1.0.110';
106
106
  }
107
107
  if (basicLibraryVersion === void 0) {
108
108
  basicLibraryVersion = {
@@ -107,7 +107,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
107
107
  packageName = '@openli1115/lowcode-edit-pro-table';
108
108
  }
109
109
  if (version === void 0) {
110
- version = '1.0.108';
110
+ version = '1.0.110';
111
111
  }
112
112
  if (basicLibraryVersion === void 0) {
113
113
  basicLibraryVersion = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openli1115/lowcode-edit-pro-table",
3
- "version": "1.0.108",
3
+ "version": "1.0.110",
4
4
  "description": "@openli1115/lowcode-edit-pro-table",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -101,10 +101,10 @@
101
101
  },
102
102
  "componentConfig": {
103
103
  "isComponentLibrary": true,
104
- "materialSchema": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.108/build/lowcode/assets-prod.json"
104
+ "materialSchema": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.110/build/lowcode/assets-prod.json"
105
105
  },
106
106
  "lcMeta": {
107
107
  "type": "component"
108
108
  },
109
- "homepage": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.108/build/index.html"
109
+ "homepage": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.110/build/index.html"
110
110
  }