vxe-pc-ui 4.15.13 → 4.15.14
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/all.esm.js +708 -139
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button/style.css +11 -0
- package/es/button/style.min.css +1 -1
- package/es/checkbox/src/button.js +3 -1
- package/es/checkbox/src/group.js +6 -1
- package/es/checkbox-button/style.css +151 -8
- package/es/checkbox-button/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +145 -46
- package/es/icon-picker/style.css +29 -5
- package/es/icon-picker/style.min.css +1 -1
- package/es/language/ar-EG.js +3 -0
- package/es/language/de-DE.js +3 -0
- package/es/language/en-US.js +3 -0
- package/es/language/es-ES.js +3 -0
- package/es/language/fr-FR.js +3 -0
- package/es/language/hu-HU.js +3 -0
- package/es/language/hy-AM.js +3 -0
- package/es/language/id-ID.js +3 -0
- package/es/language/it-IT.js +3 -0
- package/es/language/ja-JP.js +3 -0
- package/es/language/ko-KR.js +3 -0
- package/es/language/ms-MY.js +3 -0
- package/es/language/nb-NO.js +3 -0
- package/es/language/pt-BR.js +3 -0
- package/es/language/ru-RU.js +3 -0
- package/es/language/th-TH.js +3 -0
- package/es/language/ug-CN.js +3 -0
- package/es/language/uk-UA.js +3 -0
- package/es/language/uz-UZ.js +3 -0
- package/es/language/vi-VN.js +3 -0
- package/es/language/zh-CHT.js +3 -0
- package/es/language/zh-CN.js +3 -0
- package/es/list/src/list.js +14 -1
- package/es/radio/src/button.js +3 -1
- package/es/radio/src/group.js +6 -1
- package/es/radio-button/style.css +151 -8
- package/es/radio-button/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree/src/tree.js +441 -18
- package/es/tree/src/util.js +15 -0
- package/es/ui/index.js +5 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-button/style.css +11 -0
- package/es/vxe-button/style.min.css +1 -1
- package/es/vxe-checkbox-button/style.css +151 -8
- package/es/vxe-checkbox-button/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +29 -5
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-radio-button/style.css +151 -8
- package/es/vxe-radio-button/style.min.css +1 -1
- package/lib/button/style/style.css +11 -0
- package/lib/button/style/style.min.css +1 -1
- package/lib/checkbox/src/button.js +3 -1
- package/lib/checkbox/src/button.min.js +1 -1
- package/lib/checkbox/src/group.js +6 -0
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/checkbox-button/style/style.css +151 -8
- package/lib/checkbox-button/style/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +143 -29
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +29 -5
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +731 -49
- package/lib/index.umd.min.js +1 -1
- package/lib/language/ar-EG.js +3 -0
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +3 -0
- package/lib/language/de-DE.js +3 -0
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +3 -0
- package/lib/language/en-US.js +3 -0
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +3 -0
- package/lib/language/es-ES.js +3 -0
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +3 -0
- package/lib/language/fr-FR.js +3 -0
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +3 -0
- package/lib/language/hu-HU.js +3 -0
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +3 -0
- package/lib/language/hy-AM.js +3 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +3 -0
- package/lib/language/id-ID.js +3 -0
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +3 -0
- package/lib/language/it-IT.js +3 -0
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +3 -0
- package/lib/language/ja-JP.js +3 -0
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +3 -0
- package/lib/language/ko-KR.js +3 -0
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +3 -0
- package/lib/language/ms-MY.js +3 -0
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +3 -0
- package/lib/language/nb-NO.js +3 -0
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +3 -0
- package/lib/language/pt-BR.js +3 -0
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +3 -0
- package/lib/language/ru-RU.js +3 -0
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +3 -0
- package/lib/language/th-TH.js +3 -0
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +3 -0
- package/lib/language/ug-CN.js +3 -0
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +3 -0
- package/lib/language/uk-UA.js +3 -0
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +3 -0
- package/lib/language/uz-UZ.js +3 -0
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +3 -0
- package/lib/language/vi-VN.js +3 -0
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +3 -0
- package/lib/language/zh-CHT.js +3 -0
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +3 -0
- package/lib/language/zh-CN.js +3 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +3 -0
- package/lib/list/src/list.js +19 -1
- package/lib/list/src/list.min.js +1 -1
- package/lib/radio/src/button.js +3 -1
- package/lib/radio/src/button.min.js +1 -1
- package/lib/radio/src/group.js +7 -1
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio-button/style/style.css +151 -8
- package/lib/radio-button/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree/src/tree.js +525 -14
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/src/util.js +16 -0
- package/lib/tree/src/util.min.js +1 -1
- package/lib/ui/index.js +5 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-button/style/style.css +11 -0
- package/lib/vxe-button/style/style.min.css +1 -1
- package/lib/vxe-checkbox-button/style/style.css +151 -8
- package/lib/vxe-checkbox-button/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +29 -5
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-radio-button/style/style.css +151 -8
- package/lib/vxe-radio-button/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/checkbox/src/button.ts +3 -1
- package/packages/checkbox/src/group.ts +6 -1
- package/packages/icon-picker/src/icon-picker.ts +157 -48
- package/packages/language/ar-EG.ts +3 -0
- package/packages/language/de-DE.ts +3 -0
- package/packages/language/en-US.ts +3 -0
- package/packages/language/es-ES.ts +3 -0
- package/packages/language/fr-FR.ts +3 -0
- package/packages/language/hu-HU.ts +3 -0
- package/packages/language/hy-AM.ts +3 -0
- package/packages/language/id-ID.ts +3 -0
- package/packages/language/it-IT.ts +3 -0
- package/packages/language/ja-JP.ts +3 -0
- package/packages/language/ko-KR.ts +3 -0
- package/packages/language/ms-MY.ts +3 -0
- package/packages/language/nb-NO.ts +3 -0
- package/packages/language/pt-BR.ts +3 -0
- package/packages/language/ru-RU.ts +3 -0
- package/packages/language/th-TH.ts +3 -0
- package/packages/language/ug-CN.ts +3 -0
- package/packages/language/uk-UA.ts +3 -0
- package/packages/language/uz-UZ.ts +3 -0
- package/packages/language/vi-VN.ts +3 -0
- package/packages/language/zh-CHT.ts +3 -0
- package/packages/language/zh-CN.ts +3 -0
- package/packages/list/src/list.ts +14 -1
- package/packages/radio/src/button.ts +3 -1
- package/packages/radio/src/group.ts +6 -1
- package/packages/tree/src/tree.ts +443 -14
- package/packages/tree/src/util.ts +17 -1
- package/packages/ui/index.ts +4 -1
- package/styles/components/button.scss +24 -69
- package/styles/components/checkbox-button.scss +65 -13
- package/styles/components/icon-picker.scss +37 -11
- package/styles/components/radio-button.scss +65 -13
- package/styles/helpers/themeStatus.scss +58 -0
- package/types/all.d.ts +205 -0
- package/types/components/checkbox-group.d.ts +3 -1
- package/types/components/checkbox.d.ts +1 -1
- package/types/components/icon-picker.d.ts +27 -4
- package/types/components/list.d.ts +2 -2
- package/types/components/radio-group.d.ts +3 -1
- package/types/components/tree.d.ts +36 -0
- /package/es/icon/{iconfont.1782658269305.ttf → iconfont.1782742200841.ttf} +0 -0
- /package/es/icon/{iconfont.1782658269305.woff → iconfont.1782742200841.woff} +0 -0
- /package/es/icon/{iconfont.1782658269305.woff2 → iconfont.1782742200841.woff2} +0 -0
- /package/es/{iconfont.1782658269305.ttf → iconfont.1782742200841.ttf} +0 -0
- /package/es/{iconfont.1782658269305.woff → iconfont.1782742200841.woff} +0 -0
- /package/es/{iconfont.1782658269305.woff2 → iconfont.1782742200841.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.ttf → iconfont.1782742200841.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.woff → iconfont.1782742200841.woff} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.woff2 → iconfont.1782742200841.woff2} +0 -0
- /package/lib/{iconfont.1782658269305.ttf → iconfont.1782742200841.ttf} +0 -0
- /package/lib/{iconfont.1782658269305.woff → iconfont.1782742200841.woff} +0 -0
- /package/lib/{iconfont.1782658269305.woff2 → iconfont.1782742200841.woff2} +0 -0
package/es/tree/src/tree.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, h, reactive, computed, watch, onBeforeUnmount, nextTick, onMounted, provide } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import { VxeUI, createEvent, useSize, globalEvents, globalResize, renderEmptyElement } from '../../ui';
|
|
4
|
-
import { calcTreeLine } from './util';
|
|
4
|
+
import { calcTreeLine, getItemCacheObj } from './util';
|
|
5
5
|
import { createComponentLog } from '../../ui/src/log';
|
|
6
6
|
import { getCrossTreeDragNodeInfo } from './store';
|
|
7
7
|
import XEUtils from 'xe-utils';
|
|
@@ -10,7 +10,7 @@ import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, get
|
|
|
10
10
|
import { isEnableConf, enModelValue, deModelValue } from '../../ui/src/utils';
|
|
11
11
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
|
|
12
12
|
import VxeLoadingComponent from '../../loading';
|
|
13
|
-
const { errLog } = createComponentLog('tree');
|
|
13
|
+
const { warnLog, errLog } = createComponentLog('tree');
|
|
14
14
|
const { menus, getConfig, getI18n, getIcon } = VxeUI;
|
|
15
15
|
/**
|
|
16
16
|
* 生成节点的唯一主键
|
|
@@ -39,6 +39,8 @@ function createInternalData() {
|
|
|
39
39
|
offsetSize: 0,
|
|
40
40
|
rowHeight: 0
|
|
41
41
|
},
|
|
42
|
+
removeRowMaps: {},
|
|
43
|
+
insertRowMaps: {},
|
|
42
44
|
// prevDragNode: null,
|
|
43
45
|
// prevDragToChild: false,
|
|
44
46
|
// prevDragPos: ''
|
|
@@ -60,14 +62,13 @@ function createReactData() {
|
|
|
60
62
|
treeList: [],
|
|
61
63
|
updateExpandedFlag: 1,
|
|
62
64
|
updateCheckboxFlag: 1,
|
|
65
|
+
insertRowFlag: 1,
|
|
66
|
+
removeRowFlag: 1,
|
|
63
67
|
dragNode: null,
|
|
64
68
|
dragTipText: ''
|
|
65
69
|
};
|
|
66
70
|
}
|
|
67
|
-
|
|
68
|
-
// $oldTree: VxeTreeConstructor & VxeTreePrivateMethods
|
|
69
|
-
// $newTree: (VxeTreeConstructor & VxeTreePrivateMethods) | null
|
|
70
|
-
// } | null = null
|
|
71
|
+
let crossTreeDragNodeObj = null;
|
|
71
72
|
export default defineVxeComponent({
|
|
72
73
|
name: 'VxeTree',
|
|
73
74
|
props: {
|
|
@@ -204,6 +205,8 @@ export default defineVxeComponent({
|
|
|
204
205
|
'node-dragstart',
|
|
205
206
|
'node-dragover',
|
|
206
207
|
'node-dragend',
|
|
208
|
+
'node-remove-dragend',
|
|
209
|
+
'node-insert-dragend',
|
|
207
210
|
'node-expand',
|
|
208
211
|
'node-menu',
|
|
209
212
|
'menu-click'
|
|
@@ -1331,6 +1334,149 @@ export default defineVxeComponent({
|
|
|
1331
1334
|
}
|
|
1332
1335
|
recalculate();
|
|
1333
1336
|
};
|
|
1337
|
+
const insertTreeNode = (newRecords, isAppend) => {
|
|
1338
|
+
const { treeFullData, nodeMaps } = internalData;
|
|
1339
|
+
const keyField = computeKeyField.value;
|
|
1340
|
+
const parentField = computeParentField.value;
|
|
1341
|
+
const childrenField = computeChildrenField.value;
|
|
1342
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1343
|
+
const funcName = isAppend ? 'push' : 'unshift';
|
|
1344
|
+
newRecords.forEach((item) => {
|
|
1345
|
+
const parentRowId = item[parentField];
|
|
1346
|
+
const nodeid = getNodeId(item);
|
|
1347
|
+
const matchObj = parentRowId ? XEUtils.findTree(treeFullData, (item) => parentRowId === item[keyField], { children: mapChildrenField }) : null;
|
|
1348
|
+
const itemRest = getItemCacheObj(item);
|
|
1349
|
+
if (matchObj) {
|
|
1350
|
+
const { item: parentItem } = matchObj;
|
|
1351
|
+
const parentRest = nodeMaps[getNodeId(parentItem)];
|
|
1352
|
+
const parentLevel = parentRest ? parentRest.level : 0;
|
|
1353
|
+
let pChilds = parentItem[childrenField];
|
|
1354
|
+
let pMapChilds = parentItem[mapChildrenField];
|
|
1355
|
+
if (!XEUtils.isArray(pChilds)) {
|
|
1356
|
+
pChilds = parentItem[childrenField] = [];
|
|
1357
|
+
}
|
|
1358
|
+
if (!XEUtils.isArray(pMapChilds)) {
|
|
1359
|
+
pMapChilds = parentItem[mapChildrenField] = [];
|
|
1360
|
+
}
|
|
1361
|
+
itemRest.parent = parentItem;
|
|
1362
|
+
itemRest.items = pChilds;
|
|
1363
|
+
itemRest.level = parentLevel;
|
|
1364
|
+
pChilds[funcName](item);
|
|
1365
|
+
pMapChilds[funcName](item);
|
|
1366
|
+
}
|
|
1367
|
+
else {
|
|
1368
|
+
if (parentRowId) {
|
|
1369
|
+
warnLog('vxe.error.unableInsert');
|
|
1370
|
+
}
|
|
1371
|
+
treeFullData[funcName](item);
|
|
1372
|
+
}
|
|
1373
|
+
nodeMaps[nodeid] = itemRest;
|
|
1374
|
+
});
|
|
1375
|
+
};
|
|
1376
|
+
const handleInsertNodeAt = (records, targetNodeOrNodeid, isInsertNextNode) => {
|
|
1377
|
+
const { transform } = props;
|
|
1378
|
+
const { treeFullData, nodeMaps } = internalData;
|
|
1379
|
+
const keyField = computeKeyField.value;
|
|
1380
|
+
const parentField = computeParentField.value;
|
|
1381
|
+
const childrenField = computeChildrenField.value;
|
|
1382
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1383
|
+
if (!transform) {
|
|
1384
|
+
errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'transform']);
|
|
1385
|
+
return Promise.resolve({ node: null, nodes: [] });
|
|
1386
|
+
}
|
|
1387
|
+
if (!XEUtils.isArray(records)) {
|
|
1388
|
+
records = [records];
|
|
1389
|
+
}
|
|
1390
|
+
let targetNode = targetNodeOrNodeid;
|
|
1391
|
+
if (XEUtils.isString(targetNodeOrNodeid) || XEUtils.isNumber(targetNodeOrNodeid)) {
|
|
1392
|
+
const nodeRest = nodeMaps[targetNodeOrNodeid];
|
|
1393
|
+
if (nodeRest) {
|
|
1394
|
+
targetNode = nodeRest.item;
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
if (!records.length) {
|
|
1398
|
+
return Promise.resolve({ node: null, nodes: [] });
|
|
1399
|
+
}
|
|
1400
|
+
const newRecords = records.map(record => XEUtils.assign({ [mapChildrenField]: [], [childrenField]: [] }, record));
|
|
1401
|
+
const treeRecords = XEUtils.toArrayTree(newRecords, { key: keyField, parentKey: parentField, children: childrenField });
|
|
1402
|
+
if (XEUtils.eqNull(targetNode)) {
|
|
1403
|
+
insertTreeNode(newRecords, false);
|
|
1404
|
+
}
|
|
1405
|
+
else {
|
|
1406
|
+
if (targetNode === -1) {
|
|
1407
|
+
insertTreeNode(newRecords, true);
|
|
1408
|
+
}
|
|
1409
|
+
else {
|
|
1410
|
+
const matchMapObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: mapChildrenField });
|
|
1411
|
+
if (matchMapObj) {
|
|
1412
|
+
const { parent: parentNode } = matchMapObj;
|
|
1413
|
+
const parentMapChilds = parentNode ? parentNode[mapChildrenField] : treeFullData;
|
|
1414
|
+
const parentRest = nodeMaps[getNodeId(parentNode)];
|
|
1415
|
+
const parentLevel = parentRest ? parentRest.level : 0;
|
|
1416
|
+
treeRecords.forEach((row, i) => {
|
|
1417
|
+
if (parentNode) {
|
|
1418
|
+
if (row[parentField] !== parentNode[keyField]) {
|
|
1419
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentNode[keyField]}`]);
|
|
1420
|
+
row[parentField] = parentNode[keyField];
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
else {
|
|
1424
|
+
if (row[parentField] !== null) {
|
|
1425
|
+
if (!XEUtils.eqNull(row[parentField])) {
|
|
1426
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null']);
|
|
1427
|
+
}
|
|
1428
|
+
row[parentField] = null;
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
let targetIndex = matchMapObj.index + i;
|
|
1432
|
+
if (isInsertNextNode) {
|
|
1433
|
+
targetIndex = targetIndex + 1;
|
|
1434
|
+
}
|
|
1435
|
+
parentMapChilds.splice(targetIndex, 0, row);
|
|
1436
|
+
});
|
|
1437
|
+
XEUtils.eachTree(treeRecords, (item) => {
|
|
1438
|
+
const nodeid = getNodeId(item);
|
|
1439
|
+
const nodeRest = getItemCacheObj(item);
|
|
1440
|
+
nodeRest.level = parentLevel;
|
|
1441
|
+
if (item[childrenField]) {
|
|
1442
|
+
item[mapChildrenField] = item[childrenField];
|
|
1443
|
+
}
|
|
1444
|
+
nodeMaps[nodeid] = nodeRest;
|
|
1445
|
+
}, { children: childrenField });
|
|
1446
|
+
// 源
|
|
1447
|
+
if (parentNode) {
|
|
1448
|
+
const matchObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: childrenField });
|
|
1449
|
+
if (matchObj) {
|
|
1450
|
+
const parentChilds = matchObj.items;
|
|
1451
|
+
let targetIndex = matchObj.index;
|
|
1452
|
+
if (isInsertNextNode) {
|
|
1453
|
+
targetIndex = targetIndex + 1;
|
|
1454
|
+
}
|
|
1455
|
+
parentChilds.splice(targetIndex, 0, ...treeRecords);
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
else {
|
|
1460
|
+
warnLog('vxe.error.unableInsert');
|
|
1461
|
+
insertTreeNode(newRecords, true);
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
reactData.insertRowFlag++;
|
|
1466
|
+
cacheNodeMap();
|
|
1467
|
+
handleData(true);
|
|
1468
|
+
updateAfterDataIndex();
|
|
1469
|
+
updateCheckboxStatus();
|
|
1470
|
+
if (reactData.scrollYLoad) {
|
|
1471
|
+
updateYSpace();
|
|
1472
|
+
}
|
|
1473
|
+
return nextTick().then(() => {
|
|
1474
|
+
return {
|
|
1475
|
+
node: newRecords.length ? newRecords[newRecords.length - 1] : null,
|
|
1476
|
+
nodes: newRecords
|
|
1477
|
+
};
|
|
1478
|
+
});
|
|
1479
|
+
};
|
|
1334
1480
|
const treeMethods = {
|
|
1335
1481
|
dispatchEvent,
|
|
1336
1482
|
getNodeId,
|
|
@@ -1734,7 +1880,91 @@ export default defineVxeComponent({
|
|
|
1734
1880
|
}
|
|
1735
1881
|
return recalculate();
|
|
1736
1882
|
},
|
|
1737
|
-
clearScroll
|
|
1883
|
+
clearScroll,
|
|
1884
|
+
insert(records) {
|
|
1885
|
+
return handleInsertNodeAt(records, null);
|
|
1886
|
+
},
|
|
1887
|
+
insertAt(records, targetNodeOrNodeid) {
|
|
1888
|
+
return handleInsertNodeAt(records, targetNodeOrNodeid);
|
|
1889
|
+
},
|
|
1890
|
+
insertNextAt(records, targetNodeOrNodeid) {
|
|
1891
|
+
return handleInsertNodeAt(records, targetNodeOrNodeid, true);
|
|
1892
|
+
},
|
|
1893
|
+
remove(nodes) {
|
|
1894
|
+
const { transform } = props;
|
|
1895
|
+
const { treeFullData } = internalData;
|
|
1896
|
+
const childrenField = computeChildrenField.value;
|
|
1897
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1898
|
+
if (!transform) {
|
|
1899
|
+
errLog('vxe.error.reqSupportProp', ['remove()', 'transform']);
|
|
1900
|
+
return Promise.resolve({ node: null, nodes: [] });
|
|
1901
|
+
}
|
|
1902
|
+
let delList = [];
|
|
1903
|
+
if (!nodes) {
|
|
1904
|
+
nodes = treeFullData;
|
|
1905
|
+
}
|
|
1906
|
+
else if (!XEUtils.isArray(nodes)) {
|
|
1907
|
+
nodes = [nodes];
|
|
1908
|
+
}
|
|
1909
|
+
if (!nodes.length) {
|
|
1910
|
+
return Promise.resolve({ node: null, nodes: [] });
|
|
1911
|
+
}
|
|
1912
|
+
// 从数据源中移除
|
|
1913
|
+
if (treeFullData === nodes) {
|
|
1914
|
+
nodes = delList = treeFullData.slice(0);
|
|
1915
|
+
internalData.treeFullData = [];
|
|
1916
|
+
}
|
|
1917
|
+
else {
|
|
1918
|
+
nodes.forEach((item) => {
|
|
1919
|
+
const nodeid = getNodeId(item);
|
|
1920
|
+
const matchMapObj = XEUtils.findTree(treeFullData, item => nodeid === getNodeId(item), { children: mapChildrenField });
|
|
1921
|
+
if (matchMapObj) {
|
|
1922
|
+
const rItems = matchMapObj.items.splice(matchMapObj.index, 1);
|
|
1923
|
+
delList.push(rItems[0]);
|
|
1924
|
+
}
|
|
1925
|
+
const matchObj = XEUtils.findTree(treeFullData, item => nodeid === getNodeId(item), { children: childrenField });
|
|
1926
|
+
if (matchObj) {
|
|
1927
|
+
const rItems = matchObj.items.splice(matchObj.index, 1);
|
|
1928
|
+
delList.push(rItems[0]);
|
|
1929
|
+
}
|
|
1930
|
+
});
|
|
1931
|
+
}
|
|
1932
|
+
reactData.removeRowFlag++;
|
|
1933
|
+
reactData.insertRowFlag++;
|
|
1934
|
+
cacheNodeMap();
|
|
1935
|
+
handleData(true);
|
|
1936
|
+
updateAfterDataIndex();
|
|
1937
|
+
updateCheckboxStatus();
|
|
1938
|
+
if (reactData.scrollYLoad) {
|
|
1939
|
+
updateYSpace();
|
|
1940
|
+
}
|
|
1941
|
+
return nextTick().then(() => {
|
|
1942
|
+
return recalculate();
|
|
1943
|
+
}).then(() => {
|
|
1944
|
+
return { node: delList.length ? delList[delList.length - 1] : null, nodes: delList };
|
|
1945
|
+
});
|
|
1946
|
+
},
|
|
1947
|
+
getInsertRecords() {
|
|
1948
|
+
const { insertRowMaps } = internalData;
|
|
1949
|
+
const insertRecords = [];
|
|
1950
|
+
XEUtils.each(insertRowMaps, (row) => {
|
|
1951
|
+
insertRecords.push(row);
|
|
1952
|
+
});
|
|
1953
|
+
return insertRecords;
|
|
1954
|
+
},
|
|
1955
|
+
getRemoveRecords() {
|
|
1956
|
+
const { removeRowMaps } = internalData;
|
|
1957
|
+
const removeRecords = [];
|
|
1958
|
+
XEUtils.each(removeRowMaps, (row) => {
|
|
1959
|
+
removeRecords.push(row);
|
|
1960
|
+
});
|
|
1961
|
+
return removeRecords;
|
|
1962
|
+
}
|
|
1963
|
+
};
|
|
1964
|
+
const handleNodeDragEndClearStatus = () => {
|
|
1965
|
+
clearNodeDragData();
|
|
1966
|
+
clearCrossTreeDragStatus();
|
|
1967
|
+
recalculate();
|
|
1738
1968
|
};
|
|
1739
1969
|
const clearNodeDropOrigin = () => {
|
|
1740
1970
|
const el = refElem.value;
|
|
@@ -1785,7 +2015,7 @@ export default defineVxeComponent({
|
|
|
1785
2015
|
}
|
|
1786
2016
|
};
|
|
1787
2017
|
const clearCrossTreeDragStatus = () => {
|
|
1788
|
-
|
|
2018
|
+
crossTreeDragNodeObj = null;
|
|
1789
2019
|
crossTreeDragNodeInfo.node = null;
|
|
1790
2020
|
};
|
|
1791
2021
|
const clearDragStatus = () => {
|
|
@@ -2150,6 +2380,18 @@ export default defineVxeComponent({
|
|
|
2150
2380
|
const { dragNode } = reactData;
|
|
2151
2381
|
const { nodeMaps, prevDragNode, prevDragPos, prevDragToChild } = internalData;
|
|
2152
2382
|
const hasChildField = computeHasChildField.value;
|
|
2383
|
+
const dragConfig = computeDragOpts.value;
|
|
2384
|
+
const { isCrossDrag, isCrossTreeDrag } = dragConfig;
|
|
2385
|
+
// 跨树拖拽
|
|
2386
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj) {
|
|
2387
|
+
const { $newTree } = crossTreeDragNodeObj;
|
|
2388
|
+
if ($newTree && $newTree.xID !== $xeTree.xID) {
|
|
2389
|
+
if (isCrossDrag) {
|
|
2390
|
+
$newTree.handleCrossTreeNodeDragInsertEvent(evnt);
|
|
2391
|
+
}
|
|
2392
|
+
return;
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2153
2395
|
if (lazy && prevDragToChild) {
|
|
2154
2396
|
// 懒加载
|
|
2155
2397
|
const newNodeid = getNodeId(prevDragNode);
|
|
@@ -2229,17 +2471,196 @@ export default defineVxeComponent({
|
|
|
2229
2471
|
/**
|
|
2230
2472
|
* 处理跨树拖拽完成
|
|
2231
2473
|
*/
|
|
2232
|
-
handleCrossTreeNodeDragFinishEvent() {
|
|
2474
|
+
handleCrossTreeNodeDragFinishEvent(evnt) {
|
|
2475
|
+
const { treeList } = reactData;
|
|
2476
|
+
const { nodeMaps } = internalData;
|
|
2477
|
+
const dragOpts = computeDragOpts.value;
|
|
2478
|
+
const { animation, isCrossTreeDrag } = dragOpts;
|
|
2479
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
2480
|
+
const el = refElem.value;
|
|
2481
|
+
if (!el) {
|
|
2482
|
+
return;
|
|
2483
|
+
}
|
|
2484
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
|
|
2485
|
+
const { node: dragNode } = crossTreeDragNodeInfo;
|
|
2486
|
+
if (dragNode) {
|
|
2487
|
+
const dragNodeid = getNodeId(dragNode);
|
|
2488
|
+
const dragNodeRest = nodeMaps[dragNodeid];
|
|
2489
|
+
let dragNodeHeight = 0;
|
|
2490
|
+
let rsIndex = -1;
|
|
2491
|
+
if (dragNodeRest) {
|
|
2492
|
+
if (animation) {
|
|
2493
|
+
const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`);
|
|
2494
|
+
const targetItemEl = oldItemEl;
|
|
2495
|
+
if (targetItemEl) {
|
|
2496
|
+
dragNodeHeight = targetItemEl.offsetHeight;
|
|
2497
|
+
}
|
|
2498
|
+
}
|
|
2499
|
+
rsIndex = dragNodeRest.$index;
|
|
2500
|
+
}
|
|
2501
|
+
const dragRangeList = rsIndex > -1 && rsIndex < treeList.length - 1 ? treeList.slice(rsIndex + 1) : [];
|
|
2502
|
+
const dragList = XEUtils.toTreeArray([dragNode], {
|
|
2503
|
+
updated: true,
|
|
2504
|
+
children: mapChildrenField
|
|
2505
|
+
});
|
|
2506
|
+
$xeTree.remove(dragList).then(() => {
|
|
2507
|
+
if (animation && dragNodeHeight && dragRangeList.length) {
|
|
2508
|
+
const wrapperEl = el;
|
|
2509
|
+
const dtClss = [];
|
|
2510
|
+
dragRangeList.forEach(item => {
|
|
2511
|
+
const nodeid = getNodeId(item);
|
|
2512
|
+
dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
|
|
2513
|
+
});
|
|
2514
|
+
const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
2515
|
+
moveRowAnimateToTb(dtTrList, dragNodeHeight);
|
|
2516
|
+
}
|
|
2517
|
+
});
|
|
2518
|
+
dispatchEvent('node-remove-dragend', {
|
|
2519
|
+
node: dragNode
|
|
2520
|
+
}, evnt);
|
|
2521
|
+
handleNodeDragEndClearStatus();
|
|
2522
|
+
}
|
|
2523
|
+
}
|
|
2233
2524
|
},
|
|
2234
2525
|
/**
|
|
2235
2526
|
* 处理跨树拖至新的空树
|
|
2236
2527
|
*/
|
|
2237
|
-
|
|
2528
|
+
handleCrossTreeNodeDragoverEmptyEvent(evnt) {
|
|
2529
|
+
const { treeList } = reactData;
|
|
2530
|
+
const dragOpts = computeDragOpts.value;
|
|
2531
|
+
const { isCrossTreeDrag } = dragOpts;
|
|
2532
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && !treeList.length) {
|
|
2533
|
+
const { $oldTree, $newTree } = crossTreeDragNodeObj;
|
|
2534
|
+
if ($oldTree) {
|
|
2535
|
+
const oldTreeReactData = $oldTree;
|
|
2536
|
+
if ($oldTree.xID !== $xeTree.xID) {
|
|
2537
|
+
if ($newTree && $newTree.xID !== $xeTree.xID) {
|
|
2538
|
+
$newTree.hideCrossTreeNodeDropClearStatus();
|
|
2539
|
+
}
|
|
2540
|
+
evnt.preventDefault();
|
|
2541
|
+
$oldTree.hideCrossTreeNodeDropClearStatus();
|
|
2542
|
+
crossTreeDragNodeObj.$newTree = $xeTree;
|
|
2543
|
+
internalData.prevDragNode = null;
|
|
2544
|
+
reactData.dragTipText = oldTreeReactData.dragTipText;
|
|
2545
|
+
showDropTip(evnt, evnt.currentTarget, true, '');
|
|
2546
|
+
}
|
|
2547
|
+
}
|
|
2548
|
+
}
|
|
2238
2549
|
},
|
|
2239
2550
|
/**
|
|
2240
2551
|
* 处理跨树拖插入
|
|
2241
2552
|
*/
|
|
2242
|
-
|
|
2553
|
+
handleCrossTreeNodeDragInsertEvent(evnt) {
|
|
2554
|
+
const { prevDragNode, prevDragPos, prevDragToChild } = internalData;
|
|
2555
|
+
const dragOpts = computeDragOpts.value;
|
|
2556
|
+
const { animation, isSelfToChildDrag, isCrossTreeDrag, dragEndMethod, dragToChildMethod } = dragOpts;
|
|
2557
|
+
const parentField = computeParentField.value;
|
|
2558
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
2559
|
+
const childrenField = computeChildrenField.value;
|
|
2560
|
+
// 跨表拖拽
|
|
2561
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
|
|
2562
|
+
const { node: oldNode } = crossTreeDragNodeInfo;
|
|
2563
|
+
const { $oldTree } = crossTreeDragNodeObj;
|
|
2564
|
+
const el = refElem.value;
|
|
2565
|
+
if (!el) {
|
|
2566
|
+
return;
|
|
2567
|
+
}
|
|
2568
|
+
if ($oldTree && oldNode) {
|
|
2569
|
+
const dragNode = oldNode;
|
|
2570
|
+
let dragOffsetIndex = -1;
|
|
2571
|
+
if (prevDragNode) {
|
|
2572
|
+
dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
2573
|
+
}
|
|
2574
|
+
const dragParams = {
|
|
2575
|
+
oldNode: dragNode,
|
|
2576
|
+
newNode: prevDragNode,
|
|
2577
|
+
dragNode,
|
|
2578
|
+
dragPos: prevDragPos,
|
|
2579
|
+
dragToChild: !!prevDragToChild,
|
|
2580
|
+
offsetIndex: dragOffsetIndex
|
|
2581
|
+
};
|
|
2582
|
+
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
2583
|
+
const errRest = {
|
|
2584
|
+
status: false
|
|
2585
|
+
};
|
|
2586
|
+
Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
|
|
2587
|
+
if (!status) {
|
|
2588
|
+
if ($oldTree) {
|
|
2589
|
+
if ($oldTree.xID !== $xeTree.xID) {
|
|
2590
|
+
$oldTree.handleCrossTreeNodeDragCancelEvent(evnt);
|
|
2591
|
+
}
|
|
2592
|
+
}
|
|
2593
|
+
handleNodeDragEndClearStatus();
|
|
2594
|
+
return errRest;
|
|
2595
|
+
}
|
|
2596
|
+
let insertRest = Promise.resolve();
|
|
2597
|
+
const dragList = XEUtils.toTreeArray([dragNode], {
|
|
2598
|
+
updated: true,
|
|
2599
|
+
children: mapChildrenField
|
|
2600
|
+
});
|
|
2601
|
+
$oldTree.handleCrossTreeNodeDragFinishEvent(evnt);
|
|
2602
|
+
if (prevDragNode) {
|
|
2603
|
+
dragNode[parentField] = prevDragNode[parentField];
|
|
2604
|
+
}
|
|
2605
|
+
else {
|
|
2606
|
+
dragNode[parentField] = null;
|
|
2607
|
+
}
|
|
2608
|
+
dragList.forEach(row => {
|
|
2609
|
+
row[childrenField] = undefined;
|
|
2610
|
+
row[mapChildrenField] = undefined;
|
|
2611
|
+
});
|
|
2612
|
+
if (prevDragNode) {
|
|
2613
|
+
if (prevDragPos === 'bottom') {
|
|
2614
|
+
insertRest = $xeTree.insertNextAt(dragList, prevDragNode);
|
|
2615
|
+
}
|
|
2616
|
+
else {
|
|
2617
|
+
insertRest = $xeTree.insertAt(dragList, prevDragNode);
|
|
2618
|
+
}
|
|
2619
|
+
}
|
|
2620
|
+
else {
|
|
2621
|
+
insertRest = $xeTree.insert(dragList);
|
|
2622
|
+
}
|
|
2623
|
+
$xeTree.dispatchEvent('node-insert-dragend', {
|
|
2624
|
+
oldNode,
|
|
2625
|
+
newNode: prevDragNode,
|
|
2626
|
+
dragNode,
|
|
2627
|
+
dragPos: prevDragPos,
|
|
2628
|
+
dragToChild: isDragToChildFlag,
|
|
2629
|
+
offsetIndex: dragOffsetIndex
|
|
2630
|
+
}, evnt);
|
|
2631
|
+
clearNodeDragData();
|
|
2632
|
+
insertRest.then(() => {
|
|
2633
|
+
const { treeList } = reactData;
|
|
2634
|
+
const { nodeMaps } = internalData;
|
|
2635
|
+
const oldNodeid = getNodeId(dragNode);
|
|
2636
|
+
const oldNodeRest = nodeMaps[oldNodeid];
|
|
2637
|
+
let dragNodeHeight = 0;
|
|
2638
|
+
let rsIndex = -1;
|
|
2639
|
+
if (oldNodeRest) {
|
|
2640
|
+
if (animation) {
|
|
2641
|
+
const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${oldNodeid}"]`);
|
|
2642
|
+
const targetItemEl = oldItemEl;
|
|
2643
|
+
if (targetItemEl) {
|
|
2644
|
+
dragNodeHeight = targetItemEl.offsetHeight;
|
|
2645
|
+
}
|
|
2646
|
+
}
|
|
2647
|
+
rsIndex = oldNodeRest.$index;
|
|
2648
|
+
}
|
|
2649
|
+
const dragRangeList = rsIndex > -1 ? treeList.slice(rsIndex) : [];
|
|
2650
|
+
if (animation && dragNodeHeight && dragRangeList.length) {
|
|
2651
|
+
const wrapperEl = el;
|
|
2652
|
+
const dtClss = [];
|
|
2653
|
+
dragRangeList.forEach(item => {
|
|
2654
|
+
const nodeid = getNodeId(item);
|
|
2655
|
+
dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
|
|
2656
|
+
});
|
|
2657
|
+
const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
2658
|
+
moveRowAnimateToTb(dtTrList, -dragNodeHeight);
|
|
2659
|
+
}
|
|
2660
|
+
});
|
|
2661
|
+
});
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2243
2664
|
},
|
|
2244
2665
|
hideCrossTreeNodeDropClearStatus() {
|
|
2245
2666
|
hideDropTip();
|
|
@@ -2537,12 +2958,15 @@ export default defineVxeComponent({
|
|
|
2537
2958
|
const loadingOpts = computeLoadingOpts.value;
|
|
2538
2959
|
const isRowHover = computeIsRowHover.value;
|
|
2539
2960
|
const treeStyle = computeTreeStyle.value;
|
|
2961
|
+
const dragOpts = computeDragOpts.value;
|
|
2540
2962
|
const loadingSlot = slots.loading;
|
|
2541
2963
|
const headerSlot = slots.header;
|
|
2542
2964
|
const footerSlot = slots.footer;
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2965
|
+
const teOns = {};
|
|
2966
|
+
if (dragOpts.isCrossTreeDrag && !treeList.length) {
|
|
2967
|
+
teOns.onDragover = $xeTree.handleCrossTreeNodeDragInsertEvent;
|
|
2968
|
+
}
|
|
2969
|
+
return h('div', Object.assign({ ref: refElem, class: ['vxe-tree', {
|
|
2546
2970
|
[`size--${vSize}`]: vSize,
|
|
2547
2971
|
'show--line': showLine,
|
|
2548
2972
|
'checkbox--highlight': checkboxOpts.highlight,
|
|
@@ -2550,8 +2974,7 @@ export default defineVxeComponent({
|
|
|
2550
2974
|
'node--hover': isRowHover,
|
|
2551
2975
|
'node--trigger': trigger === 'node',
|
|
2552
2976
|
'is--loading': loading
|
|
2553
|
-
}]
|
|
2554
|
-
}, [
|
|
2977
|
+
}] }, teOns), [
|
|
2555
2978
|
headerSlot
|
|
2556
2979
|
? h('div', {
|
|
2557
2980
|
ref: refHeaderWrapperElem,
|
|
@@ -2657,8 +3080,8 @@ export default defineVxeComponent({
|
|
|
2657
3080
|
if (drag && !transform) {
|
|
2658
3081
|
errLog('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
|
|
2659
3082
|
}
|
|
2660
|
-
if (dragOpts.isCrossTreeDrag) {
|
|
2661
|
-
errLog('vxe.error.
|
|
3083
|
+
if (dragOpts.isCrossTreeDrag && !dragOpts.isCrossDrag) {
|
|
3084
|
+
errLog('vxe.error.reqSupportProp', ['drag-config.isCrossTreeDrag', 'drag-config.isCrossDrag']);
|
|
2662
3085
|
}
|
|
2663
3086
|
// if (valueField) {
|
|
2664
3087
|
// errLog('vxe.error.delProp', ['value-field', 'value-field'])
|
package/es/tree/src/util.js
CHANGED
|
@@ -30,3 +30,18 @@ export function calcTreeLine($xeTree, node, prevNode) {
|
|
|
30
30
|
}
|
|
31
31
|
return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12);
|
|
32
32
|
}
|
|
33
|
+
export function getItemCacheObj(item) {
|
|
34
|
+
return {
|
|
35
|
+
item,
|
|
36
|
+
index: -1,
|
|
37
|
+
$index: -1,
|
|
38
|
+
_index: -1,
|
|
39
|
+
items: [],
|
|
40
|
+
parent: null,
|
|
41
|
+
nodes: [],
|
|
42
|
+
level: 0,
|
|
43
|
+
treeIndex: -1,
|
|
44
|
+
lineCount: 0,
|
|
45
|
+
treeLoaded: false
|
|
46
|
+
};
|
|
47
|
+
}
|
package/es/ui/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
|
|
2
2
|
import { dynamicApp } from '../dynamics';
|
|
3
3
|
import { warnLog } from './src/log';
|
|
4
|
-
export const version = "4.15.
|
|
4
|
+
export const version = "4.15.14";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
|
@@ -176,7 +176,10 @@ setConfig({
|
|
|
176
176
|
formView: {},
|
|
177
177
|
icon: {},
|
|
178
178
|
iconPicker: {
|
|
179
|
-
icons: ['home', 'company', 'comment', 'setting', 'send', 'envelope', 'envelope-open', 'bell', 'search', 'print', 'pc', 'goods', 'chart-line', 'edit', 'delete', 'save', 'folder', 'microphone', 'flag', 'link', 'location', 'sunny', 'rmb', 'usd', 'user', 'add-user', 'add-users', 'star', 'unlock', 'time', 'text', 'feedback', 'calendar', 'association-form', 'cloud-download', 'cloud-upload', 'file', 'subtable', 'chart-bar-x', 'chart-bar-y', 'chart-line', 'chart-pie', 'chart-radar']
|
|
179
|
+
icons: ['home', 'company', 'comment', 'setting', 'send', 'envelope', 'envelope-open', 'bell', 'search', 'print', 'pc', 'goods', 'chart-line', 'edit', 'delete', 'save', 'folder', 'microphone', 'flag', 'link', 'location', 'sunny', 'rmb', 'usd', 'user', 'add-user', 'add-users', 'star', 'unlock', 'time', 'text', 'feedback', 'calendar', 'association-form', 'cloud-download', 'cloud-upload', 'file', 'subtable', 'chart-bar-x', 'chart-bar-y', 'chart-line', 'chart-pie', 'chart-radar'],
|
|
180
|
+
popupConfig: {
|
|
181
|
+
// chunkSize: 4
|
|
182
|
+
}
|
|
180
183
|
},
|
|
181
184
|
image: {
|
|
182
185
|
draggable: null,
|
package/es/ui/src/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
const { log } = VxeUI;
|
|
3
|
-
const uiVersion = `ui v${"4.15.
|
|
3
|
+
const uiVersion = `ui v${"4.15.14"}`;
|
|
4
4
|
export function createComponentLog(name) {
|
|
5
5
|
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
6
6
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
package/es/vxe-button/style.css
CHANGED
|
@@ -211,6 +211,17 @@
|
|
|
211
211
|
border-color: var(--vxe-ui-font-primary-darken-color);
|
|
212
212
|
background-color: var(--vxe-ui-layout-background-color);
|
|
213
213
|
}
|
|
214
|
+
.vxe-button.type--button:not(.is--disabled):hover {
|
|
215
|
+
color: var(--vxe-ui-font-primary-lighten-color);
|
|
216
|
+
}
|
|
217
|
+
.vxe-button.type--button:not(.is--disabled):focus {
|
|
218
|
+
border-color: var(--vxe-ui-font-primary-color);
|
|
219
|
+
}
|
|
220
|
+
.vxe-button.type--button:not(.is--disabled):active {
|
|
221
|
+
color: var(--vxe-ui-font-primary-darken-color);
|
|
222
|
+
border-color: var(--vxe-ui-font-primary-darken-color);
|
|
223
|
+
background-color: var(--vxe-ui-layout-background-color);
|
|
224
|
+
}
|
|
214
225
|
.vxe-button.type--button.theme--primary {
|
|
215
226
|
color: #fff;
|
|
216
227
|
}
|