@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.
@@ -7,5 +7,7 @@ export declare const judgeIsEmpty: (value: any) => boolean;
7
7
  export declare const getMainCrumbNameMap: (menuData: any) => {};
8
8
  export declare const getModeTypeText: (path: any) => "编辑" | "查看" | "新增" | "--";
9
9
  export declare function matchRoute(path: any, routeObj: any, hideRouteObj: any): any;
10
- export declare const getDetailMatchRoute: (path: any, routeObj: any, hideRouteArray: any) => any;
10
+ export declare const getDetailMatchRoute: (path: any, routeObj: any, hideRouteArray: any, { pathToRegexp }: {
11
+ pathToRegexp: any;
12
+ }) => any;
11
13
  export {};
@@ -139,6 +139,8 @@ declare class DataImport extends React.Component {
139
139
  errorChange: (e: any) => void;
140
140
  menuList: React.JSX.Element;
141
141
  leftMenu: React.JSX.Element;
142
+ getSheetMap: () => {};
143
+ importExcelToLuckySheet: (resultData: any) => void;
142
144
  render(): React.JSX.Element;
143
145
  }
144
146
  export default DataImport;
@@ -139,6 +139,8 @@ declare class DataValidation extends React.Component {
139
139
  errorChange: (e: any) => void;
140
140
  menuList: React.JSX.Element;
141
141
  leftMenu: React.JSX.Element;
142
+ getSheetMap: () => {};
143
+ importExcelToLuckySheet: (resultData: any) => void;
142
144
  render(): React.JSX.Element;
143
145
  }
144
146
  export default DataValidation;
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import request$1 from 'umi-request';
3
3
  import cookie from 'js-cookie';
4
- import { message as message$1, Tooltip, Image, Popover, Card, Avatar, Badge, Menu, Input, InputNumber, Space, Button, Dropdown, Checkbox, Modal, Select, Form, Divider, Spin, Table, TreeSelect, Tag, Typography, Alert, Breadcrumb, Drawer as Drawer$1, List, Radio, Tree, Row, Col, Result, Tabs, Affix, Cascader, DatePicker, TimePicker, Switch } from 'antd';
4
+ import { message as message$1, Tooltip, Image, Popover, Card, Avatar, Badge, Menu, Input, InputNumber, Space, Button, Dropdown, Upload, Checkbox, Modal, Select, Form, Divider, Spin, Table, TreeSelect, Tag, Typography, Alert, Breadcrumb, Drawer as Drawer$1, List, Radio, Tree, Row, Col, Result, Tabs, Affix, Cascader, DatePicker, TimePicker, Switch } from 'antd';
5
5
  import _, { isNil, escapeRegExp, omit, debounce, cloneDeep as cloneDeep$1, throttle, isEmpty } from 'lodash';
6
6
  import memoizeOne from 'memoize-one';
7
7
  import { formatMessage, history, useLocation, Link, useModel, setLocale, useIntl } from 'umi';
@@ -11,6 +11,7 @@ import moment$1 from 'moment';
11
11
  import { EyeOutlined, DeleteOutlined, EditOutlined, CopyOutlined, CloseSquareOutlined, WarningOutlined, SendOutlined, ProfileTwoTone, ExclamationCircleOutlined, DownOutlined, UnorderedListOutlined, SearchOutlined, CaretLeftOutlined, CloseCircleOutlined, ArrowLeftOutlined, FolderOutlined, EllipsisOutlined, CaretDownOutlined, HomeOutlined, DoubleLeftOutlined, DoubleRightOutlined, MenuUnfoldOutlined, DashOutlined, SettingOutlined, BulbOutlined, PlayCircleOutlined, SaveOutlined, FullscreenExitOutlined, MinusCircleOutlined, PlusCircleOutlined } from '@ant-design/icons';
12
12
  import { request as request$2, Table as Table$1, QueryTable, Form as Form$1 } from 'bssula';
13
13
  import 'qs';
14
+ import { utils, writeFile, read } from 'xlsx';
14
15
  import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
15
16
  import { useDebounceFn, useSize, useMount } from 'ahooks';
16
17
  import { stringify } from 'querystring';
@@ -186,8 +187,8 @@ function _objectWithoutProperties(e, t) {
186
187
  r,
187
188
  i = _objectWithoutPropertiesLoose(e, t);
188
189
  if (Object.getOwnPropertySymbols) {
189
- var n = Object.getOwnPropertySymbols(e);
190
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
190
+ var s = Object.getOwnPropertySymbols(e);
191
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
191
192
  }
192
193
  return i;
193
194
  }
@@ -195,7 +196,7 @@ function _objectWithoutPropertiesLoose(r, e) {
195
196
  if (null == r) return {};
196
197
  var t = {};
197
198
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
198
- if (e.indexOf(n) >= 0) continue;
199
+ if (e.includes(n)) continue;
199
200
  t[n] = r[n];
200
201
  }
201
202
  return t;
@@ -560,7 +561,8 @@ var ENUM = {
560
561
  USER_INFO: 'userInfo',
561
562
  DICT_CODES: 'dicData',
562
563
  CHILD_APP_BACK: 'child_app_back',
563
- SEARCH_FIELDS_CONDITION: 'searchFieldsCondition' //表格搜索项信息缓存
564
+ SEARCH_FIELDS_CONDITION: 'searchFieldsCondition',
565
+ COMMONINFO: 'commonInfo' //通用信息
564
566
  },
