@bit-sun/business-component 3.1.3 → 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ var moment$1 = require('moment');
15
15
  var icons = require('@ant-design/icons');
16
16
  var bssula = require('bssula');
17
17
  require('qs');
18
+ var XLSX = require('xlsx');
18
19
  var reactBeautifulDnd = require('react-beautiful-dnd');
19
20
  var ahooks = require('ahooks');
20
21
  var querystring = require('querystring');
@@ -209,8 +210,8 @@ function _objectWithoutProperties(e, t) {
209
210
  r,
210
211
  i = _objectWithoutPropertiesLoose(e, t);
211
212
  if (Object.getOwnPropertySymbols) {
212
- var n = Object.getOwnPropertySymbols(e);
213
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
213
+ var s = Object.getOwnPropertySymbols(e);
214
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
214
215
  }
215
216
  return i;
216
217
  }
@@ -218,7 +219,7 @@ function _objectWithoutPropertiesLoose(r, e) {
218
219
  if (null == r) return {};
219
220
  var t = {};
220
221
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
221
- if (e.indexOf(n) >= 0) continue;
222
+ if (e.includes(n)) continue;
222
223
  t[n] = r[n];
223
224
  }
224
225
  return t;
@@ -583,7 +584,8 @@ var ENUM = {
583
584
  USER_INFO: 'userInfo',
584
585
  DICT_CODES: 'dicData',
585
586
  CHILD_APP_BACK: 'child_app_back',
586
- SEARCH_FIELDS_CONDITION: 'searchFieldsCondition' //表格搜索项信息缓存
587
+ SEARCH_FIELDS_CONDITION: 'searchFieldsCondition',
588
+ COMMONINFO: 'commonInfo' //通用信息
587
589
  },
588
590
  MAIN_AUTH_MAPPING: {
589
591
  '/config-project-front/': 'CONFIG_PC',
@@ -710,6 +712,10 @@ var getMenuAuthDataKey = function getMenuAuthDataKey(channel) {
710
712
  var getLimitMenuDataKey = function getLimitMenuDataKey(channel) {
711
713
  return getLocalStorageSaveKey(ENUM.BROWSER_CACHE.LIMIT_MENU_DATA, channel);
712
714
  };
715
+ // 公用数据存储/获取key
716
+ var getCommonInfoKey = function getCommonInfoKey(channel) {
717
+ return getLocalStorageSaveKey(ENUM.BROWSER_CACHE.COMMONINFO, channel);
718
+ };
713
719
  /******* 公用localstorage结束 *****/
714
720
 
715
721
  var resposne$1 = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.USER_INFO) || '{}');
@@ -1472,6 +1478,185 @@ var shouldUseAuth = function shouldUseAuth() {
1472
1478
  return window.__POWERED_BY_WUJIE__ ? true : false;
1473
1479
  };
1474
1480
 
