@zhenliang/sheet 0.1.7-3.beta.2 → 0.1.7-3.beta.4
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/core/reducers/keyboardReducer.js +2 -1
- package/dist/core/reducers/mouseReducer.js +3 -2
- package/dist/core/reducers/sideEffectReducer.js +3 -3
- package/dist/core/sheet/index.js +30 -15
- package/dist/core/sheet/index.less +1 -1
- package/dist/core/sheet/useRemarkContainer.js +7 -6
- package/dist/core/table/index.js +48 -16
- package/dist/core/table/remarkEvent.js +0 -4
- package/dist/example/valuationAnalyze.js +39 -12
- package/dist/type/sheet.d.ts +3 -0
- package/dist/type/sheetTable.d.ts +7 -10
- package/package.json +1 -1
|
@@ -71,7 +71,8 @@ export var keyboardReducer = {
|
|
|
71
71
|
end = state.end,
|
|
72
72
|
editing = state.editing,
|
|
73
73
|
data = state.data;
|
|
74
|
-
|
|
74
|
+
var freeze = state.freeze;
|
|
75
|
+
if (!start || !end || data !== null && data !== void 0 && (_data$start$row = data[start.row]) !== null && _data$start$row !== void 0 && _data$start$row[start.col].readonly || !(data !== null && data !== void 0 && (_data$start$row2 = data[start.row]) !== null && _data$start$row2 !== void 0 && _data$start$row2[start.col].editable) || freeze) {
|
|
75
76
|
return state;
|
|
76
77
|
}
|
|
77
78
|
if (!editing) {
|
|
@@ -164,8 +164,9 @@ export var mouseReducer = {
|
|
|
164
164
|
var _ref4 = payload,
|
|
165
165
|
row = _ref4.row,
|
|
166
166
|
col = _ref4.col;
|
|
167
|
-
var data = state.data
|
|
168
|
-
|
|
167
|
+
var data = state.data,
|
|
168
|
+
freeze = state.freeze;
|
|
169
|
+
if (data !== null && data !== void 0 && (_data$row$col = data[row][col]) !== null && _data$row$col !== void 0 && _data$row$col.readonly || freeze) {
|
|
169
170
|
return state;
|
|
170
171
|
}
|
|
171
172
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
@@ -206,12 +206,12 @@ export var sideEffectReducer = {
|
|
|
206
206
|
paste: function paste(dispatch, getState) {
|
|
207
207
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
208
208
|
var _extChanges$;
|
|
209
|
-
var _getState8, start, end, cellChangeHandler, history, _getState8$freePaste, freePaste, data, groupConfig, pasteData, changeInfo, changes, extChanges, legalChanges, lastRow, lastIndex, legalExtChanges, newHistory;
|
|
209
|
+
var _getState8, start, end, cellChangeHandler, history, _getState8$freePaste, freePaste, data, freeze, groupConfig, pasteData, changeInfo, changes, extChanges, legalChanges, lastRow, lastIndex, legalExtChanges, newHistory;
|
|
210
210
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
211
211
|
while (1) switch (_context.prev = _context.next) {
|
|
212
212
|
case 0:
|
|
213
|
-
_getState8 = getState(), start = _getState8.start, end = _getState8.end, cellChangeHandler = _getState8.cellChangeHandler, history = _getState8.history, _getState8$freePaste = _getState8.freePaste, freePaste = _getState8$freePaste === void 0 ? false : _getState8$freePaste, data = _getState8.data, groupConfig = _getState8.groupConfig;
|
|
214
|
-
if (!(!start || !end)) {
|
|
213
|
+
_getState8 = getState(), start = _getState8.start, end = _getState8.end, cellChangeHandler = _getState8.cellChangeHandler, history = _getState8.history, _getState8$freePaste = _getState8.freePaste, freePaste = _getState8$freePaste === void 0 ? false : _getState8$freePaste, data = _getState8.data, freeze = _getState8.freeze, groupConfig = _getState8.groupConfig;
|
|
214
|
+
if (!(!start || !end || freeze)) {
|
|
215
215
|
_context.next = 3;
|
|
216
216
|
break;
|
|
217
217
|
}
|
package/dist/core/sheet/index.js
CHANGED
|
@@ -51,6 +51,7 @@ var Sheet = function Sheet(props) {
|
|
|
51
51
|
virtualized = _props$virtualized === void 0 ? false : _props$virtualized,
|
|
52
52
|
className = props.className,
|
|
53
53
|
data = props.data,
|
|
54
|
+
freeze = props.freeze,
|
|
54
55
|
_props$freePaste = props.freePaste,
|
|
55
56
|
freePaste = _props$freePaste === void 0 ? false : _props$freePaste,
|
|
56
57
|
onCellsChanged = props.onCellsChanged,
|
|
@@ -131,10 +132,16 @@ var Sheet = function Sheet(props) {
|
|
|
131
132
|
},
|
|
132
133
|
goTo: function goTo(row, col) {
|
|
133
134
|
dispatch(function (d, getState) {
|
|
134
|
-
var _sheetWrapperRef$curr4;
|
|
135
135
|
var _getState2 = getState(),
|
|
136
136
|
groupConfig = _getState2.groupConfig,
|
|
137
|
-
data = _getState2.data
|
|
137
|
+
data = _getState2.data,
|
|
138
|
+
eventBus = _getState2.eventBus;
|
|
139
|
+
var nextLoop = groupConfig === null || groupConfig === void 0 ? void 0 : groupConfig.groupOpen.some(function (v) {
|
|
140
|
+
return !v;
|
|
141
|
+
});
|
|
142
|
+
if (nextLoop) {
|
|
143
|
+
eventBus === null || eventBus === void 0 || eventBus.emit('group-open-title', true);
|
|
144
|
+
}
|
|
138
145
|
var container = sheetWrapperRef.current;
|
|
139
146
|
if (isNil(row) || isNil(col)) return;
|
|
140
147
|
var actual = rowToActualRow(row, groupConfig, data.length);
|
|
@@ -142,7 +149,15 @@ var Sheet = function Sheet(props) {
|
|
|
142
149
|
var firstRowCell = container.querySelector("td.cell[data-col='".concat(col, "']"));
|
|
143
150
|
var colPosition = firstRowCell ? firstRowCell.offsetLeft - firstRowCell.clientWidth : 0;
|
|
144
151
|
var scrollHeight = actual * rowHeight;
|
|
145
|
-
(
|
|
152
|
+
if (nextLoop) {
|
|
153
|
+
setTimeout(function () {
|
|
154
|
+
var _sheetWrapperRef$curr4;
|
|
155
|
+
(_sheetWrapperRef$curr4 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr4 === void 0 || _sheetWrapperRef$curr4.scrollTo(colPosition, scrollHeight);
|
|
156
|
+
}, 1);
|
|
157
|
+
} else {
|
|
158
|
+
var _sheetWrapperRef$curr5;
|
|
159
|
+
(_sheetWrapperRef$curr5 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr5 === void 0 || _sheetWrapperRef$curr5.scrollTo(colPosition, scrollHeight);
|
|
160
|
+
}
|
|
146
161
|
});
|
|
147
162
|
},
|
|
148
163
|
pushToHistory: function pushToHistory(config) {
|
|
@@ -196,10 +211,11 @@ var Sheet = function Sheet(props) {
|
|
|
196
211
|
cellChangeHandler: onCellsChanged,
|
|
197
212
|
data: data,
|
|
198
213
|
freePaste: freePaste,
|
|
199
|
-
groupConfig: groupConfig
|
|
214
|
+
groupConfig: groupConfig,
|
|
215
|
+
freeze: freeze
|
|
200
216
|
}
|
|
201
217
|
});
|
|
202
|
-
}, [onCellsChanged, data, freePaste, groupConfig]);
|
|
218
|
+
}, [onCellsChanged, data, freePaste, groupConfig, freeze]);
|
|
203
219
|
useCellEvent(dispatch, state);
|
|
204
220
|
useMouseEvent(dispatch, sheetWrapperRef);
|
|
205
221
|
useKeyBoardEvent(dispatch, sheetWrapperRef);
|
|
@@ -211,9 +227,9 @@ var Sheet = function Sheet(props) {
|
|
|
211
227
|
useEffect(function () {
|
|
212
228
|
if (!state.editing && state.start) {
|
|
213
229
|
setTimeout(function () {
|
|
214
|
-
var _sheetWrapperRef$
|
|
230
|
+
var _sheetWrapperRef$curr6;
|
|
215
231
|
// 表格获取焦点 + 接收keyboard event
|
|
216
|
-
(_sheetWrapperRef$
|
|
232
|
+
(_sheetWrapperRef$curr6 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr6 === void 0 || _sheetWrapperRef$curr6.focus({
|
|
217
233
|
preventScroll: true
|
|
218
234
|
});
|
|
219
235
|
}, 1);
|
|
@@ -336,7 +352,6 @@ var Sheet = function Sheet(props) {
|
|
|
336
352
|
handleScroll();
|
|
337
353
|
}
|
|
338
354
|
}, []);
|
|
339
|
-
console.log(menu.showMenu);
|
|
340
355
|
return /*#__PURE__*/_jsx(SheetEventContext.Provider, {
|
|
341
356
|
value: eventBus,
|
|
342
357
|
children: /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -371,13 +386,6 @@ var Sheet = function Sheet(props) {
|
|
|
371
386
|
showMenu: menu.showMenu,
|
|
372
387
|
contextMenu: ContextMenu,
|
|
373
388
|
onContextMenu: onContextMenu
|
|
374
|
-
}), /*#__PURE__*/_jsx(Remark, {
|
|
375
|
-
showRemark: remarkInfo.show && !menu.showMenu,
|
|
376
|
-
position: {
|
|
377
|
-
left: remarkInfo.position.left,
|
|
378
|
-
top: remarkInfo.position.top
|
|
379
|
-
},
|
|
380
|
-
children: remarkElement
|
|
381
389
|
}), EmptyElement]
|
|
382
390
|
}), /*#__PURE__*/_jsxs("div", {
|
|
383
391
|
className: "harvest-sheet-control",
|
|
@@ -408,6 +416,13 @@ var Sheet = function Sheet(props) {
|
|
|
408
416
|
}
|
|
409
417
|
}), children]
|
|
410
418
|
})]
|
|
419
|
+
}), /*#__PURE__*/_jsx(Remark, {
|
|
420
|
+
showRemark: remarkInfo.show && !menu.showMenu,
|
|
421
|
+
position: {
|
|
422
|
+
left: remarkInfo.position.left,
|
|
423
|
+
top: remarkInfo.position.top
|
|
424
|
+
},
|
|
425
|
+
children: remarkElement
|
|
411
426
|
}), /*#__PURE__*/_jsx(SearchInput, {
|
|
412
427
|
style: props.searchStyle,
|
|
413
428
|
value: state.searchText,
|
|
@@ -11,8 +11,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
11
11
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
12
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
13
|
import { useSetState } from "../../hooks";
|
|
14
|
+
import { throttle } from 'lodash';
|
|
14
15
|
import { useCallback, useEffect } from 'react';
|
|
15
|
-
import { debounce } from 'lodash';
|
|
16
16
|
export var useRemarkContainer = function useRemarkContainer(elementRef, start, editing) {
|
|
17
17
|
var showRemark = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
18
18
|
var _useSetState = useSetState({
|
|
@@ -62,7 +62,7 @@ export var useRemarkContainer = function useRemarkContainer(elementRef, start, e
|
|
|
62
62
|
}, [showRemark, editing]);
|
|
63
63
|
useEffect(function () {
|
|
64
64
|
var _elementRef$current, _elementRef$current2;
|
|
65
|
-
var remarkScroll =
|
|
65
|
+
var remarkScroll = throttle(function () {
|
|
66
66
|
setRemarkInfo({
|
|
67
67
|
show: false
|
|
68
68
|
});
|
|
@@ -96,10 +96,11 @@ export var useRemarkContainer = function useRemarkContainer(elementRef, start, e
|
|
|
96
96
|
}
|
|
97
97
|
var io = new IntersectionObserver(function (entries) {
|
|
98
98
|
var ratio = entries[0].intersectionRatio;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
if (ratio < 1) {
|
|
100
|
+
setRemarkInfo({
|
|
101
|
+
show: false
|
|
102
|
+
});
|
|
103
|
+
}
|
|
103
104
|
}, {
|
|
104
105
|
threshold: 1
|
|
105
106
|
});
|
package/dist/core/table/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["sheetInstance", "columns", "dataSource", "rowKey", "rowSelection", "groupConfig", "onChange", "handleAdd", "handleBatchAdd", "draggable", "eventHandler", "remarkRender", "handleAddRemark", "showRemark"];
|
|
2
|
+
var _excluded = ["sheetInstance", "columns", "dataSource", "rowKey", "rowSelection", "groupConfig", "onChange", "handleAdd", "handleBatchAdd", "draggable", "eventHandler", "remarkRender", "handleAddRemark", "showRemark", "freeze"];
|
|
3
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -45,6 +45,8 @@ var Table = function Table(_ref) {
|
|
|
45
45
|
handleAddRemark = _ref.handleAddRemark,
|
|
46
46
|
_ref$showRemark = _ref.showRemark,
|
|
47
47
|
showRemark = _ref$showRemark === void 0 ? false : _ref$showRemark,
|
|
48
|
+
_ref$freeze = _ref.freeze,
|
|
49
|
+
freeze = _ref$freeze === void 0 ? false : _ref$freeze,
|
|
48
50
|
args = _objectWithoutProperties(_ref, _excluded);
|
|
49
51
|
var _useState = useState([[]]),
|
|
50
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -102,6 +104,7 @@ var Table = function Table(_ref) {
|
|
|
102
104
|
}
|
|
103
105
|
}, [dataSource, columns]);
|
|
104
106
|
var handleChanges = useCallback(function (changes, extChange) {
|
|
107
|
+
if (freeze) return;
|
|
105
108
|
onChange && onChange(changes.map(function (item) {
|
|
106
109
|
return {
|
|
107
110
|
col: item.col,
|
|
@@ -119,7 +122,7 @@ var Table = function Table(_ref) {
|
|
|
119
122
|
value: item.value
|
|
120
123
|
};
|
|
121
124
|
}));
|
|
122
|
-
}, [columns, onChange, hasControl]);
|
|
125
|
+
}, [columns, onChange, hasControl, freeze]);
|
|
123
126
|
var handleReverse = useCallback(function (value) {
|
|
124
127
|
var _ref2 = value,
|
|
125
128
|
type = _ref2.type,
|
|
@@ -206,38 +209,66 @@ var Table = function Table(_ref) {
|
|
|
206
209
|
return null;
|
|
207
210
|
}
|
|
208
211
|
return remarkRender === null || remarkRender === void 0 ? void 0 : remarkRender(remarkInfo);
|
|
209
|
-
}, [remarkRender, remarkInfo, showRemark]);
|
|
212
|
+
}, [remarkRender, remarkInfo, showRemark, data]);
|
|
213
|
+
var addRemark = useCallback(function (value) {
|
|
214
|
+
handleAddRemark === null || handleAddRemark === void 0 || handleAddRemark(value);
|
|
215
|
+
setShowRemark(true);
|
|
216
|
+
}, [handleAddRemark]);
|
|
210
217
|
var menuRenderer = args.menuRenderer;
|
|
211
218
|
var wrappMenuRenderer = useMemo(function () {
|
|
212
219
|
var remarkMenu = /*#__PURE__*/_jsx("div", {
|
|
213
220
|
className: "harvest-menu-item",
|
|
214
221
|
onClick: function onClick() {
|
|
215
|
-
return
|
|
222
|
+
return addRemark(remarkInfo);
|
|
216
223
|
},
|
|
217
224
|
children: "\u6DFB\u52A0\u8BC4\u8BBA"
|
|
218
|
-
});
|
|
225
|
+
}, "remark");
|
|
219
226
|
if (!menuRenderer) {
|
|
220
227
|
if (showRemark) {
|
|
221
228
|
return function (props) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
229
|
+
var _data$row3;
|
|
230
|
+
var cell = props.cell;
|
|
231
|
+
var _ref5 = cell !== null && cell !== void 0 ? cell : {},
|
|
232
|
+
_ref5$col = _ref5.col,
|
|
233
|
+
col = _ref5$col === void 0 ? -1 : _ref5$col,
|
|
234
|
+
_ref5$row = _ref5.row,
|
|
235
|
+
row = _ref5$row === void 0 ? -1 : _ref5$row;
|
|
236
|
+
var target = data === null || data === void 0 || (_data$row3 = data[row]) === null || _data$row3 === void 0 ? void 0 : _data$row3[col + 1];
|
|
237
|
+
console.log(data, target, row, col);
|
|
238
|
+
if ((target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed) {
|
|
239
|
+
return /*#__PURE__*/_jsx("div", {
|
|
240
|
+
className: "harvest-menu",
|
|
241
|
+
style: _objectSpread({}, props.position),
|
|
242
|
+
children: remarkMenu
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
227
246
|
};
|
|
228
247
|
}
|
|
229
248
|
return undefined;
|
|
230
249
|
} else {
|
|
231
250
|
return function (props) {
|
|
251
|
+
var _data$row4;
|
|
252
|
+
var cell = props.cell;
|
|
253
|
+
var _ref6 = cell !== null && cell !== void 0 ? cell : {},
|
|
254
|
+
_ref6$col = _ref6.col,
|
|
255
|
+
col = _ref6$col === void 0 ? -1 : _ref6$col,
|
|
256
|
+
_ref6$row = _ref6.row,
|
|
257
|
+
row = _ref6$row === void 0 ? -1 : _ref6$row;
|
|
258
|
+
var target = data === null || data === void 0 || (_data$row4 = data[row]) === null || _data$row4 === void 0 ? void 0 : _data$row4[col + 1];
|
|
232
259
|
var MenuFC = menuRenderer;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
260
|
+
if (showRemark && (target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed) {
|
|
261
|
+
return /*#__PURE__*/_jsx(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
|
|
262
|
+
target: target,
|
|
263
|
+
children: remarkMenu
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
return /*#__PURE__*/_jsx(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
|
|
267
|
+
target: target
|
|
237
268
|
}));
|
|
238
269
|
};
|
|
239
270
|
}
|
|
240
|
-
}, [showRemark, showRemarkPop, menuRenderer, remarkInfo]);
|
|
271
|
+
}, [showRemark, showRemarkPop, menuRenderer, remarkInfo, addRemark, data]);
|
|
241
272
|
return /*#__PURE__*/_jsx(ConfigProvider, {
|
|
242
273
|
renderEmpty: function renderEmpty() {
|
|
243
274
|
return /*#__PURE__*/_jsx(Empty, {
|
|
@@ -255,6 +286,7 @@ var Table = function Table(_ref) {
|
|
|
255
286
|
onChange: setGroupConfig
|
|
256
287
|
},
|
|
257
288
|
children: /*#__PURE__*/_jsxs(Sheet, _objectSpread(_objectSpread({}, args), {}, {
|
|
289
|
+
freeze: freeze,
|
|
258
290
|
menuRenderer: wrappMenuRenderer,
|
|
259
291
|
showRemark: showRemarkPop,
|
|
260
292
|
sheetInstance: sheetInstance,
|
|
@@ -282,7 +314,7 @@ var Table = function Table(_ref) {
|
|
|
282
314
|
name: key,
|
|
283
315
|
handler: eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler[key]
|
|
284
316
|
}, key);
|
|
285
|
-
}), /*#__PURE__*/_jsx(AddButton, {
|
|
317
|
+
}), freeze ? null : /*#__PURE__*/_jsx(AddButton, {
|
|
286
318
|
handleAdd: handleAdd,
|
|
287
319
|
handleBatchAdd: handleBatchAdd
|
|
288
320
|
})]
|
|
@@ -2,10 +2,6 @@ import { SheetEvent } from "../sheet/Event";
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
export var RemarkEvent = function RemarkEvent(_ref) {
|
|
4
4
|
var handler = _ref.handler;
|
|
5
|
-
// const handleClick = useCallback((value: SheetType.CellPosition) => {
|
|
6
|
-
// if (!value) return;
|
|
7
|
-
// console.log(value);
|
|
8
|
-
// }, []);
|
|
9
5
|
return /*#__PURE__*/_jsx(SheetEvent, {
|
|
10
6
|
name: "cell-select-single",
|
|
11
7
|
handler: handler
|
|
@@ -15,14 +15,13 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
15
15
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
16
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
17
|
import { getNumberEditor, getSelectEditor, Table } from "./..";
|
|
18
|
-
import { Button,
|
|
18
|
+
import { Button, Input } from 'antd';
|
|
19
19
|
import { isNil } from 'lodash';
|
|
20
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
20
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
21
21
|
import { SwitchViewer } from "../core/viewer";
|
|
22
22
|
import { SheetType } from "../type";
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
24
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
26
25
|
var RateValueInput = getNumberEditor({
|
|
27
26
|
addonAfter: '%',
|
|
28
27
|
min: 0,
|
|
@@ -421,8 +420,9 @@ export default (function () {
|
|
|
421
420
|
var handleChange = useCallback(function () {}, [state]);
|
|
422
421
|
useEffect(function () {
|
|
423
422
|
setTimeout(function () {
|
|
424
|
-
var _sheetInstance$curren;
|
|
425
|
-
(_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.
|
|
423
|
+
var _sheetInstance$curren, _sheetInstance$curren2;
|
|
424
|
+
(_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.zoomTo(1);
|
|
425
|
+
(_sheetInstance$curren2 = sheetInstance.current) === null || _sheetInstance$curren2 === void 0 || _sheetInstance$curren2.select({
|
|
426
426
|
start: {
|
|
427
427
|
row: 1,
|
|
428
428
|
col: 3
|
|
@@ -434,17 +434,45 @@ export default (function () {
|
|
|
434
434
|
});
|
|
435
435
|
}, 3);
|
|
436
436
|
}, []);
|
|
437
|
+
var _useState3 = useState([]),
|
|
438
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
439
|
+
currentRemark = _useState4[0],
|
|
440
|
+
setCurrentRemark = _useState4[1];
|
|
437
441
|
var renderRemark = useCallback(function (value) {
|
|
438
|
-
return /*#__PURE__*/_jsxs(
|
|
442
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
443
|
+
style: {
|
|
444
|
+
background: 'white'
|
|
445
|
+
},
|
|
439
446
|
children: [/*#__PURE__*/_jsxs("p", {
|
|
440
447
|
children: [" columns:", value.columnKey]
|
|
441
448
|
}), /*#__PURE__*/_jsxs("p", {
|
|
442
449
|
children: [" id:", value.id]
|
|
443
450
|
}), /*#__PURE__*/_jsx("p", {
|
|
444
451
|
children: " bugs --"
|
|
452
|
+
}), /*#__PURE__*/_jsx(Input, {
|
|
453
|
+
onPressEnter: function onPressEnter(e) {
|
|
454
|
+
setCurrentRemark([{
|
|
455
|
+
id: value.id,
|
|
456
|
+
remarks: [value.columnKey]
|
|
457
|
+
}]);
|
|
458
|
+
}
|
|
445
459
|
})]
|
|
446
460
|
});
|
|
447
461
|
}, []);
|
|
462
|
+
var wrapData = useMemo(function () {
|
|
463
|
+
return state.map(function (d) {
|
|
464
|
+
var _currentRemark$find;
|
|
465
|
+
var remarks = currentRemark === null || currentRemark === void 0 || (_currentRemark$find = currentRemark.find(function (r) {
|
|
466
|
+
return r.id === d.id;
|
|
467
|
+
})) === null || _currentRemark$find === void 0 ? void 0 : _currentRemark$find.remarks;
|
|
468
|
+
if (remarks) {
|
|
469
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
470
|
+
remarks: remarks
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
return d;
|
|
474
|
+
});
|
|
475
|
+
}, [state, currentRemark]);
|
|
448
476
|
return /*#__PURE__*/_jsxs("div", {
|
|
449
477
|
style: {
|
|
450
478
|
height: '100vh',
|
|
@@ -454,16 +482,15 @@ export default (function () {
|
|
|
454
482
|
},
|
|
455
483
|
children: [/*#__PURE__*/_jsx(Table, {
|
|
456
484
|
virtualized: true,
|
|
485
|
+
freeze: true,
|
|
457
486
|
draggable: true,
|
|
458
487
|
sheetInstance: sheetInstance,
|
|
459
488
|
columns: columns,
|
|
460
489
|
showRemark: true,
|
|
461
|
-
remarkRender: renderRemark
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
},
|
|
466
|
-
dataSource: state,
|
|
490
|
+
remarkRender: renderRemark
|
|
491
|
+
// handleAddRemark={handleAddRemark}
|
|
492
|
+
,
|
|
493
|
+
dataSource: wrapData,
|
|
467
494
|
onChange: handleChange,
|
|
468
495
|
onContextMenu: function onContextMenu() {},
|
|
469
496
|
menuRenderer: function menuRenderer(props) {
|
package/dist/type/sheet.d.ts
CHANGED
|
@@ -93,6 +93,7 @@ export type MenuRenderProps = {
|
|
|
93
93
|
cell?: CellPosition;
|
|
94
94
|
onContextMenu?: (event: any) => void;
|
|
95
95
|
children?: ReactNode | ReactNode[];
|
|
96
|
+
target?: any;
|
|
96
97
|
};
|
|
97
98
|
export type SheetInstance = {
|
|
98
99
|
zoomTo: (row?: number) => void;
|
|
@@ -119,6 +120,7 @@ export type SheetProps = {
|
|
|
119
120
|
backEditStyle?: Partial<CSSProperties>;
|
|
120
121
|
searchStyle?: Partial<CSSProperties>;
|
|
121
122
|
sticky?: boolean;
|
|
123
|
+
freeze?: boolean;
|
|
122
124
|
groupConfig?: RowGroupConfig;
|
|
123
125
|
remarkElement?: ReactNode;
|
|
124
126
|
onCellsChanged?: CellChangeHandler;
|
|
@@ -214,6 +216,7 @@ export type UpdateStateType = {
|
|
|
214
216
|
data: Cell[][];
|
|
215
217
|
mouseDown: boolean;
|
|
216
218
|
isIndex: boolean;
|
|
219
|
+
freeze: boolean;
|
|
217
220
|
lastSelected?: {
|
|
218
221
|
start?: CellPosition;
|
|
219
222
|
end?: CellPosition;
|
|
@@ -56,6 +56,11 @@ export type TableGroupConfig = {
|
|
|
56
56
|
onChange?: (value: SheetType.RowGroupConfig) => void;
|
|
57
57
|
};
|
|
58
58
|
export type EventHandler = (value: any) => void;
|
|
59
|
+
export type RemarkProps = {
|
|
60
|
+
cell: SheetType.CellPosition;
|
|
61
|
+
columnKey: string;
|
|
62
|
+
id?: string | number;
|
|
63
|
+
};
|
|
59
64
|
export type TableProps = {
|
|
60
65
|
/**
|
|
61
66
|
* @description 表格类名
|
|
@@ -83,16 +88,8 @@ export type TableProps = {
|
|
|
83
88
|
freeze?: boolean;
|
|
84
89
|
showBackEdit?: boolean;
|
|
85
90
|
showRemark?: boolean;
|
|
86
|
-
remarkRender?: (props:
|
|
87
|
-
|
|
88
|
-
columnKey: string;
|
|
89
|
-
id?: string | number;
|
|
90
|
-
}) => ReactNode;
|
|
91
|
-
handleAddRemark?: (value: {
|
|
92
|
-
cell: SheetType.CellPosition;
|
|
93
|
-
columnKey: string;
|
|
94
|
-
id?: string | number;
|
|
95
|
-
}) => void;
|
|
91
|
+
remarkRender?: (props: RemarkProps) => ReactNode;
|
|
92
|
+
handleAddRemark?: (value: RemarkProps) => void;
|
|
96
93
|
backEditStyle?: Partial<CSSProperties>;
|
|
97
94
|
searchStyle?: Partial<CSSProperties>;
|
|
98
95
|
rowSelection?: TableRowSelection;
|