|
@@ -123,59 +123,11 @@ function init() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-const combineIdChildren = (item: any) => {
|
|
|
|
|
- const items = []
|
|
|
|
|
- items.push(item.id)
|
|
|
|
|
- if (item.children && item.children.length) {
|
|
|
|
|
- item.children.forEach((v: any) => {
|
|
|
|
|
- items.push(...combineIdChildren(v))
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- return items
|
|
|
|
|
-}
|
|
|
|
|
-const findItemIds = (id: string | number, data?: Array<any>): Array<any> => {
|
|
|
|
|
- data = data || options.value
|
|
|
|
|
- const items = []
|
|
|
|
|
- if (data.length) {
|
|
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
|
|
- const item = data[i]
|
|
|
|
|
- if (item["id"] == id) {
|
|
|
|
|
- items.push(...combineIdChildren(item))
|
|
|
|
|
- } else if (item.children && item.children.length) {
|
|
|
|
|
- items.push(...findItemIds(id, item.children))
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return items
|
|
|
|
|
-}
|
|
|
|
|
|
|
+
|
|
|
function onSelect(data: any) {
|
|
function onSelect(data: any) {
|
|
|
- //console.log("data", data, data.id, findItemIds(data.id))
|
|
|
|
|
- // if (props.multiple) {
|
|
|
|
|
- // if (props.flat) {
|
|
|
|
|
- // const val = Object.assign([], value.value as Array<string | number>)
|
|
|
|
|
- // const needAdd = findItemIds(data.id)
|
|
|
|
|
- // val.push(...needAdd)
|
|
|
|
|
- // emits("update:value", val)
|
|
|
|
|
- // }
|
|
|
|
|
- // } else {
|
|
|
|
|
- // emits("update:value", data.id)
|
|
|
|
|
- // }
|
|
|
|
|
emits("deselect", data)
|
|
emits("deselect", data)
|
|
|
}
|
|
}
|
|
|
function onDeselect(data: any) {
|
|
function onDeselect(data: any) {
|
|
|
- // console.log("data", data, data.id, findItemIds(data.id))
|
|
|
|
|
- // if (props.multiple) {
|
|
|
|
|
- // if (props.flat) {
|
|
|
|
|
- // const needRemove = findItemIds(data.id)
|
|
|
|
|
- // let val = Object.assign([], value.value as Array<string | number>)
|
|
|
|
|
- // val = val.filter((v: any) => {
|
|
|
|
|
- // return needRemove.indexOf(v) < 0
|
|
|
|
|
- // })
|
|
|
|
|
- // emits("update:value", val)
|
|
|
|
|
- // }
|
|
|
|
|
- // } else {
|
|
|
|
|
- // emits("update:value", undefined)
|
|
|
|
|
- // }
|
|
|
|
|
emits("select", data)
|
|
emits("select", data)
|
|
|
}
|
|
}
|
|
|
watch(() => props.id, init)
|
|
watch(() => props.id, init)
|