1481
+ /**---------------------excel专程数据-------开始------------------------*/
1482
+ var fieldMappingReverse = function fieldMappingReverse(sheetMap) {
1483
+ var obj = {};
1484
+ Object.entries(sheetMap).forEach(function (_ref) {
1485
+ var _ref2 = _slicedToArray(_ref, 2),
1486
+ key = _ref2[0],
1487
+ val = _ref2[1];
1488
+ // @ts-ignore
1489
+ obj[val] = key;
1490
+ });
1491
+ return obj;
1492
+ };
1493
+ // 把文件以二进制的方式读出来
1494
+ var analyseExcelToByte = function analyseExcelToByte(file) {
1495
+ return new Promise(function (resolve) {
1496
+ var reader = new FileReader();
1497
+ reader.readAsBinaryString(file);
1498
+ reader.onload = function (ev) {
1499
+ var _ev$target;
1500
+ resolve(ev === null || ev === void 0 ? void 0 : (_ev$target = ev.target) === null || _ev$target === void 0 ? void 0 : _ev$target.result);
1501
+ };
1502
+ });
1503
+ };
1504
+ // 把excel数据【数组对象:中文表头key,value即表格内容】转换成服务端需要的数据【数组对象:英文表头key---中文表头对应的英文,value即表格内容】
1505
+ var parseToServe = function parseToServe(outdata, revertChart) {
1506
+ var arrs = [];
1507
+ outdata.forEach(function (item, i) {
1508
+ var arr = [];
1509
+ item.forEach(function (ite) {
1510
+ var obj = {};
1511
+ for (var key in revertChart) {
1512
+ var target = revertChart;
1513
+ if (!Object.prototype.hasOwnProperty.call(target, key)) break;
1514
+ var v = target[key];
1515
+ // if (key === ''||!item[key]) break; //表头字段映射为空,不进行导出
1516
+ if (key && (ite[key] || ite[key] === 0)) {
1517
+ obj[v] = ite[key];
1518
+ }
1519
+ }
1520
+ arr.push(obj);
1521
+ });
1522
+ arrs.push(arr);
1523
+ });
1524
+ return arrs;
1525
+ };
1526
+ //读取excel表
1527
+ // sheepMap是表头字段中英文映射
1528
+ // sheetCount:表的数量,默认一张
1529
+ var resolveFile = /*#__PURE__*/function () {
1530
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
1531
+ var config,
1532
+ data,
1533
+ _args = arguments;
1534
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1535
+ while (1) switch (_context.prev = _context.next) {
1536
+ case 0:
1537
+ config = _args.length > 1 && _args[1] !== undefined ? _args[1] : {
1538
+ sheetMap: [],
1539
+ sheetCount: 1
1540
+ };
1541
+ _context.next = 3;
1542
+ return analyseExcelToByte(file);
1543
+ case 3:
1544
+ data = _context.sent;
1545
+ return _context.abrupt("return", new Promise(function (resolve, reject) {
1546
+ var workbook = XLSX.read(data, {
1547
+ type: 'binary'
1548
+ });
1549
+ //根据sheet数量取出
1550
+ var sheetMapJsonList = _toConsumableArray(Array(config.sheetCount || 1)).map(function (ite, i) {
1551
+ var worksheets = workbook.Sheets[workbook.SheetNames[i]];
1552
+ return XLSX.utils.sheet_to_json(worksheets);
1553
+ });
1554
+ var outdata = parseToServe(sheetMapJsonList, config.sheetMap);
1555
+ resolve(outdata);
1556
+ }));
1557
+ case 5:
1558
+ case "end":
1559
+ return _context.stop();
1560
+ }
1561
+ }, _callee);
1562
+ }));
1563
+ return function resolveFile(_x) {
1564
+ return _ref3.apply(this, arguments);
1565
+ };
1566
+ }();
1567
+ //读取文件
1568
+ var readerXlsxToList = /*#__PURE__*/function () {
1569
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file, fileList, uploadRef, done, otherInfo) {
1570
+ var _ref5, callback, sheetMap, data2, data;
1571
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1572
+ while (1) switch (_context2.prev = _context2.next) {
1573
+ case 0:
1574
+ _ref5 = otherInfo || {}, callback = _ref5.callback, sheetMap = _ref5.sheetMap;
1575
+ if (!(Array.isArray(fileList) && fileList.length > 0)) {
1576
+ _context2.next = 14;
1577
+ break;
1578
+ }
1579
+ _context2.next = 4;
1580
+ return resolveFile(file.originFileObj, {
1581
+ sheetMap: fieldMappingReverse(sheetMap),
1582
+ sheetCount: 1
1583
+ });
1584
+ case 4:
1585
+ data2 = _context2.sent;
1586
+ data = data2[0];
1587
+ if (data.length) {
1588
+ _context2.next = 9;
1589
+ break;
1590
+ }
1591
+ antd.message.error("\u8BF7\u5148\u5F55\u5165\u6570\u636E\u518D\u5BFC\u5165");
1592
+ return _context2.abrupt("return");
1593
+ case 9:
1594
+ if (callback) callback(data);
1595
+ !callback && antd.message.success("\u5BFC\u5165\u6210\u529F");
1596
+ return _context2.abrupt("return", data);
1597
+ case 14:
1598
+ antd.message.error("\u8BF7\u9009\u62E9\u6587\u4EF6");
1599
+ return _context2.abrupt("return");
1600
+ case 16:
1601
+ case "end":
1602
+ return _context2.stop();
1603
+ }
1604
+ }, _callee2);
1605
+ }));
1606
+ return function readerXlsxToList(_x2, _x3, _x4, _x5, _x6) {
1607
+ return _ref4.apply(this, arguments);
1608
+ };
1609
+ }();
1610
+ /**---------------------excel专程数据-------结束------------------------*/
1611
+ /**---------------------数据写入excel-------开始------------------------*/
1612
+ //数据写入excel
1613
+ var writeListToXlsx = function writeListToXlsx(list) {
1614
+ var fileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '导出';
1615
+ // 创建工作薄
1616
+ var workbook = XLSX.utils.book_new();
1617
+ // 利用XLSX的json_to_sheet工具将json数据转化为表
1618
+ var workSheet = XLSX.utils.json_to_sheet(list);
1619
+ // 设置表格范围
1620
+ workSheet['!ref'] = "A1:AI".concat(list.length + 1);
1621
+ // 利用XLSX的book_append_sheet工具将表添加到excel文档中
1622
+ XLSX.utils.book_append_sheet(workbook, workSheet, 'sheet0');
1623
+ // 执行数据转换文件写入
1624
+ XLSX.writeFile(workbook, "".concat(fileName, ".xlsx"), {
1625
+ bookType: 'xlsx',
1626
+ bookSST: true,
1627
+ type: 'array'
1628
+ });
1629
+ };
1630
+ //字段转中文映射 alwaysTrans 为true就是如果在映射中找不到就按原样返回
1631
+ var keyToWord = function keyToWord(data, fieldMapping) {
1632
+ var alwaysTrans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1633
+ var keyMap = new Map([]);
1634
+ for (var _i = 0, _Object$entries = Object.entries(fieldMapping); _i < _Object$entries.length; _i++) {
1635
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
1636
+ key = _Object$entries$_i[0],
1637
+ value = _Object$entries$_i[1];
1638
+ keyMap.set(key, value);
1639
+ }
1640
+ return data.map(function (item) {
1641
+ var obj = {};
1642
+ for (var _i2 = 0, _Object$entries2 = Object.entries(item); _i2 < _Object$entries2.length; _i2++) {
1643
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
1644
+ _key = _Object$entries2$_i[0],
1645
+ _value = _Object$entries2$_i[1];
1646
+ if (keyMap.has(_key)) {
1647
+ //@ts-ignore
1648
+ obj[keyMap.get(_key)] = _value;
1649
+ } else {
1650
+ if (alwaysTrans) {
1651
+ obj[_key] = _value;
1652
+ }
1653
+ }
1654
+ }
1655
+ return obj;
1656
+ });
1657
+ };
1658
+ /**---------------------数据写入excel-------结束------------------------*/
1659
+
1475
1660
  var FORMAT_TIME_STR = 'YYYY-MM-DD HH:mm:ss';
