@zhenliang/sheet 0.1.7-3.beta.1 → 0.1.7-3.beta.3

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.
@@ -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"];
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; }
@@ -23,6 +23,8 @@ import { DraggableShell } from "../shell/draggableShell";
23
23
  import { TableShell } from "../shell/tableShell";
24
24
  import { AddButton } from "./addButton";
25
25
  import { GroupEvent, SelectionEvent } from "./events";
26
+ import "./index.less";
27
+ import { RemarkEvent } from "./remarkEvent";
26
28
  import { formatGroupData, useGroupConfig } from "./useGroupConfig";
27
29
  import { formatSelectionData, useRowSelection } from "./useRowSelection";
28
30
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -39,6 +41,12 @@ var Table = function Table(_ref) {
39
41
  handleBatchAdd = _ref.handleBatchAdd,
40
42
  draggable = _ref.draggable,
41
43
  eventHandler = _ref.eventHandler,
44
+ remarkRender = _ref.remarkRender,
45
+ handleAddRemark = _ref.handleAddRemark,
46
+ _ref$showRemark = _ref.showRemark,
47
+ showRemark = _ref$showRemark === void 0 ? false : _ref$showRemark,
48
+ _ref$freeze = _ref.freeze,
49
+ freeze = _ref$freeze === void 0 ? false : _ref$freeze,
42
50
  args = _objectWithoutProperties(_ref, _excluded);
43
51
  var _useState = useState([[]]),
44
52
  _useState2 = _slicedToArray(_useState, 2),
@@ -74,9 +82,10 @@ var Table = function Table(_ref) {
74
82
  setData(formatGroupData({
75
83
  dataSource: dataSource,
76
84
  columns: columns,
77
- rowKey: rowKey
85
+ rowKey: rowKey,
86
+ showRemark: showRemark
78
87
  }));
79
- }, [dataSource, columns, hasChildren, rowKey]);
88
+ }, [dataSource, columns, hasChildren, rowKey, showRemark]);
80
89
  useEffect(function () {
81
90
  if (hasChildren) return;
82
91
  if (!dataSource || !columns) return;
@@ -85,15 +94,17 @@ var Table = function Table(_ref) {
85
94
  columns: columns,
86
95
  checked: checkedRow,
87
96
  rowKey: rowKey,
88
- rowSelection: rowSelection
97
+ rowSelection: rowSelection,
98
+ showRemark: showRemark
89
99
  }));
90
- }, [dataSource, columns, checkedRow, hasChildren, rowKey, rowSelection]);
100
+ }, [dataSource, columns, checkedRow, hasChildren, rowKey, rowSelection, showRemark]);
91
101
  useEffect(function () {
92
102
  if (!dataSource || !columns) {
93
103
  setData([[]]);
94
104
  }
95
105
  }, [dataSource, columns]);
96
106
  var handleChanges = useCallback(function (changes, extChange) {
107
+ if (freeze) return;
97
108
  onChange && onChange(changes.map(function (item) {
98
109
  return {
99
110
  col: item.col,
@@ -111,7 +122,7 @@ var Table = function Table(_ref) {
111
122
  value: item.value
112
123
  };
113
124
  }));
114
- }, [columns, onChange, hasControl]);
125
+ }, [columns, onChange, hasControl, freeze]);
115
126
  var handleReverse = useCallback(function (value) {
116
127
  var _ref2 = value,
117
128
  type = _ref2.type,
@@ -167,6 +178,69 @@ var Table = function Table(_ref) {
167
178
  }
168
179
  });
169
180
  }, [columns.length, columnsTitle, draggable, headSelection, hasChildren]);
