@bit-sun/business-component 3.1.4 → 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';
@@ -2518,13 +2703,6 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2518
2703
  defaultRowHeight: 20,
2519
2704
  defaultColWidth: 120,
2520
2705
  config: {},
2521
- // celldata:
2522
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
2523
- // "r": b,
2524
- // "c": d,
2525
- // "v": { "ct": { "fa": "@", "t": "s" }, }
2526
- // }))))
2527
- // ,
2528
2706
  celldata: data && data.length !== 0 ? data : ___default['default'].flattenDeep(Array.from({
2529
2707
  length: 100
2530
2708
  }).map(function (a, b) {
@@ -2686,7 +2864,10 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2686
2864
  });
2687
2865
  return obj;
2688
2866
  });
2689
- return data;
2867
+ // 解决 没有输入的行不要录入进去
2868
+ return data.filter(function (d) {
2869
+ return ___default['default'].compact(Object.values(d)).length;
2870
+ });
2690
2871
  };
2691
2872
  _this.resetData = function () {
2692
2873
  var _customerColumnsMappi;
@@ -2870,6 +3051,43 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2870
3051
  });
2871
3052
  }), provided.placeholder);
2872
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
+ };
2873
3091
  _this.props.onRef(_this);
2874
3092
  var format = {
2875
3093
  fa: FORMAT_NAME_GENERAL,
@@ -2927,10 +3145,58 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2927
3145
  key: "render",
2928
3146
  value: function render() {
2929
3147
  var errorListCheck = this.state.errorListCheck;
2930
- var _this$props2 = this.props,
2931
- title = _this$props2.title,
2932
- 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;
2933
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
+ };
2934
3200
  var luckyCss = {
2935
3201
  margin: '0px',
2936
3202
  padding: '0px',
@@ -2948,7 +3214,7 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2948
3214
  placement: "bottomLeft"
2949
3215
  }, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(icons.ProfileTwoTone, null))), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
2950
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"))
2951
- }, /*#__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, {
2952
3218
  trigger: ['click'],
2953
3219
  overlay: this.menuList,
2954
3220
  placement: "bottomRight"
@@ -3113,13 +3379,6 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3113
3379
  defaultRowHeight: 20,
3114
3380
  defaultColWidth: 120,
3115
3381
  config: {},
3116
- // celldata:
3117
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
3118
- // "r": b,
3119
- // "c": d,
3120
- // "v": { "ct": { "fa": "@", "t": "s" }, }
3121
- // }))))
3122
- // ,
3123
3382
  celldata: data && data.length !== 0 ? data : ___default['default'].flattenDeep(Array.from({
3124
3383
  length: 100
3125
3384
  }).map(function (a, b) {
@@ -3281,7 +3540,10 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3281
3540
  });
3282
3541
  return obj;
3283
3542
  });
3284
- return data;
3543
+ // 解决 没有输入的行不要录入进去
3544
+ return data.filter(function (d) {
3545
+ return ___default['default'].compact(Object.values(d)).length;
3546
+ });
3285
3547
  };
3286
3548
  _this.resetData = function () {
3287
3549
  var _customerColumnsMappi;
@@ -3465,12 +3727,48 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3465
3727
  });
3466
3728
  }), provided.placeholder);
3467
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
+ };
3468
3767
  _this.props.onRef(_this);
3469
3768
  var format = {
3470
3769
  fa: FORMAT_NAME_GENERAL$1,
3471
3770
  t: FORMAT_TYPE_STRING$1
3472
3771
  };
3473
- debugger;
3474
3772
  if (props === null || props === void 0 ? void 0 : (_props$customerColumn = props.customerColumnsMapping) === null || _props$customerColumn === void 0 ? void 0 : _props$customerColumn.length) {
3475
3773
  var _props$customerColumn2;
3476
3774
  itemsTemp$1 = (props === null || props === void 0 ? void 0 : (_props$customerColumn2 = props.customerColumnsMapping) === null || _props$customerColumn2 === void 0 ? void 0 : _props$customerColumn2.map(function (item, index) {
@@ -3483,7 +3781,6 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3483
3781
  return createItem$1('item-0', index, mapping$1.get(item), item, format);
3484
3782
  })) || [];
3485
3783
  }
3486
- console.log(itemsTemp$1, 'itemsTemp');
3487
3784
  luckysheet$1 = window.luckysheet || window.top.luckysheet;
3488
3785
  _this.state = {
3489
3786
  showErrorData: false,
@@ -3524,10 +3821,58 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3524
3821
  key: "render",
3525
3822
  value: function render() {
3526
3823
  var errorListCheck = this.state.errorListCheck;
3527
- var _this$props2 = this.props,
3528
- title = _this$props2.title,
3529
- 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;
3530
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
+ };
3531
3876
  var luckyCss = {
3532
3877
  margin: '0px',
3533
3878
  padding: '0px',
@@ -3545,7 +3890,7 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3545
3890
  placement: "bottomLeft"
3546
3891
  }, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(icons.ProfileTwoTone, null))), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
3547
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"))
3548
- }, /*#__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, {
3549
3894
  trigger: ['click'],
3550
3895
  overlay: this.menuList,
3551
3896
  placement: "bottomRight"
@@ -8159,9 +8504,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
8159
8504
  }
8160
8505
  }
8161
8506
  }];
8162
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
8163
- formatSource(x, 0, 2, tableSearchForm);
8164
- 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);
8165
8512
  });
8166
8513
  modalTableProps = _objectSpread2({
8167
8514
  modalTableTitle: '选择供应商',
@@ -9209,9 +9556,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
9209
9556
  }
9210
9557
  }
9211
9558
  }];
9212
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
9213
- formatSource(x, 0, 2, tableSearchForm);
9214
- 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);
9215
9564
  });
9216
9565
  modalTableProps = _objectSpread2({
9217
9566
  modalTableTitle: '选择客户',
@@ -13455,9 +13804,14 @@ function matchRoute(path, routeObj, hideRouteObj) {
13455
13804
  // 检查是否为action路由
13456
13805
  var actionMatch = path.match(/.*\/action\/.*/);