1476
1661
  var FORMAT_DAY_STR = 'YYYY-MM-DD';
1477
1662
  var FUNCTION_GET = 'GET';
@@ -2463,8 +2648,12 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2463
2648
  columnTitleCellRenderBefore: function columnTitleCellRenderBefore(columnAbc, postion, ctx) {
2464
2649
  if (columnAbc.name) {
2465
2650
  var charCode = columnAbc.name.charCodeAt();
2466
- if (charCode - 65 <= items.length) {
2467
- columnAbc.name = itemsTemp[charCode - 65] ? itemsTemp[charCode - 65].content : !notValid ? '校验结果' : '';
2651
+ var codeLen = 65 + 23 * (columnAbc.name.length - 1);
2652
+ if (charCode - codeLen <= items.length) {
2653
+ columnAbc.name = itemsTemp[charCode - codeLen] ? itemsTemp[charCode - codeLen].content : '';
2654
+ if (charCode - 65 === itemsTemp.length) {
2655
+ columnAbc.name = '校验结果';
2656
+ }
2468
2657
  } else {
2469
2658
  columnAbc.name = '';
2470
2659
  }
@@ -2514,13 +2703,6 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2514
2703
  defaultRowHeight: 20,
2515
2704
  defaultColWidth: 120,
2516
2705
  config: {},
2517
- // celldata:
2518
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
2519
- // "r": b,
2520
- // "c": d,
2521
- // "v": { "ct": { "fa": "@", "t": "s" }, }
2522
- // }))))
2523
- // ,
2524
2706
  celldata: data && data.length !== 0 ? data : ___default['default'].flattenDeep(Array.from({
2525
2707
  length: 100
2526
2708
  }).map(function (a, b) {
@@ -2682,7 +2864,10 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2682
2864
  });
2683
2865
  return obj;
2684
2866
  });
2685
- return data;
2867
+ // 解决 没有输入的行不要录入进去
2868
+ return data.filter(function (d) {
2869
+ return ___default['default'].compact(Object.values(d)).length;
2870
+ });
2686
2871
  };
2687
2872
  _this.resetData = function () {
2688
2873
  var _customerColumnsMappi;
@@ -2866,6 +3051,43 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2866
3051
  });
2867
3052
  }), provided.placeholder);
2868
3053
  }))));
3054
+ _this.getSheetMap = function () {
3055
+ var _this$props2 = _this.props,
3056
+ customerColumnsMapping = _this$props2.customerColumnsMapping,
3057
+ columns = _this$props2.columns;
3058
+ var sheetData = customerColumnsMapping || columns.map(function (s) {
3059
+ return {
3060
+ title: mapping.get(s),
3061
+ name: s
3062
+ };
3063
+ }) || [];
3064
+ var sheetMap = {};
3065
+ sheetData.forEach(function (item, index) {
3066
+ sheetMap[item.name] = item === null || item === void 0 ? void 0 : item.title;
3067
+ });
3068
+ return sheetMap;
3069
+ };
3070
+ _this.importExcelToLuckySheet = function (resultData) {
3071
+ var res = resultData || [];
3072
+ var sheetData = luckysheet.getSheetData();
3073
+ sheetData.map(function (item, index) {
3074
+ if (!(res === null || res === void 0 ? void 0 : res[index])) return item;
3075
+ var rowItem = res[index];
3076
+ item === null || item === void 0 ? void 0 : item.forEach(function (element, colIndex) {
3077
+ var _ref4;
3078
+ var colKey = (_ref4 = Object.keys(rowItem) || []) === null || _ref4 === void 0 ? void 0 : _ref4[colIndex];
3079
+ if (!(rowItem === null || rowItem === void 0 ? void 0 : rowItem[colKey])) return element;
3080
+ element.m = rowItem[colKey];
3081
+ element.v = rowItem[colKey];
3082
+ });
3083
+ });
3084
+ luckysheet.create(_this.setConfig(luckysheet.transToCellData(sheetData)));
3085
+ _this.setState({
3086
+ data: luckysheet.transToCellData(sheetData),
3087
+ errorListCheck: false,
3088
+ resultData: resultData
3089
+ });
3090
+ };
2869
3091
  _this.props.onRef(_this);