565
567
  MAIN_AUTH_MAPPING: {
566
568
  '/config-project-front/': 'CONFIG_PC',
@@ -687,6 +689,10 @@ var getMenuAuthDataKey = function getMenuAuthDataKey(channel) {
687
689
  var getLimitMenuDataKey = function getLimitMenuDataKey(channel) {
688
690
  return getLocalStorageSaveKey(ENUM.BROWSER_CACHE.LIMIT_MENU_DATA, channel);
689
691
  };
692
+ // 公用数据存储/获取key
693
+ var getCommonInfoKey = function getCommonInfoKey(channel) {
694
+ return getLocalStorageSaveKey(ENUM.BROWSER_CACHE.COMMONINFO, channel);
695
+ };
690
696
  /******* 公用localstorage结束 *****/
691
697
 
692
698
  var resposne$1 = JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.USER_INFO) || '{}');
@@ -1449,6 +1455,185 @@ var shouldUseAuth = function shouldUseAuth() {
1449
1455
  return window.__POWERED_BY_WUJIE__ ? true : false;
1450
1456
  };
1451
1457
 
1458
+ /**---------------------excel专程数据-------开始------------------------*/
1459
+ var fieldMappingReverse = function fieldMappingReverse(sheetMap) {
1460
+ var obj = {};
1461
+ Object.entries(sheetMap).forEach(function (_ref) {
1462
+ var _ref2 = _slicedToArray(_ref, 2),
1463
+ key = _ref2[0],
1464
+ val = _ref2[1];
1465
+ // @ts-ignore
1466
+ obj[val] = key;
1467
+ });
1468
+ return obj;
1469
+ };
1470
+ // 把文件以二进制的方式读出来
1471
+ var analyseExcelToByte = function analyseExcelToByte(file) {
1472
+ return new Promise(function (resolve) {
1473
+ var reader = new FileReader();
1474
+ reader.readAsBinaryString(file);
1475
+ reader.onload = function (ev) {
1476
+ var _ev$target;
1477
+ resolve(ev === null || ev === void 0 ? void 0 : (_ev$target = ev.target) === null || _ev$target === void 0 ? void 0 : _ev$target.result);
1478
+ };
1479
+ });
1480
+ };
1481
+ // 把excel数据【数组对象:中文表头key,value即表格内容】转换成服务端需要的数据【数组对象:英文表头key---中文表头对应的英文,value即表格内容】
1482
+ var parseToServe = function parseToServe(outdata, revertChart) {
1483
+ var arrs = [];
1484
+ outdata.forEach(function (item, i) {
1485
+ var arr = [];
1486
+ item.forEach(function (ite) {
1487
+ var obj = {};
1488
+ for (var key in revertChart) {
1489
+ var target = revertChart;
1490
+ if (!Object.prototype.hasOwnProperty.call(target, key)) break;
1491
+ var v = target[key];
1492
+ // if (key === ''||!item[key]) break; //表头字段映射为空,不进行导出
1493
+ if (key && (ite[key] || ite[key] === 0)) {
1494
+ obj[v] = ite[key];
1495
+ }
1496
+ }
1497
+ arr.push(obj);
1498
+ });
1499
+ arrs.push(arr);
1500
+ });
1501
+ return arrs;
1502
+ };
1503
+ //读取excel表
1504
+ // sheepMap是表头字段中英文映射
1505
+ // sheetCount:表的数量,默认一张
1506
+ var resolveFile = /*#__PURE__*/function () {
1507
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
1508
+ var config,
1509
+ data,
1510
+ _args = arguments;
1511
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1512
+ while (1) switch (_context.prev = _context.next) {
1513
+ case 0:
1514
+ config = _args.length > 1 && _args[1] !== undefined ? _args[1] : {
1515
+ sheetMap: [],
1516
+ sheetCount: 1
1517
+ };
1518
+ _context.next = 3;
1519
+ return analyseExcelToByte(file);
1520
+ case 3:
1521
+ data = _context.sent;
1522
+ return _context.abrupt("return", new Promise(function (resolve, reject) {
1523
+ var workbook = read(data, {
1524
+ type: 'binary'
1525
+ });
1526
+ //根据sheet数量取出
1527
+ var sheetMapJsonList = _toConsumableArray(Array(config.sheetCount || 1)).map(function (ite, i) {
1528
+ var worksheets = workbook.Sheets[workbook.SheetNames[i]];
1529
+ return utils.sheet_to_json(worksheets);
1530
+ });
1531
+ var outdata = parseToServe(sheetMapJsonList, config.sheetMap);
1532
+ resolve(outdata);
1533
+ }));
1534
+ case 5:
1535
+ case "end":
1536
+ return _context.stop();
1537
+ }
1538
+ }, _callee);
1539
+ }));
1540
+ return function resolveFile(_x) {
1541
+ return _ref3.apply(this, arguments);
1542
+ };
1543
+ }();
1544
+ //读取文件
1545
+ var readerXlsxToList = /*#__PURE__*/function () {
1546
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file, fileList, uploadRef, done, otherInfo) {
1547
+ var _ref5, callback, sheetMap, data2, data;
1548
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1549
+ while (1) switch (_context2.prev = _context2.next) {
1550
+ case 0:
1551
+ _ref5 = otherInfo || {}, callback = _ref5.callback, sheetMap = _ref5.sheetMap;
1552
+ if (!(Array.isArray(fileList) && fileList.length > 0)) {
1553
+ _context2.next = 14;
1554
+ break;
1555
+ }
1556
+ _context2.next = 4;
1557
+ return resolveFile(file.originFileObj, {
1558
+ sheetMap: fieldMappingReverse(sheetMap),
1559
+ sheetCount: 1
1560
+ });
1561
+ case 4:
1562
+ data2 = _context2.sent;
1563
+ data = data2[0];
1564
+ if (data.length) {
1565
+ _context2.next = 9;
1566
+ break;
1567
+ }
1568
+ message$1.error("\u8BF7\u5148\u5F55\u5165\u6570\u636E\u518D\u5BFC\u5165");
1569
+ return _context2.abrupt("return");
1570
+ case 9:
1571
+ if (callback) callback(data);
1572
+ !callback && message$1.success("\u5BFC\u5165\u6210\u529F");
1573
+ return _context2.abrupt("return", data);
1574
+ case 14:
1575
+ message$1.error("\u8BF7\u9009\u62E9\u6587\u4EF6");
1576
+ return _context2.abrupt("return");
1577
+ case 16:
1578
+ case "end":
1579
+ return _context2.stop();
1580
+ }
1581
+ }, _callee2);
1582
+ }));
1583
+ return function readerXlsxToList(_x2, _x3, _x4, _x5, _x6) {
1584
+ return _ref4.apply(this, arguments);
1585
+ };
1586
+ }();
1587
+ /**---------------------excel专程数据-------结束------------------------*/
1588
+ /**---------------------数据写入excel-------开始------------------------*/
1589
+ //数据写入excel
1590
+ var writeListToXlsx = function writeListToXlsx(list) {
1591
+ var fileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '导出';
1592
+ // 创建工作薄
1593
+ var workbook = utils.book_new();
1594
+ // 利用XLSX的json_to_sheet工具将json数据转化为表
1595
+ var workSheet = utils.json_to_sheet(list);
1596
+ // 设置表格范围
1597
+ workSheet['!ref'] = "A1:AI".concat(list.length + 1);
1598
+ // 利用XLSX的book_append_sheet工具将表添加到excel文档中
1599
+ utils.book_append_sheet(workbook, workSheet, 'sheet0');
1600
+ // 执行数据转换文件写入
1601
+ writeFile(workbook, "".concat(fileName, ".xlsx"), {
1602
+ bookType: 'xlsx',
1603
+ bookSST: true,
1604
+ type: 'array'
1605
+ });
1606
+ };
1607
+ //字段转中文映射 alwaysTrans 为true就是如果在映射中找不到就按原样返回
1608
+ var keyToWord = function keyToWord(data, fieldMapping) {
1609
+ var alwaysTrans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1610
+ var keyMap = new Map([]);
1611
+ for (var _i = 0, _Object$entries = Object.entries(fieldMapping); _i < _Object$entries.length; _i++) {
1612
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
1613
+ key = _Object$entries$_i[0],
1614
+ value = _Object$entries$_i[1];
1615
+ keyMap.set(key, value);
1616
+ }
1617
+ return data.map(function (item) {
1618
+ var obj = {};
1619
+ for (var _i2 = 0, _Object$entries2 = Object.entries(item); _i2 < _Object$entries2.length; _i2++) {
1620
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
1621
+ _key = _Object$entries2$_i[0],
1622
+ _value = _Object$entries2$_i[1];
1623
+ if (keyMap.has(_key)) {
1624
+ //@ts-ignore
1625
+ obj[keyMap.get(_key)] = _value;
1626
+ } else {
1627
+ if (alwaysTrans) {
1628
+ obj[_key] = _value;
1629
+ }
1630
+ }
1631
+ }
1632
+ return obj;
1633
+ });
1634
+ };
1635
+ /**---------------------数据写入excel-------结束------------------------*/
1636
+
1452
1637
  var FORMAT_TIME_STR = 'YYYY-MM-DD HH:mm:ss';
