From 9e876a11f6f0b384d4b1f0a60e066944dbcdeaa5 Mon Sep 17 00:00:00 2001 From: houzhongjian <houzhongyi@126.com> Date: 星期三, 27 十一月 2024 09:55:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/data/plan/item/ItemForm.vue | 52 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/views/data/plan/item/ItemForm.vue b/src/views/data/plan/item/ItemForm.vue index 0fdf58b..559432d 100644 --- a/src/views/data/plan/item/ItemForm.vue +++ b/src/views/data/plan/item/ItemForm.vue @@ -22,14 +22,14 @@ <el-row> <el-col :span="12"> <el-form-item label="计划分类" prop="itemCategory"> - <el-select v-model="formData.itemCategory" clearable placeholder="请选择计划分类"> - <el-option - v-for="item in dataCategoryList" - :key="item.id" - :label="item.label" - :value="item.id + ''" - /> - </el-select> + <el-tree-select + v-model="formData.itemCategory" + :data="categoryTree" + :default-expanded-keys="[0]" + :props="defaultProps" + check-strictly + node-key="id" + /> </el-form-item> </el-col> <el-col :span="12"> @@ -46,9 +46,11 @@ </el-col> </el-row> <el-row> - <el-col :span="6"> + <el-col :span="12"> <el-form-item label="数据集" prop="dataSet"> - <el-select v-model="formData.dataSet" clearable placeholder="请选择数据集" @change="handleDataSetChange($event)"> + <el-select v-model="formData.dataSet" clearable placeholder="请选择数据集" + filterable + @change="handleDataSetChange($event)"> <el-option v-for="item in dataSetList" :key="item.id" @@ -73,13 +75,15 @@ <script lang="ts" setup> import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from '@/utils/dict' import * as ItemApi from '@/api/data/plan/item' -import { CommonStatusEnum } from '@/utils/constants' +import {CommonStatusEnum} from '@/utils/constants' import * as DataSetApi from "@/api/data/plan/data"; import * as CategoryApi from "@/api/data/plan/category"; +import {defaultProps} from "@/api/data/plan/category"; +import {handleTree} from "@/utils/tree"; -defineOptions({ name: 'PlanItemForm' }) +defineOptions({name: 'PlanItemForm'}) -const { t } = useI18n() // 国际化 +const {t} = useI18n() // 国际化 const message = useMessage() // 消息弹窗 const dialogVisible = ref(false) // 弹窗的是否展示 @@ -97,13 +101,21 @@ status: undefined, }) const formRules = reactive({ - itemName: [{ required: true, message: '名称不能为空', trigger: 'blur' }], - itemCategory: [{ required: true, message: '分类不能为空', trigger: 'blur' }], - dataSet: [{ required: true, message: '数据集不能为空', trigger: 'change' }] + itemName: [{required: true, message: '名称不能为空', trigger: 'blur'}], + itemCategory: [{required: true, message: '分类不能为空', trigger: 'blur'}], + dataSet: [{required: true, message: '数据集不能为空', trigger: 'change'}] }) const formRef = ref() // 表单 Ref const dataSetList = ref([] as DataSetApi.DataSetVO[]) -const dataCategoryList = ref([]) + +const categoryTree = ref<Tree[]>([]) +const getCategoryTree = async () => { + categoryTree.value = [] + const res = await CategoryApi.getCategoryListAllSimple() + let category: Tree = {id: 0, label: '主类目', children: []} + category.children = handleTree(res, 'id', 'pid') + categoryTree.value.push(category) +} /** 打开弹窗 */ const open = async (type: string, id?: number) => { @@ -113,8 +125,8 @@ resetForm() // 加载数据源列表 dataSetList.value = await DataSetApi.getDataSetList() - dataCategoryList.value = await CategoryApi.getCategoryListAllSimple() - + // 加载类别 + await getCategoryTree() // 修改时,设置数据 if (id) { formLoading.value = true @@ -125,7 +137,7 @@ } } } -defineExpose({ open }) // 提供 open 方法,用于打开弹窗 +defineExpose({open}) // 提供 open 方法,用于打开弹窗 /** 提交表单 */ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 -- Gitblit v1.9.3