2870
3092
  var format = {
2871
3093
  fa: FORMAT_NAME_GENERAL,
@@ -2923,10 +3145,58 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2923
3145
  key: "render",
2924
3146
  value: function render() {
2925
3147
  var errorListCheck = this.state.errorListCheck;
2926
- var _this$props2 = this.props,
2927
- title = _this$props2.title,
2928
- notValid = _this$props2.notValid;
3148
+ var _this$props3 = this.props,
3149
+ title = _this$props3.title,
3150
+ notValid = _this$props3.notValid,
3151
+ notExcelImport = _this$props3.notExcelImport,
3152
+ excelImportConfig = _this$props3.excelImportConfig;
3153
+ var _ref5 = excelImportConfig || {},
3154
+ size = _ref5.size,
3155
+ accept = _ref5.accept,
3156
+ suffixRule = _ref5.suffixRule;
2929
3157
  var totalSummary = this.getCount();
3158
+ var sheetMap = this.getSheetMap();
3159
+ var callBackFun = this.importExcelToLuckySheet;
3160
+ var uploadProps = {
3161
+ name: 'file',
3162
+ action: '',
3163
+ headers: {},
3164
+ accept: accept || ['.xlsx', '.xls'],
3165
+ showUploadList: false,
3166
+ beforeUpload: function beforeUpload(file) {
3167
+ // 文件校验
3168
+ var extName = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
3169
+ if (size && file.size > size * 1024 * 1024) {
3170
+ antd.message.error("\u4E0A\u4F20\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7".concat(size, "M!"));
3171
+ return antd.Upload.LIST_IGNORE;
3172
+ }
3173
+ if (suffixRule && suffixRule.length > 0 && !suffixRule.includes(extName)) {
3174
+ antd.message.error("\u8BF7\u4E0A\u4F20".concat(suffixRule.toString(), "\u7B49\u683C\u5F0F\u7684\u6587\u4EF6!"));
3175
+ return antd.Upload.LIST_IGNORE;
3176
+ }
3177
+ return true;
3178
+ },
3179
+ onChange: function onChange(info) {
3180
+ var _Object$keys;
3181
+ if (!(sheetMap && ((_Object$keys = Object.keys(sheetMap)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length))) return;
3182
+ if (info.file.status !== 'uploading') {
3183
+ var _ref6 = info || {},
3184
+ file = _ref6.file,
3185
+ fileList = _ref6.fileList;
3186
+ readerXlsxToList(file, fileList, null, null, {
3187
+ callback: function callback(excelData) {
3188
+ callBackFun(excelData);
3189
+ },
3190
+ sheetMap: sheetMap
3191
+ });
3192
+ }
3193
+ if (info.file.status === 'done') {
3194
+ antd.message.success("".concat(info.file.name, " \u5DF2\u4E0A\u4F20\uFF0C\u8BF7\u68C0\u9A8C\u6570\u636E\u65E0\u8BEF\u540E\u4FDD\u5B58"));
3195
+ } else if (info.file.status === 'error') {
3196
+ antd.message.error("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25.\u8BF7\u91CD\u65B0\u4E0A\u4F20"));
3197
+ }
3198
+ }
3199
+ };
2930
3200
  var luckyCss = {
2931
3201
  margin: '0px',
2932
3202
  padding: '0px',
@@ -2944,7 +3214,7 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2944
3214
  placement: "bottomLeft"
2945
3215
  }, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(icons.ProfileTwoTone, null))), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
2946
3216
  title: /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "1\u3001\u62D6\u52A8\u6570\u636E\u9879\uFF0C\u4EE5\u9002\u914D\u6E90\u6570\u636E\u7684\u987A\u5E8F\uFF0C\u5982\u60A8Excel\u4E2D\u6570\u636E\u6392\u5E8F\u4F9D\u6B21\u4E3A\u7F16\u7801\u3001\u4EF7\u683C\u548C\u6570\u91CF\uFF0C\u5219\u60A8\u4E5F\u53EF\u4EE5\u5C06\u6570\u636E\u9879\u7684\u987A\u5E8F\u8C03\u6574\u4E3A\u4E00\u81F4"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "2\u3001\u590D\u5236\u6587\u4EF6\u6570\u636E\uFF08\u591A\u5217\u4E00\u8D77\uFF09\uFF0C\u5728\u6587\u672C\u6846\u5185\u8FDB\u884C\u7C98\u8D34"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "3\u3001\u70B9\u51FB\u8BC6\u522B\u6309\u94AE\u8FDB\u884C\u6570\u636E\u6821\u9A8C\uFF0C\u5982\u5168\u90E8\u6B63\u786E\uFF0C\u5219\u70B9\u51FB\u5F55\u5165\u6309\u94AE\u53EF\u5F55\u5165\u6570\u636E\uFF0C\u5982\u5B58\u5728\u9519\u8BEF\u6570\u636E\uFF0C\u5219\u9700\u4FEE\u6539\u540E\u518D\u8FDB\u884C\u5F55\u5165"))
