@kdcloudjs/table 1.1.5-canary.9 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,7 +103,7 @@ export var defaultCSSVariables = {
103
103
  '--row-height': '48px',
104
104
  '--color': '#333',
105
105
  '--bgcolor': 'white',
106
- '--hover-bgcolor': 'var(--hover-color, #F2F6FF)',
106
+ '--hover-bgcolor': 'var(--hover-color, #f5f5f5)',
107
107
  '--highlight-bgcolor': '#eee',
108
108
  '--primary-color': '#5582F3',
109
109
  '--primary-color-level1': 'rgb(242, 248, 255)',
@@ -67,4 +67,4 @@ export var icons = {
67
67
  CaretRight: CaretRightIcon,
68
68
  Info: InfoIcon
69
69
  };
70
- export var ContextMenuStyleWrap = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 13px;\n position:absolute;\n z-index: 1050;\n width:120px;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #666666;\n }\n\n .", " .", "{\n background-color: #f5f5f5;\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 5px 8px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), MenuClasses.menu, MenuClasses.menuList, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuList, MenuClasses.menuOptionActive, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionText, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionDisable);
70
+ export var ContextMenuStyleWrap = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), MenuClasses.menu, MenuClasses.menuList, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuList, MenuClasses.menuOptionActive, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionText, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionDisable);
@@ -4,6 +4,7 @@ import _spliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
4
4
  import { getLeftNestedLockCount } from '../../base/calculations';
5
5
  import { isLeafNode, makeRecursiveMapper } from '../../utils';
6
6
  import { Classes } from '../../base/styles';
7
+ import { COLUMN_RESIZE_KEY } from './columnResizeWidth';
7
8
  export var FILL_COLUMN_CODE = '$_fill_column_&';
8
9
  export var tableWidthKey = 'tableWidth';
9
10
  var fillColumnWidthKey = 'fillColumnWidth';
@@ -53,7 +54,7 @@ var setAutoFillWidth = function setAutoFillWidth(pipeline) {
53
54
  code = col.code;
54
55
 
55
56
  if (isLeafNode(col) && code !== FILL_COLUMN_CODE) {
56
- var resizeColumn = pipeline.getStateAtKey('columnResize');
57
+ var resizeColumn = pipeline.getFeatureOptions(COLUMN_RESIZE_KEY);
57
58
  columnWidthSum += resizeColumn && resizeColumn[code] || width;
58
59
  }
59
60
 
@@ -20,5 +20,6 @@ export interface ColumnResizeOptions {
20
20
  onChangeSize?(nextSize: ColumnSize): void;
21
21
  afterChangeSize?(nextSize: ColumnSize, changedColumnSize: ChangedColumnSize[]): void;
22
22
  }
23
+ export declare const COLUMN_RESIZE_KEY = "columnResize";
23
24
  export declare function columnResize(opts?: ColumnResizeOptions): (pipeline: TablePipeline) => TablePipeline;
24
25
  export {};
@@ -23,17 +23,18 @@ function disableSelect(event) {
23
23
  event.preventDefault();
24
24
  }
25
25
 
26
+ var stateKey = 'columnResize';
27
+ export var COLUMN_RESIZE_KEY = 'columnResize';
26
28
  export function columnResize() {
27
29
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
30
 
29
31
  var _a, _b, _c;
30
32
 
31
- var stateKey = 'columnResize';
32
33
  var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
33
34
  var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
34
35
  var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
35
36
  return function columnResizeFeature(pipeline) {
36
- var _a, _b, _c;
37
+ var _a, _b;
37
38
 
38
39
  var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
39
40
  var leafColumns = collectNodes(pipeline.getColumns(), 'leaf-only');
@@ -48,15 +49,10 @@ export function columnResize() {
48
49
  columnSize[code] = fallbackSize;
49
50
  }
50
51
  }
51
- }); // 初始化 || opts.columnSize发生变化(为了autofill时能取到最新值)
52
+ }); // 为了autofill时能取到最新值,实时存储一份最新的columnSize
53
+ // 存在state里可能存到取不到最新的
52
54
 
53
- if (!pipeline.getStateAtKey(stateKey) || ((_c = pipeline.ref) === null || _c === void 0 ? void 0 : _c.current.lastOptColumnSize) !== opts.columnSize) {
54
- pipeline.setStateAtKey(stateKey, columnSize);
55
- }
56
-
57
- if (pipeline.ref) {
58
- pipeline.ref.current.lastOptColumnSize = opts.columnSize;
59
- }
55
+ pipeline.setFeatureOptions(COLUMN_RESIZE_KEY, columnSize);
60
56
 