181
+ var _useState3 = useState(false),
182
+ _useState4 = _slicedToArray(_useState3, 2),
183
+ showRemarkPop = _useState4[0],
184
+ setShowRemark = _useState4[1];
185
+ var _useState5 = useState(),
186
+ _useState6 = _slicedToArray(_useState5, 2),
187
+ remarkInfo = _useState6[0],
188
+ setRemarkInfo = _useState6[1];
189
+ var handleCellClick = useCallback(function (cell) {
190
+ var _columns$dataIndex, _data$row, _data$row2;
191
+ var _ref4 = cell !== null && cell !== void 0 ? cell : {},
192
+ col = _ref4.col,
193
+ row = _ref4.row;
194
+ if (!cell || !(columns !== null && columns !== void 0 && columns.length) || !(data !== null && data !== void 0 && data.length) || !columns[col - offset]) {
195
+ //remove pop
196
+ setShowRemark(false);
197
+ return;
198
+ }
199
+ var columnKey = (_columns$dataIndex = columns[col - offset].dataIndex) !== null && _columns$dataIndex !== void 0 ? _columns$dataIndex : '';
200
+ setRemarkInfo({
201
+ cell: cell,
202
+ columnKey: columnKey,
203
+ id: data === null || data === void 0 || (_data$row = data[row]) === null || _data$row === void 0 || (_data$row = _data$row[col]) === null || _data$row === void 0 || (_data$row = _data$row.record) === null || _data$row === void 0 ? void 0 : _data$row.id
204
+ });
205
+ setShowRemark(!!(data !== null && data !== void 0 && (_data$row2 = data[row]) !== null && _data$row2 !== void 0 && (_data$row2 = _data$row2[col]) !== null && _data$row2 !== void 0 && (_data$row2 = _data$row2.record) !== null && _data$row2 !== void 0 && (_data$row2 = _data$row2.remarks) !== null && _data$row2 !== void 0 && _data$row2.includes(columnKey)));
206
+ }, [offset, columns, data]);
207
+ var remarkElement = useMemo(function () {
208
+ if (!showRemark || !remarkInfo) {
209
+ return null;
210
+ }
211
+ return remarkRender === null || remarkRender === void 0 ? void 0 : remarkRender(remarkInfo);
212
+ }, [remarkRender, remarkInfo, showRemark]);
213
+ var menuRenderer = args.menuRenderer;
214
+ var wrappMenuRenderer = useMemo(function () {
215
+ var remarkMenu = /*#__PURE__*/_jsx("div", {
216
+ className: "harvest-menu-item",
217
+ onClick: function onClick() {
218
+ return remarkInfo && (handleAddRemark === null || handleAddRemark === void 0 ? void 0 : handleAddRemark(remarkInfo));
219
+ },
220
+ children: "\u6DFB\u52A0\u8BC4\u8BBA"
221
+ });
222
+ if (!menuRenderer) {
223
+ if (showRemark) {
224
+ return function (props) {
225
+ return /*#__PURE__*/_jsx("div", {
226
+ className: "harvest-menu",
227
+ style: _objectSpread({}, props.position),
228
+ children: remarkMenu
229
+ });
230
+ };
231
+ }
232
+ return undefined;
233
+ } else {
234
+ return function (props) {
235
+ var MenuFC = menuRenderer;
236
+ return /*#__PURE__*/_jsxs(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
237
+ children: [remarkMenu, /*#__PURE__*/_jsx("div", {
238
+ className: "harvest-menu-divider"
239
+ })]
240
+ }));
241
+ };
242
+ }
243
+ }, [showRemark, showRemarkPop, menuRenderer, remarkInfo]);
170
244
  return /*#__PURE__*/_jsx(ConfigProvider, {
171
245
  renderEmpty: function renderEmpty() {
172
246
  return /*#__PURE__*/_jsx(Empty, {
@@ -184,11 +258,15 @@ var Table = function Table(_ref) {
184
258
  onChange: setGroupConfig
185
259
  },
186
260
  children: /*#__PURE__*/_jsxs(Sheet, _objectSpread(_objectSpread({}, args), {}, {
261
+ freeze: freeze,
262
+ menuRenderer: wrappMenuRenderer,
263
+ showRemark: showRemarkPop,
187
264
  sheetInstance: sheetInstance,
188
265
  sheetRenderer: WrappedTableShell,
189
266
  data: data,
190
267
  onCellsChanged: handleChanges,
191
268
  handleAdd: handleAdd,
269
+ remarkElement: remarkElement,
192
270
  children: [/*#__PURE__*/_jsx(SelectionEvent, {
193
271
  hasChildren: hasChildren,
194
272
  rowSelection: rowSelection,
@@ -201,12 +279,14 @@ var Table = function Table(_ref) {
201
279
  }), /*#__PURE__*/_jsx(SheetEvent, {
202
280
  name: "reverse",
203
281
  handler: handleReverse
204
- }, "_reverse"), Object.keys(eventHandler || {}).map(function (key) {
282
+ }, "_reverse"), /*#__PURE__*/_jsx(RemarkEvent, {
283
+ handler: handleCellClick
284
+ }), Object.keys(eventHandler || {}).map(function (key) {
205
285
  return /*#__PURE__*/_jsx(SheetEvent, {
206
286
  name: key,
207
287
  handler: eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler[key]
208
288
  }, key);
209
- }), /*#__PURE__*/_jsx(AddButton, {
289
+ }), freeze ? null : /*#__PURE__*/_jsx(AddButton, {
210
290
  handleAdd: handleAdd,
211
291
  handleBatchAdd: handleBatchAdd
212
292
  })]
@@ -9,4 +9,23 @@
9
9
  }
10
10
  }
11
11
  }
12
+ }
13
+ .remark-cell{
14
+ position: relative !important;
15
+ overflow: hidden;
16
+ &::before{
17
+ position: absolute;
18
+ transform: translate(6px,-6px);
19
+ content: '';
20
+ top:4px;
21
+ right:4px;
22
+ border:4px solid transparent;
23
+ border-top-color: red;
24
+ border-right-color: red;
25
+ }
26
+ }
27
+ .harvest-menu-divider{
28
+ margin: 5px 8px;
29
+ height: 1px;
30
+ background-color: rgb(235, 235, 235);
12
31
  }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { SheetType } from "../../type";
3
+ export declare const RemarkEvent: React.FC<{
4
+ handler: (value: SheetType.CellPosition) => void;
5
+ }>;
@@ -0,0 +1,13 @@
1
+ import { SheetEvent } from "../sheet/Event";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export var RemarkEvent = function RemarkEvent(_ref) {
4
+ var handler = _ref.handler;
5
+ // const handleClick = useCallback((value: SheetType.CellPosition) => {
6
+ // if (!value) return;
7
+ // console.log(value);
8
+ // }, []);
9
+ return /*#__PURE__*/_jsx(SheetEvent, {
10
+ name: "cell-select-single",
11
+ handler: handler
12
+ }, "cell-select-single");
13
+ };
@@ -2,4 +2,4 @@ import type { SheetTableType, SheetType } from "../../type";
2
2
  export declare const useGroupConfig: (dataSource: Record<string, unknown>[], tableGroupConfig?: SheetTableType.TableGroupConfig, hasChildren?: boolean) => [SheetType.RowGroupConfig & {
3
3
  configMap: SheetType.GroupMap;
4
4
  }, (value: SheetType.RowGroupConfig) => void];
5
- export declare const formatGroupData: (param: Pick<SheetTableType.TableProps, 'dataSource' | 'columns' | 'rowKey'>) => SheetType.Cell[][];
5
+ export declare const formatGroupData: (param: Pick<SheetTableType.TableProps, 'dataSource' | 'columns' | 'rowKey' | 'showRemark'>) => SheetType.Cell[][];
@@ -16,7 +16,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
  import { flatten, isNil } from 'lodash';
18
18
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
- import { groupConfigToGroupMap } from "../util";
19
+ import { classNames, groupConfigToGroupMap } from "../util";
20
20
  import { GroupViewer } from "../viewer";
21
21
  import { dataSourceToRowConfig } from "./util";
22
22
  export var useGroupConfig = function useGroupConfig(dataSource, tableGroupConfig, hasChildren) {
@@ -104,7 +104,8 @@ export var useGroupConfig = function useGroupConfig(dataSource, tableGroupConfig
104
104
  export var formatGroupData = function formatGroupData(param) {
105
105
  var dataSource = param.dataSource,
106
106
  columns = param.columns,
107
- rowKey = param.rowKey;
107
+ rowKey = param.rowKey,
108
+ showRemark = param.showRemark;
108
109
  var data = [];
109
110
  var currentIndex = 0;
110
111
  dataSource.forEach(function (item, row) {
@@ -147,8 +148,9 @@ export var formatGroupData = function formatGroupData(param) {
147
148
  className: 'sheet-control'
148
149
  });
149
150
  columns.forEach(function (colInfo, col) {
150
- var _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
151
+ var _itemRow$remarks, _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
151
152
  var value = itemRow[colInfo.dataIndex || ''];
153
+ var hasRemark = showRemark && (itemRow === null || itemRow === void 0 || (_itemRow$remarks = itemRow.remarks) === null || _itemRow$remarks === void 0 ? void 0 : _itemRow$remarks.includes(colInfo.dataIndex));
152
154
  dataRow.push({
153
155
  id: rowId,
154
156
  value: value,
@@ -161,7 +163,7 @@ export var formatGroupData = function formatGroupData(param) {
161
163
  dataEditor: colInfo.editor ? colInfo.editor : undefined,
162
164
  searchKey: colInfo.searchKey,
163
165
  row: currentIndex,
164
- className: !(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, itemRow, currentIndex),
166
+ className: classNames(!(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, itemRow, currentIndex), hasRemark ? 'remark-cell' : null),
165
167
  dataIndex: colInfo.dataIndex,
166
168
  key: colInfo.key,
167
169
  allowClear: colInfo.allowClear,
@@ -1,5 +1,5 @@
1
1
  import { SheetTableType } from "../..";
2
2
  export declare const useRowSelection: (dataSource: Record<string, unknown>[], rowSelection?: SheetTableType.TableRowSelection, hasChildren?: boolean) => [boolean[], (value: boolean[]) => void];
3
- export declare const formatSelectionData: (param: Pick<SheetTableType.TableProps, "columns" | "dataSource" | "rowKey" | "rowSelection"> & {
3
+ export declare const formatSelectionData: (param: Pick<SheetTableType.TableProps, "columns" | "dataSource" | "rowKey" | "showRemark" | "rowSelection"> & {
4
4
  checked: boolean[];
5
5
  }) => any[][];
@@ -6,6 +6,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import { CheckViewer } from "../..";
8
8
  import { useEffect, useRef, useState } from 'react';
9
+ import { classNames } from "../util";
9
10
  export var useRowSelection = function useRowSelection(dataSource, rowSelection, hasChildren) {
10
11
  var _dataSource$length;
11
12
  var _useState = useState(Array((_dataSource$length = dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) !== null && _dataSource$length !== void 0 ? _dataSource$length : 0).fill(false)),
@@ -28,7 +29,8 @@ export var formatSelectionData = function formatSelectionData(param) {
28
29
  columns = param.columns,
29
30
  checked = param.checked,
30
31
  rowKey = param.rowKey,
31
- rowSelection = param.rowSelection;
32
+ rowSelection = param.rowSelection,
33
+ showRemark = param.showRemark;
32
34
  return dataSource.map(function (item, row) {
33
35
  var rowId = item.id || item.key || String(row);
34
36
  if (rowKey) {
@@ -64,8 +66,9 @@ export var formatSelectionData = function formatSelectionData(param) {
64
66
  });
65
67
  }
66
68
  columns.forEach(function (colInfo, col) {
67
- var _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
69
+ var _item$remarks, _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
68
70
  var value = item[colInfo.dataIndex || ''];
71
+ var hasRemark = showRemark && (item === null || item === void 0 || (_item$remarks = item.remarks) === null || _item$remarks === void 0 ? void 0 : _item$remarks.includes(colInfo.dataIndex));
69
72
  rows.push({
70
73
  id: rowId,
71
74
  value: value,
@@ -77,7 +80,7 @@ export var formatSelectionData = function formatSelectionData(param) {
77
80
  valueViewer: colInfo.render ? colInfo.render : undefined,
78
81
  dataEditor: colInfo.editor ? colInfo.editor : undefined,
79
82
  searchKey: colInfo.searchKey,
80
- className: !(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, item, row),
83
+ className: classNames(!(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, item, row), hasRemark ? 'remark-cell' : null),
81
84
  row: row,
82
85
  col: col,
83
86
  dataIndex: colInfo.dataIndex,
@@ -1,16 +1,28 @@
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
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
7
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
8
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
- 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; }
5
9
  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; } }
6
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
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; }
7
17
  import { getNumberEditor, getSelectEditor, Table } from "./..";
8
- import { Button } from 'antd';
18
+ import { Button, message } from 'antd';
9
19
  import { isNil } from 'lodash';
10
- import { useCallback, useState } from 'react';
20
+ import { useCallback, useEffect, useRef, useState } from 'react';
11
21
  import { SwitchViewer } from "../core/viewer";
12
22
  import { SheetType } from "../type";
13
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ import { Fragment as _Fragment } from "react/jsx-runtime";
14
26
  var RateValueInput = getNumberEditor({
15
27
  addonAfter: '%',
16
28
  min: 0,
@@ -38,7 +50,8 @@ var data = [{
38
50
  gfaUnitPrice: 107350.31545913525,
39
51
  nlaUnitPrice: 90130.38038659678,
40
52
  totalValuation: 1622707368.4802885,
41
- isEnabled: true
53
+ isEnabled: true,
54
+ remarks: ['valuationType', 'vacancyDiscountRate']
42
55
  }, {
43
56
  id: 2444,
44
57
  draftId: '101601',
@@ -51,8 +64,165 @@ var data = [{
51
64
  gfaUnitPrice: 89327.04427210477,
52
65
  nlaUnitPrice: 89327.04427210477,
53
66
  totalValuation: 1429232708.3536763,
67
+ remarks: ['termDiscountRate', 'vacancyDiscountRate'],
54
68
  isEnabled: false
55
- }];
69
+ }, {
70
+ id: 2445,
71
+ draftId: '101601',
72
+ valuationType: 5,
73
+ termDiscountRate: 4.5,
74
+ reversionDiscountRate: 5.5,
75
+ vacancyDiscountRate: 5.5,
76
+ discountRate: null,
77
+ exitCapRate: null,
78
+ gfaUnitPrice: 89327.04427210477,
79
+ nlaUnitPrice: 89327.04427210477,
80
+ totalValuation: 1429232708.3536763,
81
+ remarks: ['reversionDiscountRate', 'vacancyDiscountRate'],
82
+ isEnabled: false
83
+ }, {
84
+ id: 2446,
85
+ draftId: '101601',
86
+ valuationType: 5,
87
+ termDiscountRate: 4.5,
88
+ reversionDiscountRate: 5.5,
89
+ vacancyDiscountRate: 5.5,
90
+ discountRate: null,
91
+ exitCapRate: null,
92
+ gfaUnitPrice: 89327.04427210477,
93
+ nlaUnitPrice: 89327.04427210477,
94
+ totalValuation: 1429232708.3536763,
95
+ remarks: ['vacancyDiscountRate'],
96
+ isEnabled: false
97
+ }, {
98
+ id: 2447,
99
+ draftId: '101601',
100
+ valuationType: 5,
101
+ termDiscountRate: 4.5,
102
+ reversionDiscountRate: 5.5,
103
+ vacancyDiscountRate: 5.5,
104
+ discountRate: null,
105
+ exitCapRate: null,
106
+ gfaUnitPrice: 89327.04427210477,
107
+ nlaUnitPrice: 89327.04427210477,
108
+ totalValuation: 1429232708.3536763,
109
+ remarks: ['discountRate', 'vacancyDiscountRate'],
110
+ isEnabled: false
111
+ }, {
112
+ id: 2448,
113
+ draftId: '101601',
114
+ valuationType: 5,
115
+ termDiscountRate: 4.5,
116
+ reversionDiscountRate: 5.5,
117
+ vacancyDiscountRate: 5.5,
118
+ discountRate: null,
119
+ exitCapRate: null,
120
+ gfaUnitPrice: 89327.04427210477,
121
+ nlaUnitPrice: 89327.04427210477,
122
+ totalValuation: 1429232708.3536763,
123
+ remarks: ['exitCapRate', 'vacancyDiscountRate'],
124
+ isEnabled: false
125
+ }, {
126
+ id: 2449,
127
+ draftId: '101601',
128
+ valuationType: 5,
129
+ termDiscountRate: 4.5,
130
+ reversionDiscountRate: 5.5,
131
+ vacancyDiscountRate: 5.5,
132
+ discountRate: null,
133
+ exitCapRate: null,
134
+ gfaUnitPrice: 89327.04427210477,
135
+ nlaUnitPrice: 89327.04427210477,
136
+ totalValuation: 1429232708.3536763,
137
+ remarks: ['gfaUnitPrice', 'vacancyDiscountRate'],
138
+ isEnabled: false
139
+ }, {
140
+ id: 2450,
141
+ draftId: '101601',
142
+ valuationType: 5,
143
+ termDiscountRate: 4.5,
144
+ reversionDiscountRate: 5.5,
145
+ vacancyDiscountRate: 5.5,
146
+ discountRate: null,
147
+ exitCapRate: null,
148
+ gfaUnitPrice: 89327.04427210477,
149
+ nlaUnitPrice: 89327.04427210477,
150
+ totalValuation: 1429232708.3536763,
151
+ remarks: ['nlaUnitPrice', 'vacancyDiscountRate'],
152
+ isEnabled: false
153
+ }, {
154
+ id: 2451,
155
+ draftId: '101601',
156
+ valuationType: 5,
157
+ termDiscountRate: 4.5,
158
+ reversionDiscountRate: 5.5,
159
+ vacancyDiscountRate: 5.5,
160
+ discountRate: null,
161
+ exitCapRate: null,
162
+ gfaUnitPrice: 89327.04427210477,
163
+ nlaUnitPrice: 89327.04427210477,
164
+ totalValuation: 1429232708.3536763,
165
+ remarks: ['totalValuation', 'vacancyDiscountRate'],
166
+ isEnabled: false
167
+ }, {
168
+ id: 2452,
169
+ draftId: '101601',
170
+ valuationType: 5,
171
+ termDiscountRate: 4.5,
172
+ reversionDiscountRate: 5.5,
173
+ vacancyDiscountRate: 5.5,
174
+ discountRate: null,
175
+ exitCapRate: null,
176
+ gfaUnitPrice: 89327.04427210477,
177
+ nlaUnitPrice: 89327.04427210477,
178
+ totalValuation: 1429232708.3536763,
179
+ remarks: ['termDiscountRate', 'vacancyDiscountRate'],
180
+ isEnabled: false
181
+ }, {
182
+ id: 2453,
183
+ draftId: '101601',
184
+ valuationType: 5,
185
+ termDiscountRate: 4.5,
186
+ reversionDiscountRate: 5.5,
187
+ vacancyDiscountRate: 5.5,
188
+ discountRate: null,
189
+ exitCapRate: null,
190
+ gfaUnitPrice: 89327.04427210477,
191
+ nlaUnitPrice: 89327.04427210477,
192
+ totalValuation: 1429232708.3536763,
193
+ remarks: ['termDiscountRate', 'vacancyDiscountRate'],
194
+ isEnabled: false
195
+ }, {
196
+ id: 2454,
197
+ draftId: '101601',
198
+ valuationType: 5,
199
+ termDiscountRate: 4.5,
200
+ reversionDiscountRate: 5.5,
201
+ vacancyDiscountRate: 5.5,
202
+ discountRate: null,
203
+ exitCapRate: null,
204
+ gfaUnitPrice: 89327.04427210477,
205
+ nlaUnitPrice: 89327.04427210477,
206
+ totalValuation: 1429232708.3536763,
207
+ remarks: ['termDiscountRate', 'vacancyDiscountRate'],
208
+ isEnabled: false
209
+ }].concat(_toConsumableArray(Array(100).fill(0).map(function (item, i) {
210
+ return {
211
+ id: 2455 + i,
212
+ draftId: '101601',
213
+ valuationType: 5,
214
+ termDiscountRate: 4.5,
215
+ reversionDiscountRate: 5.5,
216
+ vacancyDiscountRate: 5.5,
217
+ discountRate: null,
218
+ exitCapRate: null,
219
+ gfaUnitPrice: 89327.04427210477,
220
+ nlaUnitPrice: 89327.04427210477,
221
+ totalValuation: 1429232708.3536763,
222
+ remarks: ['termDiscountRate', 'vacancyDiscountRate'],
223
+ isEnabled: false
224
+ };
225
+ })));
56
226
  var evaluateMethods = [{
57
227
  label: 'DCF',
58
228
  value: 2
@@ -168,6 +338,36 @@ export default (function () {
168
338
  width: 134,
169
339
  editor: ValueInput,
170
340
  readonly: true
341
+ }, {
342
+ title: 'id-1',
343
+ dataIndex: 'id-1',
344
+ width: 134,
345
+ editor: ValueInput,
346
+ readonly: true
347
+ }, {
348
+ title: 'id-2',
349
+ dataIndex: 'id-2',
350
+ width: 134,
351
+ editor: ValueInput,
352
+ readonly: true
353
+ }, {
354
+ title: 'id-3',
355
+ dataIndex: 'id-3',
356
+ width: 134,
357
+ editor: ValueInput,
358
+ readonly: true
359
+ }, {
360
+ title: 'id-4',
361
+ dataIndex: 'id-4',
362
+ width: 134,
363
+ editor: ValueInput,
364
+ readonly: true
365
+ }, {
366
+ title: 'id-5',
367
+ dataIndex: 'id-5',
368
+ width: 134,
369
+ editor: ValueInput,
370
+ readonly: true
171
371
  }, {
172
372
  title: '操作',
173
373
  width: 62,
@@ -217,10 +417,87 @@ export default (function () {
217
417
  // return <div className="value-viewer number-value-viewer" />;
218
418
  // },
219
419
  }];
420
+ var sheetInstance = useRef(null);
220
421
  var handleChange = useCallback(function () {}, [state]);
221
- return /*#__PURE__*/_jsx(Table, {
222
- columns: columns,
223
- dataSource: state,
224
- onChange: handleChange
422
+ useEffect(function () {
423
+ setTimeout(function () {
424
+ var _sheetInstance$curren, _sheetInstance$curren2;
425
+ (_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.zoomTo(1);
426
+ (_sheetInstance$curren2 = sheetInstance.current) === null || _sheetInstance$curren2 === void 0 || _sheetInstance$curren2.select({
427
+ start: {
428
+ row: 1,
429
+ col: 3
430
+ },
431
+ end: {
432
+ row: 1,
433
+ col: 3
434
+ }
435
+ });
436
+ }, 3);
437
+ }, []);
438
+ var renderRemark = useCallback(function (value) {
439
+ return /*#__PURE__*/_jsxs(_Fragment, {
440
+ children: [/*#__PURE__*/_jsxs("p", {
441
+ children: [" columns:", value.columnKey]
442
+ }), /*#__PURE__*/_jsxs("p", {
443
+ children: [" id:", value.id]
444
+ }), /*#__PURE__*/_jsx("p", {
445
+ children: " bugs --"
446
+ })]
447
+ });
448
+ }, []);
449
+ return /*#__PURE__*/_jsxs("div", {
450
+ style: {
451
+ height: '100vh',
452
+ padding: '29vh 0',
453
+ overflow: 'auto',
454
+ background: 'rgba(255,255,0,.2)'
455
+ },
456
+ children: [/*#__PURE__*/_jsx(Table, {
457
+ virtualized: true,
458
+ freeze: true,
459
+ draggable: true,
460
+ sheetInstance: sheetInstance,
461
+ columns: columns,
462
+ showRemark: true,
463
+ remarkRender: renderRemark,
464
+ handleAddRemark: function handleAddRemark(value) {
465
+ message.info("".concat(value.id, "\uFF1A").concat(value.columnKey));
466
+ console.log(value.id, value.columnKey);
467
+ },
468
+ dataSource: state,
469
+ onChange: handleChange,
470
+ onContextMenu: function onContextMenu() {},
471
+ menuRenderer: function menuRenderer(props) {
472
+ var handleMenu = props.onContextMenu,
473
+ cell = props.cell,
474
+ position = props.position,
475
+ children = props.children;
476
+ if (!cell || !handleMenu || cell.col < 1 || !position) {
477
+ return null;
478
+ }
479
+ return /*#__PURE__*/_jsxs("div", {
480
+ className: "harvest-menu",
481
+ style: _objectSpread(_objectSpread({}, position), {}, {
482
+ background: 'white'
483
+ }),
484
+ children: [children, /*#__PURE__*/_jsx("div", {
485
+ className: "harvest-menu-item",
486
+ children: "\u5411\u4E0B\u586B\u5145"
487
+ }), /*#__PURE__*/_jsx("div", {
488
+ className: "harvest-menu-item",
489
+ children: "\u5411\u53F3\u586B\u5145"
490
+ }), /*#__PURE__*/_jsx("div", {
491
+ className: "harvest-menu-item",
492
+ children: "\u5168\u90E8\u586B\u5145"
493
+ })]
494
+ });
495
+ }
496
+ }), /*#__PURE__*/_jsx("div", {
497
+ style: {
498
+ height: '100vh'
499
+ },
500
+ children: " empty"
501
+ })]
225
502
  });
226
503
  });