2947
- }, /*#__PURE__*/React__default['default'].createElement(icons.ExclamationCircleOutlined, null))), /*#__PURE__*/React__default['default'].createElement(antd.Space, null, /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
3217
+ }, /*#__PURE__*/React__default['default'].createElement(icons.ExclamationCircleOutlined, null))), /*#__PURE__*/React__default['default'].createElement(antd.Space, null, !notExcelImport && ( /*#__PURE__*/React__default['default'].createElement(antd.Upload, _objectSpread2({}, uploadProps), /*#__PURE__*/React__default['default'].createElement(antd.Button, null, "\u5BFC\u5165"))), /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
2948
3218
  trigger: ['click'],
2949
3219
  overlay: this.menuList,
2950
3220
  placement: "bottomRight"
@@ -3057,8 +3327,9 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3057
3327
  columnTitleCellRenderBefore: function columnTitleCellRenderBefore(columnAbc, postion, ctx) {
3058
3328
  if (columnAbc.name) {
3059
3329
  var charCode = columnAbc.name.charCodeAt();
3060
- if (charCode - 65 <= items.length) {
3061
- columnAbc.name = itemsTemp$1[charCode - 65] ? itemsTemp$1[charCode - 65].content : !notValid ? '校验结果' : '';
3330
+ var codeLen = 65 + 23 * (columnAbc.name.length - 1);
3331
+ if (charCode - codeLen <= items.length) {
3332
+ columnAbc.name = itemsTemp$1[charCode - codeLen] ? itemsTemp$1[charCode - codeLen].content : !notValid ? '校验结果' : '';
3062
3333
  } else {
3063
3334
  columnAbc.name = '';
3064
3335
  }
@@ -3108,13 +3379,6 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3108
3379
  defaultRowHeight: 20,
3109
3380
  defaultColWidth: 120,
3110
3381
  config: {},
3111
- // celldata:
3112
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
3113
- // "r": b,
3114
- // "c": d,
3115
- // "v": { "ct": { "fa": "@", "t": "s" }, }
3116
- // }))))
3117
- // ,
3118
3382
  celldata: data && data.length !== 0 ? data : ___default['default'].flattenDeep(Array.from({
3119
3383
  length: 100
3120
3384
  }).map(function (a, b) {
@@ -3276,7 +3540,10 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3276
3540
  });
3277
3541
  return obj;
3278
3542
  });
3279
- return data;
3543
+ // 解决 没有输入的行不要录入进去
3544
+ return data.filter(function (d) {
3545
+ return ___default['default'].compact(Object.values(d)).length;
3546
+ });
3280
3547
  };
3281
3548
  _this.resetData = function () {
3282
3549
  var _customerColumnsMappi;
@@ -3460,6 +3727,43 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3460
3727
  });
3461
3728
  }), provided.placeholder);
3462
3729
  }))));
3730
+ _this.getSheetMap = function () {
3731
+ var _this$props2 = _this.props,
3732
+ customerColumnsMapping = _this$props2.customerColumnsMapping,
3733
+ columns = _this$props2.columns;
3734
+ var sheetData = customerColumnsMapping || columns.map(function (s) {
3735
+ return {
3736
+ title: mapping$1.get(s),
3737
+ name: s
3738
+ };
3739
+ }) || [];
3740
+ var sheetMap = {};
3741
+ sheetData.forEach(function (item, index) {
3742
+ sheetMap[item.name] = item === null || item === void 0 ? void 0 : item.title;
3743
+ });
3744
+ return sheetMap;
3745
+ };
3746
+ _this.importExcelToLuckySheet = function (resultData) {
3747
+ var res = resultData || [];
3748
+ var sheetData = luckysheet$1.getSheetData();
3749
+ sheetData.map(function (item, index) {
3750
+ if (!(res === null || res === void 0 ? void 0 : res[index])) return item;
3751
+ var rowItem = res[index];
3752
+ item === null || item === void 0 ? void 0 : item.forEach(function (element, colIndex) {
3753
+ var _ref4;
3754
+ var colKey = (_ref4 = Object.keys(rowItem) || []) === null || _ref4 === void 0 ? void 0 : _ref4[colIndex];
3755
+ if (!(rowItem === null || rowItem === void 0 ? void 0 : rowItem[colKey])) return element;
3756
+ element.m = rowItem[colKey];
3757
+ element.v = rowItem[colKey];
3758
+ });
3759
+ });
3760
+ luckysheet$1.create(_this.setConfig(luckysheet$1.transToCellData(sheetData)));
3761
+ _this.setState({
3762
+ data: luckysheet$1.transToCellData(sheetData),
3763
+ errorListCheck: false,
3764
+ resultData: resultData
3765
+ });
3766
+ };
3463
3767
  _this.props.onRef(_this);
