@bit-sun/business-component 1.0.0 → 1.0.2
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/{SheetTable → DataValidation}/index.d.ts +6 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +137 -65
- package/dist/index.js +137 -64
- package/package.json +2 -2
- package/src/{SheetTable → DataValidation}/index.less +0 -0
- package/src/{SheetTable → DataValidation}/index.md +3 -3
- package/src/{SheetTable → DataValidation}/index.tsx +110 -90
- package/src/index.ts +8 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import 'antd/dist/antd.css';
|
|
3
3
|
import './index.less';
|
|
4
|
-
declare class
|
|
4
|
+
declare class DataValidation extends React.Component {
|
|
5
5
|
constructor(props: any);
|
|
6
6
|
onDragEnd(result: any): void;
|
|
7
7
|
getCount: () => {
|
|
@@ -128,6 +128,10 @@ declare class Luckysheet extends React.Component {
|
|
|
128
128
|
};
|
|
129
129
|
componentDidMount(): void;
|
|
130
130
|
componentWillUnmount(): void;
|
|
131
|
+
getValidateData: () => {
|
|
132
|
+
successData: any;
|
|
133
|
+
failData: any;
|
|
134
|
+
};
|
|
131
135
|
getData: () => any;
|
|
132
136
|
resetData: () => void;
|
|
133
137
|
filterData: (type: string) => void;
|
|
@@ -138,4 +142,4 @@ declare class Luckysheet extends React.Component {
|
|
|
138
142
|
leftMenu: JSX.Element;
|
|
139
143
|
render(): JSX.Element;
|
|
140
144
|
}
|
|
141
|
-
export default
|
|
145
|
+
export default DataValidation;
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as DataValidation } from './DataValidation';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
1
2
|
import React, { createContext, useContext, useEffect, forwardRef, createElement } from 'react';
|
|
2
|
-
import { Menu, Space, Card,
|
|
3
|
+
import { message, Menu, Space, Card, Dropdown, Tooltip, Button, Checkbox } from 'antd';
|
|
3
4
|
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
|
|
4
5
|
import 'antd/dist/antd.css';
|
|
5
6
|
import classNames from 'classnames';
|
|
@@ -123,6 +124,42 @@ function _isNativeReflectConstruct() {
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
128
|
+
if (source == null) return {};
|
|
129
|
+
var target = {};
|
|
130
|
+
var sourceKeys = Object.keys(source);
|
|
131
|
+
var key, i;
|
|
132
|
+
|
|
133
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
134
|
+
key = sourceKeys[i];
|
|
135
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
136
|
+
target[key] = source[key];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return target;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function _objectWithoutProperties(source, excluded) {
|
|
143
|
+
if (source == null) return {};
|
|
144
|
+
|
|
145
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
146
|
+
|
|
147
|
+
var key, i;
|
|
148
|
+
|
|
149
|
+
if (Object.getOwnPropertySymbols) {
|
|
150
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
151
|
+
|
|
152
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
153
|
+
key = sourceSymbolKeys[i];
|
|
154
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
155
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
156
|
+
target[key] = source[key];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return target;
|
|
161
|
+
}
|
|
162
|
+
|
|
126
163
|
function _assertThisInitialized(self) {
|
|
127
164
|
if (self === void 0) {
|
|
128
165
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -160,10 +197,6 @@ function _createSuper(Derived) {
|
|
|
160
197
|
};
|
|
161
198
|
}
|
|
162
199
|
|
|
163
|
-
function _readOnlyError(name) {
|
|
164
|
-
throw new TypeError("\"" + name + "\" is read-only");
|
|
165
|
-
}
|
|
166
|
-
|
|
167
200
|
function _slicedToArray(arr, i) {
|
|
168
201
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
169
202
|
}
|
|
@@ -355,7 +388,7 @@ function _slicedToArray$1(arr, i) {
|
|
|
355
388
|
return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
|
|
356
389
|
}
|
|
357
390
|
|
|
358
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
391
|
+
function _objectWithoutPropertiesLoose$1(source, excluded) {
|
|
359
392
|
if (source == null) return {};
|
|
360
393
|
var target = {};
|
|
361
394
|
var sourceKeys = Object.keys(source);
|
|
@@ -370,9 +403,9 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
370
403
|
return target;
|
|
371
404
|
}
|
|
372
405
|
|
|
373
|
-
function _objectWithoutProperties(source, excluded) {
|
|
406
|
+
function _objectWithoutProperties$1(source, excluded) {
|
|
374
407
|
if (source == null) return {};
|
|
375
|
-
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
408
|
+
var target = _objectWithoutPropertiesLoose$1(source, excluded);
|
|
376
409
|
var key, i;
|
|
377
410
|
|
|
378
411
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -1377,7 +1410,7 @@ var IconBase = function IconBase(props) {
|
|
|
1377
1410
|
style = props.style,
|
|
1378
1411
|
primaryColor = props.primaryColor,
|
|
1379
1412
|
secondaryColor = props.secondaryColor,
|
|
1380
|
-
restProps = _objectWithoutProperties(props, _excluded);
|
|
1413
|
+
restProps = _objectWithoutProperties$1(props, _excluded);
|
|
1381
1414
|
|
|
1382
1415
|
var colors = twoToneColorPalette;
|
|
1383
1416
|
|
|
@@ -1454,7 +1487,7 @@ var Icon = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
1454
1487
|
tabIndex = props.tabIndex,
|
|
1455
1488
|
onClick = props.onClick,
|
|
1456
1489
|
twoToneColor = props.twoToneColor,
|
|
1457
|
-
restProps = _objectWithoutProperties(props, _excluded$1);
|
|
1490
|
+
restProps = _objectWithoutProperties$1(props, _excluded$1);
|
|
1458
1491
|
|
|
1459
1492
|
var _React$useContext = useContext(IconContext),
|
|
1460
1493
|
_React$useContext$pre = _React$useContext.prefixCls,
|
|
@@ -1578,8 +1611,16 @@ function styleInject(css, ref) {
|
|
|
1578
1611
|
var css_248z = ".luckysheet {\n overflow: hidden;\n}\n.luckysheet .luckysheet-work-area.luckysheet-noselected-text {\n display: none;\n}\n.sheet_table_top {\n height: 50px;\n background: #f2f2f2;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 20px;\n border: 1px solid #d8d8d8;\n}\n.sheet_table_top .menu_item_text {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sheet_table_footer {\n height: 50px;\n background: #f2f2f2;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 20px;\n border: 1px solid #d8d8d8;\n}\n.sheet_table_text {\n color: #8f8f8f;\n}\n.sheet_table_dnd_text {\n background: #f2f2f2;\n border: 1px solid #d8d8d8;\n display: inline-block;\n width: 100px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n";
|
|
1579
1612
|
styleInject(css_248z);
|
|
1580
1613
|
|
|
1614
|
+
var _excluded$2 = ["flag", "checkResults"],
|
|
1615
|
+
_excluded2 = ["flag", "checkResults"];
|
|
1581
1616
|
var luckysheet = window.luckysheet;
|
|
1582
|
-
var itemsTemp = []; //
|
|
1617
|
+
var itemsTemp = []; // const mapping = [
|
|
1618
|
+
// { "key": "skuCode", "name": "SKU编码", "rule": "skuCode" },
|
|
1619
|
+
// { "key": "quantity", "name": "数量", "rule": "quantity" },
|
|
1620
|
+
// { "key": "price", "name": "单价", "rule": "price" }
|
|
1621
|
+
// ]
|
|
1622
|
+
|
|
1623
|
+
var mapping = new Map([['skuCode', 'SKU编码'], ['quantity', '数量'], ['price', '单价']]); // for dnd
|
|
1583
1624
|
|
|
1584
1625
|
|
|
1585
1626
|
var reorder = function reorder(list, startIndex, endIndex) {
|
|
@@ -1621,45 +1662,26 @@ var filterLetters = function filterLetters(i) {
|
|
|
1621
1662
|
}
|
|
1622
1663
|
};
|
|
1623
1664
|
|
|
1624
|
-
var
|
|
1625
|
-
_inherits(
|
|
1665
|
+
var DataValidation = /*#__PURE__*/function (_React$Component) {
|
|
1666
|
+
_inherits(DataValidation, _React$Component);
|
|
1626
1667
|
|
|
1627
|
-
var _super = _createSuper(
|
|
1668
|
+
var _super = _createSuper(DataValidation);
|
|
1628
1669
|
|
|
1629
|
-
function
|
|
1670
|
+
function DataValidation(props) {
|
|
1630
1671
|
var _this;
|
|
1631
1672
|
|
|
1632
|
-
_classCallCheck(this,
|
|
1673
|
+
_classCallCheck(this, DataValidation);
|
|
1633
1674
|
|
|
1634
1675
|
_this = _super.call(this, props);
|
|
1635
1676
|
|
|
1636
1677
|
_this.getCount = function () {
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
total: data.filter(function (item) {
|
|
1645
|
-
return item[validIndex];
|
|
1646
|
-
}).length,
|
|
1647
|
-
error: data.filter(function (item) {
|
|
1648
|
-
return item[validIndex] && item[validIndex].v !== '通过';
|
|
1649
|
-
}).length
|
|
1650
|
-
};
|
|
1651
|
-
} else {
|
|
1652
|
-
return {
|
|
1653
|
-
total: 0,
|
|
1654
|
-
error: 0
|
|
1655
|
-
};
|
|
1656
|
-
}
|
|
1657
|
-
} catch (e) {
|
|
1658
|
-
return {
|
|
1659
|
-
total: 0,
|
|
1660
|
-
error: 0
|
|
1661
|
-
};
|
|
1662
|
-
}
|
|
1678
|
+
var resultData = _this.state.resultData;
|
|
1679
|
+
return {
|
|
1680
|
+
total: resultData.length,
|
|
1681
|
+
error: resultData.filter(function (item) {
|
|
1682
|
+
return !item.flag;
|
|
1683
|
+
}).length
|
|
1684
|
+
};
|
|
1663
1685
|
};
|
|
1664
1686
|
|
|
1665
1687
|
_this.setConfig = function (data) {
|
|
@@ -1829,6 +1851,30 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1829
1851
|
};
|
|
1830
1852
|
};
|
|
1831
1853
|
|
|
1854
|
+
_this.getValidateData = function () {
|
|
1855
|
+
var resultData = _this.state.resultData;
|
|
1856
|
+
return {
|
|
1857
|
+
successData: resultData.filter(function (item) {
|
|
1858
|
+
return item.flag;
|
|
1859
|
+
}).map(function (_ref2) {
|
|
1860
|
+
var flag = _ref2.flag,
|
|
1861
|
+
checkResults = _ref2.checkResults,
|
|
1862
|
+
item = _objectWithoutProperties(_ref2, _excluded$2);
|
|
1863
|
+
|
|
1864
|
+
return item;
|
|
1865
|
+
}),
|
|
1866
|
+
failData: resultData.filter(function (item) {
|
|
1867
|
+
return !item.flag;
|
|
1868
|
+
}).map(function (_ref3) {
|
|
1869
|
+
var flag = _ref3.flag,
|
|
1870
|
+
checkResults = _ref3.checkResults,
|
|
1871
|
+
item = _objectWithoutProperties(_ref3, _excluded2);
|
|
1872
|
+
|
|
1873
|
+
return item;
|
|
1874
|
+
})
|
|
1875
|
+
};
|
|
1876
|
+
};
|
|
1877
|
+
|
|
1832
1878
|
_this.getData = function () {
|
|
1833
1879
|
console.time();
|
|
1834
1880
|
var sheetData = luckysheet.getSheetData();
|
|
@@ -1846,16 +1892,26 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1846
1892
|
|
|
1847
1893
|
_this.resetData = function () {
|
|
1848
1894
|
var _this$props = _this.props,
|
|
1849
|
-
|
|
1850
|
-
updateData = _this$props.updateData
|
|
1895
|
+
validDataUrl = _this$props.validDataUrl,
|
|
1896
|
+
updateData = _this$props.updateData,
|
|
1897
|
+
columns = _this$props.columns;
|
|
1851
1898
|
|
|
1852
1899
|
var resultData = _this.getData();
|
|
1853
1900
|
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1901
|
+
axios.post(validDataUrl, {
|
|
1902
|
+
columns: columns,
|
|
1903
|
+
data: resultData
|
|
1904
|
+
}).then(function (result) {
|
|
1905
|
+
result = result.data;
|
|
1906
|
+
|
|
1907
|
+
if (result.status !== '0') {
|
|
1908
|
+
message.error(result.msg);
|
|
1909
|
+
return;
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1857
1912
|
var items = _this.state.items;
|
|
1858
1913
|
var validIndex = items.length;
|
|
1914
|
+
var res = result.data;
|
|
1859
1915
|
var sheetData = luckysheet.getSheetData();
|
|
1860
1916
|
sheetData.map(function (item, index) {
|
|
1861
1917
|
if (!res[index]) return item;
|
|
@@ -1888,18 +1944,20 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1888
1944
|
|
|
1889
1945
|
_this.setState({
|
|
1890
1946
|
data: luckysheet.transToCellData(sheetData),
|
|
1891
|
-
errorListCheck: false
|
|
1947
|
+
errorListCheck: false,
|
|
1948
|
+
resultData: res
|
|
1892
1949
|
});
|
|
1893
1950
|
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
});
|
|
1951
|
+
console.log(setExportData);
|
|
1952
|
+
setExportData([123123]);
|
|
1953
|
+
}).catch(function (err) {});
|
|
1897
1954
|
};
|
|
1898
1955
|
|
|
1899
1956
|
_this.filterData = function (type) {
|
|
1900
1957
|
var _this$state = _this.state,
|
|
1901
1958
|
showErrorData = _this$state.showErrorData,
|
|
1902
|
-
data = _this$state.data
|
|
1959
|
+
data = _this$state.data,
|
|
1960
|
+
resultData = _this$state.resultData;
|
|
1903
1961
|
var sheetData = luckysheet.transToData(data).filter(function (item, index) {
|
|
1904
1962
|
if (type === 'all') {
|
|
1905
1963
|
return false;
|
|
@@ -1910,11 +1968,13 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1910
1968
|
}
|
|
1911
1969
|
});
|
|
1912
1970
|
luckysheet.create(_this.setConfig(luckysheet.transToCellData(sheetData)));
|
|
1913
|
-
exportData = _this.getData();
|
|
1914
1971
|
|
|
1915
1972
|
_this.setState({
|
|
1916
1973
|
data: luckysheet.transToCellData(sheetData),
|
|
1917
|
-
errorListCheck: false
|
|
1974
|
+
errorListCheck: false,
|
|
1975
|
+
resultData: type === 'all' ? [] : resultData.filter(function (item) {
|
|
1976
|
+
return item.flag;
|
|
1977
|
+
})
|
|
1918
1978
|
});
|
|
1919
1979
|
};
|
|
1920
1980
|
|
|
@@ -2000,11 +2060,15 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2000
2060
|
});
|
|
2001
2061
|
}), provided.placeholder);
|
|
2002
2062
|
}))));
|
|
2063
|
+
|
|
2064
|
+
_this.props.onRef(_assertThisInitialized(_this));
|
|
2065
|
+
|
|
2003
2066
|
itemsTemp = props.columns.map(function (item, index) {
|
|
2067
|
+
if (!mapping.get(item)) throw Error("".concat(item, " is not in DataValidation component, please fix this error"));
|
|
2004
2068
|
return {
|
|
2005
2069
|
id: "item-0".concat(index),
|
|
2006
|
-
content: item
|
|
2007
|
-
code: item
|
|
2070
|
+
content: mapping.get(item),
|
|
2071
|
+
code: item
|
|
2008
2072
|
};
|
|
2009
2073
|
});
|
|
2010
2074
|
_this.state = {
|
|
@@ -2017,7 +2081,7 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2017
2081
|
return _this;
|
|
2018
2082
|
}
|
|
2019
2083
|
|
|
2020
|
-
_createClass(
|
|
2084
|
+
_createClass(DataValidation, [{
|
|
2021
2085
|
key: "onDragEnd",
|
|
2022
2086
|
value: function onDragEnd(result) {
|
|
2023
2087
|
// dropped outside the list
|
|
@@ -2058,17 +2122,15 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2058
2122
|
left: '0px',
|
|
2059
2123
|
top: '0px'
|
|
2060
2124
|
};
|
|
2061
|
-
return /*#__PURE__*/React.createElement(Card, {
|
|
2062
|
-
title: /*#__PURE__*/React.createElement(Space, null, title, /*#__PURE__*/React.createElement(Tooltip, {
|
|
2063
|
-
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.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.createElement("br", null), /*#__PURE__*/React.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.createElement("br", null), /*#__PURE__*/React.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"))
|
|
2064
|
-
}, /*#__PURE__*/React.createElement(ExclamationCircleOutlined$2, null)))
|
|
2065
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2125
|
+
return /*#__PURE__*/React.createElement(Card, null, /*#__PURE__*/React.createElement("div", {
|
|
2066
2126
|
className: "sheet_table_top"
|
|
2067
2127
|
}, /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement("span", null, "\u6392\u5E8F\u5217"), /*#__PURE__*/React.createElement(Dropdown, {
|
|
2068
2128
|
trigger: ['click'],
|
|
2069
2129
|
overlay: this.leftMenu,
|
|
2070
2130
|
placement: "bottomLeft"
|
|
2071
|
-
}, /*#__PURE__*/React.createElement("a", null, /*#__PURE__*/React.createElement(ProfileTwoTone$2, null)))
|
|
2131
|
+
}, /*#__PURE__*/React.createElement("a", null, /*#__PURE__*/React.createElement(ProfileTwoTone$2, null))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
2132
|
+
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, "\u4F7F\u7528\u6307\u5357\uFF1A"), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.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.createElement("br", null), /*#__PURE__*/React.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.createElement("br", null), /*#__PURE__*/React.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"))
|
|
2133
|
+
}, /*#__PURE__*/React.createElement(ExclamationCircleOutlined$2, null))), /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Dropdown, {
|
|
2072
2134
|
trigger: ['click'],
|
|
2073
2135
|
overlay: this.menuList,
|
|
2074
2136
|
placement: "bottomRight"
|
|
@@ -2096,7 +2158,17 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2096
2158
|
}
|
|
2097
2159
|
}]);
|
|
2098
2160
|
|
|
2099
|
-
return
|
|
2161
|
+
return DataValidation;
|
|
2100
2162
|
}(React.Component);
|
|
2101
2163
|
|
|
2102
|
-
|
|
2164
|
+
/*
|
|
2165
|
+
* @Description:
|
|
2166
|
+
* @Author: rodchen
|
|
2167
|
+
* @Date: 2021-11-30 22:59:39
|
|
2168
|
+
* @LastEditTime: 2021-12-08 16:50:04
|
|
2169
|
+
* @LastEditors: rodchen
|
|
2170
|
+
*/
|
|
2171
|
+
var resposne = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
|
2172
|
+
axios.defaults.headers.common['sso-sessionid'] = (resposne === null || resposne === void 0 ? void 0 : resposne.sessionId) || '';
|
|
2173
|
+
|
|
2174
|
+
export { DataValidation };
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var axios = require('axios');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var antd = require('antd');
|
|
7
8
|
var reactBeautifulDnd = require('react-beautiful-dnd');
|
|
@@ -10,6 +11,7 @@ var classNames = require('classnames');
|
|
|
10
11
|
|
|
11
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
13
|
|
|
14
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
13
15
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
16
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
15
17
|
|
|
@@ -132,6 +134,42 @@ function _isNativeReflectConstruct() {
|
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
|
|
137
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
138
|
+
if (source == null) return {};
|
|
139
|
+
var target = {};
|
|
140
|
+
var sourceKeys = Object.keys(source);
|
|
141
|
+
var key, i;
|
|
142
|
+
|
|
143
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
144
|
+
key = sourceKeys[i];
|
|
145
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
146
|
+
target[key] = source[key];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return target;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function _objectWithoutProperties(source, excluded) {
|
|
153
|
+
if (source == null) return {};
|
|
154
|
+
|
|
155
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
156
|
+
|
|
157
|
+
var key, i;
|
|
158
|
+
|
|
159
|
+
if (Object.getOwnPropertySymbols) {
|
|
160
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
161
|
+
|
|
162
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
163
|
+
key = sourceSymbolKeys[i];
|
|
164
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
165
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
166
|
+
target[key] = source[key];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return target;
|
|
171
|
+
}
|
|
172
|
+
|
|
135
173
|
function _assertThisInitialized(self) {
|
|
136
174
|
if (self === void 0) {
|
|
137
175
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -169,10 +207,6 @@ function _createSuper(Derived) {
|
|
|
169
207
|
};
|
|
170
208
|
}
|
|
171
209
|
|
|
172
|
-
function _readOnlyError(name) {
|
|
173
|
-
throw new TypeError("\"" + name + "\" is read-only");
|
|
174
|
-
}
|
|
175
|
-
|
|
176
210
|
function _slicedToArray(arr, i) {
|
|
177
211
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
178
212
|
}
|
|
@@ -364,7 +398,7 @@ function _slicedToArray$1(arr, i) {
|
|
|
364
398
|
return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
|
|
365
399
|
}
|
|
366
400
|
|
|
367
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
401
|
+
function _objectWithoutPropertiesLoose$1(source, excluded) {
|
|
368
402
|
if (source == null) return {};
|
|
369
403
|
var target = {};
|
|
370
404
|
var sourceKeys = Object.keys(source);
|
|
@@ -379,9 +413,9 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
379
413
|
return target;
|
|
380
414
|
}
|
|
381
415
|
|
|
382
|
-
function _objectWithoutProperties(source, excluded) {
|
|
416
|
+
function _objectWithoutProperties$1(source, excluded) {
|
|
383
417
|
if (source == null) return {};
|
|
384
|
-
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
418
|
+
var target = _objectWithoutPropertiesLoose$1(source, excluded);
|
|
385
419
|
var key, i;
|
|
386
420
|
|
|
387
421
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -1386,7 +1420,7 @@ var IconBase = function IconBase(props) {
|
|
|
1386
1420
|
style = props.style,
|
|
1387
1421
|
primaryColor = props.primaryColor,
|
|
1388
1422
|
secondaryColor = props.secondaryColor,
|
|
1389
|
-
restProps = _objectWithoutProperties(props, _excluded);
|
|
1423
|
+
restProps = _objectWithoutProperties$1(props, _excluded);
|
|
1390
1424
|
|
|
1391
1425
|
var colors = twoToneColorPalette;
|
|
1392
1426
|
|
|
@@ -1463,7 +1497,7 @@ var Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
1463
1497
|
tabIndex = props.tabIndex,
|
|
1464
1498
|
onClick = props.onClick,
|
|
1465
1499
|
twoToneColor = props.twoToneColor,
|
|
1466
|
-
restProps = _objectWithoutProperties(props, _excluded$1);
|
|
1500
|
+
restProps = _objectWithoutProperties$1(props, _excluded$1);
|
|
1467
1501
|
|
|
1468
1502
|
var _React$useContext = React.useContext(IconContext),
|
|
1469
1503
|
_React$useContext$pre = _React$useContext.prefixCls,
|
|
@@ -1587,8 +1621,16 @@ function styleInject(css, ref) {
|
|
|
1587
1621
|
var css_248z = ".luckysheet {\n overflow: hidden;\n}\n.luckysheet .luckysheet-work-area.luckysheet-noselected-text {\n display: none;\n}\n.sheet_table_top {\n height: 50px;\n background: #f2f2f2;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 20px;\n border: 1px solid #d8d8d8;\n}\n.sheet_table_top .menu_item_text {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sheet_table_footer {\n height: 50px;\n background: #f2f2f2;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 20px;\n border: 1px solid #d8d8d8;\n}\n.sheet_table_text {\n color: #8f8f8f;\n}\n.sheet_table_dnd_text {\n background: #f2f2f2;\n border: 1px solid #d8d8d8;\n display: inline-block;\n width: 100px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n";
|
|
1588
1622
|
styleInject(css_248z);
|
|
1589
1623
|
|
|
1624
|
+
var _excluded$2 = ["flag", "checkResults"],
|
|
1625
|
+
_excluded2 = ["flag", "checkResults"];
|
|
1590
1626
|
var luckysheet = window.luckysheet;
|
|
1591
|
-
var itemsTemp = []; //
|
|
1627
|
+
var itemsTemp = []; // const mapping = [
|
|
1628
|
+
// { "key": "skuCode", "name": "SKU编码", "rule": "skuCode" },
|
|
1629
|
+
// { "key": "quantity", "name": "数量", "rule": "quantity" },
|
|
1630
|
+
// { "key": "price", "name": "单价", "rule": "price" }
|
|
1631
|
+
// ]
|
|
1632
|
+
|
|
1633
|
+
var mapping = new Map([['skuCode', 'SKU编码'], ['quantity', '数量'], ['price', '单价']]); // for dnd
|
|
1592
1634
|
|
|
1593
1635
|
|
|
1594
1636
|
var reorder = function reorder(list, startIndex, endIndex) {
|
|
@@ -1630,45 +1672,26 @@ var filterLetters = function filterLetters(i) {
|
|
|
1630
1672
|
}
|
|
1631
1673
|
};
|
|
1632
1674
|
|
|
1633
|
-
var
|
|
1634
|
-
_inherits(
|
|
1675
|
+
var DataValidation = /*#__PURE__*/function (_React$Component) {
|
|
1676
|
+
_inherits(DataValidation, _React$Component);
|
|
1635
1677
|
|
|
1636
|
-
var _super = _createSuper(
|
|
1678
|
+
var _super = _createSuper(DataValidation);
|
|
1637
1679
|
|
|
1638
|
-
function
|
|
1680
|
+
function DataValidation(props) {
|
|
1639
1681
|
var _this;
|
|
1640
1682
|
|
|
1641
|
-
_classCallCheck(this,
|
|
1683
|
+
_classCallCheck(this, DataValidation);
|
|
1642
1684
|
|
|
1643
1685
|
_this = _super.call(this, props);
|
|
1644
1686
|
|
|
1645
1687
|
_this.getCount = function () {
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
total: data.filter(function (item) {
|
|
1654
|
-
return item[validIndex];
|
|
1655
|
-
}).length,
|
|
1656
|
-
error: data.filter(function (item) {
|
|
1657
|
-
return item[validIndex] && item[validIndex].v !== '通过';
|
|
1658
|
-
}).length
|
|
1659
|
-
};
|
|
1660
|
-
} else {
|
|
1661
|
-
return {
|
|
1662
|
-
total: 0,
|
|
1663
|
-
error: 0
|
|
1664
|
-
};
|
|
1665
|
-
}
|
|
1666
|
-
} catch (e) {
|
|
1667
|
-
return {
|
|
1668
|
-
total: 0,
|
|
1669
|
-
error: 0
|
|
1670
|
-
};
|
|
1671
|
-
}
|
|
1688
|
+
var resultData = _this.state.resultData;
|
|
1689
|
+
return {
|
|
1690
|
+
total: resultData.length,
|
|
1691
|
+
error: resultData.filter(function (item) {
|
|
1692
|
+
return !item.flag;
|
|
1693
|
+
}).length
|
|
1694
|
+
};
|
|
1672
1695
|
};
|
|
1673
1696
|
|
|
1674
1697
|
_this.setConfig = function (data) {
|
|
@@ -1838,6 +1861,30 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1838
1861
|
};
|
|
1839
1862
|
};
|
|
1840
1863
|
|
|
1864
|
+
_this.getValidateData = function () {
|
|
1865
|
+
var resultData = _this.state.resultData;
|
|
1866
|
+
return {
|
|
1867
|
+
successData: resultData.filter(function (item) {
|
|
1868
|
+
return item.flag;
|
|
1869
|
+
}).map(function (_ref2) {
|
|
1870
|
+
var flag = _ref2.flag,
|
|
1871
|
+
checkResults = _ref2.checkResults,
|
|
1872
|
+
item = _objectWithoutProperties(_ref2, _excluded$2);
|
|
1873
|
+
|
|
1874
|
+
return item;
|
|
1875
|
+
}),
|
|
1876
|
+
failData: resultData.filter(function (item) {
|
|
1877
|
+
return !item.flag;
|
|
1878
|
+
}).map(function (_ref3) {
|
|
1879
|
+
var flag = _ref3.flag,
|
|
1880
|
+
checkResults = _ref3.checkResults,
|
|
1881
|
+
item = _objectWithoutProperties(_ref3, _excluded2);
|
|
1882
|
+
|
|
1883
|
+
return item;
|
|
1884
|
+
})
|
|
1885
|
+
};
|
|
1886
|
+
};
|
|
1887
|
+
|
|
1841
1888
|
_this.getData = function () {
|
|
1842
1889
|
console.time();
|
|
1843
1890
|
var sheetData = luckysheet.getSheetData();
|
|
@@ -1855,16 +1902,26 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1855
1902
|
|
|
1856
1903
|
_this.resetData = function () {
|
|
1857
1904
|
var _this$props = _this.props,
|
|
1858
|
-
|
|
1859
|
-
updateData = _this$props.updateData
|
|
1905
|
+
validDataUrl = _this$props.validDataUrl,
|
|
1906
|
+
updateData = _this$props.updateData,
|
|
1907
|
+
columns = _this$props.columns;
|
|
1860
1908
|
|
|
1861
1909
|
var resultData = _this.getData();
|
|
1862
1910
|
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1911
|
+
axios__default['default'].post(validDataUrl, {
|
|
1912
|
+
columns: columns,
|
|
1913
|
+
data: resultData
|
|
1914
|
+
}).then(function (result) {
|
|
1915
|
+
result = result.data;
|
|
1916
|
+
|
|
1917
|
+
if (result.status !== '0') {
|
|
1918
|
+
antd.message.error(result.msg);
|
|
1919
|
+
return;
|
|
1920
|
+
}
|
|
1921
|
+
|
|
1866
1922
|
var items = _this.state.items;
|
|
1867
1923
|
var validIndex = items.length;
|
|
1924
|
+
var res = result.data;
|
|
1868
1925
|
var sheetData = luckysheet.getSheetData();
|
|
1869
1926
|
sheetData.map(function (item, index) {
|
|
1870
1927
|
if (!res[index]) return item;
|
|
@@ -1897,18 +1954,20 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1897
1954
|
|
|
1898
1955
|
_this.setState({
|
|
1899
1956
|
data: luckysheet.transToCellData(sheetData),
|
|
1900
|
-
errorListCheck: false
|
|
1957
|
+
errorListCheck: false,
|
|
1958
|
+
resultData: res
|
|
1901
1959
|
});
|
|
1902
1960
|
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
});
|
|
1961
|
+
console.log(setExportData);
|
|
1962
|
+
setExportData([123123]);
|
|
1963
|
+
}).catch(function (err) {});
|
|
1906
1964
|
};
|
|
1907
1965
|
|
|
1908
1966
|
_this.filterData = function (type) {
|
|
1909
1967
|
var _this$state = _this.state,
|
|
1910
1968
|
showErrorData = _this$state.showErrorData,
|
|
1911
|
-
data = _this$state.data
|
|
1969
|
+
data = _this$state.data,
|
|
1970
|
+
resultData = _this$state.resultData;
|
|
1912
1971
|
var sheetData = luckysheet.transToData(data).filter(function (item, index) {
|
|
1913
1972
|
if (type === 'all') {
|
|
1914
1973
|
return false;
|
|
@@ -1919,11 +1978,13 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
1919
1978
|
}
|
|
1920
1979
|
});
|
|
1921
1980
|
luckysheet.create(_this.setConfig(luckysheet.transToCellData(sheetData)));
|
|
1922
|
-
exportData = _this.getData();
|
|
1923
1981
|
|
|
1924
1982
|
_this.setState({
|
|
1925
1983
|
data: luckysheet.transToCellData(sheetData),
|
|
1926
|
-
errorListCheck: false
|
|
1984
|
+
errorListCheck: false,
|
|
1985
|
+
resultData: type === 'all' ? [] : resultData.filter(function (item) {
|
|
1986
|
+
return item.flag;
|
|
1987
|
+
})
|
|
1927
1988
|
});
|
|
1928
1989
|
};
|
|
1929
1990
|
|
|
@@ -2009,11 +2070,15 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2009
2070
|
});
|
|
2010
2071
|
}), provided.placeholder);
|
|
2011
2072
|
}))));
|
|
2073
|
+
|
|
2074
|
+
_this.props.onRef(_assertThisInitialized(_this));
|
|
2075
|
+
|
|
2012
2076
|
itemsTemp = props.columns.map(function (item, index) {
|
|
2077
|
+
if (!mapping.get(item)) throw Error("".concat(item, " is not in DataValidation component, please fix this error"));
|
|
2013
2078
|
return {
|
|
2014
2079
|
id: "item-0".concat(index),
|
|
2015
|
-
content: item
|
|
2016
|
-
code: item
|
|
2080
|
+
content: mapping.get(item),
|
|
2081
|
+
code: item
|
|
2017
2082
|
};
|
|
2018
2083
|
});
|
|
2019
2084
|
_this.state = {
|
|
@@ -2026,7 +2091,7 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2026
2091
|
return _this;
|
|
2027
2092
|
}
|
|
2028
2093
|
|
|
2029
|
-
_createClass(
|
|
2094
|
+
_createClass(DataValidation, [{
|
|
2030
2095
|
key: "onDragEnd",
|
|
2031
2096
|
value: function onDragEnd(result) {
|
|
2032
2097
|
// dropped outside the list
|
|
@@ -2067,17 +2132,15 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2067
2132
|
left: '0px',
|
|
2068
2133
|
top: '0px'
|
|
2069
2134
|
};
|
|
2070
|
-
return /*#__PURE__*/React__default['default'].createElement(antd.Card, {
|
|
2071
|
-
title: /*#__PURE__*/React__default['default'].createElement(antd.Space, null, title, /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
|
|
2072
|
-
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"))
|
|
2073
|
-
}, /*#__PURE__*/React__default['default'].createElement(ExclamationCircleOutlined$2, null)))
|
|
2074
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2135
|
+
return /*#__PURE__*/React__default['default'].createElement(antd.Card, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2075
2136
|
className: "sheet_table_top"
|
|
2076
2137
|
}, /*#__PURE__*/React__default['default'].createElement(antd.Space, null, /*#__PURE__*/React__default['default'].createElement("span", null, "\u6392\u5E8F\u5217"), /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
|
|
2077
2138
|
trigger: ['click'],
|
|
2078
2139
|
overlay: this.leftMenu,
|
|
2079
2140
|
placement: "bottomLeft"
|
|
2080
|
-
}, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(ProfileTwoTone$2, null)))
|
|
2141
|
+
}, /*#__PURE__*/React__default['default'].createElement("a", null, /*#__PURE__*/React__default['default'].createElement(ProfileTwoTone$2, null))), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
|
|
2142
|
+
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"))
|
|
2143
|
+
}, /*#__PURE__*/React__default['default'].createElement(ExclamationCircleOutlined$2, null))), /*#__PURE__*/React__default['default'].createElement(antd.Space, null, /*#__PURE__*/React__default['default'].createElement(antd.Dropdown, {
|
|
2081
2144
|
trigger: ['click'],
|
|
2082
2145
|
overlay: this.menuList,
|
|
2083
2146
|
placement: "bottomRight"
|
|
@@ -2105,7 +2168,17 @@ var Luckysheet = /*#__PURE__*/function (_React$Component) {
|
|
|
2105
2168
|
}
|
|
2106
2169
|
}]);
|
|
2107
2170
|
|
|
2108
|
-
return
|
|
2171
|
+
return DataValidation;
|
|
2109
2172
|
}(React__default['default'].Component);
|
|
2110
2173
|
|
|
2111
|
-
|
|
2174
|
+
/*
|
|
2175
|
+
* @Description:
|
|
2176
|
+
* @Author: rodchen
|
|
2177
|
+
* @Date: 2021-11-30 22:59:39
|
|
2178
|
+
* @LastEditTime: 2021-12-08 16:50:04
|
|
2179
|
+
* @LastEditors: rodchen
|
|
2180
|
+
*/
|
|
2181
|
+
var resposne = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
|
2182
|
+
axios__default['default'].defaults.headers.common['sso-sessionid'] = (resposne === null || resposne === void 0 ? void 0 : resposne.sessionId) || '';
|
|
2183
|
+
|
|
2184
|
+
exports.DataValidation = DataValidation;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bit-sun/business-component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "dumi dev",
|
|
6
6
|
"docs:build": "dumi build",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
]
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"adaptd": "^0.1.0",
|
|
31
30
|
"antd": "4.17.2",
|
|
31
|
+
"axios": "^0.24.0",
|
|
32
32
|
"bs-business-component": "^1.0.1",
|
|
33
33
|
"classnames": "^2.3.1",
|
|
34
34
|
"react": "^16.12.0",
|
|
File without changes
|
|
@@ -4,17 +4,17 @@ nav:
|
|
|
4
4
|
path: /components
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## DataValidation
|
|
8
8
|
|
|
9
9
|
Demo:
|
|
10
10
|
|
|
11
11
|
```tsx
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import {
|
|
13
|
+
import { DataValidation } from '../index';
|
|
14
14
|
|
|
15
15
|
export default () => (
|
|
16
16
|
<div>
|
|
17
|
-
<
|
|
17
|
+
<DataValidation
|
|
18
18
|
columns={[
|
|
19
19
|
['商品编码', 'skuCode'],
|
|
20
20
|
['商品名称', 'skuName'],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Description:
|
|
3
3
|
* @Author: rodchen
|
|
4
4
|
* @Date: 2021-12-01 10:52:08
|
|
5
|
-
* @LastEditTime: 2021-12-08
|
|
5
|
+
* @LastEditTime: 2021-12-08 18:16:00
|
|
6
6
|
* @LastEditors: rodchen
|
|
7
7
|
*/
|
|
8
8
|
// @ts-nocheck
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
Dropdown,
|
|
17
17
|
Menu,
|
|
18
18
|
Tooltip,
|
|
19
|
+
message,
|
|
19
20
|
} from 'antd';
|
|
20
21
|
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
|
|
21
22
|
import 'antd/dist/antd.css';
|
|
@@ -25,12 +26,25 @@ import {
|
|
|
25
26
|
ProfileTwoTone,
|
|
26
27
|
UnorderedListOutlined,
|
|
27
28
|
} from '@ant-design/icons';
|
|
29
|
+
import axios from 'axios';
|
|
28
30
|
import './index.less';
|
|
29
31
|
|
|
30
32
|
const luckysheet = window.luckysheet;
|
|
31
33
|
|
|
32
34
|
let itemsTemp = [];
|
|
33
35
|
|
|
36
|
+
// const mapping = [
|
|
37
|
+
// { "key": "skuCode", "name": "SKU编码", "rule": "skuCode" },
|
|
38
|
+
// { "key": "quantity", "name": "数量", "rule": "quantity" },
|
|
39
|
+
// { "key": "price", "name": "单价", "rule": "price" }
|
|
40
|
+
// ]
|
|
41
|
+
|
|
42
|
+
const mapping = new Map([
|
|
43
|
+
['skuCode', 'SKU编码'],
|
|
44
|
+
['quantity', '数量'],
|
|
45
|
+
['price', '单价'],
|
|
46
|
+
]);
|
|
47
|
+
|
|
34
48
|
// for dnd
|
|
35
49
|
// fake data generator
|
|
36
50
|
const getItems = (count) =>
|
|
@@ -76,15 +90,20 @@ const filterLetters = (i) => {
|
|
|
76
90
|
}
|
|
77
91
|
};
|
|
78
92
|
|
|
79
|
-
class
|
|
93
|
+
class DataValidation extends React.Component {
|
|
80
94
|
constructor(props) {
|
|
81
95
|
super(props);
|
|
96
|
+
this.props.onRef(this);
|
|
82
97
|
|
|
83
98
|
itemsTemp = props.columns.map((item, index) => {
|
|
99
|
+
if (!mapping.get(item))
|
|
100
|
+
throw Error(
|
|
101
|
+
`${item} is not in DataValidation component, please fix this error`,
|
|
102
|
+
);
|
|
84
103
|
return {
|
|
85
104
|
id: `item-0${index}`,
|
|
86
|
-
content: item
|
|
87
|
-
code: item
|
|
105
|
+
content: mapping.get(item),
|
|
106
|
+
code: item,
|
|
88
107
|
};
|
|
89
108
|
});
|
|
90
109
|
|
|
@@ -119,31 +138,11 @@ class Luckysheet extends React.Component {
|
|
|
119
138
|
}
|
|
120
139
|
|
|
121
140
|
getCount = () => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (data[0] && data[0][validIndex]) {
|
|
129
|
-
return {
|
|
130
|
-
total: data.filter((item) => item[validIndex]).length,
|
|
131
|
-
error: data.filter(
|
|
132
|
-
(item) => item[validIndex] && item[validIndex].v !== '通过',
|
|
133
|
-
).length,
|
|
134
|
-
};
|
|
135
|
-
} else {
|
|
136
|
-
return {
|
|
137
|
-
total: 0,
|
|
138
|
-
error: 0,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
} catch (e) {
|
|
142
|
-
return {
|
|
143
|
-
total: 0,
|
|
144
|
-
error: 0,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
141
|
+
const { resultData } = this.state;
|
|
142
|
+
return {
|
|
143
|
+
total: resultData.length,
|
|
144
|
+
error: resultData.filter((item) => !item.flag).length,
|
|
145
|
+
};
|
|
147
146
|
};
|
|
148
147
|
|
|
149
148
|
setConfig = (data) => {
|
|
@@ -325,6 +324,18 @@ class Luckysheet extends React.Component {
|
|
|
325
324
|
luckysheet.destroy();
|
|
326
325
|
}
|
|
327
326
|
|
|
327
|
+
getValidateData = () => {
|
|
328
|
+
const { resultData } = this.state;
|
|
329
|
+
return {
|
|
330
|
+
successData: resultData
|
|
331
|
+
.filter((item) => item.flag)
|
|
332
|
+
.map(({ flag, checkResults, ...item }) => item),
|
|
333
|
+
failData: resultData
|
|
334
|
+
.filter((item) => !item.flag)
|
|
335
|
+
.map(({ flag, checkResults, ...item }) => item),
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
|
|
328
339
|
getData = () => {
|
|
329
340
|
console.time();
|
|
330
341
|
let sheetData = luckysheet.getSheetData();
|
|
@@ -332,9 +343,11 @@ class Luckysheet extends React.Component {
|
|
|
332
343
|
.filter((item) => item[0])
|
|
333
344
|
.map((item) => {
|
|
334
345
|
let obj = {};
|
|
346
|
+
|
|
335
347
|
item.slice(0, itemsTemp.length).map((innerItem, index) => {
|
|
336
348
|
obj[this.state.items[index].code] = innerItem && innerItem.v;
|
|
337
349
|
});
|
|
350
|
+
|
|
338
351
|
return obj;
|
|
339
352
|
});
|
|
340
353
|
|
|
@@ -342,55 +355,68 @@ class Luckysheet extends React.Component {
|
|
|
342
355
|
};
|
|
343
356
|
|
|
344
357
|
resetData = () => {
|
|
345
|
-
const {
|
|
358
|
+
const { validDataUrl, updateData, columns } = this.props;
|
|
346
359
|
const resultData = this.getData();
|
|
347
|
-
new Promise((resolve, reject) => {
|
|
348
|
-
validDataFunction(resultData, resolve);
|
|
349
|
-
}).then((res) => {
|
|
350
|
-
const { items } = this.state;
|
|
351
|
-
let validIndex = items.length;
|
|
352
|
-
|
|
353
|
-
let sheetData = luckysheet.getSheetData();
|
|
354
360
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
} else {
|
|
366
|
-
item[validIndex] = {
|
|
367
|
-
...item[validIndex],
|
|
368
|
-
v: res[index].checkResults,
|
|
369
|
-
m: res[index].checkResults,
|
|
370
|
-
fc: 'red', //字体颜色为 "#990000"
|
|
371
|
-
};
|
|
361
|
+
axios
|
|
362
|
+
.post(validDataUrl, {
|
|
363
|
+
columns: columns,
|
|
364
|
+
data: resultData,
|
|
365
|
+
})
|
|
366
|
+
.then((result) => {
|
|
367
|
+
result = result.data;
|
|
368
|
+
if (result.status !== '0') {
|
|
369
|
+
message.error(result.msg);
|
|
370
|
+
return;
|
|
372
371
|
}
|
|
372
|
+
const { items } = this.state;
|
|
373
|
+
let validIndex = items.length;
|
|
374
|
+
let res = result.data;
|
|
375
|
+
|
|
376
|
+
let sheetData = luckysheet.getSheetData();
|
|
377
|
+
|
|
378
|
+
sheetData.map((item, index) => {
|
|
379
|
+
if (!res[index]) return item;
|
|
380
|
+
|
|
381
|
+
if (res[index].flag) {
|
|
382
|
+
item[validIndex] = {
|
|
383
|
+
...item[validIndex],
|
|
384
|
+
v: '通过',
|
|
385
|
+
m: '通过',
|
|
386
|
+
fc: 'green', //字体颜色为 "#990000"
|
|
387
|
+
};
|
|
388
|
+
} else {
|
|
389
|
+
item[validIndex] = {
|
|
390
|
+
...item[validIndex],
|
|
391
|
+
v: res[index].checkResults,
|
|
392
|
+
m: res[index].checkResults,
|
|
393
|
+
fc: 'red', //字体颜色为 "#990000"
|
|
394
|
+
};
|
|
395
|
+
}
|
|
373
396
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
397
|
+
item[validIndex].ct = { fa: 'General', t: 'g' };
|
|
398
|
+
});
|
|
399
|
+
// sheetData.map((item, index) => {
|
|
400
|
+
// luckysheet.setCellValue(index + 1, 4, 345)
|
|
401
|
+
// })
|
|
402
|
+
|
|
403
|
+
luckysheet.create(
|
|
404
|
+
this.setConfig(luckysheet.transToCellData(sheetData)),
|
|
405
|
+
);
|
|
406
|
+
this.setState({
|
|
407
|
+
data: luckysheet.transToCellData(sheetData),
|
|
408
|
+
errorListCheck: false,
|
|
409
|
+
resultData: res,
|
|
410
|
+
});
|
|
387
411
|
|
|
388
|
-
|
|
389
|
-
|
|
412
|
+
console.log(setExportData);
|
|
413
|
+
setExportData([123123]);
|
|
414
|
+
})
|
|
415
|
+
.catch((err) => {});
|
|
390
416
|
};
|
|
391
417
|
|
|
392
418
|
filterData = (type: string) => {
|
|
393
|
-
const { showErrorData, data } = this.state;
|
|
419
|
+
const { showErrorData, data, resultData } = this.state;
|
|
394
420
|
let sheetData = luckysheet.transToData(data).filter((item, index) => {
|
|
395
421
|
if (type === 'all') {
|
|
396
422
|
return false;
|
|
@@ -401,10 +427,10 @@ class Luckysheet extends React.Component {
|
|
|
401
427
|
});
|
|
402
428
|
|
|
403
429
|
luckysheet.create(this.setConfig(luckysheet.transToCellData(sheetData)));
|
|
404
|
-
exportData = this.getData();
|
|
405
430
|
this.setState({
|
|
406
431
|
data: luckysheet.transToCellData(sheetData),
|
|
407
432
|
errorListCheck: false,
|
|
433
|
+
resultData: type === 'all' ? [] : resultData.filter((item) => item.flag),
|
|
408
434
|
});
|
|
409
435
|
};
|
|
410
436
|
|
|
@@ -519,10 +545,19 @@ class Luckysheet extends React.Component {
|
|
|
519
545
|
top: '0px',
|
|
520
546
|
};
|
|
521
547
|
return (
|
|
522
|
-
<Card
|
|
523
|
-
|
|
548
|
+
<Card>
|
|
549
|
+
<div className="sheet_table_top">
|
|
524
550
|
<Space>
|
|
525
|
-
|
|
551
|
+
<span>排序列</span>
|
|
552
|
+
<Dropdown
|
|
553
|
+
trigger={['click']}
|
|
554
|
+
overlay={this.leftMenu}
|
|
555
|
+
placement="bottomLeft"
|
|
556
|
+
>
|
|
557
|
+
<a>
|
|
558
|
+
<ProfileTwoTone />
|
|
559
|
+
</a>
|
|
560
|
+
</Dropdown>
|
|
526
561
|
<Tooltip
|
|
527
562
|
title={
|
|
528
563
|
<>
|
|
@@ -543,21 +578,6 @@ class Luckysheet extends React.Component {
|
|
|
543
578
|
<ExclamationCircleOutlined />
|
|
544
579
|
</Tooltip>
|
|
545
580
|
</Space>
|
|
546
|
-
}
|
|
547
|
-
>
|
|
548
|
-
<div className="sheet_table_top">
|
|
549
|
-
<Space>
|
|
550
|
-
<span>排序列</span>
|
|
551
|
-
<Dropdown
|
|
552
|
-
trigger={['click']}
|
|
553
|
-
overlay={this.leftMenu}
|
|
554
|
-
placement="bottomLeft"
|
|
555
|
-
>
|
|
556
|
-
<a>
|
|
557
|
-
<ProfileTwoTone />
|
|
558
|
-
</a>
|
|
559
|
-
</Dropdown>
|
|
560
|
-
</Space>
|
|
561
581
|
<Space>
|
|
562
582
|
<Dropdown
|
|
563
583
|
trigger={['click']}
|
|
@@ -596,4 +616,4 @@ class Luckysheet extends React.Component {
|
|
|
596
616
|
}
|
|
597
617
|
}
|
|
598
618
|
|
|
599
|
-
export default
|
|
619
|
+
export default DataValidation;
|
package/src/index.ts
CHANGED
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
* @Description:
|
|
3
3
|
* @Author: rodchen
|
|
4
4
|
* @Date: 2021-11-30 22:59:39
|
|
5
|
-
* @LastEditTime: 2021-12-
|
|
5
|
+
* @LastEditTime: 2021-12-08 16:50:04
|
|
6
6
|
* @LastEditors: rodchen
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
import axios from 'axios';
|
|
10
|
+
|
|
11
|
+
const resposne = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
|
12
|
+
|
|
13
|
+
axios.defaults.headers.common['sso-sessionid'] = resposne?.sessionId || '';
|
|
14
|
+
|
|
15
|
+
export { default as DataValidation } from './DataValidation';
|