1453
1638
  var FORMAT_DAY_STR = 'YYYY-MM-DD';
1454
1639
  var FUNCTION_GET = 'GET';
@@ -2440,8 +2625,12 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2440
2625
  columnTitleCellRenderBefore: function columnTitleCellRenderBefore(columnAbc, postion, ctx) {
2441
2626
  if (columnAbc.name) {
2442
2627
  var charCode = columnAbc.name.charCodeAt();
2443
- if (charCode - 65 <= items.length) {
2444
- columnAbc.name = itemsTemp[charCode - 65] ? itemsTemp[charCode - 65].content : !notValid ? '校验结果' : '';
2628
+ var codeLen = 65 + 23 * (columnAbc.name.length - 1);
2629
+ if (charCode - codeLen <= items.length) {
2630
+ columnAbc.name = itemsTemp[charCode - codeLen] ? itemsTemp[charCode - codeLen].content : '';
2631
+ if (charCode - 65 === itemsTemp.length) {
2632
+ columnAbc.name = '校验结果';
2633
+ }
2445
2634
  } else {
2446
2635
  columnAbc.name = '';
2447
2636
  }
@@ -2491,13 +2680,6 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2491
2680
  defaultRowHeight: 20,
2492
2681
  defaultColWidth: 120,
2493
2682
  config: {},
2494
- // celldata:
2495
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
2496
- // "r": b,
2497
- // "c": d,
2498
- // "v": { "ct": { "fa": "@", "t": "s" }, }
2499
- // }))))
2500
- // ,
2501
2683
  celldata: data && data.length !== 0 ? data : _.flattenDeep(Array.from({
2502
2684
  length: 100
2503
2685
  }).map(function (a, b) {
@@ -2659,7 +2841,10 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2659
2841
  });
2660
2842
  return obj;
2661
2843
  });
2662
- return data;
2844
+ // 解决 没有输入的行不要录入进去
2845
+ return data.filter(function (d) {
2846
+ return _.compact(Object.values(d)).length;
2847
+ });
2663
2848
  };
2664
2849
  _this.resetData = function () {
2665
2850
  var _customerColumnsMappi;
@@ -2843,6 +3028,43 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2843
3028
  });