3464
3768
  var format = {
3465
3769
  fa: FORMAT_NAME_GENERAL$1,
@@ -3517,10 +3821,58 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3517
3821
  key: "render",
3518
3822
  value: function render() {
3519
3823
  var errorListCheck = this.state.errorListCheck;
3520
- var _this$props2 = this.props,
3521
- title = _this$props2.title,
3522
- notValid = _this$props2.notValid;
3824
+ var _this$props3 = this.props,
3825
+ title = _this$props3.title,
3826
+ notValid = _this$props3.notValid,
3827
+ notExcelImport = _this$props3.notExcelImport,
3828
+ excelImportConfig = _this$props3.excelImportConfig;
3829
+ var _ref5 = excelImportConfig || {},
3830
+ size = _ref5.size,
3831
+ accept = _ref5.accept,
3832
+ suffixRule = _ref5.suffixRule;
3523
3833
  var totalSummary = this.getCount();
3834
+ var sheetMap = this.getSheetMap();
3835
+ var callBackFun = this.importExcelToLuckySheet;
3836
+ var uploadProps = {
3837
+ name: 'file',
3838
+ action: '',
3839
+ headers: {},
3840
+ accept: accept || ['.xlsx', '.xls'],
3841
+ showUploadList: false,
3842
+ beforeUpload: function beforeUpload(file) {
3843
+ // 文件校验
3844
+ var extName = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
3845
+ if (size && file.size > size * 1024 * 1024) {
3846
+ antd.message.error("\u4E0A\u4F20\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7".concat(size, "M!"));
3847
+ return antd.Upload.LIST_IGNORE;
3848
+ }
3849
+ if (suffixRule && suffixRule.length > 0 && !suffixRule.includes(extName)) {
3850
+ antd.message.error("\u8BF7\u4E0A\u4F20".concat(suffixRule.toString(), "\u7B49\u683C\u5F0F\u7684\u6587\u4EF6!"));
3851
+ return antd.Upload.LIST_IGNORE;
3852
+ }
3853
+ return true;
3854
+ },
3855
+ onChange: function onChange(info) {
3856
+ var _Object$keys;
3857
+ if (!(sheetMap && ((_Object$keys = Object.keys(sheetMap)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length))) return;
3858
+ if (info.file.status !== 'uploading') {
3859
+ var _ref6 = info || {},
3860
+ file = _ref6.file,
3861
+ fileList = _ref6.fileList;
3862
+ readerXlsxToList(file, fileList, null, null, {
3863
+ callback: function callback(excelData) {
3864
+ callBackFun(excelData);
3865
+ },
3866
+ sheetMap: sheetMap
3867
+ });
3868
+ }
3869
+ if (info.file.status === 'done') {
3870
+ antd.message.success("".concat(info.file.name, " \u5DF2\u4E0A\u4F20\uFF0C\u8BF7\u68C0\u9A8C\u6570\u636E\u65E0\u8BEF\u540E\u4FDD\u5B58"));
3871
+ } else if (info.file.status === 'error') {
3872
+ antd.message.error("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25.\u8BF7\u91CD\u65B0\u4E0A\u4F20"));
3873
+ }
3874
+ }
3875
+ };
3524
3876
  var luckyCss = {
3525
3877
  margin: '0px',
3526
3878
  padding: '0px',
@@ -3538,7 +3890,7 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3538
3890
  placement: "bottomLeft"
3539
3891
  }, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(icons.ProfileTwoTone, null))), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
3540
3892
  title: /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "1\u3001\u62D6\u52A8\u6570\u636E\u9879\uFF0C\u4EE5\u9002\u914D\u6E90\u6570\u636E\u7684\u987A\u5E8F\uFF0C\u5982\u60A8Excel\u4E2D\u6570\u636E\u6392\u5E8F\u4F9D\u6B21\u4E3A\u7F16\u7801\u3001\u4EF7\u683C\u548C\u6570\u91CF\uFF0C\u5219\u60A8\u4E5F\u53EF\u4EE5\u5C06\u6570\u636E\u9879\u7684\u987A\u5E8F\u8C03\u6574\u4E3A\u4E00\u81F4"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "2\u3001\u590D\u5236\u6587\u4EF6\u6570\u636E\uFF08\u591A\u5217\u4E00\u8D77\uFF09\uFF0C\u5728\u6587\u672C\u6846\u5185\u8FDB\u884C\u7C98\u8D34"), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", null, "3\u3001\u70B9\u51FB\u8BC6\u522B\u6309\u94AE\u8FDB\u884C\u6570\u636E\u6821\u9A8C\uFF0C\u5982\u5168\u90E8\u6B63\u786E\uFF0C\u5219\u70B9\u51FB\u5F55\u5165\u6309\u94AE\u53EF\u5F55\u5165\u6570\u636E\uFF0C\u5982\u5B58\u5728\u9519\u8BEF\u6570\u636E\uFF0C\u5219\u9700\u4FEE\u6539\u540E\u518D\u8FDB\u884C\u5F55\u5165"))
