opt:树形结构
This commit is contained in:
@@ -158,7 +158,7 @@
|
|||||||
startTime: '',
|
startTime: '',
|
||||||
endTime: '',
|
endTime: '',
|
||||||
isTop: true,
|
isTop: true,
|
||||||
parentDetailId: 0
|
parentDetailId: undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
const formData = ref(defaultForm())
|
const formData = ref(defaultForm())
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
parentDetailId: [
|
parentDetailId: [
|
||||||
{
|
{
|
||||||
validator: async (_rule, value) => {
|
validator: async (_rule, value) => {
|
||||||
if (formData.value.isTop === false && !value) {
|
if (formData.value.isTop === false && (value === undefined || value === null || value === '')) {
|
||||||
return Promise.reject(new Error('请选择上级类目'))
|
return Promise.reject(new Error('请选择上级类目'))
|
||||||
}
|
}
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
@@ -183,12 +183,16 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const normalizeParentDetailId = (val) => {
|
||||||
|
if (val === undefined || val === null || val === '' || val === 0 || val === '0') {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
const toTreeNode = (item = {}) => {
|
const toTreeNode = (item = {}) => {
|
||||||
const id = item.detailId
|
const id = item.detailId
|
||||||
const titleParts = []
|
const title = item.modelName ? item.modelName : String(id || '')
|
||||||
if (item.modelName) titleParts.push(item.modelName)
|
|
||||||
if (item.modelDetail) titleParts.push(item.modelDetail)
|
|
||||||
const title = titleParts.length ? titleParts.join(' - ') : String(id || '')
|
|
||||||
return {
|
return {
|
||||||
title,
|
title,
|
||||||
value: id,
|
value: id,
|
||||||
@@ -241,7 +245,7 @@
|
|||||||
|
|
||||||
const onTopChange = async () => {
|
const onTopChange = async () => {
|
||||||
if (formData.value.isTop === true) {
|
if (formData.value.isTop === true) {
|
||||||
formData.value.parentDetailId = 0
|
formData.value.parentDetailId = undefined
|
||||||
parentTreeData.value = []
|
parentTreeData.value = []
|
||||||
} else {
|
} else {
|
||||||
// 顶级新增同级(parentId = 0)加载根节点
|
// 顶级新增同级(parentId = 0)加载根节点
|
||||||
@@ -253,11 +257,12 @@
|
|||||||
const onOpen = async (payload = {}) => {
|
const onOpen = async (payload = {}) => {
|
||||||
open.value = true
|
open.value = true
|
||||||
formData.value = Object.assign(defaultForm(), cloneDeep(payload || {}))
|
formData.value = Object.assign(defaultForm(), cloneDeep(payload || {}))
|
||||||
if (typeof formData.value.isTop !== 'boolean') {
|
formData.value.parentDetailId = normalizeParentDetailId(formData.value.parentDetailId)
|
||||||
formData.value.isTop = !formData.value.parentDetailId
|
if (formData.value.parentDetailId === undefined) {
|
||||||
}
|
// 同级新增且传入 parentDetailId 为 0/'0' 时也视为顶级
|
||||||
if (formData.value.isTop) {
|
formData.value.isTop = true
|
||||||
formData.value.parentDetailId = 0
|
} else if (typeof formData.value.isTop !== 'boolean') {
|
||||||
|
formData.value.isTop = false
|
||||||
}
|
}
|
||||||
if (formData.value.isTop === false) {
|
if (formData.value.isTop === false) {
|
||||||
await loadRootTree()
|
await loadRootTree()
|
||||||
|
|||||||
Reference in New Issue
Block a user