2844
3029
  }), provided.placeholder);
2845
3030
  }))));
3031
+ _this.getSheetMap = function () {
3032
+ var _this$props2 = _this.props,
3033
+ customerColumnsMapping = _this$props2.customerColumnsMapping,
3034
+ columns = _this$props2.columns;
3035
+ var sheetData = customerColumnsMapping || columns.map(function (s) {
3036
+ return {
3037
+ title: mapping.get(s),
3038
+ name: s
3039
+ };
3040
+ }) || [];
3041
+ var sheetMap = {};
3042
+ sheetData.forEach(function (item, index) {
3043
+ sheetMap[item.name] = item === null || item === void 0 ? void 0 : item.title;
3044
+ });
3045
+ return sheetMap;
3046
+ };
3047
+ _this.importExcelToLuckySheet = function (resultData) {
3048
+ var res = resultData || [];
3049
+ var sheetData = luckysheet.getSheetData();
3050
+ sheetData.map(function (item, index) {
3051
+ if (!(res === null || res === void 0 ? void 0 : res[index])) return item;
3052
+ var rowItem = res[index];
3053
+ item === null || item === void 0 ? void 0 : item.forEach(function (element, colIndex) {
3054
+ var _ref4;
3055
+ var colKey = (_ref4 = Object.keys(rowItem) || []) === null || _ref4 === void 0 ? void 0 : _ref4[colIndex];
3056
+ if (!(rowItem === null || rowItem === void 0 ? void 0 : rowItem[colKey])) return element;
3057
+ element.m = rowItem[colKey];
3058
+ element.v = rowItem[colKey];
3059
+ });
3060
+ });
3061
+ luckysheet.create(_this.setConfig(luckysheet.transToCellData(sheetData)));
3062
+ _this.setState({
3063
+ data: luckysheet.transToCellData(sheetData),
3064
+ errorListCheck: false,
3065
+ resultData: resultData
3066
+ });
3067
+ };
2846
3068
  _this.props.onRef(_this);