3541
- }, /*#__PURE__*/React__default['default'].createElement(icons.ExclamationCircleOutlined, null))), /*#__PURE__*/React__default['default'].createElement(antd.Space, null, /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
3893
+ }, /*#__PURE__*/React__default['default'].createElement(icons.ExclamationCircleOutlined, null))), /*#__PURE__*/React__default['default'].createElement(antd.Space, null, !notExcelImport && ( /*#__PURE__*/React__default['default'].createElement(antd.Upload, _objectSpread2({}, uploadProps), /*#__PURE__*/React__default['default'].createElement(antd.Button, null, "\u5BFC\u5165"))), /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
3542
3894
  trigger: ['click'],
3543
3895
  overlay: this.menuList,
3544
3896
  placement: "bottomRight"
@@ -8152,9 +8504,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
8152
8504
  }
8153
8505
  }
8154
8506
  }];
8155
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
8156
- formatSource(x, 0, 2, tableSearchForm);
8157
- formatSource(x, 1, 3, tableSearchForm);
8507
+ Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
8508
+ var firstElement = x === null || x === void 0 ? void 0 : x[0];
8509
+ var allList = firstElement && [firstElement, firstElement];
8510
+ formatSource(allList, 0, 2, tableSearchForm);
8511
+ formatSource(allList, 1, 3, tableSearchForm);
8158
8512
  });
8159
8513
  modalTableProps = _objectSpread2({
8160
8514
  modalTableTitle: '选择供应商',
@@ -9202,9 +9556,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
9202
9556
  }
9203
9557
  }
9204
9558
  }];
9205
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
9206
- formatSource(x, 0, 2, tableSearchForm);
9207
- formatSource(x, 1, 3, tableSearchForm);
9559
+ Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
9560
+ var firstElement = x === null || x === void 0 ? void 0 : x[0];
9561
+ var allList = firstElement && [firstElement, firstElement];
9562
+ formatSource(allList, 0, 2, tableSearchForm);
9563
+ formatSource(allList, 1, 3, tableSearchForm);
9208
9564
  });
