vxe-pc-ui 3.15.13 → 3.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/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 +155 -9
- package/es/checkbox-button/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +165 -47
- 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 +15 -1
- package/es/radio/src/button.js +3 -1
- package/es/radio/src/group.js +6 -1
- package/es/radio-button/style.css +155 -9
- 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 +246 -4
- 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 +155 -9
- 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 +155 -9
- 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 +13 -5
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/checkbox-button/style/style.css +155 -9
- 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 +154 -28
- 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 +506 -43
- 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 +18 -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 +9 -2
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio-button/style/style.css +155 -9
- 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 +287 -6
- 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 +155 -9
- 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 +155 -9
- 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 +180 -45
- 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 +15 -1
- package/packages/radio/src/button.ts +3 -1
- package/packages/radio/src/group.ts +6 -1
- package/packages/tree/src/tree.ts +251 -4
- 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 +66 -14
- package/styles/components/icon-picker.scss +37 -11
- package/styles/components/radio-button.scss +66 -14
- 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.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
- /package/es/icon/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
- /package/es/icon/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
- /package/es/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
- /package/es/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
- /package/es/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
- /package/lib/icon/style/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
- /package/lib/{iconfont.1782658257467.ttf → iconfont.1782742114089.ttf} +0 -0
- /package/lib/{iconfont.1782658257467.woff → iconfont.1782742114089.woff} +0 -0
- /package/lib/{iconfont.1782658257467.woff2 → iconfont.1782742114089.woff2} +0 -0
|
@@ -1343,13 +1343,19 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1343
1343
|
},
|
|
1344
1344
|
handleRowClickEvent (evnt: MouseEvent, row: any) {
|
|
1345
1345
|
const $xeList = this
|
|
1346
|
+
const props = $xeList
|
|
1346
1347
|
const reactData = $xeList.reactData
|
|
1347
1348
|
const internalData = $xeList.internalData
|
|
1348
1349
|
|
|
1350
|
+
const { showRadio, showCheckbox } = props
|
|
1349
1351
|
const { currentRow } = internalData
|
|
1352
|
+
const radioOpts = $xeList.computeRadioOpts
|
|
1353
|
+
const checkboxOpts = $xeList.computeCheckboxOpts
|
|
1350
1354
|
const rowOpts = $xeList.computeRowOpts
|
|
1351
1355
|
const { isCurrent } = rowOpts
|
|
1352
1356
|
let triggerCurrent = false
|
|
1357
|
+
let triggerRadio = false
|
|
1358
|
+
let triggerCheckbox = false
|
|
1353
1359
|
if (isCurrent) {
|
|
1354
1360
|
triggerCurrent = true
|
|
1355
1361
|
$xeList.changeCurrentEvent(evnt, row)
|
|
@@ -1357,7 +1363,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1357
1363
|
internalData.currentRow = null
|
|
1358
1364
|
reactData.currRowFlag++
|
|
1359
1365
|
}
|
|
1360
|
-
|
|
1366
|
+
if (showRadio && radioOpts.trigger === 'row') {
|
|
1367
|
+
triggerRadio = true
|
|
1368
|
+
$xeList.changeRadioEvent(evnt, row)
|
|
1369
|
+
}
|
|
1370
|
+
if (showCheckbox && checkboxOpts.trigger === 'row') {
|
|
1371
|
+
triggerCheckbox = true
|
|
1372
|
+
$xeList.changeCheckboxEvent(evnt, row)
|
|
1373
|
+
}
|
|
1374
|
+
$xeList.dispatchEvent('row-click', { row, triggerCurrent, triggerRadio, triggerCheckbox }, evnt)
|
|
1361
1375
|
},
|
|
1362
1376
|
handleRowDblclickEvent (evnt: MouseEvent, row: any) {
|
|
1363
1377
|
const $xeList = this
|
|
@@ -231,7 +231,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
231
231
|
}
|
|
232
232
|
}),
|
|
233
233
|
h('span', {
|
|
234
|
-
class: 'vxe-radio--label'
|
|
234
|
+
class: ['vxe-radio--label', {
|
|
235
|
+
'is--disabled': isDisabled
|
|
236
|
+
}]
|
|
235
237
|
}, defaultSlot ? defaultSlot({}) : getFuncText(content))
|
|
236
238
|
])
|
|
237
239
|
}
|
|
@@ -34,6 +34,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
34
34
|
default: null
|
|
35
35
|
},
|
|
36
36
|
type: String as PropType<VxeRadioGroupPropTypes.Type>,
|
|
37
|
+
status: {
|
|
38
|
+
type: String as PropType<VxeRadioGroupPropTypes.Status>,
|
|
39
|
+
default: () => getConfig().radioGroup.status
|
|
40
|
+
},
|
|
37
41
|
options: Array as PropType<VxeRadioGroupPropTypes.Options>,
|
|
38
42
|
optionProps: Object as PropType<VxeRadioGroupPropTypes.OptionProps>,
|
|
39
43
|
strict: {
|
|
@@ -216,7 +220,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
216
220
|
const props = $xeRadioGroup
|
|
217
221
|
const slots = $xeRadioGroup.$scopedSlots
|
|
218
222
|
|
|
219
|
-
const { options, type } = props
|
|
223
|
+
const { options, type, status } = props
|
|
220
224
|
const vSize = $xeRadioGroup.computeSize
|
|
221
225
|
const defaultSlot = slots.default
|
|
222
226
|
const valueField = $xeRadioGroup.computeValueField as 'value'
|
|
@@ -226,6 +230,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
226
230
|
|
|
227
231
|
return h('div', {
|
|
228
232
|
class: ['vxe-radio-group', {
|
|
233
|
+
[`theme--${status}`]: status,
|
|
229
234
|
[`size--${vSize}`]: vSize
|
|
230
235
|
}]
|
|
231
236
|
}, defaultSlot
|
|
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
|
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
4
|
import { VxeUI, createEvent, globalEvents, globalResize, renderEmptyElement, globalMixins } from '../../ui'
|
|
5
|
-
import { calcTreeLine } from './util'
|
|
5
|
+
import { calcTreeLine, getItemCacheObj } from './util'
|
|
6
6
|
import { createComponentLog } from '../../ui/src/log'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
8
|
import { crossTreeDragNodeGlobal, getCrossTreeDragNodeInfo } from './store'
|
|
@@ -13,7 +13,7 @@ import VxeLoadingComponent from '../../loading'
|
|
|
13
13
|
|
|
14
14
|
import type { TreeReactData, VxeTreeEmits, VxeTreeConstructor, VxeTreePropTypes, TreeInternalData, VxeTreeDefines, VxeTreePrivateMethods, VxeComponentSizeType, ValueOf } from '../../../types'
|
|
15
15
|
|
|
16
|
-
const { errLog } = createComponentLog('tree')
|
|
16
|
+
const { warnLog, errLog } = createComponentLog('tree')
|
|
17
17
|
|
|
18
18
|
const { menus, getConfig, getI18n, getIcon } = VxeUI
|
|
19
19
|
|
|
@@ -498,6 +498,47 @@ function handleVisibleOrCheckMode (mode: '' | 'all' | 'first' | 'last' | null |
|
|
|
498
498
|
return true
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
+
function insertTreeNode ($xeTree: VxeTreeConstructor, newRecords: any[], isAppend: boolean) {
|
|
502
|
+
const internalData = $xeTree.internalData
|
|
503
|
+
|
|
504
|
+
const { treeFullData, nodeMaps } = internalData
|
|
505
|
+
const keyField = $xeTree.computeKeyField
|
|
506
|
+
const parentField = $xeTree.computeParentField
|
|
507
|
+
const childrenField = $xeTree.computeChildrenField
|
|
508
|
+
const mapChildrenField = $xeTree.computeMapChildrenField
|
|
509
|
+
const funcName = isAppend ? 'push' : 'unshift'
|
|
510
|
+
newRecords.forEach((item) => {
|
|
511
|
+
const parentRowId = item[parentField]
|
|
512
|
+
const nodeid = $xeTree.getNodeId(item)
|
|
513
|
+
const matchObj = parentRowId ? XEUtils.findTree(treeFullData, (item) => parentRowId === item[keyField], { children: mapChildrenField }) : null
|
|
514
|
+
const itemRest = getItemCacheObj(item)
|
|
515
|
+
if (matchObj) {
|
|
516
|
+
const { item: parentItem } = matchObj
|
|
517
|
+
const parentRest = nodeMaps[$xeTree.getNodeId(parentItem)]
|
|
518
|
+
const parentLevel = parentRest ? parentRest.level : 0
|
|
519
|
+
let pChilds = parentItem[childrenField]
|
|
520
|
+
let pMapChilds = parentItem[mapChildrenField]
|
|
521
|
+
if (!XEUtils.isArray(pChilds)) {
|
|
522
|
+
pChilds = parentItem[childrenField] = []
|
|
523
|
+
}
|
|
524
|
+
if (!XEUtils.isArray(pMapChilds)) {
|
|
525
|
+
pMapChilds = parentItem[mapChildrenField] = []
|
|
526
|
+
}
|
|
527
|
+
itemRest.parent = parentItem
|
|
528
|
+
itemRest.items = pChilds
|
|
529
|
+
itemRest.level = parentLevel
|
|
530
|
+
pChilds[funcName](item)
|
|
531
|
+
pMapChilds[funcName](item)
|
|
532
|
+
} else {
|
|
533
|
+
if (parentRowId) {
|
|
534
|
+
warnLog('vxe.error.unableInsert')
|
|
535
|
+
}
|
|
536
|
+
treeFullData[funcName](item)
|
|
537
|
+
}
|
|
538
|
+
nodeMaps[nodeid] = itemRest
|
|
539
|
+
})
|
|
540
|
+
}
|
|
541
|
+
|
|
501
542
|
function createInternalData (): TreeInternalData {
|
|
502
543
|
return {
|
|
503
544
|
// initialized: false,
|
|
@@ -521,6 +562,9 @@ function createInternalData (): TreeInternalData {
|
|
|
521
562
|
rowHeight: 0
|
|
522
563
|
},
|
|
523
564
|
|
|
565
|
+
removeRowMaps: {},
|
|
566
|
+
insertRowMaps: {},
|
|
567
|
+
|
|
524
568
|
// prevDragNode: null,
|
|
525
569
|
// prevDragToChild: false,
|
|
526
570
|
// prevDragPos: ''
|
|
@@ -544,6 +588,8 @@ function createReactData ():TreeReactData {
|
|
|
544
588
|
treeList: [],
|
|
545
589
|
updateExpandedFlag: 1,
|
|
546
590
|
updateCheckboxFlag: 1,
|
|
591
|
+
insertRowFlag: 1,
|
|
592
|
+
removeRowFlag: 1,
|
|
547
593
|
dragNode: null,
|
|
548
594
|
dragTipText: ''
|
|
549
595
|
}
|
|
@@ -1579,6 +1625,207 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1579
1625
|
internalData.lastScrollLeft = 0
|
|
1580
1626
|
return $xeTree.$nextTick()
|
|
1581
1627
|
},
|
|
1628
|
+
handleInsertNodeAt (records: any[], targetNodeOrNodeid: any, isInsertNextNode?: any) {
|
|
1629
|
+
const $xeTree = this
|
|
1630
|
+
const props = $xeTree
|
|
1631
|
+
const reactData = $xeTree.reactData
|
|
1632
|
+
const internalData = $xeTree.internalData
|
|
1633
|
+
|
|
1634
|
+
const { transform } = props
|
|
1635
|
+
const { treeFullData, nodeMaps } = internalData
|
|
1636
|
+
const keyField = $xeTree.computeKeyField
|
|
1637
|
+
const parentField = $xeTree.computeParentField
|
|
1638
|
+
const childrenField = $xeTree.computeChildrenField
|
|
1639
|
+
const mapChildrenField = $xeTree.computeMapChildrenField
|
|
1640
|
+
if (!transform) {
|
|
1641
|
+
errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'transform'])
|
|
1642
|
+
return Promise.resolve({ node: null, nodes: [] })
|
|
1643
|
+
}
|
|
1644
|
+
if (!XEUtils.isArray(records)) {
|
|
1645
|
+
records = [records]
|
|
1646
|
+
}
|
|
1647
|
+
let targetNode = targetNodeOrNodeid
|
|
1648
|
+
if (XEUtils.isString(targetNodeOrNodeid) || XEUtils.isNumber(targetNodeOrNodeid)) {
|
|
1649
|
+
const nodeRest = nodeMaps[targetNodeOrNodeid]
|
|
1650
|
+
if (nodeRest) {
|
|
1651
|
+
targetNode = nodeRest.item
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
if (!records.length) {
|
|
1655
|
+
return Promise.resolve({ node: null, nodes: [] })
|
|
1656
|
+
}
|
|
1657
|
+
const newRecords = records.map(record => XEUtils.assign({ [mapChildrenField]: [], [childrenField]: [] }, record))
|
|
1658
|
+
const treeRecords = XEUtils.toArrayTree(newRecords, { key: keyField, parentKey: parentField, children: childrenField })
|
|
1659
|
+
|
|
1660
|
+
if (XEUtils.eqNull(targetNode)) {
|
|
1661
|
+
insertTreeNode($xeTree, newRecords, false)
|
|
1662
|
+
} else {
|
|
1663
|
+
if (targetNode === -1) {
|
|
1664
|
+
insertTreeNode($xeTree, newRecords, true)
|
|
1665
|
+
} else {
|
|
1666
|
+
const matchMapObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: mapChildrenField })
|
|
1667
|
+
if (matchMapObj) {
|
|
1668
|
+
const { parent: parentNode } = matchMapObj
|
|
1669
|
+
const parentMapChilds = parentNode ? parentNode[mapChildrenField] : treeFullData
|
|
1670
|
+
const parentRest = nodeMaps[$xeTree.getNodeId(parentNode)]
|
|
1671
|
+
const parentLevel = parentRest ? parentRest.level : 0
|
|
1672
|
+
treeRecords.forEach((row, i) => {
|
|
1673
|
+
if (parentNode) {
|
|
1674
|
+
if (row[parentField] !== parentNode[keyField]) {
|
|
1675
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentNode[keyField]}`])
|
|
1676
|
+
row[parentField] = parentNode[keyField]
|
|
1677
|
+
}
|
|
1678
|
+
} else {
|
|
1679
|
+
if (row[parentField] !== null) {
|
|
1680
|
+
if (!XEUtils.eqNull(row[parentField])) {
|
|
1681
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null'])
|
|
1682
|
+
}
|
|
1683
|
+
row[parentField] = null
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1686
|
+
let targetIndex = matchMapObj.index + i
|
|
1687
|
+
if (isInsertNextNode) {
|
|
1688
|
+
targetIndex = targetIndex + 1
|
|
1689
|
+
}
|
|
1690
|
+
parentMapChilds.splice(targetIndex, 0, row)
|
|
1691
|
+
})
|
|
1692
|
+
XEUtils.eachTree(treeRecords, (item) => {
|
|
1693
|
+
const nodeid = $xeTree.getNodeId(item)
|
|
1694
|
+
const nodeRest = getItemCacheObj(item)
|
|
1695
|
+
nodeRest.level = parentLevel
|
|
1696
|
+
if (item[childrenField]) {
|
|
1697
|
+
item[mapChildrenField] = item[childrenField]
|
|
1698
|
+
}
|
|
1699
|
+
nodeMaps[nodeid] = nodeRest
|
|
1700
|
+
}, { children: childrenField })
|
|
1701
|
+
// 源
|
|
1702
|
+
if (parentNode) {
|
|
1703
|
+
const matchObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: childrenField })
|
|
1704
|
+
if (matchObj) {
|
|
1705
|
+
const parentChilds = matchObj.items
|
|
1706
|
+
let targetIndex = matchObj.index
|
|
1707
|
+
if (isInsertNextNode) {
|
|
1708
|
+
targetIndex = targetIndex + 1
|
|
1709
|
+
}
|
|
1710
|
+
parentChilds.splice(targetIndex, 0, ...treeRecords)
|
|
1711
|
+
}
|
|
1712
|
+
}
|
|
1713
|
+
} else {
|
|
1714
|
+
warnLog('vxe.error.unableInsert')
|
|
1715
|
+
insertTreeNode($xeTree, newRecords, true)
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
reactData.insertRowFlag++
|
|
1720
|
+
$xeTree.cacheNodeMap()
|
|
1721
|
+
$xeTree.handleData(true)
|
|
1722
|
+
$xeTree.updateAfterDataIndex()
|
|
1723
|
+
$xeTree.updateCheckboxStatus()
|
|
1724
|
+
if (reactData.scrollYLoad) {
|
|
1725
|
+
$xeTree.updateYSpace()
|
|
1726
|
+
}
|
|
1727
|
+
return $xeTree.$nextTick().then(() => {
|
|
1728
|
+
return {
|
|
1729
|
+
node: newRecords.length ? newRecords[newRecords.length - 1] : null,
|
|
1730
|
+
nodes: newRecords
|
|
1731
|
+
}
|
|
1732
|
+
})
|
|
1733
|
+
},
|
|
1734
|
+
insert (records: any) {
|
|
1735
|
+
const $xeTree = this
|
|
1736
|
+
|
|
1737
|
+
return $xeTree.handleInsertNodeAt(records, null)
|
|
1738
|
+
},
|
|
1739
|
+
insertAt (records: any, targetNodeOrNodeid?: any) {
|
|
1740
|
+
const $xeTree = this
|
|
1741
|
+
|
|
1742
|
+
return $xeTree.handleInsertNodeAt(records, targetNodeOrNodeid)
|
|
1743
|
+
},
|
|
1744
|
+
insertNextAt (records: any, targetNodeOrNodeid?: any) {
|
|
1745
|
+
const $xeTree = this
|
|
1746
|
+
|
|
1747
|
+
return $xeTree.handleInsertNodeAt(records, targetNodeOrNodeid, true)
|
|
1748
|
+
},
|
|
1749
|
+
remove (nodes?: any) {
|
|
1750
|
+
const $xeTree = this
|
|
1751
|
+
const props = $xeTree
|
|
1752
|
+
const reactData = $xeTree.reactData
|
|
1753
|
+
const internalData = $xeTree.internalData
|
|
1754
|
+
|
|
1755
|
+
const { transform } = props
|
|
1756
|
+
const { treeFullData } = internalData
|
|
1757
|
+
const childrenField = $xeTree.computeChildrenField
|
|
1758
|
+
const mapChildrenField = $xeTree.computeMapChildrenField
|
|
1759
|
+
if (!transform) {
|
|
1760
|
+
errLog('vxe.error.reqSupportProp', ['remove()', 'transform'])
|
|
1761
|
+
return Promise.resolve({ node: null, nodes: [] })
|
|
1762
|
+
}
|
|
1763
|
+
let delList: any[] = []
|
|
1764
|
+
if (!nodes) {
|
|
1765
|
+
nodes = treeFullData
|
|
1766
|
+
} else if (!XEUtils.isArray(nodes)) {
|
|
1767
|
+
nodes = [nodes]
|
|
1768
|
+
}
|
|
1769
|
+
if (!nodes.length) {
|
|
1770
|
+
return Promise.resolve({ node: null, nodes: [] })
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
// 从数据源中移除
|
|
1774
|
+
if (treeFullData === nodes) {
|
|
1775
|
+
nodes = delList = treeFullData.slice(0)
|
|
1776
|
+
internalData.treeFullData = []
|
|
1777
|
+
} else {
|
|
1778
|
+
nodes.forEach((item: any) => {
|
|
1779
|
+
const nodeid = $xeTree.getNodeId(item)
|
|
1780
|
+
const matchMapObj = XEUtils.findTree(treeFullData, item => nodeid === $xeTree.getNodeId(item), { children: mapChildrenField })
|
|
1781
|
+
if (matchMapObj) {
|
|
1782
|
+
const rItems = matchMapObj.items.splice(matchMapObj.index, 1)
|
|
1783
|
+
delList.push(rItems[0])
|
|
1784
|
+
}
|
|
1785
|
+
const matchObj = XEUtils.findTree(treeFullData, item => nodeid === $xeTree.getNodeId(item), { children: childrenField })
|
|
1786
|
+
if (matchObj) {
|
|
1787
|
+
const rItems = matchObj.items.splice(matchObj.index, 1)
|
|
1788
|
+
delList.push(rItems[0])
|
|
1789
|
+
}
|
|
1790
|
+
})
|
|
1791
|
+
}
|
|
1792
|
+
reactData.removeRowFlag++
|
|
1793
|
+
reactData.insertRowFlag++
|
|
1794
|
+
$xeTree.cacheNodeMap()
|
|
1795
|
+
$xeTree.handleData(true)
|
|
1796
|
+
$xeTree.updateAfterDataIndex()
|
|
1797
|
+
$xeTree.updateCheckboxStatus()
|
|
1798
|
+
if (reactData.scrollYLoad) {
|
|
1799
|
+
$xeTree.updateYSpace()
|
|
1800
|
+
}
|
|
1801
|
+
return $xeTree.$nextTick().then(() => {
|
|
1802
|
+
return $xeTree.recalculate()
|
|
1803
|
+
}).then(() => {
|
|
1804
|
+
return { node: delList.length ? delList[delList.length - 1] : null, nodes: delList }
|
|
1805
|
+
})
|
|
1806
|
+
},
|
|
1807
|
+
getInsertRecords () {
|
|
1808
|
+
const $xeTree = this
|
|
1809
|
+
const internalData = $xeTree.internalData
|
|
1810
|
+
|
|
1811
|
+
const { insertRowMaps } = internalData
|
|
1812
|
+
const insertRecords: any[] = []
|
|
1813
|
+
XEUtils.each(insertRowMaps, (row) => {
|
|
1814
|
+
insertRecords.push(row)
|
|
1815
|
+
})
|
|
1816
|
+
return insertRecords
|
|
1817
|
+
},
|
|
1818
|
+
getRemoveRecords () {
|
|
1819
|
+
const $xeTree = this
|
|
1820
|
+
const internalData = $xeTree.internalData
|
|
1821
|
+
|
|
1822
|
+
const { removeRowMaps } = internalData
|
|
1823
|
+
const removeRecords: any[] = []
|
|
1824
|
+
XEUtils.each(removeRowMaps, (row) => {
|
|
1825
|
+
removeRecords.push(row)
|
|
1826
|
+
})
|
|
1827
|
+
return removeRecords
|
|
1828
|
+
},
|
|
1582
1829
|
handleNodeMousedownEvent (evnt: MouseEvent, node: any) {
|
|
1583
1830
|
const $xeTree = this
|
|
1584
1831
|
const props = $xeTree
|
|
@@ -3102,8 +3349,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
3102
3349
|
if (drag && !transform) {
|
|
3103
3350
|
errLog('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true'])
|
|
3104
3351
|
}
|
|
3105
|
-
if (dragOpts.isCrossTreeDrag) {
|
|
3106
|
-
errLog('vxe.error.
|
|
3352
|
+
if (dragOpts.isCrossTreeDrag && !dragOpts.isCrossDrag) {
|
|
3353
|
+
errLog('vxe.error.reqSupportProp', ['drag-config.isCrossTreeDrag', 'drag-config.isCrossDrag'])
|
|
3107
3354
|
}
|
|
3108
3355
|
// if (valueField) {
|
|
3109
3356
|
// errLog('vxe.error.delProp', ['value-field', 'value-field'])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VxeTreeConstructor } from '../../../types'
|
|
1
|
+
import type { VxeTreeConstructor, VxeTreeDefines } from '../../../types'
|
|
2
2
|
|
|
3
3
|
function countTreeExpand ($xeTree: VxeTreeConstructor, prevNode: any) {
|
|
4
4
|
let count = 1
|
|
@@ -32,3 +32,19 @@ export function calcTreeLine ($xeTree: VxeTreeConstructor, node: any, prevNode:
|
|
|
32
32
|
}
|
|
33
33
|
return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12)
|
|
34
34
|
}
|
|
35
|
+
|
|
36
|
+
export function getItemCacheObj (item: any): VxeTreeDefines.NodeCacheItem {
|
|
37
|
+
return {
|
|
38
|
+
item,
|
|
39
|
+
index: -1,
|
|
40
|
+
$index: -1,
|
|
41
|
+
_index: -1,
|
|
42
|
+
items: [],
|
|
43
|
+
parent: null,
|
|
44
|
+
nodes: [],
|
|
45
|
+
level: 0,
|
|
46
|
+
treeIndex: -1,
|
|
47
|
+
lineCount: 0,
|
|
48
|
+
treeLoaded: false
|
|
49
|
+
}
|
|
50
|
+
}
|
package/packages/ui/index.ts
CHANGED
|
@@ -185,7 +185,10 @@ setConfig({
|
|
|
185
185
|
formView: {},
|
|
186
186
|
icon: {},
|
|
187
187
|
iconPicker: {
|
|
188
|
-
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']
|
|
188
|
+
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'],
|
|
189
|
+
popupConfig: {
|
|
190
|
+
// chunkSize: 4
|
|
191
|
+
}
|
|
189
192
|
},
|
|
190
193
|
image: {
|
|
191
194
|
draggable: null,
|