2847
3069
  var format = {
2848
3070
  fa: FORMAT_NAME_GENERAL,
@@ -2900,10 +3122,58 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2900
3122
  key: "render",
2901
3123
  value: function render() {
2902
3124
  var errorListCheck = this.state.errorListCheck;
2903
- var _this$props2 = this.props,
2904
- title = _this$props2.title,
2905
- notValid = _this$props2.notValid;
3125
+ var _this$props3 = this.props,
3126
+ title = _this$props3.title,
3127
+ notValid = _this$props3.notValid,
3128
+ notExcelImport = _this$props3.notExcelImport,
3129
+ excelImportConfig = _this$props3.excelImportConfig;
3130
+ var _ref5 = excelImportConfig || {},
3131
+ size = _ref5.size,
3132
+ accept = _ref5.accept,
3133
+ suffixRule = _ref5.suffixRule;
2906
3134
  var totalSummary = this.getCount();
3135
+ var sheetMap = this.getSheetMap();
3136
+ var callBackFun = this.importExcelToLuckySheet;
3137
+ var uploadProps = {
3138
+ name: 'file',
3139
+ action: '',
3140
+ headers: {},
3141
+ accept: accept || ['.xlsx', '.xls'],
3142
+ showUploadList: false,
3143
+ beforeUpload: function beforeUpload(file) {
3144
+ // 文件校验
3145
+ var extName = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
3146
+ if (size && file.size > size * 1024 * 1024) {
3147
+ message$1.error("\u4E0A\u4F20\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7".concat(size, "M!"));
3148
+ return Upload.LIST_IGNORE;
3149
+ }
3150
+ if (suffixRule && suffixRule.length > 0 && !suffixRule.includes(extName)) {
3151
+ message$1.error("\u8BF7\u4E0A\u4F20".concat(suffixRule.toString(), "\u7B49\u683C\u5F0F\u7684\u6587\u4EF6!"));
3152
+ return Upload.LIST_IGNORE;
3153
+ }
3154
+ return true;
3155
+ },
3156
+ onChange: function onChange(info) {
3157
+ var _Object$keys;
3158
+ if (!(sheetMap && ((_Object$keys = Object.keys(sheetMap)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length))) return;
3159
+ if (info.file.status !== 'uploading') {
3160
+ var _ref6 = info || {},
3161
+ file = _ref6.file,
3162
+ fileList = _ref6.fileList;
3163
+ readerXlsxToList(file, fileList, null, null, {
3164
+ callback: function callback(excelData) {
3165
+ callBackFun(excelData);
3166
+ },
3167
+ sheetMap: sheetMap
3168
+ });
3169
+ }
3170
+ if (info.file.status === 'done') {
3171
+ message$1.success("".concat(info.file.name, " \u5DF2\u4E0A\u4F20\uFF0C\u8BF7\u68C0\u9A8C\u6570\u636E\u65E0\u8BEF\u540E\u4FDD\u5B58"));
3172
+ } else if (info.file.status === 'error') {
3173
+ message$1.error("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25.\u8BF7\u91CD\u65B0\u4E0A\u4F20"));
3174
+ }
3175
+ }
3176
+ };
2907
3177
  var luckyCss = {
2908
3178
  margin: '0px',
2909
3179
  padding: '0px',
@@ -2921,7 +3191,7 @@ var DataValidation = /*#__PURE__*/function (_React$Component) {
2921
3191
  placement: "bottomLeft"
2922
3192
  }, /*#__PURE__*/React$1.createElement("a", null, /*#__PURE__*/React$1.createElement(ProfileTwoTone, null))), /*#__PURE__*/React$1.createElement(Tooltip, {
2923
3193
  title: /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React$1.createElement("br", null), /*#__PURE__*/React$1.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$1.createElement("br", null), /*#__PURE__*/React$1.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$1.createElement("br", null), /*#__PURE__*/React$1.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"))
2924
- }, /*#__PURE__*/React$1.createElement(ExclamationCircleOutlined, null))), /*#__PURE__*/React$1.createElement(Space, null, /*#__PURE__*/React$1.createElement(Dropdown, {
3194
+ }, /*#__PURE__*/React$1.createElement(ExclamationCircleOutlined, null))), /*#__PURE__*/React$1.createElement(Space, null, !notExcelImport && ( /*#__PURE__*/React$1.createElement(Upload, _objectSpread2({}, uploadProps), /*#__PURE__*/React$1.createElement(Button, null, "\u5BFC\u5165"))), /*#__PURE__*/React$1.createElement(Dropdown, {
2925
3195
  trigger: ['click'],
2926
3196
  overlay: this.menuList,
2927
3197
  placement: "bottomRight"
@@ -3034,8 +3304,9 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3034
3304
  columnTitleCellRenderBefore: function columnTitleCellRenderBefore(columnAbc, postion, ctx) {
3035
3305
  if (columnAbc.name) {
3036
3306
  var charCode = columnAbc.name.charCodeAt();
3037
- if (charCode - 65 <= items.length) {
3038
- columnAbc.name = itemsTemp$1[charCode - 65] ? itemsTemp$1[charCode - 65].content : !notValid ? '校验结果' : '';
3307
+ var codeLen = 65 + 23 * (columnAbc.name.length - 1);
3308
+ if (charCode - codeLen <= items.length) {
3309
+ columnAbc.name = itemsTemp$1[charCode - codeLen] ? itemsTemp$1[charCode - codeLen].content : !notValid ? '校验结果' : '';
3039
3310
  } else {
3040
3311
  columnAbc.name = '';
3041
3312
  }
@@ -3085,13 +3356,6 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3085
3356
  defaultRowHeight: 20,
3086
3357
  defaultColWidth: 120,
3087
3358
  config: {},
3088
- // celldata:
3089
- // data && data.length !== 0 ? data : _.flattenDeep(Array.from({ length: 100 }).map((a, b) => Array.from({ length: 100 }).map((c, d) => ({
3090
- // "r": b,
3091
- // "c": d,
3092
- // "v": { "ct": { "fa": "@", "t": "s" }, }
3093
- // }))))
3094
- // ,
3095
3359
  celldata: data && data.length !== 0 ? data : _.flattenDeep(Array.from({
3096
3360
  length: 100
3097
3361
  }).map(function (a, b) {
@@ -3253,7 +3517,10 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3253
3517
  });
3254
3518
  return obj;
3255
3519
  });
3256
- return data;
3520
+ // 解决 没有输入的行不要录入进去
3521
+ return data.filter(function (d) {
3522
+ return _.compact(Object.values(d)).length;
3523
+ });
3257
3524
  };
3258
3525
  _this.resetData = function () {
3259
3526
  var _customerColumnsMappi;
@@ -3437,6 +3704,43 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3437
3704
  });
3438
3705
  }), provided.placeholder);
3439
3706
  }))));
3707
+ _this.getSheetMap = function () {
3708
+ var _this$props2 = _this.props,
3709
+ customerColumnsMapping = _this$props2.customerColumnsMapping,
3710
+ columns = _this$props2.columns;
3711
+ var sheetData = customerColumnsMapping || columns.map(function (s) {
3712
+ return {
3713
+ title: mapping$1.get(s),
3714
+ name: s
3715
+ };
3716
+ }) || [];
3717
+ var sheetMap = {};
3718
+ sheetData.forEach(function (item, index) {
3719
+ sheetMap[item.name] = item === null || item === void 0 ? void 0 : item.title;
3720
+ });
3721
+ return sheetMap;
3722
+ };
3723
+ _this.importExcelToLuckySheet = function (resultData) {
3724
+ var res = resultData || [];
3725
+ var sheetData = luckysheet$1.getSheetData();
3726
+ sheetData.map(function (item, index) {
3727
+ if (!(res === null || res === void 0 ? void 0 : res[index])) return item;
3728
+ var rowItem = res[index];
3729
+ item === null || item === void 0 ? void 0 : item.forEach(function (element, colIndex) {
3730
+ var _ref4;
3731
+ var colKey = (_ref4 = Object.keys(rowItem) || []) === null || _ref4 === void 0 ? void 0 : _ref4[colIndex];
3732
+ if (!(rowItem === null || rowItem === void 0 ? void 0 : rowItem[colKey])) return element;
3733
+ element.m = rowItem[colKey];
3734
+ element.v = rowItem[colKey];
3735
+ });
3736
+ });
3737
+ luckysheet$1.create(_this.setConfig(luckysheet$1.transToCellData(sheetData)));
3738
+ _this.setState({
3739
+ data: luckysheet$1.transToCellData(sheetData),
3740
+ errorListCheck: false,
3741
+ resultData: resultData
3742
+ });
3743
+ };
3440
3744
  _this.props.onRef(_this);
