linkmore-design 1.0.58 → 1.0.59

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 (36) hide show
  1. package/dist/Form/container.d.ts +8 -0
  2. package/dist/Form/demos/responsive.d.ts +2 -0
  3. package/dist/Form/index.d.ts +3 -0
  4. package/dist/LmFilter/customFilter/index.d.ts +3 -1
  5. package/dist/LmFilter/filterFns/index.d.ts +4 -1
  6. package/dist/index.umd.js +104 -14
  7. package/dist/index.umd.min.js +2 -2
  8. package/es/Form/container.d.ts +8 -0
  9. package/es/Form/container.js +97 -0
  10. package/es/Form/index.d.ts +3 -0
  11. package/es/Form/index.js +13 -1
  12. package/es/Form/style/index.css +35 -0
  13. package/es/LmFilter/baseFilter/index.js +2 -1
  14. package/es/LmFilter/complexFilter/drawer.js +19 -4
  15. package/es/LmFilter/components/CascaderFilter.js +17 -4
  16. package/es/LmFilter/components/DateFilter.js +3 -7
  17. package/es/LmFilter/components/DropdownFIlter.js +12 -4
  18. package/es/LmFilter/customFilter/index.js +3 -2
  19. package/es/LmFilter/filterFns/index.js +51 -11
  20. package/es/LmFilter/wrapper/Filter.js +6 -3
  21. package/es/LmFilter/wrapper/FilterRoot.js +28 -8
  22. package/lib/Form/container.d.ts +8 -0
  23. package/lib/Form/container.js +112 -0
  24. package/lib/Form/index.d.ts +3 -0
  25. package/lib/Form/index.js +14 -1
  26. package/lib/Form/style/index.css +35 -0
  27. package/lib/LmFilter/baseFilter/index.js +2 -1
  28. package/lib/LmFilter/complexFilter/drawer.js +19 -4
  29. package/lib/LmFilter/components/CascaderFilter.js +17 -4
  30. package/lib/LmFilter/components/DateFilter.js +3 -7
  31. package/lib/LmFilter/components/DropdownFIlter.js +12 -4
  32. package/lib/LmFilter/customFilter/index.js +3 -2
  33. package/lib/LmFilter/filterFns/index.js +51 -11
  34. package/lib/LmFilter/wrapper/Filter.js +6 -3
  35. package/lib/LmFilter/wrapper/FilterRoot.js +28 -8
  36. package/package.json +1 -1
@@ -3,6 +3,9 @@ import { Form as AntdForm, FormInstance, FormProps, List } from 'antd';
3
3
  import useFormInstance from 'antd/lib/form/hooks/useFormInstance';
4
4
  import { FormProvider } from 'antd/lib/form/context';
5
5
  import { useForm, useWatch } from 'antd/lib/form/Form';