13457
13806
  if (actionMatch) {
13807
+ var _routeObj$path$match$, _path$match;
13458
13808
  // 从hideRouteObj中进行全量匹配
13459
13809
  var matchedRoute = hideRouteObj[path];
13460
- 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
13461
13815
  }
13462
13816
  // 检查是否为特殊路由(add/view/edit)
13463
13817
  var specialMatch = path.match(/(.*)(\/add(\/[^\/](.*))*|\/create(\/[^\/](.*))*|\/view\/([^\/](.*))+|\/edit\/([^\/](.*))+)$/);
@@ -13470,7 +13824,8 @@ function matchRoute(path, routeObj, hideRouteObj) {
13470
13824
  // 如果都不匹配,返回null
13471
13825
  return null;
13472
13826
  }
13473
- var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray) {
13827
+ var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray, _ref) {
13828
+ var pathToRegexp = _ref.pathToRegexp;
13474
13829
  var newPath = path.split('?')[0];
13475
13830
  var hideRouteObj = _defineProperty({}, newPath, hideRouteArray.find(function (itemRoute) {
13476
13831
  return pathToRegexp(itemRoute.path).test(newPath);
@@ -13602,7 +13957,12 @@ var DetailWrapper = /*#__PURE__*/React__default['default'].memo(function (_ref)
13602
13957
  return pathKey ? breadcrumbNameMap[pathKey] : undefined;
13603
13958
  };
13604
13959
  var getPageTitle = function getPageTitle(pathname) {
13605
- 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
+ });
13606
13966
  if (!currRouterData) {
13607
13967
  return '';
13608
13968
  }
@@ -34809,6 +35169,7 @@ exports.formatter = formatter;
34809
35169
  exports.getAccountID = getAccountID;
34810
35170
  exports.getAccountId = getAccountId;
34811
35171
  exports.getBreadcrumbNameMap = getBreadcrumbNameMap;
35172
+ exports.getCommonInfoKey = getCommonInfoKey;
34812
35173
  exports.getConfigTableColumns = getConfigTableColumns;
34813
35174
  exports.getCurrentTargetBgId = getCurrentTargetBgId;
34814
35175
  exports.getCurrentTenantId = getCurrentTenantId;
@@ -34855,11 +35216,13 @@ exports.handleUserPhone = handleUserPhone;
34855
35216
  exports.judgeIsEmpty = judgeIsEmpty;
34856
35217
  exports.judgeIsRequestError = judgeIsRequestError;
34857
35218
  exports.judgeIsRequestSuccess = judgeIsRequestSuccess;
35219
+ exports.keyToWord = keyToWord;
34858
35220
  exports.memoizeOneFormatter = memoizeOneFormatter;
34859
35221
  exports.noEmptyArr = noEmptyArr;
34860
35222
  exports.paramsControl = paramsControl;
34861
35223
  exports.precisionQuantity = precisionQuantity;
34862
35224
  exports.randomString = randomString;
35225
+ exports.readerXlsxToList = readerXlsxToList;
34863
35226
  exports.removeCurrentTenantId = removeCurrentTenantId;
34864
35227
  exports.removeTenantList = removeTenantList;
34865
35228
  exports.renderFixed2 = renderFixed2;
@@ -34876,3 +35239,4 @@ exports.updateGuanDate = updateGuanDate;
34876
35239
  exports.userColumns = userColumns$1;
34877
35240
  exports.userInfoCard = userInfoCard$1;
34878
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';
@@ -0,0 +1,6 @@
1
+ export declare const readerXlsxToList: (file: any, fileList: any, uploadRef?: any, done?: any, otherInfo?: any) => Promise<any>;
2
+ /**---------------------excel专程数据-------结束------------------------*/
3
+ /**---------------------数据写入excel-------开始------------------------*/
4
+ export declare const writeListToXlsx: (list: any[], fileName?: string) => void;
5
+ export declare const keyToWord: (data: any[], fieldMapping: any, alwaysTrans?: boolean) => any[];
6
+ /**---------------------数据写入excel-------结束------------------------*/