Commit e443a80e1689b370b1272540405006fc33b37a2c

Authored by 乔启韬
1 parent d4cc4844

子表关联表优化、移动端子表

  1 +import _PlusCircleFilled from "@ant-design/icons/es/icons/PlusCircleFilled";
  2 +import _DownOutlined from "@ant-design/icons/es/icons/DownOutlined";
  3 +import _UpOutlined from "@ant-design/icons/es/icons/UpOutlined";
  4 +import _DeleteOutlined from "@ant-design/icons/es/icons/DeleteOutlined";
  5 +
  6 +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
  7 +
  8 +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."); }
  9 +
  10 +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
  11 +
  12 +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
  13 +
  14 +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
  15 +
  16 +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
  17 +
  18 +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
  19 +
  20 +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; }
  21 +
  22 +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
  23 +
  24 +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  25 +
  26 +/* eslint-disable jsx-a11y/anchor-is-valid */
  27 +import React, { useEffect, useMemo, useState } from 'react';
  28 +import Core from '../../index'; // import { Button, Space, Popconfirm } from 'antd';
  29 +// import ArrowDown from '../../../components/ArrowDown';
  30 +
  31 +import { Collapse } from 'antd-mobile';
  32 +
  33 +// 数字转汉字
  34 +function convertToChinaNum(num) {
  35 + var arr1 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
  36 + var arr2 = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '万', '十', '百', '千', '亿']; //可继续追加更高位转换值
  37 +
  38 + if (!num || isNaN(num)) {
  39 + return "零";
  40 + }
  41 +
  42 + var english = num.toString().split("");
  43 + var result = "";
  44 +
  45 + for (var i = 0; i < english.length; i++) {
  46 + var des_i = english.length - 1 - i; //倒序排列设值
  47 +
  48 + result = arr2[i] + result;
  49 + var arr1_index = english[des_i];
  50 + result = arr1[arr1_index] + result;
  51 + }
  52 +
  53 + result = result.replace(/零(千|百|十)/g, '零').replace(/十零/g, '十');
  54 + result = result.replace(/零+/g, '零');
  55 + result = result.replace(/零亿/g, '亿').replace(/零万/g, '万');
  56 + result = result.replace(/亿万/g, '亿');
  57 + result = result.replace(/零+$/, '');
  58 + result = result.replace(/^一十/g, '十');
  59 + return result;
  60 +}
  61 +
  62 +var ListForMobile = function ListForMobile(_ref) {
  63 + var _ref$displayList = _ref.displayList,
  64 + displayList = _ref$displayList === void 0 ? [] : _ref$displayList,
  65 + listData = _ref.listData,
  66 + changeList = _ref.changeList,
  67 + schema = _ref.schema,
  68 + deleteItem = _ref.deleteItem,
  69 + copyItem = _ref.copyItem,
  70 + addItem = _ref.addItem,
  71 + moveItemUp = _ref.moveItemUp,
  72 + moveItemDown = _ref.moveItemDown,
  73 + displayType = _ref.displayType,
  74 + getFieldsProps = _ref.getFieldsProps;
  75 + var _schema$props = schema.props,
  76 + props = _schema$props === void 0 ? {} : _schema$props,
  77 + itemProps = schema.itemProps;
  78 +
  79 + var _useState = useState([]),
  80 + _useState2 = _slicedToArray(_useState, 2),
  81 + allKeys = _useState2[0],
  82 + setKeys = _useState2[1]; // let addBtnProps = {
  83 + // type: 'dashed',
  84 + // children: '新增一条list',
  85 + // };
  86 + // if (props.addBtnProps && typeof props.addBtnProps === 'object') {
  87 + // addBtnProps = { ...addBtnProps, ...props.addBtnProps };
  88 + // }
  89 +
  90 +
  91 + useEffect(function () {
  92 + var _allKeys = [];
  93 + displayList.forEach(function (item, idx) {
  94 + if (item._active) {
  95 + _allKeys.push(String(idx));
  96 + }
  97 + });
  98 + setKeys(_allKeys);
  99 + }, [displayList]);
  100 +
  101 + var getTitle = function getTitle(id) {
  102 + return /*#__PURE__*/React.createElement("div", {
  103 + style: {
  104 + display: 'flex',
  105 + justifyContent: "space-between",
  106 + alignItems: 'center'
  107 + }
  108 + }, /*#__PURE__*/React.createElement("span", null, "\u6570\u636E", id + 1), /*#__PURE__*/React.createElement("a", {
  109 + onClick: function onClick(e) {
  110 + e.stopPropagation();
  111 + deleteItem(id);
  112 + },
  113 + style: {
  114 + display: 'inline-block',
  115 + padding: '0 10px'
  116 + }
  117 + }, /*#__PURE__*/React.createElement(_DeleteOutlined, {
  118 + style: {
  119 + fontSize: 16,
  120 + width: 16,
  121 + height: 16
  122 + }
  123 + })));
  124 + };
  125 +
  126 + var handleArrow = function handleArrow(active) {
  127 + if (active) {
  128 + return /*#__PURE__*/React.createElement(_UpOutlined, {
  129 + onClick: function onClick() {}
  130 + });
  131 + } else {
  132 + return /*#__PURE__*/React.createElement(_DownOutlined, null);
  133 + }
  134 + };
  135 +
  136 + return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
  137 + className: "fr-card-list qx-card-mobile"
  138 + }, /*#__PURE__*/React.createElement(Collapse, {
  139 + activeKey: allKeys
  140 + }, displayList.map(function (item, idx) {
  141 + var fieldsProps = getFieldsProps(idx);
  142 + fieldsProps.displayType = displayType;
  143 + return /*#__PURE__*/React.createElement(Collapse.Panel, {
  144 + key: String(idx),
  145 + title: getTitle(idx),
  146 + arrow: handleArrow,
  147 + onClick: function onClick() {
  148 + var _active = item._active || false;
  149 +
  150 + displayList[idx]._active = !_active;
  151 + changeList(_toConsumableArray(displayList));
  152 + }
  153 + }, /*#__PURE__*/React.createElement("div", {
  154 + className: "fr-card-item qx-card-mobile-item ".concat(displayType === 'row' ? 'fr-card-item-row' : ''),
  155 + key: idx
  156 + }, /*#__PURE__*/React.createElement(Core, fieldsProps)));
  157 + }))), /*#__PURE__*/React.createElement("a", {
  158 + className: 'add-button',
  159 + onClick: function onClick() {
  160 + addItem();
  161 + }
  162 + }, /*#__PURE__*/React.createElement(_PlusCircleFilled, {
  163 + style: {
  164 + marginRight: 2,
  165 + width: 14,
  166 + height: 14
  167 + }
  168 + }), "\u70B9\u51FB\u65B0\u589E\u6570\u636E"));
  169 +};
  170 +
  171 +export default ListForMobile;
@@ -2,18 +2,26 @@ import "antd/es/table/style"; @@ -2,18 +2,26 @@ import "antd/es/table/style";
2 import _Table from "antd/es/table"; 2 import _Table from "antd/es/table";
3 import "antd/es/alert/style"; 3 import "antd/es/alert/style";
4 import _Alert from "antd/es/alert"; 4 import _Alert from "antd/es/alert";
5 -import "antd/es/message/style";  
6 -import _message from "antd/es/message"; 5 +import "antd/es/dropdown/style";
  6 +import _Dropdown from "antd/es/dropdown";
  7 +import "antd/es/space/style";
  8 +import _Space from "antd/es/space";
  9 +import _DownOutlined from "@ant-design/icons/es/icons/DownOutlined";
7 import "antd/es/input/style"; 10 import "antd/es/input/style";
8 import _Input from "antd/es/input"; 11 import _Input from "antd/es/input";
9 import _SearchOutlined from "@ant-design/icons/es/icons/SearchOutlined"; 12 import _SearchOutlined from "@ant-design/icons/es/icons/SearchOutlined";
10 import _CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined"; 13 import _CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined";
11 import _CheckOutlined from "@ant-design/icons/es/icons/CheckOutlined"; 14 import _CheckOutlined from "@ant-design/icons/es/icons/CheckOutlined";
  15 +import "antd/es/message/style";
  16 +import _message from "antd/es/message";
12 import "antd/es/tooltip/style"; 17 import "antd/es/tooltip/style";
13 import _Tooltip from "antd/es/tooltip"; 18 import _Tooltip from "antd/es/tooltip";
  19 +import _ExclamationCircleOutlined from "@ant-design/icons/es/icons/ExclamationCircleOutlined";
  20 +import "antd/es/menu/style";
  21 +import _Menu from "antd/es/menu";
14 import "antd/es/button/style"; 22 import "antd/es/button/style";
15 import _Button from "antd/es/button"; 23 import _Button from "antd/es/button";
16 -import _ExclamationCircleOutlined from "@ant-design/icons/es/icons/ExclamationCircleOutlined"; 24 +import _MinusOutlined from "@ant-design/icons/es/icons/MinusOutlined";
17 import _SelectOutlined from "@ant-design/icons/es/icons/SelectOutlined"; 25 import _SelectOutlined from "@ant-design/icons/es/icons/SelectOutlined";
18 import _ExpandAltOutlined from "@ant-design/icons/es/icons/ExpandAltOutlined"; 26 import _ExpandAltOutlined from "@ant-design/icons/es/icons/ExpandAltOutlined";
19 import _EditOutlined from "@ant-design/icons/es/icons/EditOutlined"; 27 import _EditOutlined from "@ant-design/icons/es/icons/EditOutlined";
@@ -25,7 +33,7 @@ import _ImportOutlined from "@ant-design/icons/es/icons/ImportOutlined"; @@ -25,7 +33,7 @@ import _ImportOutlined from "@ant-design/icons/es/icons/ImportOutlined";
25 import _ExportOutlined from "@ant-design/icons/es/icons/ExportOutlined"; 33 import _ExportOutlined from "@ant-design/icons/es/icons/ExportOutlined";
26 import "antd/es/modal/style"; 34 import "antd/es/modal/style";
27 import _Modal from "antd/es/modal"; 35 import _Modal from "antd/es/modal";
28 -var _excluded = ["scrollY", "summary", "batchKey", "type", "bar", "line", "searchKey", "rowSelection"]; 36 +var _excluded = ["scrollY", "summary", "batchKey", "type", "bar", "line", "searchKey", "rowSelection", "size"];
29 37
30 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 38 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
31 39
@@ -47,6 +55,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb @@ -47,6 +55,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
47 55
48 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } 56 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
49 57
  58 +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  59 +