61
57
  var onChangeSize = function onChangeSize(nextColumnSize) {
62
58
  window.requestAnimationFrame(function () {
@@ -64,12 +60,6 @@ export function columnResize() {
64
60
 
65
61
  pipeline.setStateAtKey(stateKey, nextColumnSize);
66
62
  (_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
67
-
68
- if (opts.columnSize) {
69
- if (pipeline.ref) {
70
- pipeline.ref.current.lastOptColumnSize = nextColumnSize; // 这里记录由列宽拖拽导致的opts.columnSize变化,避免重复渲染
71
- }
72
- }
73
63
  });
74
64
  };
75
65
 
@@ -44,28 +44,34 @@ export function multiSelect() {
44
44
  /** 所有有效的 keys(disable 状态为 false) */
45
45
 
46
46
  var allKeys = [];
47
+ var set = new _Set(value);
48
+ var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
49
+
50
+ var isAnyChecked = false;
47
51
  var flatDataSource = collectNodes(dataSource);
48
52
  flatDataSource.forEach(function (row, rowIndex) {
49
53
  var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
50
54
  fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
51
55
 
52
56
  if (!isDisabled(row, rowIndex)) {
53
- allKeys.push(rowKey);
57
+ allKeys.push(rowKey); // 存在一个非选中,则不再进行判断
58
+
59
+ if (isAllChecked) {
60
+ isAllChecked = set.has(rowKey);
61
+ } // 存在一个选中,则不再进行判断
62
+
63
+
64
+ if (!isAnyChecked) {
65
+ isAnyChecked = set.has(rowKey);
66
+ }
54
67
  }
55
- });
56
- var set = new _Set(value); // todo: 暂使用hidden隐藏选择列 后续增加配置
68
+ }); // todo: 暂使用hidden隐藏选择列 后续增加配置
57
69
 
58
70
  var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
59
71
 
60
72
  if (!hiddenSelectColumn) {
61
73
  var _context;
62
74
 
63
- var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
64
- return set.has(key);
65
- });
66
- var isAnyChecked = allKeys.some(function (key) {
67
- return set.has(key);
68
- });
69
75
  var defaultCheckboxColumnTitle = /*#__PURE__*/React.createElement(Checkbox, {
70
76
  checked: isAllChecked,
71
77
  indeterminate: !isAllChecked && isAnyChecked,
@@ -65,16 +65,16 @@ export function rangeSelection(opts) {
65
65
 
66
66
  if (clickCell) {
67
67
  if (event.shiftKey) {
68
- var _lastClickCell = pipeline.getStateAtKey(lastClickCellKey);
68
+ var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
69
69
 
70
70
  if (_lastClickCell) {
71
71
  setRangeSelection(_lastClickCell, clickCell);
72
72
  } else {
73
73
  // 第一次进来就按住shift键,这时候要记住点击的单元格
74
- pipeline.setStateAtKey(lastClickCellKey, clickCell);
74
+ pipeline.setFeatureOptions(lastClickCellKey, clickCell);
75
75
  }
76
76
  } else {
77
- pipeline.setStateAtKey(lastClickCellKey, clickCell);
77
+ pipeline.setFeatureOptions(lastClickCellKey, clickCell);
78
78
  setRangeSelection(clickCell, clickCell);
79
79
  }
80
80
  }
@@ -171,6 +171,10 @@ export function sort() {
171
171
  return dataSource;
172
172
  }
173
173
 
174
+ if (sortMap.size === 0) {
175
+ return dataSource;
176
+ }
177
+
174
178
  var sortColumnsMap = new _Map(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = collectNodes(columns, 'leaf-only')).call(_context2, function (col) {
175
179
  var _a, _b;
176
180
 
@@ -128,7 +128,7 @@ var defaultCSSVariables = {
128
128
  '--row-height': '48px',
129
129
  '--color': '#333',
130
130
  '--bgcolor': 'white',
131
- '--hover-bgcolor': 'var(--hover-color, #F2F6FF)',
131
+ '--hover-bgcolor': 'var(--hover-color, #f5f5f5)',
132
132
  '--highlight-bgcolor': '#eee',
133
133
  '--primary-color': '#5582F3',
134
134
  '--primary-color-level1': 'rgb(242, 248, 255)',
@@ -85,6 +85,6 @@ var icons = {
85
85
  };
86
86
  exports.icons = icons;
87
87
 
88
- var ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 13px;\n position:absolute;\n z-index: 1050;\n width:120px;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #666666;\n }\n\n .", " .", "{\n background-color: #f5f5f5;\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 5px 8px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), _styles.MenuClasses.menu, _styles.MenuClasses.menuList, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOptionActive, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionText, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionDisable);
88
+ var ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), _styles.MenuClasses.menu, _styles.MenuClasses.menuList, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOptionActive, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionText, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionDisable);
89
89
 
90
90
  exports.ContextMenuStyleWrap = ContextMenuStyleWrap;
@@ -19,6 +19,8 @@ var _utils = require("../../utils");
19
19
 
20
20
  var _styles = require("../../base/styles");
21
21
 
22
+ var _columnResizeWidth = require("./columnResizeWidth");
23
+
22
24
  var FILL_COLUMN_CODE = '$_fill_column_&';
23
25
  exports.FILL_COLUMN_CODE = FILL_COLUMN_CODE;
24
26
  var tableWidthKey = 'tableWidth';
@@ -71,7 +73,7 @@ var setAutoFillWidth = function setAutoFillWidth(pipeline) {
71
73
  code = col.code;
72
74
 
73
75
  if ((0, _utils.isLeafNode)(col) && code !== FILL_COLUMN_CODE) {
74
- var resizeColumn = pipeline.getStateAtKey('columnResize');
76
+ var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth.COLUMN_RESIZE_KEY);
75
77
  columnWidthSum += resizeColumn && resizeColumn[code] || width;
76
78
  }
77
79
 
@@ -20,5 +20,6 @@ export interface ColumnResizeOptions {
20
20
  onChangeSize?(nextSize: ColumnSize): void;
21
21
  afterChangeSize?(nextSize: ColumnSize, changedColumnSize: ChangedColumnSize[]): void;
22
22
  }
23
+ export declare const COLUMN_RESIZE_KEY = "columnResize";
23
24
  export declare function columnResize(opts?: ColumnResizeOptions): (pipeline: TablePipeline) => TablePipeline;
24
25
  export {};
@@ -11,6 +11,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
11
11
  Object.defineProperty(exports, "__esModule", {
12
12
  value: true
13
13
  });
14
+ exports.COLUMN_RESIZE_KEY = void 0;
14
15
  exports.columnResize = columnResize;
15
16
 
16
17
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
@@ -53,17 +54,20 @@ function disableSelect(event) {
53
54
  event.preventDefault();
54
55
  }
55
56
 
57
+ var stateKey = 'columnResize';
58
+ var COLUMN_RESIZE_KEY = 'columnResize';
59
+ exports.COLUMN_RESIZE_KEY = COLUMN_RESIZE_KEY;
60
+
56
61
  function columnResize() {
57
62
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
63
 
59
64
  var _a, _b, _c;
60
65
 
61
- var stateKey = 'columnResize';
62
66
  var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
63
67
  var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
64
68
  var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
65
69
  return function columnResizeFeature(pipeline) {
66
- var _a, _b, _c;
70
+ var _a, _b;
67
71
 
68
72
  var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
69
73
  var leafColumns = (0, _utils.collectNodes)(pipeline.getColumns(), 'leaf-only');
@@ -78,15 +82,10 @@ function columnResize() {
78
82
  columnSize[code] = fallbackSize;
79
83
  }
80
84
  }
81
- }); // 初始化 || opts.columnSize发生变化(为了autofill时能取到最新值)
82
-
83
- if (!pipeline.getStateAtKey(stateKey) || ((_c = pipeline.ref) === null || _c === void 0 ? void 0 : _c.current.lastOptColumnSize) !== opts.columnSize) {
84
- pipeline.setStateAtKey(stateKey, columnSize);
85
- }
85
+ }); // 为了autofill时能取到最新值,实时存储一份最新的columnSize
86
+ // 存在state里可能存到取不到最新的
86
87
 
87
- if (pipeline.ref) {
88
- pipeline.ref.current.lastOptColumnSize = opts.columnSize;
89
- }
88
+ pipeline.setFeatureOptions(COLUMN_RESIZE_KEY, columnSize);
90
89
 
91
90
  var onChangeSize = function onChangeSize(nextColumnSize) {
92
91
  window.requestAnimationFrame(function () {
@@ -94,12 +93,6 @@ function columnResize() {
94
93
 
95
94
  pipeline.setStateAtKey(stateKey, nextColumnSize);
96
95
  (_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
97
-
98
- if (opts.columnSize) {
99
- if (pipeline.ref) {
100
- pipeline.ref.current.lastOptColumnSize = nextColumnSize; // 这里记录由列宽拖拽导致的opts.columnSize变化,避免重复渲染
101
- }
102
- }
103
96
  });
104
97
  };
105
98
 
@@ -61,6 +61,10 @@ function multiSelect() {
61
61
  /** 所有有效的 keys(disable 状态为 false) */
62
62
 
63
63
  var allKeys = [];
64
+ var set = new _set.default(value);
65
+ var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
66
+
67
+ var isAnyChecked = false;
64
68
  var flatDataSource = (0, _utils.collectNodes)(dataSource);
65
69
  flatDataSource.forEach(function (row, rowIndex) {
66
70
  var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
@@ -68,23 +72,24 @@ function multiSelect() {
68
72
  fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
69
73
 
70
74
  if (!isDisabled(row, rowIndex)) {
71
- allKeys.push(rowKey);
75
+ allKeys.push(rowKey); // 存在一个非选中,则不再进行判断
76
+
77
+ if (isAllChecked) {
78
+ isAllChecked = set.has(rowKey);
79
+ } // 存在一个选中,则不再进行判断
80
+
81
+
82
+ if (!isAnyChecked) {
83
+ isAnyChecked = set.has(rowKey);
84
+ }
72
85
  }
73
- });
74
- var set = new _set.default(value); // todo: 暂使用hidden隐藏选择列 后续增加配置
86
+ }); // todo: 暂使用hidden隐藏选择列 后续增加配置
75
87
 
76
88
  var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
77
89
 
78
90
  if (!hiddenSelectColumn) {
79
91
  var _context;
80
92
 
81
- var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
82
- return set.has(key);
83
- });
84
- var isAnyChecked = allKeys.some(function (key) {
85
- return set.has(key);
86
- });
87
-
88
93
  var defaultCheckboxColumnTitle = /*#__PURE__*/_react.default.createElement(Checkbox, {
89
94
  checked: isAllChecked,
90
95
  indeterminate: !isAllChecked && isAnyChecked,
@@ -93,16 +93,16 @@ function rangeSelection(opts) {
93
93
 
94
94
  if (clickCell) {
95
95
  if (event.shiftKey) {
96
- var _lastClickCell = pipeline.getStateAtKey(lastClickCellKey);
96
+ var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
97
97
 
98
98
  if (_lastClickCell) {
99
99
  setRangeSelection(_lastClickCell, clickCell);
100
100
  } else {
101
101
  // 第一次进来就按住shift键,这时候要记住点击的单元格
102
- pipeline.setStateAtKey(lastClickCellKey, clickCell);
102
+ pipeline.setFeatureOptions(lastClickCellKey, clickCell);
103
103
  }
104
104
  } else {
105
- pipeline.setStateAtKey(lastClickCellKey, clickCell);
105
+ pipeline.setFeatureOptions(lastClickCellKey, clickCell);
106
106
  setRangeSelection(clickCell, clickCell);
107
107
  }
108
108
  }
@@ -198,6 +198,10 @@ function sort() {
198
198
  return dataSource;
199
199
  }
200
200
 
201
+ if (sortMap.size === 0) {
202
+ return dataSource;
203
+ }
204
+
201
205
  var sortColumnsMap = new _map.default((0, _map2.default)(_context = (0, _filter.default)(_context2 = (0, _utils.collectNodes)(columns, 'leaf-only')).call(_context2, function (col) {
202
206
  var _a, _b;
203
207
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/table",
3
- "version": "1.1.5-canary.9",
3
+ "version": "1.1.5",
4
4
  "description": "金蝶 react table 组件",
5
5
  "title": "table",
6
6
  "keywords": [
@@ -54,8 +54,8 @@
54
54
  "test:update": "jest --config .jest.js --cache=false -u",
55
55
  "test:ci": "jest --config .jest.js --coverage --ci --update-snapshot",
56
56
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s --skip-unstable",
57
- "pub": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --no-tests",
58
- "pub:canary": "npm run build && cross-env PUB_ENV=pub np --no-cleanup --anyBranch --no-tests --tag=canary",
57
+ "pub": "npm run build && cross-env PUB_ENV=pub np --no-cleanup --no-tests",
58
+ "pub:beta": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --anyBranch --no-tests --tag=beta",
59
59
  "new": "node scripts/create-component.js",
60
60
  "kd-ui": "npm install @kingdee-ui/kui --registry http://npm.kingdee.com/"
61
61
  },