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%; | ... | ... |