修复“位置管理”中的部分bug

This commit is contained in:
XiuHe 2026-03-10 10:53:28 +08:00
parent 44c3e77d43
commit ba37bff558
2 changed files with 23 additions and 11 deletions

View File

@ -9,7 +9,7 @@
@close="handleClose" @close="handleClose"
> >
<el-form ref="formRef" :model="formData" label-width="80px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="80px" :rules="formRules">
<el-form-item label="父级位置" prop="pid"> <el-form-item label="父级位置" prop="parentId">
<el-tree-select <el-tree-select
class="flex-1" class="flex-1"
v-model="formData.parentId" v-model="formData.parentId"
@ -17,7 +17,8 @@
clearable clearable
node-key="id" node-key="id"
:props="{ :props="{
label: 'name' label: 'name',
children: 'childLocation'
}" }"
:default-expand-all="true" :default-expand-all="true"
placeholder="请选择父级位置" placeholder="请选择父级位置"
@ -27,7 +28,7 @@
<el-form-item label="位置名称" prop="name"> <el-form-item label="位置名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入位置名称" clearable /> <el-input v-model="formData.name" placeholder="请输入位置名称" clearable />
</el-form-item> </el-form-item>
<el-form-item label="位置类型" prop="type" required> <el-form-item label="位置类型" prop="type" required v-if="mode == 'add'">
<el-select <el-select
v-model="formData.type" v-model="formData.type"
class="w-[280px]" class="w-[280px]"
@ -47,7 +48,7 @@
required required
> >
<el-select <el-select
v-model="formData.type" v-model="formData.status"
class="w-[280px]" class="w-[280px]"
clearable clearable
> >
@ -116,7 +117,7 @@ const formData = reactive({
// //
floorNumber: 0, floorNumber: 0,
// //
status: 0 status: '',
}) })
const formRules = { const formRules = {
@ -146,11 +147,22 @@ const menuOptions = ref<any[]>([])
const getMenu = async () => { const getMenu = async () => {
const data: any = await getLocationList() const data: any = await getLocationList()
const menu: any = { id: 0, name: '顶级', children: [] } const filteredTree = filterTree(data.childLocation, (item) => item.type !== 'ER')
menu.children = arrayToTree( //
treeToArray(data.childLocation).filter((item) => item.type != "ER") const menu: any = {
) id: 0,
menuOptions.value.push(menu) name: '顶级',
childLocation: filteredTree
}
menuOptions.value = [menu]
}
//
const filterTree = (tree: any[], predicate: (item: any) => boolean): any[] => {
return tree.filter(predicate).map(node => ({
...node,
childLocation: node.childLocation ? filterTree(node.childLocation, predicate) : []
}))
} }
const handleSubmit = async () => { const handleSubmit = async () => {

View File

@ -167,7 +167,7 @@ const handleAdd = async (id?: number) => {
await nextTick() await nextTick()
if (id) { if (id) {
editRef.value?.setFormData({ editRef.value?.setFormData({
pid: id parentId: id
}) })
} }
editRef.value?.open('add') editRef.value?.open('add')