Showing
9 changed files
with
934 additions
and
233 deletions
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; | |
\ No newline at end of file | ... | ... |
... | ... | @@ -2,18 +2,26 @@ import "antd/es/table/style"; |
2 | 2 | import _Table from "antd/es/table"; |
3 | 3 | import "antd/es/alert/style"; |
4 | 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 | 10 | import "antd/es/input/style"; |
8 | 11 | import _Input from "antd/es/input"; |
9 | 12 | import _SearchOutlined from "@ant-design/icons/es/icons/SearchOutlined"; |
10 | 13 | import _CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined"; |
11 | 14 | import _CheckOutlined from "@ant-design/icons/es/icons/CheckOutlined"; |
15 | +import "antd/es/message/style"; | |
16 | +import _message from "antd/es/message"; | |
12 | 17 | import "antd/es/tooltip/style"; |
13 | 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 | 22 | import "antd/es/button/style"; |
15 | 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 | 25 | import _SelectOutlined from "@ant-design/icons/es/icons/SelectOutlined"; |
18 | 26 | import _ExpandAltOutlined from "@ant-design/icons/es/icons/ExpandAltOutlined"; |
19 | 27 | import _EditOutlined from "@ant-design/icons/es/icons/EditOutlined"; |
... | ... | @@ -25,7 +33,7 @@ import _ImportOutlined from "@ant-design/icons/es/icons/ImportOutlined"; |
25 | 33 | import _ExportOutlined from "@ant-design/icons/es/icons/ExportOutlined"; |
26 | 34 | import "antd/es/modal/style"; |
27 | 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 | 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 | 55 | |
48 | 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 | 60 | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } |
51 | 61 | |
52 | 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 | 87 | EyeOutlined: /*#__PURE__*/React.createElement(_EyeOutlined, null), |
78 | 88 | EditOutlined: /*#__PURE__*/React.createElement(_EditOutlined, null), |
79 | 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 | 93 | var FIELD_LENGTH = 170; |
83 | 94 | var EXPORT_STATUS = { |
... | ... | @@ -113,10 +124,11 @@ var VirtualList = function VirtualList(_ref) { |
113 | 124 | fieldName = schema.fieldName, |
114 | 125 | _schema$qxProps = schema.qxProps, |
115 | 126 | qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, |
116 | - subformMode = schema.subformMode; | |
127 | + subformMode = schema.subformMode, | |
128 | + pageType = schema.pageType; | |
117 | 129 | |
118 | 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 | 132 | _summary = props.summary, |
121 | 133 | batchKey = props.batchKey, |
122 | 134 | type = props.type, |
... | ... | @@ -126,6 +138,7 @@ var VirtualList = function VirtualList(_ref) { |
126 | 138 | line = _props$line === void 0 ? {} : _props$line, |
127 | 139 | searchKey = props.searchKey, |
128 | 140 | rowSelection = props.rowSelection, |
141 | + size = props.size, | |
129 | 142 | rest = _objectWithoutProperties(props, _excluded); |
130 | 143 | |
131 | 144 | var _useVT = useVT(function () { |
... | ... | @@ -171,6 +184,9 @@ var VirtualList = function VirtualList(_ref) { |
171 | 184 | searchName = _useState12[0], |
172 | 185 | setSearchName = _useState12[1]; |
173 | 186 | |
187 | + var padding = useMemo(function () { | |
188 | + return size === 'default' ? 32 : 16; | |
189 | + }, [size]); | |
174 | 190 | var newRowSelection = useMemo(function () { |
175 | 191 | var _bar$buttons; |
176 | 192 | |
... | ... | @@ -196,9 +212,10 @@ var VirtualList = function VirtualList(_ref) { |
196 | 212 | return _rowSelection; |
197 | 213 | }, [rowSelection, selectedRowKeys, bar]); |
198 | 214 | useEffect(function () { |
199 | - console.log(displayList); | |
200 | 215 | displayList.forEach(function (item, index) { |
201 | - item.orginIdx = index; | |
216 | + if (_typeof(item) === 'object') { | |
217 | + item.orginIdx = index; | |
218 | + } | |
202 | 219 | }); |
203 | 220 | }, [displayList]); |
204 | 221 | var _displayList = []; // 筛选展示的数据 |
... | ... | @@ -248,33 +265,39 @@ var VirtualList = function VirtualList(_ref) { |
248 | 265 | index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx |
249 | 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 | 286 | var pagination = useMemo(function () { |
252 | 287 | return { |
253 | 288 | total: dataSource.length, |
254 | 289 | position: ['bottomRight'], |
255 | 290 | pageSize: 10, |
256 | 291 | showTotal: function showTotal(total) { |
257 | - return "\u5171".concat(total, "\u6761\u8BB0\u5F55"); | |
292 | + return handleTotal(total); | |
258 | 293 | }, |
259 | 294 | defaultCurrent: 1, |
260 | 295 | size: 'default' |
261 | 296 | }; |
262 | 297 | }, [dataSource]); |
263 | 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 | 302 | if (props.originWidget === 'relSelector') { |
280 | 303 | ['IMPORT'].forEach(function (code) { |
... | ... | @@ -309,17 +332,65 @@ var VirtualList = function VirtualList(_ref) { |
309 | 332 | } |
310 | 333 | |
311 | 334 | if (props.originWidget === 'relSelector' && subformMode && type !== 'view') { |
312 | - _barButtons.push({ | |
335 | + _barButtons.unshift({ | |
313 | 336 | code: 'subformEdit', |
314 | 337 | icon: 'EditOutlined', |
315 | 338 | batch: true, |
316 | 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 | 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 | 394 | var columns = useMemo(function () { |
324 | 395 | return children.map(function (child, index) { |
325 | 396 | var _schema$props2; |
... | ... | @@ -342,12 +413,12 @@ var VirtualList = function VirtualList(_ref) { |
342 | 413 | var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {}; |
343 | 414 | return { |
344 | 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 | 417 | align: column.align || 'left', |
347 | 418 | fixed: column.fixed || props.fixed && index < props.fixed, |
348 | 419 | title: /*#__PURE__*/React.createElement("div", { |
349 | 420 | style: { |
350 | - width: (parseInt(column.width) || FIELD_LENGTH) + "px" | |
421 | + width: (parseInt(column.width) || FIELD_LENGTH) - padding + "px" | |
351 | 422 | } |
352 | 423 | }, schema.required ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", { |
353 | 424 | className: "fr-label-required" |
... | ... | @@ -382,6 +453,10 @@ var VirtualList = function VirtualList(_ref) { |
382 | 453 | |
383 | 454 | var handleState = function handleState(record, code, originWidget) { |
384 | 455 | if (originWidget === 'subform') { |
456 | + if (code === 'COPY' && !record.id) { | |
457 | + return 'none'; | |
458 | + } | |
459 | + | |
385 | 460 | return ''; |
386 | 461 | } else { |
387 | 462 | switch (code) { |
... | ... | @@ -398,33 +473,42 @@ var VirtualList = function VirtualList(_ref) { |
398 | 473 | return ''; |
399 | 474 | |
400 | 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 | 482 | var top = line.top, |
408 | 483 | _line$style = line.style, |
409 | 484 | style = _line$style === void 0 ? 'ICON' : _line$style, |
410 | 485 | fixed = line.fixed, |
411 | 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 | 512 | title: '操作', |
429 | 513 | key: '$action', |
430 | 514 | fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false, |
... | ... | @@ -492,9 +576,10 @@ var VirtualList = function VirtualList(_ref) { |
492 | 576 | if (code === 'DELETE' && props.originWidget === 'subform') { |
493 | 577 | deleteItem(idx); |
494 | 578 | } else if (code === 'REMOVE') { |
495 | - deleteItem(idx); | |
579 | + deleteItem(record.orginIdx); | |
580 | + props.handleLineBtnClick(code, record, schema.$id); | |
496 | 581 | } else if (code === 'COPY') { |
497 | - copyItem(idx); | |
582 | + copyItem(record.orginIdx); | |
498 | 583 | } else if (item.action === 'CUSTOM') { |
499 | 584 | props.handleCustom(item, record, schema.$id); |
500 | 585 | } else { |
... | ... | @@ -507,9 +592,10 @@ var VirtualList = function VirtualList(_ref) { |
507 | 592 | if (code === 'DELETE' && props.originWidget === 'subform') { |
508 | 593 | deleteItem(idx); |
509 | 594 | } else if (code === 'REMOVE') { |
510 | - deleteItem(idx); | |
595 | + deleteItem(record.orginIdx); | |
596 | + props.handleLineBtnClick(code, record, schema.$id); | |
511 | 597 | } else if (code === 'COPY') { |
512 | - copyItem(idx); | |
598 | + copyItem(record.orginIdx); | |
513 | 599 | } else if (item.action === 'CUSTOM') { |
514 | 600 | props.handleCustom(item, record, schema.$id); |
515 | 601 | } else { |
... | ... | @@ -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 | 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 | 613 | } else { |
528 | 614 | var div = document.createElement('div'); |
529 | 615 | div.style.position = 'absolute'; |
... | ... | @@ -531,17 +617,17 @@ var VirtualList = function VirtualList(_ref) { |
531 | 617 | div.style.fontSize = '14px'; |
532 | 618 | window.document.body.appendChild(div); |
533 | 619 | var leng = 0; |
534 | - buttons.map(function (item) { | |
620 | + line.buttons.map(function (item) { | |
535 | 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 | 625 | div.remove(); |
540 | 626 | } |
541 | 627 | |
542 | 628 | if (columns.findIndex(function (item) { |
543 | 629 | return item.key === '$action'; |
544 | - }) === -1) { | |
630 | + }) === -1 && len > 0 && action.title) { | |
545 | 631 | if (top) { |
546 | 632 | columns.unshift(action); |
547 | 633 | } else { |
... | ... | @@ -561,9 +647,9 @@ var VirtualList = function VirtualList(_ref) { |
561 | 647 | "percent": 0, |
562 | 648 | "status": "PROCESSING" |
563 | 649 | }); |
564 | - queryParams = { | |
650 | + queryParams = _defineProperty({ | |
565 | 651 | dataId: props.dataId |
566 | - }; | |
652 | + }, searchKey, keyWord); | |
567 | 653 | appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName; |
568 | 654 | _context.next = 5; |
569 | 655 | return props.exportChild(appCode, funCode, fieldName, queryParams); |
... | ... | @@ -594,7 +680,8 @@ var VirtualList = function VirtualList(_ref) { |
594 | 680 | var exportData = function exportData(taskId) { |
595 | 681 | // const {appCode, funCode, viewCode} = qxProps |
596 | 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 | 685 | setProgressData(res || null); |
599 | 686 | }); |
600 | 687 | }; |
... | ... | @@ -680,6 +767,68 @@ var VirtualList = function VirtualList(_ref) { |
680 | 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 | 832 | return /*#__PURE__*/React.createElement(React.Fragment, null, props.editable ? isSubCanEdit ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Button, { |
684 | 833 | type: 'text', |
685 | 834 | size: "small", |
... | ... | @@ -725,7 +874,7 @@ var VirtualList = function VirtualList(_ref) { |
725 | 874 | |
726 | 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 | 878 | var name = item.name, |
730 | 879 | code = item.code, |
731 | 880 | needConfirm = item.needConfirm, |
... | ... | @@ -738,55 +887,18 @@ var VirtualList = function VirtualList(_ref) { |
738 | 887 | marginLeft: 8 |
739 | 888 | } |
740 | 889 | }, item, { |
741 | - icon: icon ? BUTTON_ICONS_MAP[icon] : null, | |
890 | + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null, | |
742 | 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 | 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 | 902 | var callback = item.callback, |
791 | 903 | text = item.text, |
792 | 904 | html = item.html; |
... | ... | @@ -841,10 +953,10 @@ var VirtualList = function VirtualList(_ref) { |
841 | 953 | x: '100%' |
842 | 954 | }, |
843 | 955 | components: vt, |
844 | - size: "small", | |
956 | + size: size || 'small', | |
845 | 957 | columns: columns, |
846 | 958 | dataSource: dataSource, |
847 | - pagination: props.originWidget === 'subform' ? false : pagination, | |
959 | + pagination: pagination, | |
848 | 960 | style: { |
849 | 961 | marginBottom: 25 |
850 | 962 | }, |
... | ... | @@ -887,7 +999,7 @@ function _handleDownload() { |
887 | 999 | switch (_context2.prev = _context2.next) { |
888 | 1000 | case 0: |
889 | 1001 | // eslint-disable-next-line prefer-rest-params |
890 | - isDownload = _args2[2]; | |
1002 | + isDownload = _args2[3]; | |
891 | 1003 | |
892 | 1004 | if (isDownload === null || Boolean(isDownload)) { |
893 | 1005 | _message.warning('即将开始下载,请勿重复点击。'); | ... | ... |
... | ... | @@ -28,6 +28,7 @@ import CardList from './CardList'; |
28 | 28 | import TableList from './TableList'; |
29 | 29 | import DrawerList from './DrawerList'; |
30 | 30 | import VirtualList from './VirtualList'; |
31 | +import ListForMobile from "./ListForMobile"; | |
31 | 32 | |
32 | 33 | var RenderList = function RenderList(_ref) { |
33 | 34 | var parentId = _ref.parentId, |
... | ... | @@ -70,16 +71,19 @@ var RenderList = function RenderList(_ref) { |
70 | 71 | }; |
71 | 72 | |
72 | 73 | var addItem = function addItem() { |
73 | - var newList = [].concat(_toConsumableArray(displayList), [{}]); | |
74 | + var newList = [].concat(_toConsumableArray(displayList), [{ | |
75 | + _active: true | |
76 | + }]); | |
74 | 77 | var newIndex = newList.length - 1; |
75 | 78 | onItemChange(dataPath, newList); |
76 | 79 | return newIndex; |
77 | 80 | }; |
78 | 81 | |
79 | 82 | var copyItem = function copyItem(idx) { |
80 | - var newItem = displayList[idx]; | |
83 | + var newItem = _.cloneDeep(displayList[idx]); | |
84 | + | |
81 | 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 | 87 | onItemChange(dataPath, JSON.parse(JSON.stringify(newList))); |
84 | 88 | }; |
85 | 89 | |
... | ... | @@ -192,6 +196,9 @@ var RenderList = function RenderList(_ref) { |
192 | 196 | case 'virtualList': |
193 | 197 | return /*#__PURE__*/React.createElement(VirtualList, displayProps); |
194 | 198 | |
199 | + case 'listForMobile': | |
200 | + return /*#__PURE__*/React.createElement(ListForMobile, displayProps); | |
201 | + | |
195 | 202 | default: |
196 | 203 | return /*#__PURE__*/React.createElement(CardList, displayProps); |
197 | 204 | } | ... | ... |
1 | 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 | 4 | margin-bottom: 8px; |
6 | 5 | position: relative; |
7 | 6 | display: flex; |
... | ... | @@ -50,3 +49,51 @@ |
50 | 49 | .rowReverse { |
51 | 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; | |
\ No newline at end of file | ... | ... |
1 | 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 | 3 | Object.defineProperty(exports, "__esModule", { |
6 | 4 | value: true |
7 | 5 | }); |
... | ... | @@ -15,9 +13,15 @@ require("antd/es/alert/style"); |
15 | 13 | |
16 | 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 | 26 | require("antd/es/input/style"); |
23 | 27 | |
... | ... | @@ -29,15 +33,25 @@ var _CloseOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icon |
29 | 33 | |
30 | 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 | 40 | require("antd/es/tooltip/style"); |
33 | 41 | |
34 | 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 | 50 | require("antd/es/button/style"); |
37 | 51 | |
38 | 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 | 56 | var _SelectOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/SelectOutlined")); |
43 | 57 | |
... | ... | @@ -67,7 +81,7 @@ var _index2 = _interopRequireDefault(require("../../index")); |
67 | 81 | |
68 | 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 | 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 | 109 | |
96 | 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 | 114 | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } |
99 | 115 | |
100 | 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 | 137 | EyeOutlined: /*#__PURE__*/_react.default.createElement(_EyeOutlined2.default, null), |
122 | 138 | EditOutlined: /*#__PURE__*/_react.default.createElement(_EditOutlined2.default, null), |
123 | 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 | 143 | var FIELD_LENGTH = 170; |
127 | 144 | var EXPORT_STATUS = { |
... | ... | @@ -157,10 +174,11 @@ var VirtualList = function VirtualList(_ref) { |
157 | 174 | fieldName = schema.fieldName, |
158 | 175 | _schema$qxProps = schema.qxProps, |
159 | 176 | qxProps = _schema$qxProps === void 0 ? {} : _schema$qxProps, |
160 | - subformMode = schema.subformMode; | |
177 | + subformMode = schema.subformMode, | |
178 | + pageType = schema.pageType; | |
161 | 179 | |
162 | 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 | 182 | _summary = props.summary, |
165 | 183 | batchKey = props.batchKey, |
166 | 184 | type = props.type, |
... | ... | @@ -170,6 +188,7 @@ var VirtualList = function VirtualList(_ref) { |
170 | 188 | line = _props$line === void 0 ? {} : _props$line, |
171 | 189 | searchKey = props.searchKey, |
172 | 190 | rowSelection = props.rowSelection, |
191 | + size = props.size, | |
173 | 192 | rest = _objectWithoutProperties(props, _excluded); |
174 | 193 | |
175 | 194 | var _useVT = (0, _virtualizedtableforantd.useVT)(function () { |
... | ... | @@ -215,6 +234,9 @@ var VirtualList = function VirtualList(_ref) { |
215 | 234 | searchName = _useState12[0], |
216 | 235 | setSearchName = _useState12[1]; |
217 | 236 | |
237 | + var padding = (0, _react.useMemo)(function () { | |
238 | + return size === 'default' ? 32 : 16; | |
239 | + }, [size]); | |
218 | 240 | var newRowSelection = (0, _react.useMemo)(function () { |
219 | 241 | var _bar$buttons; |
220 | 242 | |
... | ... | @@ -240,9 +262,10 @@ var VirtualList = function VirtualList(_ref) { |
240 | 262 | return _rowSelection; |
241 | 263 | }, [rowSelection, selectedRowKeys, bar]); |
242 | 264 | (0, _react.useEffect)(function () { |
243 | - console.log(displayList); | |
244 | 265 | displayList.forEach(function (item, index) { |
245 | - item.orginIdx = index; | |
266 | + if (_typeof(item) === 'object') { | |
267 | + item.orginIdx = index; | |
268 | + } | |
246 | 269 | }); |
247 | 270 | }, [displayList]); |
248 | 271 | var _displayList = []; // 筛选展示的数据 |
... | ... | @@ -292,34 +315,40 @@ var VirtualList = function VirtualList(_ref) { |
292 | 315 | index: item.hasOwnProperty('orginIdx') ? item.orginIdx : idx |
293 | 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 | 336 | var pagination = (0, _react.useMemo)(function () { |
296 | 337 | return { |
297 | 338 | total: dataSource.length, |
298 | 339 | position: ['bottomRight'], |
299 | 340 | pageSize: 10, |
300 | 341 | showTotal: function showTotal(total) { |
301 | - return "\u5171".concat(total, "\u6761\u8BB0\u5F55"); | |
342 | + return handleTotal(total); | |
302 | 343 | }, |
303 | 344 | defaultCurrent: 1, |
304 | 345 | size: 'default' |
305 | 346 | }; |
306 | 347 | }, [dataSource]); |
307 | 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 | 352 | if (props.originWidget === 'relSelector') { |
324 | 353 | ['IMPORT'].forEach(function (code) { |
325 | 354 | var _index = _barButtons.findIndex(function (item) { |
... | ... | @@ -353,17 +382,67 @@ var VirtualList = function VirtualList(_ref) { |
353 | 382 | } |
354 | 383 | |
355 | 384 | if (props.originWidget === 'relSelector' && subformMode && type !== 'view') { |
356 | - _barButtons.push({ | |
385 | + _barButtons.unshift({ | |
357 | 386 | code: 'subformEdit', |
358 | 387 | icon: 'EditOutlined', |
359 | 388 | batch: true, |
360 | 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 | 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 | 446 | var columns = (0, _react.useMemo)(function () { |
368 | 447 | return children.map(function (child, index) { |
369 | 448 | var _schema$props2; |
... | ... | @@ -386,12 +465,12 @@ var VirtualList = function VirtualList(_ref) { |
386 | 465 | var column = ((_schema$props2 = schema.props) === null || _schema$props2 === void 0 ? void 0 : _schema$props2.column) || {}; |
387 | 466 | return { |
388 | 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 | 469 | align: column.align || 'left', |
391 | 470 | fixed: column.fixed || props.fixed && index < props.fixed, |
392 | 471 | title: /*#__PURE__*/_react.default.createElement("div", { |
393 | 472 | style: { |
394 | - width: (parseInt(column.width) || FIELD_LENGTH) + "px" | |
473 | + width: (parseInt(column.width) || FIELD_LENGTH) - padding + "px" | |
395 | 474 | } |
396 | 475 | }, schema.required ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", { |
397 | 476 | className: "fr-label-required" |
... | ... | @@ -426,6 +505,10 @@ var VirtualList = function VirtualList(_ref) { |
426 | 505 | |
427 | 506 | var handleState = function handleState(record, code, originWidget) { |
428 | 507 | if (originWidget === 'subform') { |
508 | + if (code === 'COPY' && !record.id) { | |
509 | + return 'none'; | |
510 | + } | |
511 | + | |
429 | 512 | return ''; |
430 | 513 | } else { |
431 | 514 | switch (code) { |
... | ... | @@ -442,33 +525,42 @@ var VirtualList = function VirtualList(_ref) { |
442 | 525 | return ''; |
443 | 526 | |
444 | 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 | 534 | var top = line.top, |
452 | 535 | _line$style = line.style, |
453 | 536 | style = _line$style === void 0 ? 'ICON' : _line$style, |
454 | 537 | fixed = line.fixed, |
455 | 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 | 564 | title: '操作', |
473 | 565 | key: '$action', |
474 | 566 | fixed: fixed ? top ? 'left' : 'right' : props.originWidget === 'subform' ? 'right' : false, |
... | ... | @@ -536,9 +628,10 @@ var VirtualList = function VirtualList(_ref) { |
536 | 628 | if (code === 'DELETE' && props.originWidget === 'subform') { |
537 | 629 | deleteItem(idx); |
538 | 630 | } else if (code === 'REMOVE') { |
539 | - deleteItem(idx); | |
631 | + deleteItem(record.orginIdx); | |
632 | + props.handleLineBtnClick(code, record, schema.$id); | |
540 | 633 | } else if (code === 'COPY') { |
541 | - copyItem(idx); | |
634 | + copyItem(record.orginIdx); | |
542 | 635 | } else if (item.action === 'CUSTOM') { |
543 | 636 | props.handleCustom(item, record, schema.$id); |
544 | 637 | } else { |
... | ... | @@ -551,9 +644,10 @@ var VirtualList = function VirtualList(_ref) { |
551 | 644 | if (code === 'DELETE' && props.originWidget === 'subform') { |
552 | 645 | deleteItem(idx); |
553 | 646 | } else if (code === 'REMOVE') { |
554 | - deleteItem(idx); | |
647 | + deleteItem(record.orginIdx); | |
648 | + props.handleLineBtnClick(code, record, schema.$id); | |
555 | 649 | } else if (code === 'COPY') { |
556 | - copyItem(idx); | |
650 | + copyItem(record.orginIdx); | |
557 | 651 | } else if (item.action === 'CUSTOM') { |
558 | 652 | props.handleCustom(item, record, schema.$id); |
559 | 653 | } else { |
... | ... | @@ -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 | 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 | 665 | } else { |
572 | 666 | var div = document.createElement('div'); |
573 | 667 | div.style.position = 'absolute'; |
... | ... | @@ -575,17 +669,17 @@ var VirtualList = function VirtualList(_ref) { |
575 | 669 | div.style.fontSize = '14px'; |
576 | 670 | window.document.body.appendChild(div); |
577 | 671 | var leng = 0; |
578 | - buttons.map(function (item) { | |
672 | + line.buttons.map(function (item) { | |
579 | 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 | 677 | div.remove(); |
584 | 678 | } |
585 | 679 | |
586 | 680 | if (columns.findIndex(function (item) { |
587 | 681 | return item.key === '$action'; |
588 | - }) === -1) { | |
682 | + }) === -1 && len > 0 && action.title) { | |
589 | 683 | if (top) { |
590 | 684 | columns.unshift(action); |
591 | 685 | } else { |
... | ... | @@ -605,9 +699,9 @@ var VirtualList = function VirtualList(_ref) { |
605 | 699 | "percent": 0, |
606 | 700 | "status": "PROCESSING" |
607 | 701 | }); |
608 | - queryParams = { | |
702 | + queryParams = _defineProperty({ | |
609 | 703 | dataId: props.dataId |
610 | - }; | |
704 | + }, searchKey, keyWord); | |
611 | 705 | appCode = qxProps.appCode, funCode = qxProps.funCode, fieldName = qxProps.fieldName; |
612 | 706 | _context.next = 5; |
613 | 707 | return props.exportChild(appCode, funCode, fieldName, queryParams); |
... | ... | @@ -638,7 +732,8 @@ var VirtualList = function VirtualList(_ref) { |
638 | 732 | var exportData = function exportData(taskId) { |
639 | 733 | // const {appCode, funCode, viewCode} = qxProps |
640 | 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 | 737 | setProgressData(res || null); |
643 | 738 | }); |
644 | 739 | }; |
... | ... | @@ -724,6 +819,68 @@ var VirtualList = function VirtualList(_ref) { |
724 | 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 | 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 | 885 | type: 'text', |
729 | 886 | size: "small", |
... | ... | @@ -769,7 +926,7 @@ var VirtualList = function VirtualList(_ref) { |
769 | 926 | |
770 | 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 | 930 | var name = item.name, |
774 | 931 | code = item.code, |
775 | 932 | needConfirm = item.needConfirm, |
... | ... | @@ -782,55 +939,18 @@ var VirtualList = function VirtualList(_ref) { |
782 | 939 | marginLeft: 8 |
783 | 940 | } |
784 | 941 | }, item, { |
785 | - icon: icon ? BUTTON_ICONS_MAP[icon] : null, | |
942 | + icon: icon && bar.style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null, | |
786 | 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 | 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 | 954 | var callback = item.callback, |
835 | 955 | text = item.text, |
836 | 956 | html = item.html; |
... | ... | @@ -885,10 +1005,10 @@ var VirtualList = function VirtualList(_ref) { |
885 | 1005 | x: '100%' |
886 | 1006 | }, |
887 | 1007 | components: vt, |
888 | - size: "small", | |
1008 | + size: size || 'small', | |
889 | 1009 | columns: columns, |
890 | 1010 | dataSource: dataSource, |
891 | - pagination: props.originWidget === 'subform' ? false : pagination, | |
1011 | + pagination: pagination, | |
892 | 1012 | style: { |
893 | 1013 | marginBottom: 25 |
894 | 1014 | }, |
... | ... | @@ -931,7 +1051,7 @@ function _handleDownload() { |
931 | 1051 | switch (_context2.prev = _context2.next) { |
932 | 1052 | case 0: |
933 | 1053 | // eslint-disable-next-line prefer-rest-params |
934 | - isDownload = _args2[2]; | |
1054 | + isDownload = _args2[3]; | |
935 | 1055 | |
936 | 1056 | if (isDownload === null || Boolean(isDownload)) { |
937 | 1057 | _message2.default.warning('即将开始下载,请勿重复点击。'); | ... | ... |
... | ... | @@ -25,6 +25,8 @@ var _DrawerList = _interopRequireDefault(require("./DrawerList")); |
25 | 25 | |
26 | 26 | var _VirtualList = _interopRequireDefault(require("./VirtualList")); |
27 | 27 | |
28 | +var _ListForMobile = _interopRequireDefault(require("./ListForMobile")); | |
29 | + | |
28 | 30 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
29 | 31 | |
30 | 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 | 88 | }; |
87 | 89 | |
88 | 90 | var addItem = function addItem() { |
89 | - var newList = [].concat(_toConsumableArray(displayList), [{}]); | |
91 | + var newList = [].concat(_toConsumableArray(displayList), [{ | |
92 | + _active: true | |
93 | + }]); | |
90 | 94 | var newIndex = newList.length - 1; |
91 | 95 | onItemChange(dataPath, newList); |
92 | 96 | return newIndex; |
93 | 97 | }; |
94 | 98 | |
95 | 99 | var copyItem = function copyItem(idx) { |
96 | - var newItem = displayList[idx]; | |
100 | + var newItem = _.cloneDeep(displayList[idx]); | |
101 | + | |
97 | 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 | 104 | onItemChange(dataPath, JSON.parse(JSON.stringify(newList))); |
100 | 105 | }; |
101 | 106 | |
... | ... | @@ -208,6 +213,9 @@ var RenderList = function RenderList(_ref) { |
208 | 213 | case 'virtualList': |
209 | 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 | 219 | default: |
212 | 220 | return /*#__PURE__*/_react.default.createElement(_CardList.default, displayProps); |
213 | 221 | } | ... | ... |
1 | 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 | 4 | margin-bottom: 8px; |
6 | 5 | position: relative; |
7 | 6 | display: flex; |
... | ... | @@ -50,3 +49,51 @@ |
50 | 49 | .rowReverse { |
51 | 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 | +} | ... | ... |