From 96705c217379ba0d520c341c351d575eb86a7fb4 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Mon, 23 Mar 2026 19:08:39 +0800 Subject: [PATCH] =?UTF-8?q?fix--=E9=A1=B9=E7=9B=AE=E6=8A=A5=E5=AE=A1?= =?UTF-8?q?=EF=BC=9A=E7=BB=93=E7=AE=97=E9=A1=B9=E7=9B=AE=E3=80=81=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E4=BB=B7=E9=A1=B9=E7=9B=AE=E9=99=90=E5=88=B6=E2=80=9C?= =?UTF-8?q?=E5=AE=A1=E8=AE=A1=E5=8D=95=E4=BD=8D=E2=80=9D=E5=8F=AA=E8=83=BD?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E4=BA=8C=E7=BA=A7=E6=9C=BA=E6=9E=84=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E4=B8=89=E7=BA=A7=E6=9C=BA=E6=9E=84?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/depart-tree-select.vue | 30 ++++++++++++++++---------- src/views/report/edit/controlPrice.vue | 3 ++- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/components/depart-tree-select.vue b/src/components/depart-tree-select.vue index b3e405e..6d5a0c7 100644 --- a/src/components/depart-tree-select.vue +++ b/src/components/depart-tree-select.vue @@ -27,6 +27,10 @@ const props = defineProps({ disableRoot: { type: Boolean, default: false + }, + onlySecondLevel: { + type: Boolean, + default: false } }) @@ -37,9 +41,8 @@ const treeProps = computed(() => ({ label: 'shortName', value: 'id', disabled: (data, node) => { - // debugger - if (!props.disableRoot) return false if (!node) return false + if (!props.disableRoot) return false return node.level === 1 } })) @@ -53,19 +56,24 @@ watch(departs, () => { function getData() { + const baseData = props.departData + ? [props.departData] + : (!props.showRoot && departs.length && departs[0].id === ROOT_DEPART_ID + ? departs[0].children + : departs) + if(props.departData){ console.log(props.departData) - data.value=[] - data.value.push(props.departData) - - }else{ - if (!props.showRoot && departs.length && departs[0].id === ROOT_DEPART_ID) { - data.value = departs[0].children - } else { - data.value = departs - } } + data.value = props.onlySecondLevel ? trimChildren(baseData, 1) : baseData +} +function trimChildren(list, level) { + if (!Array.isArray(list)) return [] + return list.map(item => ({ + ...item, + children: level >= 2 ? [] : trimChildren(item.children, level + 1) + })) }