6
+ export interface LmFormProps extends FormProps {
7
+ responsive?: Boolean;
8
+ }
6
9
  declare const Reform: <Values = any>(props: FormProps<Values> & {
7
10
  children?: React.ReactNode;
8
11
  } & {
package/lib/Form/index.js CHANGED
@@ -25,6 +25,8 @@ var _context = require("antd/lib/form/context");
25
25
 
26
26
  var _Form2 = require("antd/lib/form/Form");
27
27
 
28
+ var _container = _interopRequireDefault(require("./container"));
29
+
28
30
  var __rest = void 0 && (void 0).__rest || function (s, e) {
29
31
  var t = {};
30
32
 
@@ -43,7 +45,18 @@ var classNamePrefix = 'lm_form';
43
45
  var LMForm = function LMForm(props, ref) {
44
46
  var children = props.children,
45
47
  className = props.className,
46
- restProps = __rest(props, ["children", "className"]);
48
+ responsive = props.responsive,
49
+ restProps = __rest(props, ["children", "className", "responsive"]);
50
+
51
+ if (responsive) {
52
+ return /*#__PURE__*/_react.default.createElement(_container.default, {
53
+ responsive: true
54
+ }, /*#__PURE__*/_react.default.createElement(_form.default, Object.assign({
55
+ ref: ref,
56
+ className: (0, _classnames.default)(classNamePrefix, className),
57
+ colon: false
58
+ }, restProps), children));
59
+ }
47
60
 
48
61
  return /*#__PURE__*/_react.default.createElement(_form.default, Object.assign({
49
62
  ref: ref,
@@ -506,6 +506,9 @@ html {
506
506
  .lm_form .ant-form-item {
507
507
  margin-bottom: 16px;
508
508
  }
509
+ .lm_form .ant-form-item .ant-form-item-explain {
510
+ line-height: 24px;
511
+ }
509
512
  .lm_form .ant-form-item-label {
510
513
  display: flex !important;
511
514
  align-items: center;
@@ -529,3 +532,35 @@ html {
529
532
  .lm_form .ant-form-item-control {
530
533
  width: 240px;
531
534
  }
535
+ .lm_container_wrapper {
536
+ overflow: auto;
537
+ }
538
+ .lm_container_wrapper .lm_container.responsive {
539
+ min-width: 990px;
540
+ }
541
+ .lm_container_wrapper .lm_container.responsive .lm_form {
542
+ display: flex;
543
+ flex-direction: row;
544
+ flex-wrap: wrap;
545
+ }
546
+ .lm_container_wrapper .lm_container.responsive .lm_form .ant-form-item {
547
+ margin-right: 24px;
548
+ }
549
+ .lm_container_wrapper .lm_container.responsive.lm_col_3 .ant-form-item {
550
+ width: calc(33.3333% - 16px);
551
+ }
552
+ .lm_container_wrapper .lm_container.responsive.lm_col_3 .ant-form-item:nth-of-type(3n) {
553
+ margin-right: 0;
554
+ }
555
+ .lm_container_wrapper .lm_container.responsive.lm_col_4 .ant-form-item {
556
+ width: calc(25% - 18px);
557
+ }
558
+ .lm_container_wrapper .lm_container.responsive.lm_col_4 .ant-form-item:nth-of-type(4n) {
559
+ margin-right: 0;
560
+ }
561
+ .lm_container_wrapper .lm_container.responsive.lm_col_5 .ant-form-item {
562
+ width: calc(20% - 96px / 5);
563
+ }
564
+ .lm_container_wrapper .lm_container.responsive.lm_col_5 .ant-form-item:nth-of-type(5n) {
565
+ margin-right: 0;
566
+ }
@@ -22,7 +22,8 @@ var LmFilterBase = /*#__PURE__*/_react.default.memo(function (_ref) {
22
22
  }, /*#__PURE__*/_react.default.createElement(_fuzzySearch.default, {
23
23
  instance: instance
24
24
  }), dataSource.map(function (v, index) {
25
- return /*#__PURE__*/_react.default.createElement(_components.default, {
25
+ var isHidden = !v.show && typeof v.show === 'boolean';
26
+ return isHidden ? null : /*#__PURE__*/_react.default.createElement(_components.default, {
26
27
  key: (v === null || v === void 0 ? void 0 : v.field) || index,
27
28
  instance: instance,
28
29
  item: v
@@ -70,7 +70,9 @@ var ListItemChecked = function ListItemChecked(_ref) {
70
70
  }
71
71
 
72
72
  if (getItem.type === 'cascader') {
73
- return (0, _utils.getFlatItem)(checkedValue, getItem.data, 'parent');
73
+ var _getItem$props;
74
+
75
+ return (0, _utils.getFlatItem)((getItem === null || getItem === void 0 ? void 0 : (_getItem$props = getItem.props) === null || _getItem$props === void 0 ? void 0 : _getItem$props.multiple) ? checkedValue : [checkedValue], getItem.data, 'parent');
74
76
  }
75
77
 
76
78
  return (_getItem$data = getItem.data) === null || _getItem$data === void 0 ? void 0 : _getItem$data.filter(function (v) {
@@ -119,9 +121,22 @@ var ListItemChecked = function ListItemChecked(_ref) {
119
121
 
120
122
  var onTagClose = function onTagClose(val) {
121
123
  var originData = (0, _objectSpread3.default)({}, complexDrawer.data);
122
- var nValue = Array.isArray(originData[field].value) ? originData[field].value.filter(function (v) {
123
- return !v.includes(val);
124
- }) : '';
124
+ var nValue = '';
125
+
126
+ if (['select', 'checkbox'].includes(getItem.type)) {
127
+ nValue = originData[field].value.filter(function (v) {
128
+ return !v.includes(val);
129
+ });
130
+ }
131
+
132
+ if (['input'].includes(getItem.type)) {
133
+ nValue = '';
134
+ }
135
+
136
+ if (['cascader'].includes(getItem.type)) {
137
+ nValue = [];
138
+ }
139
+
125
140
  var filterValues = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, originData), {}, (0, _defineProperty2.default)({}, field, (0, _objectSpread3.default)((0, _objectSpread3.default)({}, originData[field]), {}, {
126
141
  value: nValue
127
142
  })));
@@ -13,6 +13,8 @@ require("antd/es/cascader/style");
13
13
 
14
14
  var _cascader = _interopRequireDefault(require("antd/es/cascader"));
15
15
 
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
+
16
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
19
 
18
20
  var _react = _interopRequireWildcard(require("react"));
@@ -39,6 +41,11 @@ var DropdownRender = function DropdownRender(_ref) {
39
41
  filters = _item$data === void 0 ? [] : _item$data;
40
42
  var inputRef = (0, _react.useRef)(null);
41
43
  var delayedFn = (0, _hooks.useDelayedFn)();
44
+ var isShowFoot = (0, _react.useMemo)(function () {
45
+ var _item$props;
46
+
47
+ return item === null || item === void 0 ? void 0 : (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.multiple;
48
+ }, [item]);
42
49
 
43
50
  var handleFilter = function handleFilter(val) {
44
51
  var serachValues = filters.filter(function (v) {
@@ -77,7 +84,7 @@ var DropdownRender = function DropdownRender(_ref) {
77
84
  ref: inputRef,
78
85
  onSearch: handleFilter,
79
86
  onChange: handleFilter
80
- })), dom, /*#__PURE__*/_react.default.createElement("div", {
87
+ })), dom, isShowFoot && /*#__PURE__*/_react.default.createElement("div", {
81
88
  className: "filter_footer"
82
89
  }, /*#__PURE__*/_react.default.createElement("div", {
83
90
  className: "footer_clear",
@@ -117,11 +124,17 @@ var CascaderFilter = function CascaderFilter(_ref2) {
117
124
  }, [filterValue]);
118
125
 
119
126
  var onChange = function onChange(item, selectedOptions) {
127
+ var _itemProps$props;
128
+
129
+ console.log('item', item);
120
130
  setCheckedValues(item);
131
+
132
+ if (!(itemProps === null || itemProps === void 0 ? void 0 : (_itemProps$props = itemProps.props) === null || _itemProps$props === void 0 ? void 0 : _itemProps$props.multiple)) {
133
+ setFilterValue(item);
134
+ }
121
135
  };
122
136
 
123
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, {
124
- multiple: true,
137
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_cascader.default, (0, _extends2.default)({}, itemProps.props, {
125
138
  options: options,
126
139
  onChange: onChange,
127
140
  defaultValue: defaultValue,
@@ -139,7 +152,7 @@ var CascaderFilter = function CascaderFilter(_ref2) {
139
152
  setOptions: setOptions
140
153
  });
141
154
  }
142
- }, children));
155
+ }), children));
143
156
  };
144
157
 
145
158
  var _default = CascaderFilter;
@@ -9,10 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- require("antd/es/date-picker/style");
13
-
14
- var _datePicker = _interopRequireDefault(require("antd/es/date-picker"));
15
-
16
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
13
 
18
14
  var _react = _interopRequireWildcard(require("react"));
@@ -73,7 +69,7 @@ var RangePicker = function RangePicker(_ref) {
73
69
  className: "filter_picker_header"
74
70
  }, /*#__PURE__*/_react.default.createElement("div", {
75
71
  className: "filter_picker_header_tip"
76
- }, filterValue && "".concat(filterValue[0], " - ").concat(filterValue[1])), /*#__PURE__*/_react.default.createElement("div", {
72
+ }, defaultValue && "".concat(filterValue[0], " - ").concat(filterValue[1])), /*#__PURE__*/_react.default.createElement("div", {
77
73
  className: "filter_picker_header_operate"
78
74
  }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Radio.Group, {
79
75
  value: activeValue,
@@ -87,7 +83,7 @@ var RangePicker = function RangePicker(_ref) {
87
83
  })))), panelNode));
88
84
  };
89
85
 
90
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_datePicker.default.RangePicker, (0, _extends2.default)({
86
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.DatePicker.RangePicker, (0, _extends2.default)({
91
87
  picker: "date",
92
88
  separator: /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
93
89
  type: "lmweb-swap-right",
@@ -148,7 +144,7 @@ var DatePickerFilter = function DatePickerFilter(_ref2) {
148
144
  });
149
145
  }
150
146
 
151
- return /*#__PURE__*/_react.default.createElement(_datePicker.default, (0, _extends2.default)({
147
+ return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.DatePicker, (0, _extends2.default)({
152
148
  placeholder: "\u9009\u62E9\u65F6\u95F4"
153
149
  }, props, {
154
150
  defaultValue: defaultValue,
@@ -112,7 +112,9 @@ var getLabel = function getLabel(filterValue, item) {
112
112
 
113
113
 
114
114
  if (['cascader'].includes(type)) {
115
- var nArr = (0, _utils.getFlatItem)(filterValue, data);
115
+ var _item$props;
116
+
117
+ var nArr = (0, _utils.getFlatItem)((item === null || item === void 0 ? void 0 : (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.multiple) ? filterValue : [filterValue], data);
116
118
  var labels = nArr.map(function (v) {
117
119
  return v.label;
118
120
  });
@@ -150,6 +152,12 @@ var getLabel = function getLabel(filterValue, item) {
150
152
  return v.label;
151
153
  });
152
154
 
155
+ if (!_labels.length) {
156
+ _labels = filterValue;
157
+ }
158
+
159
+ ; // 受控模式未查找到显示的内容时展示
160
+
153
161
  switch (_labels.length) {
154
162
  case 1:
155
163
  return _labels[0];
@@ -165,12 +173,12 @@ var getLabel = function getLabel(filterValue, item) {
165
173
 
166
174
  if (['input', 'date'].includes(type)) {
167
175
  return filterValue;
168
- } // 单选框
176
+ } // 单选框 受控模式未查找到显示的内容时展示filterValue
169
177
 
170
178
 
171
- var label = (_data$find = data.find(function (v) {
179
+ var label = ((_data$find = data.find(function (v) {
172
180
  return v.value === filterValue;
173
- })) === null || _data$find === void 0 ? void 0 : _data$find.label;
181
+ })) === null || _data$find === void 0 ? void 0 : _data$find.label) || filterValue;
174
182
  return label;
175
183
  };
176
184
  /*
@@ -9,8 +9,9 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var LmFilterCustom = function LmFilterCustom(e) {
13
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "LmFilterCustom");
12
+ var LmFilterCustom = function LmFilterCustom(_ref) {
13
+ var instance = _ref.instance;
14
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
14
15
  };
15
16
 
16
17
  var _default = LmFilterCustom;
@@ -18,7 +18,16 @@ var CoreOptions = function CoreOptions(_ref) {
18
18
  var state = _ref.state,
19
19
  dispatch = _ref.dispatch,
20
20
  props = _ref.props;
21
- var onChange = props.onChange; // 设置筛选的值 item => Object || Array => [{label: '', value: ''}, ...]
21
+ var onChange = props.onChange,
22
+ dataSource = props.dataSource; // 根据字段查找过滤的数据, 不存在时返回默认值
23
+
24
+ var getFilterValue = function getFilterValue(_ref2) {
25
+ var field = _ref2.field,
26
+ type = _ref2.type;
27
+ var defaultValue = (0, _utils.getValueForType)(type);
28
+ return state.basicFilter[field] || defaultValue;
29
+ }; // 设置筛选的值 item => String || Array => ['', '', ...]
30
+
22
31
 
23
32
  var setFilterValue = function setFilterValue(item, field) {
24
33
  var _Object$entries;
@@ -44,7 +53,7 @@ var CoreOptions = function CoreOptions(_ref) {
44
53
  return {
45
54
  fieldName: v[0],
46
55
  value: v[1],
47
- operator: 0
56
+ operator: 'contains'
48
57
  };
49
58
  }); // 触发外部事件
50
59
 
@@ -53,19 +62,50 @@ var CoreOptions = function CoreOptions(_ref) {
53
62
  filterQuery: filterQuery,
54
63
  type: 'basic'
55
64
  });
56
- }; // 根据字段查找过滤的数据, 不存在时返回默认值
57
-
58
-
59
- var getFilterValue = function getFilterValue(_ref2) {
60
- var field = _ref2.field,
61
- type = _ref2.type;
62
- var defaultValue = (0, _utils.getValueForType)(type);
63
- return state.basicFilter[field] || defaultValue;
65
+ }; // 读取缓存
66
+
67
+
68
+ var setLocalization = function setLocalization() {
69
+ var localization = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.localization;
70
+ var globalQuery = localization.globalQuery,
71
+ filterQuery = localization.filterQuery;
72
+
73
+ if (filterQuery === null || filterQuery === void 0 ? void 0 : filterQuery.filter) {
74
+ // 初始化基础查询缓存
75
+ var basicFilter = filterQuery === null || filterQuery === void 0 ? void 0 : filterQuery.filter.reduce(function (pre, cur) {
76
+ // 查找改数据是否展示
77
+ var someData = dataSource.some(function (v) {
78
+ if (cur.fieldName === v.field) {
79
+ var isHidden = !v.show && typeof v.show === 'boolean';
80
+ return !isHidden;
81
+ }
82
+
83
+ return false;
84
+ });
85
+
86
+ if ((0, _utils.getIsHas)(cur.value) && someData) {
87
+ pre[cur.fieldName] = cur.value;
88
+ }
89
+
90
+ return pre;
91
+ }, {});
92
+ dispatch({
93
+ type: 'changeBasicFilter',
94
+ basicFilter: basicFilter
95
+ });
96
+ }
64
97
  };
65
98
 
66
99
  return {
100
+ getState: function getState() {
101
+ return state;
102
+ },
103
+ getBasicFilter: function getBasicFilter() {
104
+ return state.basicFilter;
105
+ },
106
+ getFilterValue: getFilterValue,
67
107
  setFilterValue: setFilterValue,
68
- getFilterValue: getFilterValue
108
+ setLocalization: setLocalization
69
109
  };
70
110
  };
71
111
 
@@ -18,13 +18,16 @@ var _complexFilter = _interopRequireDefault(require("../complexFilter"));
18
18
  // 筛选组合
19
19
  var LmFilter = /*#__PURE__*/_react.default.memo(function (_ref) {
20
20
  var instance = _ref.instance;
21
+ var enableBaisc = instance.enableBaisc,
22
+ enableComplex = instance.enableComplex,
23
+ enableCustom = instance.enableCustom;
21
24
  return /*#__PURE__*/_react.default.createElement("div", {
22
25
  className: "lm_filter"
23
- }, /*#__PURE__*/_react.default.createElement(_customFilter.default, {
26
+ }, enableCustom && /*#__PURE__*/_react.default.createElement(_customFilter.default, {
24
27
  instance: instance
25
- }), /*#__PURE__*/_react.default.createElement(_baseFilter.default, {
28
+ }), enableBaisc && /*#__PURE__*/_react.default.createElement(_baseFilter.default, {
26
29
  instance: instance
27
- }), /*#__PURE__*/_react.default.createElement(_complexFilter.default, {
30
+ }), enableComplex && /*#__PURE__*/_react.default.createElement(_complexFilter.default, {
28
31
  instance: instance
29
32
  }));
30
33
  });
@@ -21,6 +21,8 @@ var _FilterWrapper = _interopRequireDefault(require("./FilterWrapper"));
21
21
 
22
22
  var _filterFns = _interopRequireDefault(require("../filterFns"));
23
23
 
24
+ var _utils = require("../utils");
25
+
24
26
  // 根文件 => 参数聚合
25
27
  var reducer = function reducer(state, action) {
26
28
  var basicFilter = action.basicFilter,
@@ -66,7 +68,8 @@ var reducer = function reducer(state, action) {
66
68
  case 'reset':
67
69
  // 一键清空
68
70
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
69
- basicFilter: {}
71
+ basicFilter: {},
72
+ complexFilter: {}
70
73
  });
71
74
 
72
75
  default:
@@ -76,15 +79,32 @@ var reducer = function reducer(state, action) {
76
79
 
77
80
 
78
81
  var getInitialState = function getInitialState(_ref) {
79
- var _filterQuery$filter;
80
-
81
- var localization = _ref.localization;
82
+ var localization = _ref.localization,
83
+ dataSource = _ref.dataSource;
82
84
  var globalQuery = localization.globalQuery,
83
85
  filterQuery = localization.filterQuery;
84
- var basicFilter = {};
85
- filterQuery === null || filterQuery === void 0 ? void 0 : (_filterQuery$filter = filterQuery.filter) === null || _filterQuery$filter === void 0 ? void 0 : _filterQuery$filter.forEach(function (item) {
86
- basicFilter[item.fieldName] = item.value;
87
- });
86
+ var basicFilter = {}; // 初始化基础查询缓存
87
+
88
+ if (filterQuery === null || filterQuery === void 0 ? void 0 : filterQuery.filter) {
89
+ basicFilter = filterQuery === null || filterQuery === void 0 ? void 0 : filterQuery.filter.reduce(function (pre, cur) {
90
+ // 查找改数据是否展示
91
+ var someData = dataSource.some(function (v) {
92
+ if (cur.fieldName === v.field) {
93
+ var isHidden = !v.show && typeof v.show === 'boolean';
94
+ return !isHidden;
95
+ }
96
+
97
+ return false;
98
+ });
99
+
100
+ if ((0, _utils.getIsHas)(cur.value) && someData) {
101
+ pre[cur.fieldName] = cur.value;
102
+ }
103
+
104
+ return pre;
105
+ }, {});
106
+ }
107
+
88
108
  return {
89
109
  basicFilter: basicFilter,
90
110
  complexFilter: {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkmore-design",
3
- "version": "1.0.58",
3
+ "version": "1.0.59",
4
4
  "author": {
5
5
  "name": "nowthen",
6
6
  "email": "rnlvwyx@gmail.com"