Selaa lähdekoodia

优化指标管理的数据展示

yanglzh 1 kuukausi sitten
vanhempi
sitoutus
8ca2d27590

+ 16 - 15
src/views/system/datahub/indicator/component/data.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-dialog v-model="visible" :title="`指标数据 - ${title}`" width="1100px" :close-on-click-modal="false" destroy-on-close>
+  <el-dialog v-model="visible" :title="`指标数据 - ${title}`" width="850px" :close-on-click-modal="false" destroy-on-close>
     <div v-if="visible">
       <el-form :inline="true" class="toolbar">
         <el-form-item>
@@ -8,9 +8,9 @@
         <el-form-item label="时间范围">
           <el-date-picker v-model="query.dateRange" type="datetimerange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" style="width: 380px" />
         </el-form-item>
-        <el-form-item label="维度筛选">
+        <!-- <el-form-item label="维度筛选">
           <el-select v-model="dimensionSelectedText" style="width: 120px" placeholder="全部维度" />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="">
           <el-button type="primary" :icon="Filter" @click="fetchList(1)">筛选</el-button>
           <!-- <el-button @click="exportData">导出</el-button> -->
@@ -18,23 +18,24 @@
       </el-form>
 
       <el-table :data="list" style="width: 100%" v-loading="loading" max-height="50vh">
-        <el-table-column label="时间" align="left" min-width="160">
-          <template #default="scope">{{ scope.row.time || scope.row.createdAt || scope.row.createTime || "-" }}</template>
-        </el-table-column>
-        <el-table-column :label="`指标值${detail.unit ? ' (' + detail.unit + ')' : ''}`" min-width="140" align="left">
-          <template #default="scope">
-            <el-link type="primary" :underline="false">{{ scope.row.value ?? scope.row.indicatorValue ?? "-" }}</el-link>
-          </template>
-        </el-table-column>
-        <el-table-column label="原始值" width="120" align="left">
+        <el-table-column label="时间" align="center" prop="collectionTime" width="180" />
+        <el-table-column v-if="detail.computeStrategy !== 'aggregation'" prop="value" :label="`指标值${detail.unit ? ' (' + detail.unit + ')' : ''}`" min-width="140" align="center" />
+        <template v-else>
+          <el-table-column prop="maxValue" :label="`最大值${detail.unit ? ' (' + detail.unit + ')' : ''}`" align="center" />
+          <el-table-column prop="minValue" :label="`最小值${detail.unit ? ' (' + detail.unit + ')' : ''}`" align="center" />
+          <el-table-column prop="avgValue" :label="`平均值${detail.unit ? ' (' + detail.unit + ')' : ''}`" align="center" />
+          <el-table-column prop="sumValue" :label="`总和${detail.unit ? ' (' + detail.unit + ')' : ''}`" align="center" />
+          <el-table-column prop="countValue" label="数量值" align="center" />
+        </template>
+        <!-- <el-table-column label="原始值" width="120" align="left">
           <template #default="scope">{{ scope.row.rawValue ?? scope.row.originValue ?? "-" }}</template>
-        </el-table-column>
-        <el-table-column label="监测点" prop="monitorPoint" width="120" align="left"> </el-table-column>
+        </el-table-column> -->
+        <!-- <el-table-column label="监测点" prop="monitorPoint" width="120" align="left"> </el-table-column>
         <el-table-column label="深度" prop="depth" width="120" align="left"> </el-table-column>
         <el-table-column label="设备" prop="device" width="120" align="left"> </el-table-column>
         <el-table-column v-for="k in dimKeys" :key="k" :label="dimNameMap[k] || k" min-width="120" show-overflow-tooltip>
           <template #default="scope">{{ (scope.row.dimensions && scope.row.dimensions[k]) ?? scope.row[k] ?? "-" }}</template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
 
       <div class="pager flex-end">

+ 4 - 3
src/views/system/datahub/indicator/component/detail.vue

@@ -5,13 +5,13 @@
         <el-descriptions-item label="指标名称">{{ detail.name || "-" }}</el-descriptions-item>
         <el-descriptions-item label="指标描述">{{ detail.description || "-" }}</el-descriptions-item>
         <el-descriptions-item label="指标类型">
-          <el-tag size="small">{{ detail.type || "-" }}</el-tag>
+          <el-tag size="small">{{ detail.typeName || "-" }}</el-tag>
         </el-descriptions-item>
         <el-descriptions-item label="单位">{{ detail.unit || "-" }}</el-descriptions-item>
         <el-descriptions-item label="计算公式">
           <span class="mono">{{ detail.formula || "-" }}</span>
         </el-descriptions-item>
-        <el-descriptions-item label="维度数">{{ (detail.dimensions && detail.dimensions.length) || detail.dimensionCount || 0 }} 个</el-descriptions-item>
+        <el-descriptions-item label="维度数">{{ detail.dimensions?.length }} 个</el-descriptions-item>
         <el-descriptions-item label="状态">
           <el-tag :type="detail.status == '1' ? 'success' : 'info'">{{ detail.status == "1" ? "已发布" : "未发布" }}</el-tag>
         </el-descriptions-item>
@@ -36,12 +36,13 @@ const detail = reactive<any>({});
 
 function open(row: any) {
   code.value = row?.code || "";
-  Object.keys(detail).forEach((k) => delete (detail as any)[k]);
+  // Object.keys(detail).forEach((k) => delete (detail as any)[k]);
   visible.value = true;
   if (!code.value) return;
   api.indicator.detail(code.value).then((res: any) => {
     const data = res?.data || res?.Info || res || {};
     Object.assign(detail, data);
+    detail.typeName = row.tagInfo?.[0]?.name || "-";
   });
 }
 

+ 4 - 4
src/views/system/datahub/indicator/index.vue

@@ -33,21 +33,21 @@
       </el-form>
 
       <el-table :data="tableData" style="width: 100%" row-key="code" v-loading="loading">
-        <el-table-column label="指标编号" prop="code" align="left" width="120">
+        <el-table-column label="指标编号" prop="code" align="left" min-width="200">
           <template #default="scope">
             <el-link type="primary" :underline="false">{{ scope.row.code }}</el-link>
           </template>
         </el-table-column>
-        <el-table-column label="指标名称" prop="name" min-width="180" show-overflow-tooltip />
+        <el-table-column label="指标名称" prop="name" min-width="200" show-overflow-tooltip />
         <el-table-column label="指标类型" prop="type" width="120" align="center">
           <template #default="scope">
-            <el-tag size="small">{{ scope.row.type || "-" }}</el-tag>
+            <el-tag size="small">{{ scope.row.tagInfo?.[0]?.name || "-" }}</el-tag>
           </template>
         </el-table-column>
         <el-table-column label="单位" prop="unit" width="100" align="center" />
         <el-table-column label="维度数" align="center" width="100">
           <template #default="scope">
-            <el-tag size="small" type="info">{{ (scope.row.dimensions && scope.row.dimensions.length) || scope.row.dimensionCount || 0 }}</el-tag>
+            <el-tag size="small" type="info">{{ (scope.row.dimensions?.length) || 0 }}</el-tag>
           </template>
         </el-table-column>
         <el-table-column label="状态" prop="status" width="100" align="center">