50 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } 60 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
51 61
52 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 62 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -77,7 +87,8 @@ var BUTTON_ICONS_MAP = { @@ -77,7 +87,8 @@ var BUTTON_ICONS_MAP = {
77 EyeOutlined: /*#__PURE__*/React.createElement(_EyeOutlined, null), 87 EyeOutlined: /*#__PURE__*/React.createElement(_EyeOutlined, null),
78 EditOutlined: /*#__PURE__*/React.createElement(_EditOutlined, null), 88 EditOutlined: /*#__PURE__*/React.createElement(_EditOutlined, null),
79 remove: /*#__PURE__*/React.createElement(_ExpandAltOutlined, null), 89 remove: /*#__PURE__*/React.createElement(_ExpandAltOutlined, null),
80 - SelectOutlined: /*#__PURE__*/React.createElement(_SelectOutlined, null) 90 + SelectOutlined: /*#__PURE__*/React.createElement(_SelectOutlined, null),
  91 + MinusOutlined: /*#__PURE__*/React.createElement(_MinusOutlined, null)
81 }; 92 };
82 var FIELD_LENGTH = 170; 93 var FIELD_LENGTH = 170;
83 var EXPORT_STATUS = { 94 var EXPORT_STATUS = {
@@ -113,10 +124,11 @@ var VirtualList = function VirtualList(_ref) { @@ -113,10 +124,11 @@ var VirtualList = function VirtualList(_ref) {
113 fieldName = schema.fieldName, 124 fieldName = schema.fieldName,
114 _schema$qxProps = schema.qxProps, 125 _schema$qxProps = schema.qxProps,
115 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, 126 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps,
116 - subformMode = schema.subformMode; 127 + subformMode = schema.subformMode,
  128 + pageType = schema.pageType;
117 129
118 var _props$scrollY = props.scrollY, 130 var _props$scrollY = props.scrollY,
119 - scrollY = _props$scrollY === void 0 ? 600 : _props$scrollY, 131 + scrollY = _props$scrollY === void 0 ? 400 : _props$scrollY,
120 _summary = props.summary, 132 _summary = props.summary,
121 batchKey = props.batchKey, 133 batchKey = props.batchKey,
122 type = props.type, 134 type = props.type,
@@ -126,6 +138,7 @@ var VirtualList = function VirtualList(_ref) { @@ -126,6 +138,7 @@ var VirtualList = function VirtualList(_ref) {
126 line = _props$line === void 0 ? {} : _props$line, 138 line = _props$line === void 0 ? {} : _props$line,
127 searchKey = props.searchKey, 139 searchKey = props.searchKey,
128 rowSelection = props.rowSelection, 140 rowSelection = props.rowSelection,
  141 + size = props.size,
129 rest = _objectWithoutProperties(props, _excluded); 142 rest = _objectWithoutProperties(props, _excluded);
130 143
131 var _useVT = useVT(function () { 144 var _useVT = useVT(function () {
@@ -171,6 +184,9 @@ var VirtualList = function VirtualList(_ref) { @@ -171,6 +184,9 @@ var VirtualList = function VirtualList(_ref) {
171 searchName = _useState12[0], 184 searchName = _useState12[0],
172 setSearchName = _useState12[1]; 185 setSearchName = _useState12[1];
173 186
  187 + var padding = useMemo(function () {
  188 + return size === 'default' ? 32 : 16;
  189 + }, [size]);
174 var newRowSelection = useMemo(function () { 190 var newRowSelection = useMemo(function () {
175 var _bar$buttons; 191 var _bar$buttons;
176 192
@@ -196,9 +212,10 @@ var VirtualList = function VirtualList(_ref) { @@ -196,9 +212,10 @@ var VirtualList = function VirtualList(_ref) {
196 return _rowSelection; 212 return _rowSelection;
197 }, [rowSelection, selectedRowKeys, bar]); 213 }, [rowSelection, selectedRowKeys, bar]);
198 useEffect(function () { 214 useEffect(function () {
199 - console.log(displayList);  
200 displayList.forEach(function (item, index) { 215 displayList.forEach(function (item, index) {
201 - item.orginIdx = index; 216 + if (_typeof(item) === 'object') {
  217 + item.orginIdx = index;
  218 + }
202 }); 219 });
203 }, [displayList]); 220 }, [displayList]);
204 var _displayList = []; // 筛选展示的数据 221 var _displayList = []; // 筛选展示的数据
@@ -248,33 +265,39 @@ var VirtualList = function VirtualList(_ref) { @@ -248,33 +265,39 @@ var VirtualList = function VirtualList(_ref) {
248 index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx 265 index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx
249 }, item); 266 }, item);
250 }); 267 });
  268 +
  269 + var handleTotal = function handleTotal(total) {
  270 + if (!total) {
  271 + total = 0;
  272 + }
  273 +
  274 + if (props.originWidget === 'subform' || total === displayList.length) {
  275 + return "\u5171".concat(total, "\u6761\u8BB0\u5F55");
  276 + } else {
  277 + return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, "\u5171", displayList.length, "\u6761\u8BB0\u5F55"), /*#__PURE__*/React.createElement("span", {
  278 + style: {
  279 + color: '#999',
  280 + fontSize: '13px'
  281 + }
  282 + }, "(", displayList.length - total, "\u6761\u4E0D\u53EF\u89C1)"));
  283 + }
  284 + };
  285 +
251 var pagination = useMemo(function () { 286 var pagination = useMemo(function () {
252 return { 287 return {
253 total: dataSource.length, 288 total: dataSource.length,
254 position: ['bottomRight'], 289 position: ['bottomRight'],
255 pageSize: 10, 290 pageSize: 10,
256 showTotal: function showTotal(total) { 291 showTotal: function showTotal(total) {
257 - return "\u5171".concat(total, "\u6761\u8BB0\u5F55"); 292 + return handleTotal(total);
258 }, 293 },
259 defaultCurrent: 1, 294 defaultCurrent: 1,
260 size: 'default' 295 size: 'default'
261 }; 296 };
262 }, [dataSource]); 297 }, [dataSource]);
263 var barButtons = useMemo(function () { 298 var barButtons = useMemo(function () {
264 - var _barButtons = _.cloneDeep(bar.buttons || []); // 选择、新增位置提前  
265 -  
266 -  
267 - ['ADD', 'SELECT'].forEach(function (code) {  
268 - var _index = _barButtons.findIndex(function (item) {  
269 - return item.code === code;  
270 - }); 299 + var _barButtons = _.cloneDeep(bar.buttons || []); // 关联表的导入,先隐藏 TODO
271 300
272 - if (_index > -1) {  
273 - var btn = _barButtons.splice(_index, 1);  
274 -  
275 - _barButtons.unshift.apply(_barButtons, _toConsumableArray(btn));  
276 - }  
277 - }); // 关联表的导入,先隐藏 TODO  
278 301
279 if (props.originWidget === 'relSelector') { 302 if (props.originWidget === 'relSelector') {
280 ['IMPORT'].forEach(function (code) { 303 ['IMPORT'].forEach(function (code) {
@@ -309,17 +332,65 @@ var VirtualList = function VirtualList(_ref) { @@ -309,17 +332,65 @@ var VirtualList = function VirtualList(_ref) {
309 } 332 }
310 333
311 if (props.originWidget === 'relSelector' && subformMode && type !== 'view') { 334 if (props.originWidget === 'relSelector' && subformMode && type !== 'view') {
312 - _barButtons.push({ 335 + _barButtons.unshift({
313 code: 'subformEdit', 336 code: 'subformEdit',
314 icon: 'EditOutlined', 337 icon: 'EditOutlined',
315 batch: true, 338 batch: true,
316 action: 'SYS', 339 action: 'SYS',
317 - name: '子表编辑' 340 + name: '表格编辑'
318 }); 341 });
  342 + } // 选择位置提前
  343 +
  344 +
  345 + ['SELECT'].forEach(function (code) {
  346 + var _index = _barButtons.findIndex(function (item) {
  347 + return item.code === code;
  348 + });
  349 +
  350 + if (_index > -1) {
  351 + var btn = _barButtons.splice(_index, 1);
  352 +
  353 + _barButtons.unshift.apply(_barButtons, _toConsumableArray(btn));
  354 + }
  355 + });
  356 +
  357 + if (type === 'add') {
  358 + return _barButtons.filter(function (item) {
  359 + return ['SELECT', 'IMPORT', 'ADD', 'BATCH_ADD'].includes(item.code);
  360 + });
  361 + } else if (type === 'view') {
  362 + return _barButtons.filter(function (item) {
  363 + return item.code === 'EXPORT';
  364 + });
  365 + }
  366 +
  367 + if (schema.isReadOnly) {
  368 + // return _barButtons.filter(item => item.code === 'EXPORT')
  369 + return [];
319 } 370 }
320 371
321 return _barButtons; 372 return _barButtons;
322 - }, [props]); 373 + }, [props, type]);
  374 + var moreButtons = /*#__PURE__*/React.createElement(_Menu, null, barButtons.slice(3).map(function (item) {
  375 + var name = item.name,
  376 + code = item.code,
  377 + needConfirm = item.needConfirm,
  378 + confirmContent = item.confirmContent,
  379 + icon = item.icon,
  380 + action = item.action;
  381 + return /*#__PURE__*/React.createElement(_Menu.Item, null, /*#__PURE__*/React.createElement(_Button, _extends({
  382 + key: code,
  383 + style: {
  384 + marginLeft: 8,
  385 + border: 'none'
  386 + }
  387 + }, item, {
  388 + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null,
  389 + onClick: function onClick() {
  390 + barBtnClick(code, needConfirm, confirmContent, action, item);
  391 + }
  392 + }), name));
  393 + }));
323 var columns = useMemo(function () { 394 var columns = useMemo(function () {
324 return children.map(function (child, index) { 395 return children.map(function (child, index) {
325 var _schema$props2; 396 var _schema$props2;
@@ -342,12 +413,12 @@ var VirtualList = function VirtualList(_ref) { @@ -342,12 +413,12 @@ var VirtualList = function VirtualList(_ref) {
342 var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {}; 413 var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {};
343 return { 414 return {
344 dataIndex: child, 415 dataIndex: child,
345 - width: (column.width ? String(column.width).indexOf('px') > -1 ? Number(String(column.width).slice(0, -2)) : Number(column.width) : FIELD_LENGTH) + 16, 416 + width: column.width ? parseInt(column.width) : FIELD_LENGTH,
346 align: column.align || 'left', 417 align: column.align || 'left',
347 fixed: column.fixed || props.fixed && index < props.fixed, 418 fixed: column.fixed || props.fixed && index < props.fixed,
348 title: /*#__PURE__*/React.createElement("div", { 419 title: /*#__PURE__*/React.createElement("div", {
349 style: { 420 style: {
350 - width: (parseInt(column.width) || FIELD_LENGTH) + "px" 421 + width: (parseInt(column.width) || FIELD_LENGTH) - padding + "px"
351 } 422 }
352 }, schema.required ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", { 423 }, schema.required ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
353 className: "fr-label-required" 424 className: "fr-label-required"
@@ -382,6 +453,10 @@ var VirtualList = function VirtualList(_ref) { @@ -382,6 +453,10 @@ var VirtualList = function VirtualList(_ref) {
382 453
383 var handleState = function handleState(record, code, originWidget) { 454 var handleState = function handleState(record, code, originWidget) {
384 if (originWidget === 'subform') { 455 if (originWidget === 'subform') {
  456 + if (code === 'COPY' && !record.id) {
  457 + return 'none';
  458 + }
  459 +
385 return ''; 460 return '';
386 } else { 461 } else {
387 switch (code) { 462 switch (code) {
@@ -398,33 +473,42 @@ var VirtualList = function VirtualList(_ref) { @@ -398,33 +473,42 @@ var VirtualList = function VirtualList(_ref) {
398 return ''; 473 return '';
399 474
400 default: 475 default:
401 - return record.hasOwnProperty('$auth') ? '' : 'none'; 476 + return record[code + '_flag_'] ? '' : 'none';
402 } 477 }
403 } 478 }
404 }; 479 };
405 480
406 - if (!props.hideDelete && ((_line$buttons = line.buttons) === null || _line$buttons === void 0 ? void 0 : _line$buttons.length) || Array.isArray(itemProps.buttons) || props.removeable) { 481 + if (!props.hideDelete && ((_line$buttons = line.buttons) === null || _line$buttons === void 0 ? void 0 : _line$buttons.length) || Array.isArray(itemProps.buttons)) {
407 var top = line.top, 482 var top = line.top,
408 _line$style = line.style, 483 _line$style = line.style,
409 style = _line$style === void 0 ? 'ICON' : _line$style, 484 style = _line$style === void 0 ? 'ICON' : _line$style,
410 fixed = line.fixed, 485 fixed = line.fixed,
411 buttons = line.buttons; 486 buttons = line.buttons;
412 487
413 - if (props.removeable && buttons.findIndex(function (item) {  
414 - return item.code === 'REMOVE';  
415 - }) === -1) {  
416 - buttons.push({  
417 - icon: 'remove',  
418 - code: 'REMOVE',  
419 - name: '移除',  
420 - line: true,  
421 - needConfirm: true,  
422 - confirmContent: props.removeContent  
423 - });  
424 - }  
425 -  
426 - var len = (buttons || []).length;  
427 - var action = { 488 + if (pageType === 'add') {
  489 + if (props.originWidget === 'subform') {
  490 + line.buttons = buttons.filter(function (item) {
  491 + return item.code === 'DELETE';
  492 + });
  493 + } else if (props.originWidget === 'relSelector') {
  494 + line.buttons = buttons.filter(function (item) {
  495 + return item.code === 'REMOVE';
  496 + });
  497 + }
  498 + } // if (props.removeable && buttons.findIndex(item => item.code === 'REMOVE') === -1) {
  499 + // buttons.push({
  500 + // icon: 'remove',
  501 + // code: 'REMOVE',
  502 + // name: '移除',
  503 + // line: true,
  504 + // needConfirm: true,
  505 + // confirmContent: props.removeContent
  506 + // })
  507 + // }
  508 +
  509 +
  510 + var len = (line.buttons || []).length;
  511 + var action = schema.isReadOnly ? {} : {
428 title: '操作', 512 title: '操作',
429 key: '$action', 513 key: '$action',
430 fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false, 514 fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false,
@@ -492,9 +576,10 @@ var VirtualList = function VirtualList(_ref) { @@ -492,9 +576,10 @@ var VirtualList = function VirtualList(_ref) {
492 if (code === 'DELETE' && props.originWidget === 'subform') { 576 if (code === 'DELETE' && props.originWidget === 'subform') {
493 deleteItem(idx); 577 deleteItem(idx);
494 } else if (code === 'REMOVE') { 578 } else if (code === 'REMOVE') {
495 - deleteItem(idx); 579 + deleteItem(record.orginIdx);
  580 + props.handleLineBtnClick(code, record, schema.$id);
496 } else if (code === 'COPY') { 581 } else if (code === 'COPY') {
497 - copyItem(idx); 582 + copyItem(record.orginIdx);
498 } else if (item.action === 'CUSTOM') { 583 } else if (item.action === 'CUSTOM') {
499 props.handleCustom(item, record, schema.$id); 584 props.handleCustom(item, record, schema.$id);
500 } else { 585 } else {
@@ -507,9 +592,10 @@ var VirtualList = function VirtualList(_ref) { @@ -507,9 +592,10 @@ var VirtualList = function VirtualList(_ref) {
507 if (code === 'DELETE' && props.originWidget === 'subform') { 592 if (code === 'DELETE' && props.originWidget === 'subform') {
508 deleteItem(idx); 593 deleteItem(idx);
509 } else if (code === 'REMOVE') { 594 } else if (code === 'REMOVE') {
510 - deleteItem(idx); 595 + deleteItem(record.orginIdx);
  596 + props.handleLineBtnClick(code, record, schema.$id);
511 } else if (code === 'COPY') { 597 } else if (code === 'COPY') {
512 - copyItem(idx); 598 + copyItem(record.orginIdx);
513 } else if (item.action === 'CUSTOM') { 599 } else if (item.action === 'CUSTOM') {
514 props.handleCustom(item, record, schema.$id); 600 props.handleCustom(item, record, schema.$id);
515 } else { 601 } else {
@@ -517,13 +603,13 @@ var VirtualList = function VirtualList(_ref) { @@ -517,13 +603,13 @@ var VirtualList = function VirtualList(_ref) {
517 } 603 }
518 } 604 }
519 } 605 }
520 - }), style !== 'ICON' ? name : null)); // } 606 + }), style !== 'ICON' || !item.icon ? name : null)); // }
521 }) : null); 607 }) : null);
522 } 608 }
523 }; 609 };
524 610
525 - if (style === "ICON") {  
526 - action.width = len * 26 + 16; 611 + if (style === "ICON" || props.originWidget === 'subform') {
  612 + action.width = len * 32 + padding - 8;
527 } else { 613 } else {
528 var div = document.createElement('div'); 614 var div = document.createElement('div');
529 div.style.position = 'absolute'; 615 div.style.position = 'absolute';
@@ -531,17 +617,17 @@ var VirtualList = function VirtualList(_ref) { @@ -531,17 +617,17 @@ var VirtualList = function VirtualList(_ref) {
531 div.style.fontSize = '14px'; 617 div.style.fontSize = '14px';
532 window.document.body.appendChild(div); 618 window.document.body.appendChild(div);
533 var leng = 0; 619 var leng = 0;
534 - buttons.map(function (item) { 620 + line.buttons.map(function (item) {
535 div.innerHTML = item.name; 621 div.innerHTML = item.name;
536 - leng += div.clientWidth + 16 + (style !== 'TEXT' && item.icon ? 22 : 0); 622 + leng += div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0);
537 }); 623 });
538 - action.width = leng + 16; 624 + action.width = leng + padding - 8;
539 div.remove(); 625 div.remove();
540 } 626 }
541 627
542 if (columns.findIndex(function (item) { 628 if (columns.findIndex(function (item) {
543 return item.key === '$action'; 629 return item.key === '$action';
544 - }) === -1) { 630 + }) === -1 && len > 0 && action.title) {
545 if (top) { 631 if (top) {
546 columns.unshift(action); 632 columns.unshift(action);
547 } else { 633 } else {
@@ -561,9 +647,9 @@ var VirtualList = function VirtualList(_ref) { @@ -561,9 +647,9 @@ var VirtualList = function VirtualList(_ref) {
561 "percent": 0, 647 "percent": 0,
562 "status": "PROCESSING" 648 "status": "PROCESSING"
563 }); 649 });
564 - queryParams = { 650 + queryParams = _defineProperty({
565 dataId: props.dataId 651 dataId: props.dataId
566 - }; 652 + }, searchKey, keyWord);
567 appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName; 653 appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName;
568 _context.next = 5; 654 _context.next = 5;
569 return props.exportChild(appCode, funCode, fieldName, queryParams); 655 return props.exportChild(appCode, funCode, fieldName, queryParams);
@@ -594,7 +680,8 @@ var VirtualList = function VirtualList(_ref) { @@ -594,7 +680,8 @@ var VirtualList = function VirtualList(_ref) {
594 var exportData = function exportData(taskId) { 680 var exportData = function exportData(taskId) {
595 // const {appCode, funCode, viewCode} = qxProps 681 // const {appCode, funCode, viewCode} = qxProps
596 // taskType: UPLOAD || EXPORT 682 // taskType: UPLOAD || EXPORT
597 - props.childExportProgress(taskId).then(function (res) { 683 + if (!taskId && !exportTaskId.current) return;
  684 + props.childExportProgress(taskId || exportTaskId.current).then(function (res) {
598 setProgressData(res || null); 685 setProgressData(res || null);
599 }); 686 });
600 }; 687 };
@@ -680,6 +767,68 @@ var VirtualList = function VirtualList(_ref) { @@ -680,6 +767,68 @@ var VirtualList = function VirtualList(_ref) {
680 setSubEdit(false); 767 setSubEdit(false);
681 }; 768 };
682 769
  770 + var barBtnClick = function barBtnClick(code, needConfirm, confirmContent, action, item) {
  771 + setSelectedRowKeys([]);
  772 +
  773 + if (needConfirm && confirmContent) {
  774 + if (!selectedRowKeys.length) {
  775 + return _message.warning('请选择数据');
  776 + }
  777 +
  778 + confirm({
  779 + title: confirmContent,
  780 + icon: /*#__PURE__*/React.createElement(_ExclamationCircleOutlined, null),
  781 + okText: '确认',
  782 + okType: 'danger',
  783 + cancelText: '取消',
  784 + onOk: function onOk() {
  785 + if (code === 'DELETE') {
  786 + if (props.originWidget === 'subform') {
  787 + batchDelete(selectedRowKeys);
  788 + setSelectedRowKeys([]);
  789 + } else {
  790 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  791 + }
  792 + } else if (code === 'EXPORT') {
  793 + handleExport();
  794 + } else if (code === 'SELECT') {
  795 + props.openRelSelect(schema.$id);
  796 + } else if (code === 'ADD') {
  797 + props.handleRelAdd(schema.$id);
  798 + } else if (code === 'subformEdit') {
  799 + props.handleBatchEdit(fieldName, schema.$id, selectedIds);
  800 + } else if (action === 'CUSTOM') {
  801 + props.handleCustom(item, selectedIds, schema.$id);
  802 + } else {
  803 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  804 + }
  805 + },
  806 + onCancel: function onCancel() {}
  807 + });
  808 + } else {
  809 + if (code === 'DELETE') {
  810 + if (props.originWidget === 'subform') {
  811 + batchDelete(selectedRowKeys);
  812 + setSelectedRowKeys([]);
  813 + } else {
  814 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  815 + }
  816 + } else if (code === 'EXPORT') {
  817 + handleExport();
  818 + } else if (code === 'SELECT') {
  819 + props.openRelSelect(schema.$id);
  820 + } else if (code === 'ADD') {
  821 + props.handleRelAdd(schema.$id);
  822 + } else if (code === 'subformEdit') {
  823 + props.handleBatchEdit(fieldName, schema.$id, selectedIds);
  824 + } else if (action === 'CUSTOM') {
  825 + props.handleCustom(item, selectedIds, schema.$id);
  826 + } else {
  827 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  828 + }
  829 + }
  830 + };
  831 +
683 return /*#__PURE__*/React.createElement(React.Fragment, null, props.editable ? isSubCanEdit ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Button, { 832 return /*#__PURE__*/React.createElement(React.Fragment, null, props.editable ? isSubCanEdit ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Button, {
684 type: 'text', 833 type: 'text',
685 size: "small", 834 size: "small",
@@ -725,7 +874,7 @@ var VirtualList = function VirtualList(_ref) { @@ -725,7 +874,7 @@ var VirtualList = function VirtualList(_ref) {
725 874
726 setKeyWord(((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || ''); 875 setKeyWord(((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
727 } 876 }
728 - }) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement("div", null, barButtons.map(function (item) { 877 + }) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement("div", null, (barButtons.length > 4 ? barButtons.slice(0, 3) : barButtons.slice(0, 4)).map(function (item) {
729 var name = item.name, 878 var name = item.name,
730 code = item.code, 879 code = item.code,
731 needConfirm = item.needConfirm, 880 needConfirm = item.needConfirm,
@@ -738,55 +887,18 @@ var VirtualList = function VirtualList(_ref) { @@ -738,55 +887,18 @@ var VirtualList = function VirtualList(_ref) {
738 marginLeft: 8 887 marginLeft: 8
739 } 888 }
740 }, item, { 889 }, item, {
741 - icon: icon ? BUTTON_ICONS_MAP[icon] : null, 890 + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null,
742 onClick: function onClick() { 891 onClick: function onClick() {
743 - if (code === 'DELETE') {  
744 - if (!selectedRowKeys.length) {  
745 - return _message.warning('请选择数据');  
746 - }  
747 -  
748 - if (needConfirm && confirmContent) {  
749 - confirm({  
750 - title: '批量删除确认',  
751 - icon: /*#__PURE__*/React.createElement(_ExclamationCircleOutlined, null),  
752 - content: confirmContent,  
753 - okText: '确认',  
754 - okType: 'danger',  
755 - cancelText: '取消',  
756 - onOk: function onOk() {  
757 - if (props.originWidget === 'subform') {  
758 - batchDelete(selectedRowKeys);  
759 - setSelectedRowKeys([]);  
760 - } else {  
761 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
762 - }  
763 - },  
764 - onCancel: function onCancel() {}  
765 - });  
766 - } else {  
767 - if (props.originWidget === 'subform') {  
768 - batchDelete(selectedRowKeys);  
769 - setSelectedRowKeys([]);  
770 - } else {  
771 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
772 - }  
773 - }  
774 - } else if (code === 'EXPORT') {  
775 - handleExport();  
776 - } else if (code === 'SELECT') {  
777 - props.openRelSelect(schema.$id);  
778 - } else if (code === 'ADD') {  
779 - props.handleRelAdd(schema.$id);  
780 - } else if (code === 'subformEdit') {  
781 - props.handleBatchEdit(fieldName, schema.$id, selectedIds);  
782 - } else if (action === 'CUSTOM') {  
783 - props.handleCustom(item, selectedIds, schema.$id);  
784 - } else {  
785 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
786 - } 892 + barBtnClick(code, needConfirm, confirmContent, action, item);
787 } 893 }
788 }), name); // } 894 }), name); // }
789 - })), Array.isArray(props.buttons) ? props.buttons.map(function (item, idx) { 895 + }), barButtons.slice(4).length ? /*#__PURE__*/React.createElement(_Dropdown, {
  896 + overlay: moreButtons
  897 + }, /*#__PURE__*/React.createElement(_Button, {
  898 + style: {
  899 + marginLeft: 8
  900 + }
  901 + }, /*#__PURE__*/React.createElement(_Space, null, "\u66F4\u591A\u64CD\u4F5C", /*#__PURE__*/React.createElement(_DownOutlined, null)))) : null), Array.isArray(props.buttons) ? props.buttons.map(function (item, idx) {
790 var callback = item.callback, 902 var callback = item.callback,
791 text = item.text, 903 text = item.text,
792 html = item.html; 904 html = item.html;
@@ -841,10 +953,10 @@ var VirtualList = function VirtualList(_ref) { @@ -841,10 +953,10 @@ var VirtualList = function VirtualList(_ref) {
841 x: '100%' 953 x: '100%'
842 }, 954 },
843 components: vt, 955 components: vt,
844 - size: "small", 956 + size: size || 'small',
845 columns: columns, 957 columns: columns,
846 dataSource: dataSource, 958 dataSource: dataSource,
847 - pagination: props.originWidget === 'subform' ? false : pagination, 959 + pagination: pagination,
848 style: { 960 style: {
849 marginBottom: 25 961 marginBottom: 25
850 }, 962 },
@@ -887,7 +999,7 @@ function _handleDownload() { @@ -887,7 +999,7 @@ function _handleDownload() {
887 switch (_context2.prev = _context2.next) { 999 switch (_context2.prev = _context2.next) {
888 case 0: 1000 case 0:
889 // eslint-disable-next-line prefer-rest-params 1001 // eslint-disable-next-line prefer-rest-params
890 - isDownload = _args2[2]; 1002 + isDownload = _args2[3];
891 1003
892 if (isDownload === null || Boolean(isDownload)) { 1004 if (isDownload === null || Boolean(isDownload)) {
893 _message.warning('即将开始下载,请勿重复点击。'); 1005 _message.warning('即将开始下载,请勿重复点击。');
@@ -28,6 +28,7 @@ import CardList from './CardList'; @@ -28,6 +28,7 @@ import CardList from './CardList';
28 import TableList from './TableList'; 28 import TableList from './TableList';
29 import DrawerList from './DrawerList'; 29 import DrawerList from './DrawerList';
30 import VirtualList from './VirtualList'; 30 import VirtualList from './VirtualList';
  31 +import ListForMobile from "./ListForMobile";
31 32
32 var RenderList = function RenderList(_ref) { 33 var RenderList = function RenderList(_ref) {
33 var parentId = _ref.parentId, 34 var parentId = _ref.parentId,
@@ -70,16 +71,19 @@ var RenderList = function RenderList(_ref) { @@ -70,16 +71,19 @@ var RenderList = function RenderList(_ref) {
70 }; 71 };
71 72
72 var addItem = function addItem() { 73 var addItem = function addItem() {
73 - var newList = [].concat(_toConsumableArray(displayList), [{}]); 74 + var newList = [].concat(_toConsumableArray(displayList), [{
  75 + _active: true
  76 + }]);
74 var newIndex = newList.length - 1; 77 var newIndex = newList.length - 1;
75 onItemChange(dataPath, newList); 78 onItemChange(dataPath, newList);
76 return newIndex; 79 return newIndex;
77 }; 80 };
78 81
79 var copyItem = function copyItem(idx) { 82 var copyItem = function copyItem(idx) {
80 - var newItem = displayList[idx]; 83 + var newItem = _.cloneDeep(displayList[idx]);
  84 +
81 delete newItem.id; 85 delete newItem.id;
82 - var newList = [].concat(_toConsumableArray(displayList.slice(0, idx)), [newItem], _toConsumableArray(displayList.slice(idx))); 86 + var newList = [].concat(_toConsumableArray(displayList.slice(0, idx + 1)), [newItem], _toConsumableArray(displayList.slice(idx + 1)));
83 onItemChange(dataPath, JSON.parse(JSON.stringify(newList))); 87 onItemChange(dataPath, JSON.parse(JSON.stringify(newList)));
84 }; 88 };
85 89
@@ -192,6 +196,9 @@ var RenderList = function RenderList(_ref) { @@ -192,6 +196,9 @@ var RenderList = function RenderList(_ref) {
192 case 'virtualList': 196 case 'virtualList':
193 return /*#__PURE__*/React.createElement(VirtualList, displayProps); 197 return /*#__PURE__*/React.createElement(VirtualList, displayProps);
194 198
  199 + case 'listForMobile':
  200 + return /*#__PURE__*/React.createElement(ListForMobile, displayProps);
  201 +
195 default: 202 default:
196 return /*#__PURE__*/React.createElement(CardList, displayProps); 203 return /*#__PURE__*/React.createElement(CardList, displayProps);
197 } 204 }
1 .fr-container .fr-card-item { 1 .fr-container .fr-card-item {
2 - border: 1px solid rgba(0, 0, 0, 0.1);  
3 - border-radius: 4px;  
4 - padding: 10px 12px 4px 12px; 2 + border: 0.5px solid rgba(0, 0, 0, 0.1);
  3 + padding: 10px 0 4px 0;
5 margin-bottom: 8px; 4 margin-bottom: 8px;
6 position: relative; 5 position: relative;
7 display: flex; 6 display: flex;
@@ -50,3 +49,51 @@ @@ -50,3 +49,51 @@
50 .rowReverse { 49 .rowReverse {
51 flex-direction: row-reverse; 50 flex-direction: row-reverse;
52 } 51 }
  52 +.ant-modal-body .qx-virtualList {
  53 + margin-bottom: 0 !important;
  54 +}
  55 +.qx-card-mobile .adm-list-item-content-main {
  56 + font-size: 14px;
  57 +}
  58 +.qx-card-mobile .adm-list-default .adm-list-body {
  59 + border: none;
  60 +}
  61 +.qx-card-mobile .adm-list-item {
  62 + padding-left: 15px;
  63 +}
  64 +.qx-card-mobile .adm-list-item .adm-list-item-content {
  65 + padding-right: 15px;
  66 +}
  67 +.qx-card-mobile .adm-collapse-panel-header {
  68 + margin: 0 15px;
  69 + height: 40px;
  70 + background: #f6f7f9;
  71 + border-radius: 4px 4px 0 0;
  72 +}
  73 +.qx-card-mobile .adm-collapse-panel-header .adm-collapse-arrow {
  74 + font-size: 16px;
  75 +}
  76 +.qx-card-mobile .adm-list-item-content {
  77 + border-radius: 8px 8px 0 0;
  78 + border-top: none;
  79 +}
  80 +.qx-card-mobile .adm-list-item-content .fr-content-column {
  81 + padding: 0 15px 6px;
  82 +}
  83 +.qx-card-mobile-item {
  84 + border-radius: unset;
  85 + border-top: none;
  86 +}
  87 +.qx-card-mobile .adm-collapse-panel-content .adm-list-item-content-main {
  88 + padding: 0;
  89 +}
  90 +.qx-card-mobile .adm-list-item-content-arrow {
  91 + font-size: 15px;
  92 + width: 15px;
  93 + height: 15px;
  94 +}
  95 +.add-button {
  96 + color: #3499ff;
  97 + display: inline-block;
  98 + margin: 15px;
  99 +}
  1 +"use strict";
  2 +
  3 +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  4 +
  5 +Object.defineProperty(exports, "__esModule", {
  6 + value: true
  7 +});
  8 +exports.default = void 0;
  9 +
  10 +var _PlusCircleFilled2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/PlusCircleFilled"));
  11 +
  12 +var _DownOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/DownOutlined"));
  13 +
  14 +var _UpOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/UpOutlined"));
  15 +
  16 +var _DeleteOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/DeleteOutlined"));
  17 +
  18 +var _react = _interopRequireWildcard(require("react"));
  19 +
  20 +var _index = _interopRequireDefault(require("../../index"));
  21 +
  22 +var _antdMobile = require("antd-mobile");
  23 +
  24 +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
  25 +
  26 +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
  27 +
  28 +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  29 +
  30 +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
  31 +
  32 +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."); }
  33 +
  34 +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
  35 +
  36 +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
  37 +
  38 +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
  39 +
  40 +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
  41 +
  42 +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
  43 +
  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; }
  45 +
  46 +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
  47 +
  48 +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
  49 +
  50 +// 数字转汉字
  51 +function convertToChinaNum(num) {
  52 + var arr1 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
  53 + var arr2 = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '万', '十', '百', '千', '亿']; //可继续追加更高位转换值
  54 +
  55 + if (!num || isNaN(num)) {
  56 + return "零";
  57 + }
  58 +
  59 + var english = num.toString().split("");
  60 + var result = "";
  61 +
  62 + for (var i = 0; i < english.length; i++) {
  63 + var des_i = english.length - 1 - i; //倒序排列设值
  64 +
  65 + result = arr2[i] + result;
  66 + var arr1_index = english[des_i];
  67 + result = arr1[arr1_index] + result;
  68 + }
  69 +
  70 + result = result.replace(/零(千|百|十)/g, '零').replace(/十零/g, '十');
  71 + result = result.replace(/零+/g, '零');
  72 + result = result.replace(/零亿/g, '亿').replace(/零万/g, '万');
  73 + result = result.replace(/亿万/g, '亿');
  74 + result = result.replace(/零+$/, '');
  75 + result = result.replace(/^一十/g, '十');
  76 + return result;
  77 +}
  78 +
  79 +var ListForMobile = function ListForMobile(_ref) {
  80 + var _ref$displayList = _ref.displayList,
  81 + displayList = _ref$displayList === void 0 ? [] : _ref$displayList,
  82 + listData = _ref.listData,
  83 + changeList = _ref.changeList,
  84 + schema = _ref.schema,
  85 + deleteItem = _ref.deleteItem,
  86 + copyItem = _ref.copyItem,
  87 + addItem = _ref.addItem,
  88 + moveItemUp = _ref.moveItemUp,
  89 + moveItemDown = _ref.moveItemDown,
  90 + displayType = _ref.displayType,
  91 + getFieldsProps = _ref.getFieldsProps;
  92 + var _schema$props = schema.props,
  93 + props = _schema$props === void 0 ? {} : _schema$props,
  94 + itemProps = schema.itemProps;
  95 +
  96 + var _useState = (0, _react.useState)([]),
  97 + _useState2 = _slicedToArray(_useState, 2),
  98 + allKeys = _useState2[0],
  99 + setKeys = _useState2[1]; // let addBtnProps = {
  100 + // type: 'dashed',
  101 + // children: '新增一条list',
  102 + // };
  103 + // if (props.addBtnProps && typeof props.addBtnProps === 'object') {
  104 + // addBtnProps = { ...addBtnProps, ...props.addBtnProps };
  105 + // }
  106 +
  107 +
  108 + (0, _react.useEffect)(function () {
  109 + var _allKeys = [];
  110 + displayList.forEach(function (item, idx) {
  111 + if (item._active) {
  112 + _allKeys.push(String(idx));
  113 + }
  114 + });
  115 + setKeys(_allKeys);
  116 + }, [displayList]);
  117 +
  118 + var getTitle = function getTitle(id) {
  119 + return /*#__PURE__*/_react.default.createElement("div", {
  120 + style: {
  121 + display: 'flex',
  122 + justifyContent: "space-between",
  123 + alignItems: 'center'
  124 + }
  125 + }, /*#__PURE__*/_react.default.createElement("span", null, "\u6570\u636E", id + 1), /*#__PURE__*/_react.default.createElement("a", {
  126 + onClick: function onClick(e) {
  127 + e.stopPropagation();
  128 + deleteItem(id);
  129 + },
  130 + style: {
  131 + display: 'inline-block',
  132 + padding: '0 10px'
  133 + }
  134 + }, /*#__PURE__*/_react.default.createElement(_DeleteOutlined2.default, {
  135 + style: {
  136 + fontSize: 16,
  137 + width: 16,
  138 + height: 16
  139 + }
  140 + })));
  141 + };
  142 +
  143 + var handleArrow = function handleArrow(active) {
  144 + if (active) {
  145 + return /*#__PURE__*/_react.default.createElement(_UpOutlined2.default, {
  146 + onClick: function onClick() {}
  147 + });
  148 + } else {
  149 + return /*#__PURE__*/_react.default.createElement(_DownOutlined2.default, null);
  150 + }
  151 + };
  152 +
  153 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
  154 + className: "fr-card-list qx-card-mobile"
  155 + }, /*#__PURE__*/_react.default.createElement(_antdMobile.Collapse, {
  156 + activeKey: allKeys
  157 + }, displayList.map(function (item, idx) {
  158 + var fieldsProps = getFieldsProps(idx);
  159 + fieldsProps.displayType = displayType;
  160 + return /*#__PURE__*/_react.default.createElement(_antdMobile.Collapse.Panel, {
  161 + key: String(idx),
  162 + title: getTitle(idx),
  163 + arrow: handleArrow,
  164 + onClick: function onClick() {
  165 + var _active = item._active || false;
  166 +
  167 + displayList[idx]._active = !_active;
  168 + changeList(_toConsumableArray(displayList));
  169 + }
  170 + }, /*#__PURE__*/_react.default.createElement("div", {
  171 + className: "fr-card-item qx-card-mobile-item ".concat(displayType === 'row' ? 'fr-card-item-row' : ''),
  172 + key: idx
  173 + }, /*#__PURE__*/_react.default.createElement(_index.default, fieldsProps)));
  174 + }))), /*#__PURE__*/_react.default.createElement("a", {
  175 + className: 'add-button',
  176 + onClick: function onClick() {
  177 + addItem();
  178 + }
  179 + }, /*#__PURE__*/_react.default.createElement(_PlusCircleFilled2.default, {
  180 + style: {
  181 + marginRight: 2,
  182 + width: 14,
  183 + height: 14
  184 + }
  185 + }), "\u70B9\u51FB\u65B0\u589E\u6570\u636E"));
  186 +};
  187 +
  188 +var _default = ListForMobile;
  189 +exports.default = _default;
1 "use strict"; 1 "use strict";
2 2
3 -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }  
4 -  
5 Object.defineProperty(exports, "__esModule", { 3 Object.defineProperty(exports, "__esModule", {
6 value: true 4 value: true
7 }); 5 });
@@ -15,9 +13,15 @@ require("antd/es/alert/style"); @@ -15,9 +13,15 @@ require("antd/es/alert/style");
15 13
16 var _alert = _interopRequireDefault(require("antd/es/alert")); 14 var _alert = _interopRequireDefault(require("antd/es/alert"));
17 15
18 -require("antd/es/message/style"); 16 +require("antd/es/dropdown/style");
19 17
20 -var _message2 = _interopRequireDefault(require("antd/es/message")); 18 +var _dropdown = _interopRequireDefault(require("antd/es/dropdown"));
  19 +
  20 +require("antd/es/space/style");
  21 +
  22 +var _space = _interopRequireDefault(require("antd/es/space"));
  23 +
  24 +var _DownOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/DownOutlined"));
21 25
22 require("antd/es/input/style"); 26 require("antd/es/input/style");
23 27
@@ -29,15 +33,25 @@ var _CloseOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icon @@ -29,15 +33,25 @@ var _CloseOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icon
29 33
30 var _CheckOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/CheckOutlined")); 34 var _CheckOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/CheckOutlined"));
31 35
  36 +require("antd/es/message/style");
  37 +
  38 +var _message2 = _interopRequireDefault(require("antd/es/message"));
  39 +
32 require("antd/es/tooltip/style"); 40 require("antd/es/tooltip/style");
33 41
34 var _tooltip = _interopRequireDefault(require("antd/es/tooltip")); 42 var _tooltip = _interopRequireDefault(require("antd/es/tooltip"));
35 43
  44 +var _ExclamationCircleOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/ExclamationCircleOutlined"));
  45 +
  46 +require("antd/es/menu/style");
  47 +
  48 +var _menu = _interopRequireDefault(require("antd/es/menu"));
  49 +
36 require("antd/es/button/style"); 50 require("antd/es/button/style");
37 51
38 var _button = _interopRequireDefault(require("antd/es/button")); 52 var _button = _interopRequireDefault(require("antd/es/button"));
39 53
40 -var _ExclamationCircleOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/ExclamationCircleOutlined")); 54 +var _MinusOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/MinusOutlined"));
41 55
42 var _SelectOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/SelectOutlined")); 56 var _SelectOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/SelectOutlined"));
43 57
@@ -67,7 +81,7 @@ var _index2 = _interopRequireDefault(require("../../index")); @@ -67,7 +81,7 @@ var _index2 = _interopRequireDefault(require("../../index"));
67 81
68 var _virtualizedtableforantd = require("virtualizedtableforantd4"); 82 var _virtualizedtableforantd = require("virtualizedtableforantd4");
69 83
70 -var _excluded = ["scrollY", "summary", "batchKey", "type", "bar", "line", "searchKey", "rowSelection"]; 84 +var _excluded = ["scrollY", "summary", "batchKey", "type", "bar", "line", "searchKey", "rowSelection", "size"];
71 85
72 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } 86 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
73 87
@@ -95,6 +109,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb @@ -95,6 +109,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
95 109
96 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } 110 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
97 111
  112 +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  113 +
98 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } 114 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
99 115
100 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 116 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -121,7 +137,8 @@ var BUTTON_ICONS_MAP = { @@ -121,7 +137,8 @@ var BUTTON_ICONS_MAP = {
121 EyeOutlined: /*#__PURE__*/_react.default.createElement(_EyeOutlined2.default, null), 137 EyeOutlined: /*#__PURE__*/_react.default.createElement(_EyeOutlined2.default, null),
122 EditOutlined: /*#__PURE__*/_react.default.createElement(_EditOutlined2.default, null), 138 EditOutlined: /*#__PURE__*/_react.default.createElement(_EditOutlined2.default, null),
123 remove: /*#__PURE__*/_react.default.createElement(_ExpandAltOutlined2.default, null), 139 remove: /*#__PURE__*/_react.default.createElement(_ExpandAltOutlined2.default, null),
124 - SelectOutlined: /*#__PURE__*/_react.default.createElement(_SelectOutlined2.default, null) 140 + SelectOutlined: /*#__PURE__*/_react.default.createElement(_SelectOutlined2.default, null),
  141 + MinusOutlined: /*#__PURE__*/_react.default.createElement(_MinusOutlined2.default, null)
125 }; 142 };
126 var FIELD_LENGTH = 170; 143 var FIELD_LENGTH = 170;
127 var EXPORT_STATUS = { 144 var EXPORT_STATUS = {
@@ -157,10 +174,11 @@ var VirtualList = function VirtualList(_ref) { @@ -157,10 +174,11 @@ var VirtualList = function VirtualList(_ref) {
157 fieldName = schema.fieldName, 174 fieldName = schema.fieldName,
158 _schema$qxProps = schema.qxProps, 175 _schema$qxProps = schema.qxProps,
159 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, 176 qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps,
160 - subformMode = schema.subformMode; 177 + subformMode = schema.subformMode,
  178 + pageType = schema.pageType;
161 179
162 var _props$scrollY = props.scrollY, 180 var _props$scrollY = props.scrollY,
163 - scrollY = _props$scrollY === void 0 ? 600 : _props$scrollY, 181 + scrollY = _props$scrollY === void 0 ? 400 : _props$scrollY,
164 _summary = props.summary, 182 _summary = props.summary,
165 batchKey = props.batchKey, 183 batchKey = props.batchKey,
166 type = props.type, 184 type = props.type,
@@ -170,6 +188,7 @@ var VirtualList = function VirtualList(_ref) { @@ -170,6 +188,7 @@ var VirtualList = function VirtualList(_ref) {
170 line = _props$line === void 0 ? {} : _props$line, 188 line = _props$line === void 0 ? {} : _props$line,
171 searchKey = props.searchKey, 189 searchKey = props.searchKey,
172 rowSelection = props.rowSelection, 190 rowSelection = props.rowSelection,
  191 + size = props.size,
173 rest = _objectWithoutProperties(props, _excluded); 192 rest = _objectWithoutProperties(props, _excluded);
174 193
175 var _useVT = (0, _virtualizedtableforantd.useVT)(function () { 194 var _useVT = (0, _virtualizedtableforantd.useVT)(function () {
@@ -215,6 +234,9 @@ var VirtualList = function VirtualList(_ref) { @@ -215,6 +234,9 @@ var VirtualList = function VirtualList(_ref) {
215 searchName = _useState12[0], 234 searchName = _useState12[0],
216 setSearchName = _useState12[1]; 235 setSearchName = _useState12[1];
217 236
  237 + var padding = (0, _react.useMemo)(function () {
  238 + return size === 'default' ? 32 : 16;
  239 + }, [size]);
218 var newRowSelection = (0, _react.useMemo)(function () { 240 var newRowSelection = (0, _react.useMemo)(function () {
219 var _bar$buttons; 241 var _bar$buttons;
220 242
@@ -240,9 +262,10 @@ var VirtualList = function VirtualList(_ref) { @@ -240,9 +262,10 @@ var VirtualList = function VirtualList(_ref) {
240 return _rowSelection; 262 return _rowSelection;
241 }, [rowSelection, selectedRowKeys, bar]); 263 }, [rowSelection, selectedRowKeys, bar]);
242 (0, _react.useEffect)(function () { 264 (0, _react.useEffect)(function () {
243 - console.log(displayList);  
244 displayList.forEach(function (item, index) { 265 displayList.forEach(function (item, index) {
245 - item.orginIdx = index; 266 + if (_typeof(item) === 'object') {
  267 + item.orginIdx = index;
  268 + }
246 }); 269 });
247 }, [displayList]); 270 }, [displayList]);
248 var _displayList = []; // 筛选展示的数据 271 var _displayList = []; // 筛选展示的数据
@@ -292,34 +315,40 @@ var VirtualList = function VirtualList(_ref) { @@ -292,34 +315,40 @@ var VirtualList = function VirtualList(_ref) {
292 index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx 315 index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx
293 }, item); 316 }, item);
294 }); 317 });
  318 +
  319 + var handleTotal = function handleTotal(total) {
  320 + if (!total) {
  321 + total = 0;
  322 + }
  323 +
  324 + if (props.originWidget === 'subform' || total === displayList.length) {
  325 + return "\u5171".concat(total, "\u6761\u8BB0\u5F55");
  326 + } else {
  327 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, "\u5171", displayList.length, "\u6761\u8BB0\u5F55"), /*#__PURE__*/_react.default.createElement("span", {
  328 + style: {
  329 + color: '#999',
  330 + fontSize: '13px'
  331 + }
  332 + }, "(", displayList.length - total, "\u6761\u4E0D\u53EF\u89C1)"));
  333 + }
  334 + };
  335 +
295 var pagination = (0, _react.useMemo)(function () { 336 var pagination = (0, _react.useMemo)(function () {
296 return { 337 return {
297 total: dataSource.length, 338 total: dataSource.length,
298 position: ['bottomRight'], 339 position: ['bottomRight'],
299 pageSize: 10, 340 pageSize: 10,
300 showTotal: function showTotal(total) { 341 showTotal: function showTotal(total) {
301 - return "\u5171".concat(total, "\u6761\u8BB0\u5F55"); 342 + return handleTotal(total);
302 }, 343 },
303 defaultCurrent: 1, 344 defaultCurrent: 1,
304 size: 'default' 345 size: 'default'
305 }; 346 };
306 }, [dataSource]); 347 }, [dataSource]);
307 var barButtons = (0, _react.useMemo)(function () { 348 var barButtons = (0, _react.useMemo)(function () {
308 - var _barButtons = _.cloneDeep(bar.buttons || []); // 选择、新增位置提前 349 + var _barButtons = _.cloneDeep(bar.buttons || []); // 关联表的导入,先隐藏 TODO
309 350
310 351
311 - ['ADD', 'SELECT'].forEach(function (code) {  
312 - var _index = _barButtons.findIndex(function (item) {  
313 - return item.code === code;  
314 - });  
315 -  
316 - if (_index > -1) {  
317 - var btn = _barButtons.splice(_index, 1);  
318 -  
319 - _barButtons.unshift.apply(_barButtons, _toConsumableArray(btn));  
320 - }  
321 - }); // 关联表的导入,先隐藏 TODO  
322 -  
323 if (props.originWidget === 'relSelector') { 352 if (props.originWidget === 'relSelector') {
324 ['IMPORT'].forEach(function (code) { 353 ['IMPORT'].forEach(function (code) {
325 var _index = _barButtons.findIndex(function (item) { 354 var _index = _barButtons.findIndex(function (item) {
@@ -353,17 +382,67 @@ var VirtualList = function VirtualList(_ref) { @@ -353,17 +382,67 @@ var VirtualList = function VirtualList(_ref) {
353 } 382 }
354 383
355 if (props.originWidget === 'relSelector' && subformMode && type !== 'view') { 384 if (props.originWidget === 'relSelector' && subformMode && type !== 'view') {
356 - _barButtons.push({ 385 + _barButtons.unshift({
357 code: 'subformEdit', 386 code: 'subformEdit',
358 icon: 'EditOutlined', 387 icon: 'EditOutlined',
359 batch: true, 388 batch: true,
360 action: 'SYS', 389 action: 'SYS',
361 - name: '子表编辑' 390 + name: '表格编辑'
  391 + });
  392 + } // 选择位置提前
  393 +
  394 +
  395 + ['SELECT'].forEach(function (code) {
  396 + var _index = _barButtons.findIndex(function (item) {
  397 + return item.code === code;
  398 + });
  399 +
  400 + if (_index > -1) {
  401 + var btn = _barButtons.splice(_index, 1);
  402 +
  403 + _barButtons.unshift.apply(_barButtons, _toConsumableArray(btn));
  404 + }
  405 + });
  406 +
  407 + if (type === 'add') {
  408 + return _barButtons.filter(function (item) {
  409 + return ['SELECT', 'IMPORT', 'ADD', 'BATCH_ADD'].includes(item.code);
  410 + });
  411 + } else if (type === 'view') {
  412 + return _barButtons.filter(function (item) {
  413 + return item.code === 'EXPORT';
362 }); 414 });
363 } 415 }
364 416
  417 + if (schema.isReadOnly) {
  418 + // return _barButtons.filter(item => item.code === 'EXPORT')
  419 + return [];
  420 + }
  421 +
365 return _barButtons; 422 return _barButtons;
366 - }, [props]); 423 + }, [props, type]);
  424 +
  425 + var moreButtons = /*#__PURE__*/_react.default.createElement(_menu.default, null, barButtons.slice(3).map(function (item) {
  426 + var name = item.name,
  427 + code = item.code,
  428 + needConfirm = item.needConfirm,
  429 + confirmContent = item.confirmContent,
  430 + icon = item.icon,
  431 + action = item.action;
  432 + return /*#__PURE__*/_react.default.createElement(_menu.default.Item, null, /*#__PURE__*/_react.default.createElement(_button.default, _extends({
  433 + key: code,
  434 + style: {
  435 + marginLeft: 8,
  436 + border: 'none'
  437 + }
  438 + }, item, {
  439 + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null,
  440 + onClick: function onClick() {
  441 + barBtnClick(code, needConfirm, confirmContent, action, item);
  442 + }
  443 + }), name));
  444 + }));
  445 +
367 var columns = (0, _react.useMemo)(function () { 446 var columns = (0, _react.useMemo)(function () {
368 return children.map(function (child, index) { 447 return children.map(function (child, index) {
369 var _schema$props2; 448 var _schema$props2;
@@ -386,12 +465,12 @@ var VirtualList = function VirtualList(_ref) { @@ -386,12 +465,12 @@ var VirtualList = function VirtualList(_ref) {
386 var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {}; 465 var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {};
387 return { 466 return {
388 dataIndex: child, 467 dataIndex: child,
389 - width: (column.width ? String(column.width).indexOf('px') > -1 ? Number(String(column.width).slice(0, -2)) : Number(column.width) : FIELD_LENGTH) + 16, 468 + width: column.width ? parseInt(column.width) : FIELD_LENGTH,
390 align: column.align || 'left', 469 align: column.align || 'left',
391 fixed: column.fixed || props.fixed && index < props.fixed, 470 fixed: column.fixed || props.fixed && index < props.fixed,
392 title: /*#__PURE__*/_react.default.createElement("div", { 471 title: /*#__PURE__*/_react.default.createElement("div", {
393 style: { 472 style: {
394 - width: (parseInt(column.width) || FIELD_LENGTH) + "px" 473 + width: (parseInt(column.width) || FIELD_LENGTH) - padding + "px"
395 } 474 }
396 }, schema.required ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", { 475 }, schema.required ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
397 className: "fr-label-required" 476 className: "fr-label-required"
@@ -426,6 +505,10 @@ var VirtualList = function VirtualList(_ref) { @@ -426,6 +505,10 @@ var VirtualList = function VirtualList(_ref) {
426 505
427 var handleState = function handleState(record, code, originWidget) { 506 var handleState = function handleState(record, code, originWidget) {
428 if (originWidget === 'subform') { 507 if (originWidget === 'subform') {
  508 + if (code === 'COPY' && !record.id) {
  509 + return 'none';
  510 + }
  511 +
429 return ''; 512 return '';
430 } else { 513 } else {
431 switch (code) { 514 switch (code) {
@@ -442,33 +525,42 @@ var VirtualList = function VirtualList(_ref) { @@ -442,33 +525,42 @@ var VirtualList = function VirtualList(_ref) {
442 return ''; 525 return '';
443 526
444 default: 527 default:
445 - return record.hasOwnProperty('$auth') ? '' : 'none'; 528 + return record[code + '_flag_'] ? '' : 'none';
446 } 529 }
447 } 530 }
448 }; 531 };
449 532
450 - if (!props.hideDelete && ((_line$buttons = line.buttons) === null || _line$buttons === void 0 ? void 0 : _line$buttons.length) || Array.isArray(itemProps.buttons) || props.removeable) { 533 + if (!props.hideDelete && ((_line$buttons = line.buttons) === null || _line$buttons === void 0 ? void 0 : _line$buttons.length) || Array.isArray(itemProps.buttons)) {
451 var top = line.top, 534 var top = line.top,
452 _line$style = line.style, 535 _line$style = line.style,
453 style = _line$style === void 0 ? 'ICON' : _line$style, 536 style = _line$style === void 0 ? 'ICON' : _line$style,
454 fixed = line.fixed, 537 fixed = line.fixed,
455 buttons = line.buttons; 538 buttons = line.buttons;
456 539
457 - if (props.removeable && buttons.findIndex(function (item) {  
458 - return item.code === 'REMOVE';  
459 - }) === -1) {  
460 - buttons.push({  
461 - icon: 'remove',  
462 - code: 'REMOVE',  
463 - name: '移除',  
464 - line: true,  
465 - needConfirm: true,  
466 - confirmContent: props.removeContent  
467 - });  
468 - }  
469 -  
470 - var len = (buttons || []).length;  
471 - var action = { 540 + if (pageType === 'add') {
  541 + if (props.originWidget === 'subform') {
  542 + line.buttons = buttons.filter(function (item) {
  543 + return item.code === 'DELETE';
  544 + });
  545 + } else if (props.originWidget === 'relSelector') {
  546 + line.buttons = buttons.filter(function (item) {
  547 + return item.code === 'REMOVE';
  548 + });
  549 + }
  550 + } // if (props.removeable && buttons.findIndex(item => item.code === 'REMOVE') === -1) {
  551 + // buttons.push({
  552 + // icon: 'remove',
  553 + // code: 'REMOVE',
  554 + // name: '移除',
  555 + // line: true,
  556 + // needConfirm: true,
  557 + // confirmContent: props.removeContent
  558 + // })
  559 + // }
  560 +
  561 +
  562 + var len = (line.buttons || []).length;
  563 + var action = schema.isReadOnly ? {} : {
472 title: '操作', 564 title: '操作',
473 key: '$action', 565 key: '$action',
474 fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false, 566 fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false,
@@ -536,9 +628,10 @@ var VirtualList = function VirtualList(_ref) { @@ -536,9 +628,10 @@ var VirtualList = function VirtualList(_ref) {
536 if (code === 'DELETE' && props.originWidget === 'subform') { 628 if (code === 'DELETE' && props.originWidget === 'subform') {
537 deleteItem(idx); 629 deleteItem(idx);
538 } else if (code === 'REMOVE') { 630 } else if (code === 'REMOVE') {
539 - deleteItem(idx); 631 + deleteItem(record.orginIdx);
  632 + props.handleLineBtnClick(code, record, schema.$id);
540 } else if (code === 'COPY') { 633 } else if (code === 'COPY') {
541 - copyItem(idx); 634 + copyItem(record.orginIdx);
542 } else if (item.action === 'CUSTOM') { 635 } else if (item.action === 'CUSTOM') {
543 props.handleCustom(item, record, schema.$id); 636 props.handleCustom(item, record, schema.$id);
544 } else { 637 } else {
@@ -551,9 +644,10 @@ var VirtualList = function VirtualList(_ref) { @@ -551,9 +644,10 @@ var VirtualList = function VirtualList(_ref) {
551 if (code === 'DELETE' && props.originWidget === 'subform') { 644 if (code === 'DELETE' && props.originWidget === 'subform') {
552 deleteItem(idx); 645 deleteItem(idx);
553 } else if (code === 'REMOVE') { 646 } else if (code === 'REMOVE') {
554 - deleteItem(idx); 647 + deleteItem(record.orginIdx);
  648 + props.handleLineBtnClick(code, record, schema.$id);
555 } else if (code === 'COPY') { 649 } else if (code === 'COPY') {
556 - copyItem(idx); 650 + copyItem(record.orginIdx);
557 } else if (item.action === 'CUSTOM') { 651 } else if (item.action === 'CUSTOM') {
558 props.handleCustom(item, record, schema.$id); 652 props.handleCustom(item, record, schema.$id);
559 } else { 653 } else {
@@ -561,13 +655,13 @@ var VirtualList = function VirtualList(_ref) { @@ -561,13 +655,13 @@ var VirtualList = function VirtualList(_ref) {
561 } 655 }
562 } 656 }
563 } 657 }
564 - }), style !== 'ICON' ? name : null)); // } 658 + }), style !== 'ICON' || !item.icon ? name : null)); // }
565 }) : null); 659 }) : null);
566 } 660 }
567 }; 661 };
568 662
569 - if (style === "ICON") {  
570 - action.width = len * 26 + 16; 663 + if (style === "ICON" || props.originWidget === 'subform') {
  664 + action.width = len * 32 + padding - 8;
571 } else { 665 } else {
572 var div = document.createElement('div'); 666 var div = document.createElement('div');
573 div.style.position = 'absolute'; 667 div.style.position = 'absolute';
@@ -575,17 +669,17 @@ var VirtualList = function VirtualList(_ref) { @@ -575,17 +669,17 @@ var VirtualList = function VirtualList(_ref) {
575 div.style.fontSize = '14px'; 669 div.style.fontSize = '14px';
576 window.document.body.appendChild(div); 670 window.document.body.appendChild(div);
577 var leng = 0; 671 var leng = 0;
578 - buttons.map(function (item) { 672 + line.buttons.map(function (item) {
579 div.innerHTML = item.name; 673 div.innerHTML = item.name;
580 - leng += div.clientWidth + 16 + (style !== 'TEXT' && item.icon ? 22 : 0); 674 + leng += div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0);
581 }); 675 });
582 - action.width = leng + 16; 676 + action.width = leng + padding - 8;
583 div.remove(); 677 div.remove();
584 } 678 }
585 679
586 if (columns.findIndex(function (item) { 680 if (columns.findIndex(function (item) {
587 return item.key === '$action'; 681 return item.key === '$action';
588 - }) === -1) { 682 + }) === -1 && len > 0 && action.title) {
589 if (top) { 683 if (top) {
590 columns.unshift(action); 684 columns.unshift(action);
591 } else { 685 } else {
@@ -605,9 +699,9 @@ var VirtualList = function VirtualList(_ref) { @@ -605,9 +699,9 @@ var VirtualList = function VirtualList(_ref) {
605 "percent": 0, 699 "percent": 0,
606 "status": "PROCESSING" 700 "status": "PROCESSING"
607 }); 701 });
608 - queryParams = { 702 + queryParams = _defineProperty({
609 dataId: props.dataId 703 dataId: props.dataId
610 - }; 704 + }, searchKey, keyWord);
611 appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName; 705 appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName;
612 _context.next = 5; 706 _context.next = 5;
613 return props.exportChild(appCode, funCode, fieldName, queryParams); 707 return props.exportChild(appCode, funCode, fieldName, queryParams);
@@ -638,7 +732,8 @@ var VirtualList = function VirtualList(_ref) { @@ -638,7 +732,8 @@ var VirtualList = function VirtualList(_ref) {
638 var exportData = function exportData(taskId) { 732 var exportData = function exportData(taskId) {
639 // const {appCode, funCode, viewCode} = qxProps 733 // const {appCode, funCode, viewCode} = qxProps
640 // taskType: UPLOAD || EXPORT 734 // taskType: UPLOAD || EXPORT
641 - props.childExportProgress(taskId).then(function (res) { 735 + if (!taskId && !exportTaskId.current) return;
  736 + props.childExportProgress(taskId || exportTaskId.current).then(function (res) {
642 setProgressData(res || null); 737 setProgressData(res || null);
643 }); 738 });
644 }; 739 };
@@ -724,6 +819,68 @@ var VirtualList = function VirtualList(_ref) { @@ -724,6 +819,68 @@ var VirtualList = function VirtualList(_ref) {
724 setSubEdit(false); 819 setSubEdit(false);
725 }; 820 };
726 821
  822 + var barBtnClick = function barBtnClick(code, needConfirm, confirmContent, action, item) {
  823 + setSelectedRowKeys([]);
  824 +
  825 + if (needConfirm && confirmContent) {
  826 + if (!selectedRowKeys.length) {
  827 + return _message2.default.warning('请选择数据');
  828 + }
  829 +
  830 + confirm({
  831 + title: confirmContent,
  832 + icon: /*#__PURE__*/_react.default.createElement(_ExclamationCircleOutlined2.default, null),
  833 + okText: '确认',
  834 + okType: 'danger',
  835 + cancelText: '取消',
  836 + onOk: function onOk() {
  837 + if (code === 'DELETE') {
  838 + if (props.originWidget === 'subform') {
  839 + batchDelete(selectedRowKeys);
  840 + setSelectedRowKeys([]);
  841 + } else {
  842 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  843 + }
  844 + } else if (code === 'EXPORT') {
  845 + handleExport();
  846 + } else if (code === 'SELECT') {
  847 + props.openRelSelect(schema.$id);
  848 + } else if (code === 'ADD') {
  849 + props.handleRelAdd(schema.$id);
  850 + } else if (code === 'subformEdit') {
  851 + props.handleBatchEdit(fieldName, schema.$id, selectedIds);
  852 + } else if (action === 'CUSTOM') {
  853 + props.handleCustom(item, selectedIds, schema.$id);
  854 + } else {
  855 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  856 + }
  857 + },
  858 + onCancel: function onCancel() {}
  859 + });
  860 + } else {
  861 + if (code === 'DELETE') {
  862 + if (props.originWidget === 'subform') {
  863 + batchDelete(selectedRowKeys);
  864 + setSelectedRowKeys([]);
  865 + } else {
  866 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  867 + }
  868 + } else if (code === 'EXPORT') {
  869 + handleExport();
  870 + } else if (code === 'SELECT') {
  871 + props.openRelSelect(schema.$id);
  872 + } else if (code === 'ADD') {
  873 + props.handleRelAdd(schema.$id);
  874 + } else if (code === 'subformEdit') {
  875 + props.handleBatchEdit(fieldName, schema.$id, selectedIds);
  876 + } else if (action === 'CUSTOM') {
  877 + props.handleCustom(item, selectedIds, schema.$id);
  878 + } else {
  879 + props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);
  880 + }
  881 + }
  882 + };
  883 +
727 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.editable ? isSubCanEdit ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_button.default, { 884 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.editable ? isSubCanEdit ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_button.default, {
728 type: 'text', 885 type: 'text',
729 size: "small", 886 size: "small",
@@ -769,7 +926,7 @@ var VirtualList = function VirtualList(_ref) { @@ -769,7 +926,7 @@ var VirtualList = function VirtualList(_ref) {
769 926
770 setKeyWord(((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || ''); 927 setKeyWord(((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
771 } 928 }
772 - }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", null, barButtons.map(function (item) { 929 + }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", null, (barButtons.length > 4 ? barButtons.slice(0, 3) : barButtons.slice(0, 4)).map(function (item) {
773 var name = item.name, 930 var name = item.name,
774 code = item.code, 931 code = item.code,
775 needConfirm = item.needConfirm, 932 needConfirm = item.needConfirm,
@@ -782,55 +939,18 @@ var VirtualList = function VirtualList(_ref) { @@ -782,55 +939,18 @@ var VirtualList = function VirtualList(_ref) {
782 marginLeft: 8 939 marginLeft: 8
783 } 940 }
784 }, item, { 941 }, item, {
785 - icon: icon ? BUTTON_ICONS_MAP[icon] : null, 942 + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null,
786 onClick: function onClick() { 943 onClick: function onClick() {
787 - if (code === 'DELETE') {  
788 - if (!selectedRowKeys.length) {  
789 - return _message2.default.warning('请选择数据');  
790 - }  
791 -  
792 - if (needConfirm && confirmContent) {  
793 - confirm({  
794 - title: '批量删除确认',  
795 - icon: /*#__PURE__*/_react.default.createElement(_ExclamationCircleOutlined2.default, null),  
796 - content: confirmContent,  
797 - okText: '确认',  
798 - okType: 'danger',  
799 - cancelText: '取消',  
800 - onOk: function onOk() {  
801 - if (props.originWidget === 'subform') {  
802 - batchDelete(selectedRowKeys);  
803 - setSelectedRowKeys([]);  
804 - } else {  
805 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
806 - }  
807 - },  
808 - onCancel: function onCancel() {}  
809 - });  
810 - } else {  
811 - if (props.originWidget === 'subform') {  
812 - batchDelete(selectedRowKeys);  
813 - setSelectedRowKeys([]);  
814 - } else {  
815 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
816 - }  
817 - }  
818 - } else if (code === 'EXPORT') {  
819 - handleExport();  
820 - } else if (code === 'SELECT') {  
821 - props.openRelSelect(schema.$id);  
822 - } else if (code === 'ADD') {  
823 - props.handleRelAdd(schema.$id);  
824 - } else if (code === 'subformEdit') {  
825 - props.handleBatchEdit(fieldName, schema.$id, selectedIds);  
826 - } else if (action === 'CUSTOM') {  
827 - props.handleCustom(item, selectedIds, schema.$id);  
828 - } else {  
829 - props.handleBarBtnClick(code, fieldName, batchKey, selectedRowKeys, schema.$id, selectedIds);  
830 - } 944 + barBtnClick(code, needConfirm, confirmContent, action, item);
831 } 945 }
832 }), name); // } 946 }), name); // }
833 - })), Array.isArray(props.buttons) ? props.buttons.map(function (item, idx) { 947 + }), barButtons.slice(4).length ? /*#__PURE__*/_react.default.createElement(_dropdown.default, {
  948 + overlay: moreButtons
  949 + }, /*#__PURE__*/_react.default.createElement(_button.default, {
  950 + style: {
  951 + marginLeft: 8
  952 + }
  953 + }, /*#__PURE__*/_react.default.createElement(_space.default, null, "\u66F4\u591A\u64CD\u4F5C", /*#__PURE__*/_react.default.createElement(_DownOutlined2.default, null)))) : null), Array.isArray(props.buttons) ? props.buttons.map(function (item, idx) {
834 var callback = item.callback, 954 var callback = item.callback,
835 text = item.text, 955 text = item.text,
836 html = item.html; 956 html = item.html;
@@ -885,10 +1005,10 @@ var VirtualList = function VirtualList(_ref) { @@ -885,10 +1005,10 @@ var VirtualList = function VirtualList(_ref) {
885 x: '100%' 1005 x: '100%'
886 }, 1006 },
887 components: vt, 1007 components: vt,
888 - size: "small", 1008 + size: size || 'small',
889 columns: columns, 1009 columns: columns,
890 dataSource: dataSource, 1010 dataSource: dataSource,
891 - pagination: props.originWidget === 'subform' ? false : pagination, 1011 + pagination: pagination,
892 style: { 1012 style: {
893 marginBottom: 25 1013 marginBottom: 25
894 }, 1014 },
@@ -931,7 +1051,7 @@ function _handleDownload() { @@ -931,7 +1051,7 @@ function _handleDownload() {
931 switch (_context2.prev = _context2.next) { 1051 switch (_context2.prev = _context2.next) {
932 case 0: 1052 case 0:
933 // eslint-disable-next-line prefer-rest-params 1053 // eslint-disable-next-line prefer-rest-params
934 - isDownload = _args2[2]; 1054 + isDownload = _args2[3];
935 1055
936 if (isDownload === null || Boolean(isDownload)) { 1056 if (isDownload === null || Boolean(isDownload)) {
937 _message2.default.warning('即将开始下载,请勿重复点击。'); 1057 _message2.default.warning('即将开始下载,请勿重复点击。');
@@ -25,6 +25,8 @@ var _DrawerList = _interopRequireDefault(require("./DrawerList")); @@ -25,6 +25,8 @@ var _DrawerList = _interopRequireDefault(require("./DrawerList"));
25 25
26 var _VirtualList = _interopRequireDefault(require("./VirtualList")); 26 var _VirtualList = _interopRequireDefault(require("./VirtualList"));
27 27
  28 +var _ListForMobile = _interopRequireDefault(require("./ListForMobile"));
  29 +
28 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 30 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29 31
30 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; } 32 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; }
@@ -86,16 +88,19 @@ var RenderList = function RenderList(_ref) { @@ -86,16 +88,19 @@ var RenderList = function RenderList(_ref) {
86 }; 88 };
87 89
88 var addItem = function addItem() { 90 var addItem = function addItem() {
89 - var newList = [].concat(_toConsumableArray(displayList), [{}]); 91 + var newList = [].concat(_toConsumableArray(displayList), [{
  92 + _active: true
  93 + }]);
90 var newIndex = newList.length - 1; 94 var newIndex = newList.length - 1;
91 onItemChange(dataPath, newList); 95 onItemChange(dataPath, newList);
92 return newIndex; 96 return newIndex;
93 }; 97 };
94 98
95 var copyItem = function copyItem(idx) { 99 var copyItem = function copyItem(idx) {
96 - var newItem = displayList[idx]; 100 + var newItem = _.cloneDeep(displayList[idx]);
  101 +
97 delete newItem.id; 102 delete newItem.id;
98 - var newList = [].concat(_toConsumableArray(displayList.slice(0, idx)), [newItem], _toConsumableArray(displayList.slice(idx))); 103 + var newList = [].concat(_toConsumableArray(displayList.slice(0, idx + 1)), [newItem], _toConsumableArray(displayList.slice(idx + 1)));
99 onItemChange(dataPath, JSON.parse(JSON.stringify(newList))); 104 onItemChange(dataPath, JSON.parse(JSON.stringify(newList)));
100 }; 105 };
101 106
@@ -208,6 +213,9 @@ var RenderList = function RenderList(_ref) { @@ -208,6 +213,9 @@ var RenderList = function RenderList(_ref) {
208 case 'virtualList': 213 case 'virtualList':
209 return /*#__PURE__*/_react.default.createElement(_VirtualList.default, displayProps); 214 return /*#__PURE__*/_react.default.createElement(_VirtualList.default, displayProps);
210 215
  216 + case 'listForMobile':
  217 + return /*#__PURE__*/_react.default.createElement(_ListForMobile.default, displayProps);
  218 +
211 default: 219 default:
212 return /*#__PURE__*/_react.default.createElement(_CardList.default, displayProps); 220 return /*#__PURE__*/_react.default.createElement(_CardList.default, displayProps);
213 } 221 }
1 .fr-container .fr-card-item { 1 .fr-container .fr-card-item {
2 - border: 1px solid rgba(0, 0, 0, 0.1);  
3 - border-radius: 4px;  
4 - padding: 10px 12px 4px 12px; 2 + border: 0.5px solid rgba(0, 0, 0, 0.1);
  3 + padding: 10px 0 4px 0;
5 margin-bottom: 8px; 4 margin-bottom: 8px;
6 position: relative; 5 position: relative;
7 display: flex; 6 display: flex;
@@ -50,3 +49,51 @@ @@ -50,3 +49,51 @@
50 .rowReverse { 49 .rowReverse {
51 flex-direction: row-reverse; 50 flex-direction: row-reverse;
52 } 51 }
  52 +.ant-modal-body .qx-virtualList {
  53 + margin-bottom: 0 !important;
  54 +}
  55 +.qx-card-mobile .adm-list-item-content-main {
  56 + font-size: 14px;
  57 +}
  58 +.qx-card-mobile .adm-list-default .adm-list-body {
  59 + border: none;
  60 +}
  61 +.qx-card-mobile .adm-list-item {
  62 + padding-left: 15px;
  63 +}
  64 +.qx-card-mobile .adm-list-item .adm-list-item-content {
  65 + padding-right: 15px;
  66 +}
  67 +.qx-card-mobile .adm-collapse-panel-header {
  68 + margin: 0 15px;
  69 + height: 40px;
  70 + background: #f6f7f9;
  71 + border-radius: 4px 4px 0 0;
  72 +}
  73 +.qx-card-mobile .adm-collapse-panel-header .adm-collapse-arrow {
  74 + font-size: 16px;
  75 +}
  76 +.qx-card-mobile .adm-list-item-content {
  77 + border-radius: 8px 8px 0 0;
  78 + border-top: none;
  79 +}
  80 +.qx-card-mobile .adm-list-item-content .fr-content-column {
  81 + padding: 0 15px 6px;
  82 +}
  83 +.qx-card-mobile-item {
  84 + border-radius: unset;
  85 + border-top: none;
  86 +}
  87 +.qx-card-mobile .adm-collapse-panel-content .adm-list-item-content-main {
  88 + padding: 0;
  89 +}
  90 +.qx-card-mobile .adm-list-item-content-arrow {
  91 + font-size: 15px;
  92 + width: 15px;
  93 + height: 15px;
  94 +}
  95 +.add-button {
  96 + color: #3499ff;
  97 + display: inline-block;
  98 + margin: 15px;
  99 +}
1 { 1 {
2 "name": "@qx/form-render", 2 "name": "@qx/form-render",
3 - "version": "0.0.18", 3 + "version": "0.0.28",
4 "description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成", 4 "description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成",
5 "repository": { 5 "repository": {
6 "type": "git", 6 "type": "git",