Showing
9 changed files
with
125 additions
and
37 deletions
... | ... | @@ -73,7 +73,8 @@ var ListForMobile = function ListForMobile(_ref) { |
73 | 73 | getFieldsProps = _ref.getFieldsProps; |
74 | 74 | var _schema$props = schema.props, |
75 | 75 | props = _schema$props === void 0 ? {} : _schema$props, |
76 | - itemProps = schema.itemProps; | |
76 | + itemProps = schema.itemProps, | |
77 | + handleAddDefault = schema.handleAddDefault; | |
77 | 78 | |
78 | 79 | var _useState = useState([]), |
79 | 80 | _useState2 = _slicedToArray(_useState, 2), |
... | ... | @@ -157,7 +158,7 @@ var ListForMobile = function ListForMobile(_ref) { |
157 | 158 | }))), /*#__PURE__*/React.createElement("a", { |
158 | 159 | className: 'add-button', |
159 | 160 | onClick: function onClick() { |
160 | - addItem(); | |
161 | + addItem(handleAddDefault); | |
161 | 162 | } |
162 | 163 | }, /*#__PURE__*/React.createElement(_PlusCircleFilled, { |
163 | 164 | style: { | ... | ... |
... | ... | @@ -149,7 +149,8 @@ var VirtualList = function VirtualList(_ref) { |
149 | 149 | qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, |
150 | 150 | subformMode = schema.subformMode, |
151 | 151 | subReadOnly = schema.subReadOnly, |
152 | - isLoading = schema.isLoading; | |
152 | + isLoading = schema.isLoading, | |
153 | + handleAddDefault = schema.handleAddDefault; | |
153 | 154 | |
154 | 155 | var _props$scrollY = props.scrollY, |
155 | 156 | scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY, |
... | ... | @@ -1093,7 +1094,9 @@ var VirtualList = function VirtualList(_ref) { |
1093 | 1094 | }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/React.createElement(_Button, { |
1094 | 1095 | type: "link", |
1095 | 1096 | icon: /*#__PURE__*/React.createElement(_PlusOutlined, null), |
1096 | - onClick: addItem | |
1097 | + onClick: function onClick() { | |
1098 | + addItem(handleAddDefault); | |
1099 | + } | |
1097 | 1100 | }, "\u65B0\u589E")); |
1098 | 1101 | }; |
1099 | 1102 | /** | ... | ... |
1 | -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | |
2 | - | |
3 | -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | |
4 | - | |
5 | -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | |
6 | - | |
7 | 1 | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } |
8 | 2 | |
9 | 3 | function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } |
... | ... | @@ -16,6 +10,12 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr |
16 | 10 | |
17 | 11 | function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } |
18 | 12 | |
13 | +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | |
14 | + | |
15 | +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | |
16 | + | |
17 | +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | |
18 | + | |
19 | 19 | /* eslint-disable jsx-a11y/anchor-is-valid */ |
20 | 20 | import React from 'react'; |
21 | 21 | import { get } from 'lodash-es'; |
... | ... | @@ -68,23 +68,37 @@ var RenderList = function RenderList(_ref) { |
68 | 68 | listData = get(formData, dataPath); |
69 | 69 | } |
70 | 70 | |
71 | - var displayList = Array.isArray(listData) ? listData : []; | |
71 | + var displayList = Array.isArray(listData) && JSON.stringify(listData) !== '[{}]' ? listData : []; | |
72 | 72 | |
73 | 73 | var changeList = function changeList(newList) { |
74 | 74 | onItemChange(dataPath, newList); |
75 | 75 | }; |
76 | 76 | |
77 | - var addItem = function addItem() { | |
77 | + var addItem = function addItem(handleAddDefault) { | |
78 | 78 | // const newList = [...displayList, {_active: true}]; |
79 | 79 | var _schema = getSchemaFromFlatten(flatten, parentId); |
80 | 80 | |
81 | - var newItem = generateDataSkeleton(_schema.items) || {}; | |
82 | - var newList = [].concat(_toConsumableArray(displayList), [_objectSpread(_objectSpread({}, newItem), {}, { | |
81 | + var _newItem = generateDataSkeleton(_schema.items) || {}; | |
82 | + | |
83 | + var newItem = _objectSpread(_objectSpread({}, _newItem), {}, { | |
83 | 84 | _active: true |
84 | - })]); | |
85 | - var newIndex = newList.length - 1; | |
86 | - onItemChange(dataPath, newList); | |
87 | - return newIndex; | |
85 | + }); | |
86 | + | |
87 | + var callback = function callback() { | |
88 | + var _new = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : newItem; | |
89 | + | |
90 | + onItemChange(dataPath, [].concat(_toConsumableArray(displayList), [_objectSpread(_objectSpread({}, _new), {}, { | |
91 | + _active: true | |
92 | + })])); | |
93 | + }; | |
94 | + | |
95 | + if (_.isFunction(handleAddDefault)) { | |
96 | + handleAddDefault(newItem, callback); | |
97 | + } else { | |
98 | + callback(); | |
99 | + } | |
100 | + | |
101 | + return displayList.length; | |
88 | 102 | }; |
89 | 103 | |
90 | 104 | var copyItem = function copyItem(idx) { | ... | ... |
... | ... | @@ -295,6 +295,10 @@ |
295 | 295 | cursor: pointer; |
296 | 296 | position: relative; |
297 | 297 | } |
298 | +.fr-container .fr-tooltip-toggle:hover .fr-tooltip-container { | |
299 | + opacity: 1; | |
300 | + visibility: visible; | |
301 | +} | |
298 | 302 | .fr-container .fr-tooltip-icon { |
299 | 303 | height: 14px; |
300 | 304 | width: 14px; |
... | ... | @@ -303,6 +307,28 @@ |
303 | 307 | display: block; |
304 | 308 | margin: 4px 0 0 4px; |
305 | 309 | } |
310 | +.fr-container .fr-tooltip-container { | |
311 | + position: absolute; | |
312 | + width: 160px; | |
313 | + white-space: initial !important; | |
314 | + top: -4px; | |
315 | + left: 0; | |
316 | + bottom: unset; | |
317 | + transform: translateY(-100%); | |
318 | + text-align: left; | |
319 | + background: #2b222a; | |
320 | + padding: 4px; | |
321 | + margin-left: -69px; | |
322 | + border-radius: 4px; | |
323 | + color: #efefef; | |
324 | + font-size: 13px; | |
325 | + cursor: auto; | |
326 | + z-index: 99999; | |
327 | + transition: all 0.5s ease; | |
328 | + opacity: 0; | |
329 | + visibility: hidden; | |
330 | + word-wrap: break-word; | |
331 | +} | |
306 | 332 | .fr-container .fr-slider { |
307 | 333 | display: flex; |
308 | 334 | width: 100%; | ... | ... |
... | ... | @@ -89,7 +89,8 @@ var ListForMobile = function ListForMobile(_ref) { |
89 | 89 | getFieldsProps = _ref.getFieldsProps; |
90 | 90 | var _schema$props = schema.props, |
91 | 91 | props = _schema$props === void 0 ? {} : _schema$props, |
92 | - itemProps = schema.itemProps; | |
92 | + itemProps = schema.itemProps, | |
93 | + handleAddDefault = schema.handleAddDefault; | |
93 | 94 | |
94 | 95 | var _useState = (0, _react.useState)([]), |
95 | 96 | _useState2 = _slicedToArray(_useState, 2), |
... | ... | @@ -173,7 +174,7 @@ var ListForMobile = function ListForMobile(_ref) { |
173 | 174 | }))), /*#__PURE__*/_react.default.createElement("a", { |
174 | 175 | className: 'add-button', |
175 | 176 | onClick: function onClick() { |
176 | - addItem(); | |
177 | + addItem(handleAddDefault); | |
177 | 178 | } |
178 | 179 | }, /*#__PURE__*/_react.default.createElement(_PlusCircleFilled2.default, { |
179 | 180 | style: { | ... | ... |
... | ... | @@ -209,7 +209,8 @@ var VirtualList = function VirtualList(_ref) { |
209 | 209 | qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, |
210 | 210 | subformMode = schema.subformMode, |
211 | 211 | subReadOnly = schema.subReadOnly, |
212 | - isLoading = schema.isLoading; | |
212 | + isLoading = schema.isLoading, | |
213 | + handleAddDefault = schema.handleAddDefault; | |
213 | 214 | |
214 | 215 | var _props$scrollY = props.scrollY, |
215 | 216 | scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY, |
... | ... | @@ -1155,7 +1156,9 @@ var VirtualList = function VirtualList(_ref) { |
1155 | 1156 | }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/_react.default.createElement(_button.default, { |
1156 | 1157 | type: "link", |
1157 | 1158 | icon: /*#__PURE__*/_react.default.createElement(_PlusOutlined2.default, null), |
1158 | - onClick: addItem | |
1159 | + onClick: function onClick() { | |
1160 | + addItem(handleAddDefault); | |
1161 | + } | |
1159 | 1162 | }, "\u65B0\u589E")); |
1160 | 1163 | }; |
1161 | 1164 | /** | ... | ... |
... | ... | @@ -31,12 +31,6 @@ var _ListForMobile = _interopRequireDefault(require("./ListForMobile")); |
31 | 31 | |
32 | 32 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
33 | 33 | |
34 | -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | |
35 | - | |
36 | -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | |
37 | - | |
38 | -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | |
39 | - | |
40 | 34 | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } |
41 | 35 | |
42 | 36 | function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } |
... | ... | @@ -49,6 +43,12 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr |
49 | 43 | |
50 | 44 | function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } |
51 | 45 | |
46 | +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | |
47 | + | |
48 | +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | |
49 | + | |
50 | +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | |
51 | + | |
52 | 52 | var RenderList = function RenderList(_ref) { |
53 | 53 | var parentId = _ref.parentId, |
54 | 54 | _ref$schema = _ref.schema, |
... | ... | @@ -87,23 +87,37 @@ var RenderList = function RenderList(_ref) { |
87 | 87 | listData = (0, _lodashEs.get)(formData, dataPath); |
88 | 88 | } |
89 | 89 | |
90 | - var displayList = Array.isArray(listData) ? listData : []; | |
90 | + var displayList = Array.isArray(listData) && JSON.stringify(listData) !== '[{}]' ? listData : []; | |
91 | 91 | |
92 | 92 | var changeList = function changeList(newList) { |
93 | 93 | onItemChange(dataPath, newList); |
94 | 94 | }; |
95 | 95 | |
96 | - var addItem = function addItem() { | |
96 | + var addItem = function addItem(handleAddDefault) { | |
97 | 97 | // const newList = [...displayList, {_active: true}]; |
98 | 98 | var _schema = (0, _utils.getSchemaFromFlatten)(flatten, parentId); |
99 | 99 | |
100 | - var newItem = (0, _utils.generateDataSkeleton)(_schema.items) || {}; | |
101 | - var newList = [].concat(_toConsumableArray(displayList), [_objectSpread(_objectSpread({}, newItem), {}, { | |
100 | + var _newItem = (0, _utils.generateDataSkeleton)(_schema.items) || {}; | |
101 | + | |
102 | + var newItem = _objectSpread(_objectSpread({}, _newItem), {}, { | |
102 | 103 | _active: true |
103 | - })]); | |
104 | - var newIndex = newList.length - 1; | |
105 | - onItemChange(dataPath, newList); | |
106 | - return newIndex; | |
104 | + }); | |
105 | + | |
106 | + var callback = function callback() { | |
107 | + var _new = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : newItem; | |
108 | + | |
109 | + onItemChange(dataPath, [].concat(_toConsumableArray(displayList), [_objectSpread(_objectSpread({}, _new), {}, { | |
110 | + _active: true | |
111 | + })])); | |
112 | + }; | |
113 | + | |
114 | + if (_.isFunction(handleAddDefault)) { | |
115 | + handleAddDefault(newItem, callback); | |
116 | + } else { | |
117 | + callback(); | |
118 | + } | |
119 | + | |
120 | + return displayList.length; | |
107 | 121 | }; |
108 | 122 | |
109 | 123 | var copyItem = function copyItem(idx) { | ... | ... |
... | ... | @@ -295,6 +295,10 @@ |
295 | 295 | cursor: pointer; |
296 | 296 | position: relative; |
297 | 297 | } |
298 | +.fr-container .fr-tooltip-toggle:hover .fr-tooltip-container { | |
299 | + opacity: 1; | |
300 | + visibility: visible; | |
301 | +} | |
298 | 302 | .fr-container .fr-tooltip-icon { |
299 | 303 | height: 14px; |
300 | 304 | width: 14px; |
... | ... | @@ -303,6 +307,28 @@ |
303 | 307 | display: block; |
304 | 308 | margin: 4px 0 0 4px; |
305 | 309 | } |
310 | +.fr-container .fr-tooltip-container { | |
311 | + position: absolute; | |
312 | + width: 160px; | |
313 | + white-space: initial !important; | |
314 | + top: -4px; | |
315 | + left: 0; | |
316 | + bottom: unset; | |
317 | + transform: translateY(-100%); | |
318 | + text-align: left; | |
319 | + background: #2b222a; | |
320 | + padding: 4px; | |
321 | + margin-left: -69px; | |
322 | + border-radius: 4px; | |
323 | + color: #efefef; | |
324 | + font-size: 13px; | |
325 | + cursor: auto; | |
326 | + z-index: 99999; | |
327 | + transition: all 0.5s ease; | |
328 | + opacity: 0; | |
329 | + visibility: hidden; | |
330 | + word-wrap: break-word; | |
331 | +} | |
306 | 332 | .fr-container .fr-slider { |
307 | 333 | display: flex; |
308 | 334 | width: 100%; | ... | ... |