3441
3745
  var format = {
3442
3746
  fa: FORMAT_NAME_GENERAL$1,
@@ -3494,10 +3798,58 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3494
3798
  key: "render",
3495
3799
  value: function render() {
3496
3800
  var errorListCheck = this.state.errorListCheck;
3497
- var _this$props2 = this.props,
3498
- title = _this$props2.title,
3499
- notValid = _this$props2.notValid;
3801
+ var _this$props3 = this.props,
3802
+ title = _this$props3.title,
3803
+ notValid = _this$props3.notValid,
3804
+ notExcelImport = _this$props3.notExcelImport,
3805
+ excelImportConfig = _this$props3.excelImportConfig;
3806
+ var _ref5 = excelImportConfig || {},
3807
+ size = _ref5.size,
3808
+ accept = _ref5.accept,
3809
+ suffixRule = _ref5.suffixRule;
3500
3810
  var totalSummary = this.getCount();
3811
+ var sheetMap = this.getSheetMap();
3812
+ var callBackFun = this.importExcelToLuckySheet;
3813
+ var uploadProps = {
3814
+ name: 'file',
3815
+ action: '',
3816
+ headers: {},
3817
+ accept: accept || ['.xlsx', '.xls'],
3818
+ showUploadList: false,
3819
+ beforeUpload: function beforeUpload(file) {
3820
+ // 文件校验
3821
+ var extName = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
3822
+ if (size && file.size > size * 1024 * 1024) {
3823
+ message$1.error("\u4E0A\u4F20\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7".concat(size, "M!"));
3824
+ return Upload.LIST_IGNORE;
3825
+ }
3826
+ if (suffixRule && suffixRule.length > 0 && !suffixRule.includes(extName)) {
3827
+ message$1.error("\u8BF7\u4E0A\u4F20".concat(suffixRule.toString(), "\u7B49\u683C\u5F0F\u7684\u6587\u4EF6!"));
3828
+ return Upload.LIST_IGNORE;
3829
+ }
3830
+ return true;
3831
+ },
3832
+ onChange: function onChange(info) {
3833
+ var _Object$keys;
3834
+ if (!(sheetMap && ((_Object$keys = Object.keys(sheetMap)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length))) return;
3835
+ if (info.file.status !== 'uploading') {
3836
+ var _ref6 = info || {},
3837
+ file = _ref6.file,
3838
+ fileList = _ref6.fileList;
3839
+ readerXlsxToList(file, fileList, null, null, {
3840
+ callback: function callback(excelData) {
3841
+ callBackFun(excelData);
3842
+ },
3843
+ sheetMap: sheetMap
3844
+ });
3845
+ }
3846
+ if (info.file.status === 'done') {
3847
+ message$1.success("".concat(info.file.name, " \u5DF2\u4E0A\u4F20\uFF0C\u8BF7\u68C0\u9A8C\u6570\u636E\u65E0\u8BEF\u540E\u4FDD\u5B58"));
3848
+ } else if (info.file.status === 'error') {
3849
+ message$1.error("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25.\u8BF7\u91CD\u65B0\u4E0A\u4F20"));
3850
+ }
3851
+ }
3852
+ };
3501
3853
  var luckyCss = {
3502
3854
  margin: '0px',
3503
3855
  padding: '0px',
@@ -3515,7 +3867,7 @@ var DataImport = /*#__PURE__*/function (_React$Component) {
3515
3867
  placement: "bottomLeft"
3516
3868
  }, /*#__PURE__*/React$1.createElement("a", null, /*#__PURE__*/React$1.createElement(ProfileTwoTone, null))), /*#__PURE__*/React$1.createElement(Tooltip, {
3517
3869
  title: /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React$1.createElement("br", null), /*#__PURE__*/React$1.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$1.createElement("br", null), /*#__PURE__*/React$1.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$1.createElement("br", null), /*#__PURE__*/React$1.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"))
3518
- }, /*#__PURE__*/React$1.createElement(ExclamationCircleOutlined, null))), /*#__PURE__*/React$1.createElement(Space, null, /*#__PURE__*/React$1.createElement(Dropdown, {
3870
+ }, /*#__PURE__*/React$1.createElement(ExclamationCircleOutlined, null))), /*#__PURE__*/React$1.createElement(Space, null, !notExcelImport && ( /*#__PURE__*/React$1.createElement(Upload, _objectSpread2({}, uploadProps), /*#__PURE__*/React$1.createElement(Button, null, "\u5BFC\u5165"))), /*#__PURE__*/React$1.createElement(Dropdown, {
3519
3871
  trigger: ['click'],
3520
3872
  overlay: this.menuList,
3521
3873
  placement: "bottomRight"
@@ -8129,9 +8481,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
8129
8481
  }
8130
8482
  }
8131
8483
  }];
