From 2ef696ad0aab335bed5d18f0ba2eb703a8a9e91c Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 16 四月 2025 16:38:15 +0800
Subject: [PATCH] 调度日志表高度

---
 src/views/data/ind/item/DerIndDefineForm.vue |   73 ++++++++++++++++++++++++++++--------
 1 files changed, 57 insertions(+), 16 deletions(-)

diff --git a/src/views/data/ind/item/DerIndDefineForm.vue b/src/views/data/ind/item/DerIndDefineForm.vue
index cba741f..44ef103 100644
--- a/src/views/data/ind/item/DerIndDefineForm.vue
+++ b/src/views/data/ind/item/DerIndDefineForm.vue
@@ -20,34 +20,35 @@
       <el-row>
         <el-col :span="12">
           <el-form-item label="原子指标" prop="atomItem.itemId">
-            <el-select v-model="formData.atomItem.itemId" clearable placeholder="请选择原子指标"
+            <el-select v-model="formData.atomItem.itemId" filterable
+                       allow-create clearable placeholder="请选择原子指标"
                        @change="handleChange($event)">
               <el-option
                 v-for="item in atomItemList"
                 :key="item.id"
-                :label="item.itemNo"
+                :label="item.itemName"
                 :value="item.id + ''"
               />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="原子指标名称" prop="atomItem.itemName">
-            <el-input v-model="formData.atomItem.itemName" disabled/>
+          <el-form-item label="原子指标编码" prop="atomItem.itemNo">
+            <el-input v-model="formData.atomItem.itemNo" disabled/>
           </el-form-item>
         </el-col>
       </el-row>
       <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="dataCategoryList"
+              :default-expanded-keys="[0]"
+              :props="defaultProps"
+              check-strictly
+              node-key="id"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -79,11 +80,27 @@
             <el-input v-model="formData.unit"/>
           </el-form-item>
         </el-col>
+        <el-col :span="6">
+          <el-form-item label="固化标识" prop="solidifyFlag">
+            <el-select v-model="formData.solidifyFlag"
+                       clearable
+                       filterable
+                       allow-create
+                       placeholder="请选择">
+              <el-option
+                v-for="dict in getStrDictOptions(DICT_TYPE.SOLIDIFY_FLAG)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
       </el-row>
       <el-row>
         <el-col :span="6">
           <el-form-item label="时间标识" prop="timeLabel">
-            <el-select v-model="formData.derItem.timeLabel" clearable placeholder="请选择时间标识">
+            <el-select v-model="formData.derItem.timeLabel" allow-create filterable clearable placeholder="请选择时间标识">
               <el-option
                 v-for="item in dataSetFieldList"
                 :key="item.id"
@@ -104,6 +121,19 @@
                 :value="dict.value"
               />
             </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" v-if="['LAST_MONTH_12','THIS_MONTH','LAST_MONTH'].includes(formData.derItem.timeLimit)">
+          <el-form-item label="月周期开始日" prop="monthStart">
+            <div style="display: flex;flex-direction: row;align-items: center">
+              <el-input-number v-model="formData.derItem.monthStart" :min="-28" :max="28" />
+              <el-tooltip content="正数代表当前月,负数代表上月。例:-26代表上月26号为本月开始日期" placement="top">
+                <div style="margin-left: 4px;display: flex;align-items: center">
+                  <el-icon :size="20"><QuestionFilled /></el-icon>
+                </div>
+              </el-tooltip>
+            </div>
+
           </el-form-item>
         </el-col>
       </el-row>
@@ -130,7 +160,8 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="分析维度" prop="dimension">
-            <el-select v-model="formData.derItem.dimension" clearable placeholder="请选择分析维度" multiple>
+            <el-select v-model="formData.derItem.dimension" filterable
+                       allow-create clearable placeholder="请选择分析维度" multiple>
               <el-option
                 v-for="item in dataSetFieldList"
                 :key="item.id"
@@ -164,6 +195,7 @@
   import {PageParam} from "@/api/data/ind/item/item";
   import * as CategoryApi from "@/api/data/ind/category";
   import * as DataSetFieldApi from "@/api/data/ind/data/data.field";
+  import {handleTree} from "@/utils/tree";
 
   defineOptions({name: 'IndDataSetForm'})
 
@@ -185,6 +217,7 @@
     businessType: '',
     timeRange: '',
     timeGranularity: '',
+    solidifyFlag:'',
     atomItem: {
       id: '',
       itemId: '',
@@ -218,9 +251,16 @@
   const formRef = ref() // 表单 Ref
   const atomItemList = ref([] as ItemApi.ItemVO[])
   const showTimeChange = ref(false)
-  const dataCategoryList = ref([] as CategoryApi.IndItemCategoryVO[])
   const dataSetFieldList = ref([] as DataSetFieldApi.DataSetFieldVO[])
+  const dataCategoryList = ref<Tree[]>([])
 
+  const getCategoryTree = async () => {
+    dataCategoryList.value = []
+    const res = await CategoryApi.getCategoryListAllSimple()
+    let category: Tree = {id: 0, label: '主类目', children: []}
+    category.children = handleTree(res, 'id', 'pid')
+    dataCategoryList.value.push(category)
+  }
   /** 打开弹窗 */
   const open = async (type: string, id?: string) => {
     dialogVisible.value = true
@@ -228,7 +268,7 @@
     formType.value = type
     resetForm()
     // 加载数据源列表
-    dataCategoryList.value = await CategoryApi.getCategoryListAllSimple()
+    await getCategoryTree()
     const queryParams = reactive({
       itemType: 'ATOM'
     })
@@ -324,6 +364,7 @@
       let a = itemData.atomItem.id
       formData.value.atomItem.id = a
       formData.value.atomItem.itemName = itemData.itemName
+      formData.value.atomItem.itemNo = itemData.itemNo
       formData.value.atomItem.itemId = itemData.atomItem.itemId
       const queryParams = reactive({
         dataSetId: itemData.atomItem.dataSet,

--
Gitblit v1.9.3