Commit a79b7dc919972106143ac990b0ba88862d2f573c

Authored by 乔启韬
1 parent d55b08c9

升级

@@ -73,7 +73,8 @@ var ListForMobile = function ListForMobile(_ref) { @@ -73,7 +73,8 @@ var ListForMobile = function ListForMobile(_ref) {
73 getFieldsProps = _ref.getFieldsProps; 73 getFieldsProps = _ref.getFieldsProps;
74 var _schema$props = schema.props, 74 var _schema$props = schema.props,
75 props = _schema$props === void 0 ? {} : _schema$props, 75 props = _schema$props === void 0 ? {} : _schema$props,
76 - itemProps = schema.itemProps; 76 + itemProps = schema.itemProps,
  77 + handleAddDefault = schema.handleAddDefault;
77 78
78 var _useState = useState([]), 79 var _useState = useState([]),
79 _useState2 = _slicedToArray(_useState, 2), 80 _useState2 = _slicedToArray(_useState, 2),
@@ -157,7 +158,7 @@ var ListForMobile = function ListForMobile(_ref) { @@ -157,7 +158,7 @@ var ListForMobile = function ListForMobile(_ref) {
157 }))), /*#__PURE__*/React.createElement("a", { 158 }))), /*#__PURE__*/React.createElement("a", {
158 className: 'add-button', 159 className: 'add-button',
159 onClick: function onClick() { 160 onClick: function onClick() {
160 - addItem(); 161 + addItem(handleAddDefault);
161 } 162 }
162 }, /*#__PURE__*/React.createElement(_PlusCircleFilled, { 163 }, /*#__PURE__*/React.createElement(_PlusCircleFilled, {
163 style: { 164 style: {
@@ -149,7 +149,8 @@ var VirtualList = function VirtualList(_ref) { @@ -149,7 +149,8 @@ var VirtualList = function VirtualList(_ref) {
149 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, 149 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps,
150 subformMode = schema.subformMode, 150 subformMode = schema.subformMode,
151 subReadOnly = schema.subReadOnly, 151 subReadOnly = schema.subReadOnly,
152 - isLoading = schema.isLoading; 152 + isLoading = schema.isLoading,
  153 + handleAddDefault = schema.handleAddDefault;
153 154
154 var _props$scrollY = props.scrollY, 155 var _props$scrollY = props.scrollY,
155 scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY, 156 scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY,
@@ -1093,7 +1094,9 @@ var VirtualList = function VirtualList(_ref) { @@ -1093,7 +1094,9 @@ var VirtualList = function VirtualList(_ref) {
1093 }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/React.createElement(_Button, { 1094 }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/React.createElement(_Button, {
1094 type: "link", 1095 type: "link",
1095 icon: /*#__PURE__*/React.createElement(_PlusOutlined, null), 1096 icon: /*#__PURE__*/React.createElement(_PlusOutlined, null),
1096 - onClick: addItem 1097 + onClick: function onClick() {
  1098 + addItem(handleAddDefault);
  1099 + }
1097 }, "\u65B0\u589E")); 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 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } 1 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8 2
9 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."); } 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,6 +10,12 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
16 10
17 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; } 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 /* eslint-disable jsx-a11y/anchor-is-valid */ 19 /* eslint-disable jsx-a11y/anchor-is-valid */
20 import React from 'react'; 20 import React from 'react';
21 import { get } from 'lodash-es'; 21 import { get } from 'lodash-es';
@@ -68,23 +68,37 @@ var RenderList = function RenderList(_ref) { @@ -68,23 +68,37 @@ var RenderList = function RenderList(_ref) {
68 listData = get(formData, dataPath); 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 var changeList = function changeList(newList) { 73 var changeList = function changeList(newList) {
74 onItemChange(dataPath, newList); 74 onItemChange(dataPath, newList);
75 }; 75 };
76 76
77 - var addItem = function addItem() { 77 + var addItem = function addItem(handleAddDefault) {
78 // const newList = [...displayList, {_active: true}]; 78 // const newList = [...displayList, {_active: true}];
79 var _schema = getSchemaFromFlatten(flatten, parentId); 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 _active: true 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 var copyItem = function copyItem(idx) { 104 var copyItem = function copyItem(idx) {
@@ -295,6 +295,10 @@ @@ -295,6 +295,10 @@
295 cursor: pointer; 295 cursor: pointer;
296 position: relative; 296 position: relative;
297 } 297 }
  298 +.fr-container .fr-tooltip-toggle:hover .fr-tooltip-container {
  299 + opacity: 1;
  300 + visibility: visible;
  301 +}
298 .fr-container .fr-tooltip-icon { 302 .fr-container .fr-tooltip-icon {
299 height: 14px; 303 height: 14px;
300 width: 14px; 304 width: 14px;
@@ -303,6 +307,28 @@ @@ -303,6 +307,28 @@
303 display: block; 307 display: block;
304 margin: 4px 0 0 4px; 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 .fr-container .fr-slider { 332 .fr-container .fr-slider {
307 display: flex; 333 display: flex;
308 width: 100%; 334 width: 100%;
@@ -89,7 +89,8 @@ var ListForMobile = function ListForMobile(_ref) { @@ -89,7 +89,8 @@ var ListForMobile = function ListForMobile(_ref) {
89 getFieldsProps = _ref.getFieldsProps; 89 getFieldsProps = _ref.getFieldsProps;
90 var _schema$props = schema.props, 90 var _schema$props = schema.props,
91 props = _schema$props === void 0 ? {} : _schema$props, 91 props = _schema$props === void 0 ? {} : _schema$props,
92 - itemProps = schema.itemProps; 92 + itemProps = schema.itemProps,
  93 + handleAddDefault = schema.handleAddDefault;
93 94
94 var _useState = (0, _react.useState)([]), 95 var _useState = (0, _react.useState)([]),
95 _useState2 = _slicedToArray(_useState, 2), 96 _useState2 = _slicedToArray(_useState, 2),
@@ -173,7 +174,7 @@ var ListForMobile = function ListForMobile(_ref) { @@ -173,7 +174,7 @@ var ListForMobile = function ListForMobile(_ref) {
173 }))), /*#__PURE__*/_react.default.createElement("a", { 174 }))), /*#__PURE__*/_react.default.createElement("a", {
174 className: 'add-button', 175 className: 'add-button',
175 onClick: function onClick() { 176 onClick: function onClick() {
176 - addItem(); 177 + addItem(handleAddDefault);
177 } 178 }
178 }, /*#__PURE__*/_react.default.createElement(_PlusCircleFilled2.default, { 179 }, /*#__PURE__*/_react.default.createElement(_PlusCircleFilled2.default, {
179 style: { 180 style: {
@@ -209,7 +209,8 @@ var VirtualList = function VirtualList(_ref) { @@ -209,7 +209,8 @@ var VirtualList = function VirtualList(_ref) {
209 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, 209 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps,
210 subformMode = schema.subformMode, 210 subformMode = schema.subformMode,
211 subReadOnly = schema.subReadOnly, 211 subReadOnly = schema.subReadOnly,
212 - isLoading = schema.isLoading; 212 + isLoading = schema.isLoading,
  213 + handleAddDefault = schema.handleAddDefault;
213 214
214 var _props$scrollY = props.scrollY, 215 var _props$scrollY = props.scrollY,
215 scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY, 216 scrollY = _props$scrollY === void 0 ? 300 : _props$scrollY,
@@ -1155,7 +1156,9 @@ var VirtualList = function VirtualList(_ref) { @@ -1155,7 +1156,9 @@ var VirtualList = function VirtualList(_ref) {
1155 }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/_react.default.createElement(_button.default, { 1156 }, rest)), !props.hideAdd && props.originWidget === 'subform' && !subReadOnly && /*#__PURE__*/_react.default.createElement(_button.default, {
1156 type: "link", 1157 type: "link",
1157 icon: /*#__PURE__*/_react.default.createElement(_PlusOutlined2.default, null), 1158 icon: /*#__PURE__*/_react.default.createElement(_PlusOutlined2.default, null),
1158 - onClick: addItem 1159 + onClick: function onClick() {
  1160 + addItem(handleAddDefault);
  1161 + }
1159 }, "\u65B0\u589E")); 1162 }, "\u65B0\u589E"));
1160 }; 1163 };
1161 /** 1164 /**
@@ -31,12 +31,6 @@ var _ListForMobile = _interopRequireDefault(require("./ListForMobile")); @@ -31,12 +31,6 @@ var _ListForMobile = _interopRequireDefault(require("./ListForMobile"));
31 31
32 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } 34 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
41 35
42 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."); } 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,6 +43,12 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
49 43
50 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; } 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 var RenderList = function RenderList(_ref) { 52 var RenderList = function RenderList(_ref) {
53 var parentId = _ref.parentId, 53 var parentId = _ref.parentId,
54 _ref$schema = _ref.schema, 54 _ref$schema = _ref.schema,
@@ -87,23 +87,37 @@ var RenderList = function RenderList(_ref) { @@ -87,23 +87,37 @@ var RenderList = function RenderList(_ref) {
87 listData = (0, _lodashEs.get)(formData, dataPath); 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 var changeList = function changeList(newList) { 92 var changeList = function changeList(newList) {
93 onItemChange(dataPath, newList); 93 onItemChange(dataPath, newList);
94 }; 94 };
95 95
96 - var addItem = function addItem() { 96 + var addItem = function addItem(handleAddDefault) {
97 // const newList = [...displayList, {_active: true}]; 97 // const newList = [...displayList, {_active: true}];
98 var _schema = (0, _utils.getSchemaFromFlatten)(flatten, parentId); 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 _active: true 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 var copyItem = function copyItem(idx) { 123 var copyItem = function copyItem(idx) {
@@ -295,6 +295,10 @@ @@ -295,6 +295,10 @@
295 cursor: pointer; 295 cursor: pointer;
296 position: relative; 296 position: relative;
297 } 297 }
  298 +.fr-container .fr-tooltip-toggle:hover .fr-tooltip-container {
  299 + opacity: 1;
  300 + visibility: visible;
  301 +}
298 .fr-container .fr-tooltip-icon { 302 .fr-container .fr-tooltip-icon {
299 height: 14px; 303 height: 14px;
300 width: 14px; 304 width: 14px;
@@ -303,6 +307,28 @@ @@ -303,6 +307,28 @@
303 display: block; 307 display: block;
304 margin: 4px 0 0 4px; 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 .fr-container .fr-slider { 332 .fr-container .fr-slider {
307 display: flex; 333 display: flex;
308 width: 100%; 334 width: 100%;
1 { 1 {
2 "name": "@qx/form-render", 2 "name": "@qx/form-render",
3 - "version": "0.1.2", 3 + "version": "0.1.3",
4 "description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成", 4 "description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成",
5 "repository": { 5 "repository": {
6 "type": "git", 6 "type": "git",