8132
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
8133
- formatSource(x, 0, 2, tableSearchForm);
8134
- formatSource(x, 1, 3, tableSearchForm);
8484
+ Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
8485
+ var firstElement = x === null || x === void 0 ? void 0 : x[0];
8486
+ var allList = firstElement && [firstElement, firstElement];
8487
+ formatSource(allList, 0, 2, tableSearchForm);
8488
+ formatSource(allList, 1, 3, tableSearchForm);
8135
8489
  });
8136
8490
  modalTableProps = _objectSpread2({
8137
8491
  modalTableTitle: '选择供应商',
@@ -9179,9 +9533,11 @@ function commonFun(type, prefixUrl, requestConfigProp, modalTableBusProps, hidde
9179
9533
  }
9180
9534
  }
9181
9535
  }];
9182
- Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {}), loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
9183
- formatSource(x, 0, 2, tableSearchForm);
9184
- formatSource(x, 1, 3, tableSearchForm);
9536
+ Promise.all([loadSelectSource$1("".concat(prefixUrl.formSelectFix, "/org/listNoPage"), {})]).then(function (x) {
9537
+ var firstElement = x === null || x === void 0 ? void 0 : x[0];
9538
+ var allList = firstElement && [firstElement, firstElement];
9539
+ formatSource(allList, 0, 2, tableSearchForm);
9540
+ formatSource(allList, 1, 3, tableSearchForm);
9185
9541
  });