9209
9565
  modalTableProps = _objectSpread2({
9210
9566
  modalTableTitle: '选择客户',
@@ -13448,9 +13804,14 @@ function matchRoute(path, routeObj, hideRouteObj) {
13448
13804
  // 检查是否为action路由
13449
13805
  var actionMatch = path.match(/.*\/action\/.*/);
13450
13806
  if (actionMatch) {
13807
+ var _routeObj$path$match$, _path$match;
13451
13808
  // 从hideRouteObj中进行全量匹配
13452
13809
  var matchedRoute = hideRouteObj[path];
13453
- return matchedRoute ? matchedRoute : null; // 如果找到匹配的路由则返回,否则返回null
13810
+ var regex = new RegExp("^(.*?)/action");
13811
+ var nameMap = (routeObj === null || routeObj === void 0 ? void 0 : (_routeObj$path$match$ = routeObj[path === null || path === void 0 ? void 0 : (_path$match = path.match(regex)) === null || _path$match === void 0 ? void 0 : _path$match[1]]) === null || _routeObj$path$match$ === void 0 ? void 0 : _routeObj$path$match$.nameMap) || []; // 去拿对应列表的nameMap
13812
+ return matchedRoute ? _objectSpread2(_objectSpread2({}, matchedRoute), {}, {
13813
+ nameMap: nameMap
13814
+ }) : null; // 如果找到匹配的路由则返回,否则返回null
13454
13815
  }
13455
13816
  // 检查是否为特殊路由(add/view/edit)
13456
13817
  var specialMatch = path.match(/(.*)(\/add(\/[^\/](.*))*|\/create(\/[^\/](.*))*|\/view\/([^\/](.*))+|\/edit\/([^\/](.*))+)$/);
@@ -13463,7 +13824,8 @@ function matchRoute(path, routeObj, hideRouteObj) {
13463
13824
  // 如果都不匹配,返回null
13464
13825
  return null;
13465
13826
  }
13466
- var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray) {
13827
+ var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray, _ref) {
13828
+ var pathToRegexp = _ref.pathToRegexp;
13467
13829
  var newPath = path.split('?')[0];
13468
13830
  var hideRouteObj = _defineProperty({}, newPath, hideRouteArray.find(function (itemRoute) {
13469
13831
  return pathToRegexp(itemRoute.path).test(newPath);
@@ -13595,7 +13957,12 @@ var DetailWrapper = /*#__PURE__*/React__default['default'].memo(function (_ref)
13595
13957
  return pathKey ? breadcrumbNameMap[pathKey] : undefined;
13596
13958
  };
13597
13959
  var getPageTitle = function getPageTitle(pathname) {
13598
- var currRouterData = matchParamsPath("".concat(basePath).concat(pathname), breadcrumbNameMap) || getDetailMatchRoute("".concat(basePath).concat(pathname), breadcrumbNameMap, []);
13960
+ var _ref3 = localStorage.getItem(getCommonInfoKey()) && JSON.parse(localStorage.getItem('commonInfo')) || {},
13961
+ _ref3$hideRouteArray = _ref3.hideRouteArray,
13962
+ hideRouteArray = _ref3$hideRouteArray === void 0 ? [] : _ref3$hideRouteArray;
13963
+ var currRouterData = matchParamsPath("".concat(basePath).concat(pathname), breadcrumbNameMap) || getDetailMatchRoute("".concat(basePath).concat(pathname), breadcrumbNameMap, hideRouteArray, {
13964
+ pathToRegexp: pathToRegexp
13965
+ });
13599
13966
  if (!currRouterData) {
13600
13967
  return '';
13601
13968
  }
@@ -34802,6 +35169,7 @@ exports.formatter = formatter;
34802
35169
  exports.getAccountID = getAccountID;
34803
35170
  exports.getAccountId = getAccountId;
34804
35171
  exports.getBreadcrumbNameMap = getBreadcrumbNameMap;
35172
+ exports.getCommonInfoKey = getCommonInfoKey;
34805
35173
  exports.getConfigTableColumns = getConfigTableColumns;
34806
35174
  exports.getCurrentTargetBgId = getCurrentTargetBgId;
34807
35175
  exports.getCurrentTenantId = getCurrentTenantId;
@@ -34848,11 +35216,13 @@ exports.handleUserPhone = handleUserPhone;
34848
35216
  exports.judgeIsEmpty = judgeIsEmpty;
34849
35217
  exports.judgeIsRequestError = judgeIsRequestError;
34850
35218
  exports.judgeIsRequestSuccess = judgeIsRequestSuccess;
35219
+ exports.keyToWord = keyToWord;
34851
35220
  exports.memoizeOneFormatter = memoizeOneFormatter;
34852
35221
  exports.noEmptyArr = noEmptyArr;
34853
35222
  exports.paramsControl = paramsControl;
34854
35223
  exports.precisionQuantity = precisionQuantity;
34855
35224
  exports.randomString = randomString;
35225
+ exports.readerXlsxToList = readerXlsxToList;
34856
35226
  exports.removeCurrentTenantId = removeCurrentTenantId;
34857
35227
  exports.removeTenantList = removeTenantList;
34858
35228
  exports.renderFixed2 = renderFixed2;
@@ -34869,3 +35239,4 @@ exports.updateGuanDate = updateGuanDate;
34869
35239
  exports.userColumns = userColumns$1;
34870
35240
  exports.userInfoCard = userInfoCard$1;
34871
35241
  exports.uuid = uuid;
35242
+ exports.writeListToXlsx = writeListToXlsx;
@@ -20,4 +20,5 @@ export declare const getLastKey: (prefix: any, key: string) => string;
20
20
  export declare const getLocalStorageSaveKey: (key: string, channel?: string) => string;
21
21
  export declare const getMenuAuthDataKey: (channel?: string) => string;
22
22
  export declare const getLimitMenuDataKey: (channel?: string) => string;
23
+ export declare const getCommonInfoKey: (channel?: string) => string;
23
24
  /******* 公用localstorage结束 *****/
@@ -7,6 +7,7 @@ declare const _default: {
7
7
  DICT_CODES: string;
8
8
  CHILD_APP_BACK: string;
9
9
  SEARCH_FIELDS_CONDITION: string;
10
+ COMMONINFO: string;
10
11
  };
11
12
  MAIN_AUTH_MAPPING: {
12
13
  '/config-project-front/': string;
@@ -3,6 +3,7 @@ import './checkUtils';
3
3
  import './LocalstorageUtils';
4
4
  import './utils';
5
5
  import './auth';
6
+ import './xlsxUtil';
6
7
  export * from './requestUtils';
7
8
  export * from './checkUtils';
8
9
  export * from './LocalstorageUtils';
@@ -12,3 +13,4 @@ export * from './LocalstorageUtils';
12
13
  export * from './TableUtils';
13
14
  export * from './businessUtils';
14
15
  export * from './utils';
16
+ export * from './xlsxUtil';