From 2cb862114a5701434966020e3d86a9e57b88b51a Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期六, 02 十一月 2024 20:35:42 +0800
Subject: [PATCH] 计划数据

---
 src/views/data/plan/item/ItemForm.vue |   34 ++++++++++++++++++++++------------
 src/views/data/plan/item/index.vue    |    2 +-
 src/api/data/plan/category/index.ts   |   10 +++++++++-
 3 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/src/api/data/plan/category/index.ts b/src/api/data/plan/category/index.ts
index fc2a7b6..f8faecd 100644
--- a/src/api/data/plan/category/index.ts
+++ b/src/api/data/plan/category/index.ts
@@ -7,10 +7,18 @@
   sort: number
 }
 
-export interface IndItemCategoryReqVO {
+export interface ItemCategoryReqVO {
   label?: string
 }
 
+export const defaultProps = {
+  children: 'children',
+  label: 'label',
+  value: 'id',
+  isLeaf: 'leaf',
+  emitPath: false // 用于 cascader 组件:在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值
+}
+
 // 查询列表
 export const getCategoryList = (params) => {
   return request.get({ url: '/data/plan/category/list', params})
diff --git a/src/views/data/plan/item/ItemForm.vue b/src/views/data/plan/item/ItemForm.vue
index 0fdf58b..97257c2 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,7 +46,7 @@
         </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-option
@@ -76,6 +76,8 @@
 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' })
 
@@ -103,7 +105,15 @@
 })
 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 +123,8 @@
   resetForm()
   // 加载数据源列表
   dataSetList.value = await DataSetApi.getDataSetList()
-  dataCategoryList.value = await CategoryApi.getCategoryListAllSimple()
-
+  // 加载类别
+  await getCategoryTree()
   // 修改时,设置数据
   if (id) {
     formLoading.value = true
diff --git a/src/views/data/plan/item/index.vue b/src/views/data/plan/item/index.vue
index 5359924..daa9a45 100644
--- a/src/views/data/plan/item/index.vue
+++ b/src/views/data/plan/item/index.vue
@@ -56,7 +56,7 @@
             v-hasPermi="['data:ind-item:update']"
             link
             type="primary"
-            @click="openForm('update', scope.row)">
+            @click="openForm('update', scope.row.id)">
             修改
           </el-button>
           <el-button

--
Gitblit v1.9.3