9186
9542
  modalTableProps = _objectSpread2({
9187
9543
  modalTableTitle: '选择客户',
@@ -13425,9 +13781,14 @@ function matchRoute(path, routeObj, hideRouteObj) {
13425
13781
  // 检查是否为action路由
13426
13782
  var actionMatch = path.match(/.*\/action\/.*/);
13427
13783
  if (actionMatch) {
13784
+ var _routeObj$path$match$, _path$match;
13428
13785
  // 从hideRouteObj中进行全量匹配
13429
13786
  var matchedRoute = hideRouteObj[path];
13430
- return matchedRoute ? matchedRoute : null; // 如果找到匹配的路由则返回,否则返回null
13787
+ var regex = new RegExp("^(.*?)/action");
13788
+ 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
13789
+ return matchedRoute ? _objectSpread2(_objectSpread2({}, matchedRoute), {}, {
13790
+ nameMap: nameMap
13791
+ }) : null; // 如果找到匹配的路由则返回,否则返回null
13431
13792
  }
13432
13793
  // 检查是否为特殊路由(add/view/edit)
13433
13794
  var specialMatch = path.match(/(.*)(\/add(\/[^\/](.*))*|\/create(\/[^\/](.*))*|\/view\/([^\/](.*))+|\/edit\/([^\/](.*))+)$/);
@@ -13440,7 +13801,8 @@ function matchRoute(path, routeObj, hideRouteObj) {
13440
13801
  // 如果都不匹配,返回null
13441
13802
  return null;
13442
13803
  }
13443
- var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray) {
13804
+ var getDetailMatchRoute = function getDetailMatchRoute(path, routeObj, hideRouteArray, _ref) {
13805
+ var pathToRegexp = _ref.pathToRegexp;
13444
13806
  var newPath = path.split('?')[0];
13445
13807
  var hideRouteObj = _defineProperty({}, newPath, hideRouteArray.find(function (itemRoute) {
13446
13808
  return pathToRegexp(itemRoute.path).test(newPath);
@@ -13572,7 +13934,12 @@ var DetailWrapper = /*#__PURE__*/React$1.memo(function (_ref) {
13572
13934
  return pathKey ? breadcrumbNameMap[pathKey] : undefined;
13573
13935
  };
13574
13936
  var getPageTitle = function getPageTitle(pathname) {
13575
- var currRouterData = matchParamsPath("".concat(basePath).concat(pathname), breadcrumbNameMap) || getDetailMatchRoute("".concat(basePath).concat(pathname), breadcrumbNameMap, []);
13937
+ var _ref3 = localStorage.getItem(getCommonInfoKey()) && JSON.parse(localStorage.getItem('commonInfo')) || {},
13938
+ _ref3$hideRouteArray = _ref3.hideRouteArray,
13939
+ hideRouteArray = _ref3$hideRouteArray === void 0 ? [] : _ref3$hideRouteArray;
13940
+ var currRouterData = matchParamsPath("".concat(basePath).concat(pathname), breadcrumbNameMap) || getDetailMatchRoute("".concat(basePath).concat(pathname), breadcrumbNameMap, hideRouteArray, {
13941
+ pathToRegexp: pathToRegexp
13942
+ });
13576
13943
  if (!currRouterData) {
13577
13944
  return '';
13578
13945
  }
@@ -34736,4 +35103,4 @@ var index$7 = /*#__PURE__*/forwardRef(function (props, ref) {
34736
35103
  })));
34737
35104
  });
34738
35105
 
34739
- export { AddSelect, AddSkcSelect, AddSkuSelect, AddSpuSelect, AuthButton, BillEntry, BsCascader, index$5 as BsLayout, BsSulaQueryTable, BusinessSearchSelect$1 as BusinessSearchSelect, BusinessTreeSearchSelect$1 as BusinessTreeSearchSelect, index$1 as CheckOneUser, ColumnSettingTable, ColumnsEdit, CommodityEntry, DataImport, DataValidation, index$3 as DetailPageWrapper, EllipsisTooltip, ExportIcon, GuideWrapper, HandleTotalCount, index$4 as HomePageWrapper, JsonQueryTable, index$6 as MoreTreeTable, QueryMutipleInput, RuleObjectComponent as RuleComponent, index$7 as RuleSetter, SearchSelect, index$2 as StateFlow, ColumnSettingSulaTable as SulaColumnSettingTable, TableColumnSetting, TreeSearchSelect, authFunc, calculateValidPeriod, checkQuantityAccuracy, createUniqID, downloadExcel, ergodicMenuRoutes, formatter, getAccountID, getAccountId, getBreadcrumbNameMap, getConfigTableColumns, getCurrentTargetBgId, getCurrentTenantId, getDictionarySource, getDictionaryTextByValue, getEmployeeCode, getEmployeeId, getItemDefaultWidth$1 as getItemDefaultWidth, getJoinDictionaryText, getLastKey, getLimitMenuDataKey, getLocalStorageSaveKey, getMenuAuthDataKey, getSessionId, getSkuImg, getTenantList, getUserId, getUserName, go2BackAndClose, handleAntdColumnsSpecialParams, handleBaseUrlPre, handleBeforeUpload, handleBssulaColumnsSpecialParams, handleCommonTimeRender$1 as handleCommonTimeRender, handleError, handleExport, handleExportBarCode, handleJudgeAuthButtons, handleOssUrl, handleRequestAuthHeader, handleRequestUrl, handleStatusBadge, handleTextBreakSpaces, handleTextDouble$1 as handleTextDouble, handleTextDoubleOrId, handleTextLineFeed$1 as handleTextLineFeed, handleTextOverflow$1 as handleTextOverflow, handleTextTooltip, handleTextWarp, handleTextWarpCustom, handleTooltip$1 as handleTooltip, handleTooltipHours$1 as handleTooltipHours, handleUserPhone, judgeIsEmpty, judgeIsRequestError, judgeIsRequestSuccess, memoizeOneFormatter, noEmptyArr, paramsControl, precisionQuantity, randomString, removeCurrentTenantId, removeTenantList, renderFixed2, renderNumberText, saveCurrentTenantId, saveTenantList, setConfigTableColumns, shouldUseAuth, socketFunctions, sulaTableRenderTooltip, tableColumnsImage$1 as tableColumnsImage, textIcon, updateGuanDate, userColumns$1 as userColumns, userInfoCard$1 as userInfoCard, uuid };
35106
+ export { AddSelect, AddSkcSelect, AddSkuSelect, AddSpuSelect, AuthButton, BillEntry, BsCascader, index$5 as BsLayout, BsSulaQueryTable, BusinessSearchSelect$1 as BusinessSearchSelect, BusinessTreeSearchSelect$1 as BusinessTreeSearchSelect, index$1 as CheckOneUser, ColumnSettingTable, ColumnsEdit, CommodityEntry, DataImport, DataValidation, index$3 as DetailPageWrapper, EllipsisTooltip, ExportIcon, GuideWrapper, HandleTotalCount, index$4 as HomePageWrapper, JsonQueryTable, index$6 as MoreTreeTable, QueryMutipleInput, RuleObjectComponent as RuleComponent, index$7 as RuleSetter, SearchSelect, index$2 as StateFlow, ColumnSettingSulaTable as SulaColumnSettingTable, TableColumnSetting, TreeSearchSelect, authFunc, calculateValidPeriod, checkQuantityAccuracy, createUniqID, downloadExcel, ergodicMenuRoutes, formatter, getAccountID, getAccountId, getBreadcrumbNameMap, getCommonInfoKey, getConfigTableColumns, getCurrentTargetBgId, getCurrentTenantId, getDictionarySource, getDictionaryTextByValue, getEmployeeCode, getEmployeeId, getItemDefaultWidth$1 as getItemDefaultWidth, getJoinDictionaryText, getLastKey, getLimitMenuDataKey, getLocalStorageSaveKey, getMenuAuthDataKey, getSessionId, getSkuImg, getTenantList, getUserId, getUserName, go2BackAndClose, handleAntdColumnsSpecialParams, handleBaseUrlPre, handleBeforeUpload, handleBssulaColumnsSpecialParams, handleCommonTimeRender$1 as handleCommonTimeRender, handleError, handleExport, handleExportBarCode, handleJudgeAuthButtons, handleOssUrl, handleRequestAuthHeader, handleRequestUrl, handleStatusBadge, handleTextBreakSpaces, handleTextDouble$1 as handleTextDouble, handleTextDoubleOrId, handleTextLineFeed$1 as handleTextLineFeed, handleTextOverflow$1 as handleTextOverflow, handleTextTooltip, handleTextWarp, handleTextWarpCustom, handleTooltip$1 as handleTooltip, handleTooltipHours$1 as handleTooltipHours, handleUserPhone, judgeIsEmpty, judgeIsRequestError, judgeIsRequestSuccess, keyToWord, memoizeOneFormatter, noEmptyArr, paramsControl, precisionQuantity, randomString, readerXlsxToList, removeCurrentTenantId, removeTenantList, renderFixed2, renderNumberText, saveCurrentTenantId, saveTenantList, setConfigTableColumns, shouldUseAuth, socketFunctions, sulaTableRenderTooltip, tableColumnsImage$1 as tableColumnsImage, textIcon, updateGuanDate, userColumns$1 as userColumns, userInfoCard$1 as userInfoCard, uuid, writeListToXlsx };