From 5fb123a96da4132d01b0d69c4a8a783d622c7760 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期三, 23 四月 2025 16:09:52 +0800 Subject: [PATCH] change --- src/components/monifangzhen/schemeInfo.vue | 221 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 189 insertions(+), 32 deletions(-) diff --git a/src/components/monifangzhen/schemeInfo.vue b/src/components/monifangzhen/schemeInfo.vue index 6523022..9db0533 100644 --- a/src/components/monifangzhen/schemeInfo.vue +++ b/src/components/monifangzhen/schemeInfo.vue @@ -5,35 +5,11 @@ <!-- <el-button class="clickable-text" @click="handleBack">缁撴潫妯℃嫙</el-button> --> </div> <div class="details"> - <div v-if="selectedScheme"> + <div v-if="formattedData.length > 0"> <div class="input-group"> - <div class="input-item"> - <label>鏂规鍚嶇О:</label> - <span>{{ selectedScheme.name }}</span> - </div> - <div class="input-item"> - <label>鍒涘缓鏃堕棿:</label> - <span>{{ formatTime(selectedScheme.createTime) }}</span> - </div> - <div class="input-item"> - <label>鏂规鐘舵��:</label> - <span>{{ statusText[selectedScheme.taskStatus] || "鏈煡" }}</span> - </div> - <div class="input-item"> - <label>寮�濮嬫椂闂�:</label> - <span>{{ selectedScheme.startTime }}</span> - </div> - <div class="input-item"> - <label>缁撴潫鏃堕棿:</label> - <span>{{ selectedScheme.endTime }}</span> - </div> - <div class="input-item"> - <label>鏂囦欢鏁伴噺:</label> - <span>{{ selectedScheme.fileCount }}</span> - </div> - <div class="input-item"> - <label>杈撳嚭鍛ㄦ湡:</label> - <span>{{ selectedScheme.outputPeriod }} 绉�</span> + <div v-for="(item, index) in formattedData" :key="index" class="input-item"> + <label>{{ item.name }}</label> + <span>{{ item.value }}</span> </div> </div> </div> @@ -51,7 +27,7 @@ </template> <script setup> -import { defineProps, defineEmits, inject } from "vue"; +import { defineProps, defineEmits, inject ,ref,watch} from "vue"; import dayjs from "dayjs"; import { ElMessage } from "element-plus"; @@ -76,10 +52,191 @@ default: null, }, }); +// 鏍煎紡鍖栧悗鐨勬暟鎹� +const formattedData = ref([]); -// 鏍煎紡鍖栨椂闂� -function formatTime(time) { - return dayjs(time).format("YYYY-MM-DD HH:mm:ss"); +// 鐩戝惉 selectedScheme 鐨勫彉鍖� +watch( + () => props.selectedScheme, + (newScheme) => { + console.log(newScheme, "寮圭獥鐨勬暟鎹�"); + + // 妫�鏌ユ暟鎹湁鏁堟�� + if (!newScheme || typeof newScheme !== "object") { + console.warn("Invalid selectedScheme received:", newScheme); + formattedData.value = []; + return; + } + + // 灏嗘墍鏈夊瓧娈佃浆鎹负鍒楄〃褰㈠紡 + const data = []; + + // 鎻愬墠瑙f瀽 areaType锛岀‘淇濆叾瀛樺湪鎬� + const areaType = newScheme.areaType !== undefined ? newScheme.areaType : null; + + for (const [key, value] of Object.entries(newScheme)) { + // 璺宠繃涓嶉渶瑕佺殑瀛楁 + if (["geom", "id", "serviceName", "updateTime", "updateUser", "createUser", "bak"].includes(key)) continue; + + // 鐗规畩澶勭悊 createTime 瀛楁 + if (key === "createTime" && typeof value === "number") { + data.push({ + name: "鍒涘缓鏃堕棿锛�", + value: formatDate(value), + }); + continue; + } + + // 澶勭悊 areaType 瀛楁 + if (key === "areaType") { + const areaTypeMap = { + 0: "鑷畾涔夊尯鍩熶豢鐪�", + 1: "琛屾斂鍖哄垝浠跨湡", + 2: "閲嶇偣鍖哄煙浠跨湡", + 3: "閲嶇偣娌熶豢鐪�", + }; + data.push({ + name: "鍖哄煙绫诲埆锛�", + value: areaTypeMap[value] || "鏈煡", + }); + continue; + } + + // 澶勭悊 status 瀛楁 + if (key === "status") { + const statusMap = { + 0: "鍒涘缓浠跨湡", + 1: "棰勫鐞�", + 2: "鍒嗘瀽涓�", + 10: "瀹屾垚", + 20: "鍑洪敊", + }; + data.push({ + name: "浠跨湡鐘舵�侊細", + value: statusMap[value] || "鏈煡", + }); + continue; + } + + // 澶勭悊 type 瀛楁锛堜粎鍦� areaType 涓嶄负 1 鎴� 2 鏃舵樉绀猴級 + if (key === "type") { + if (![1, 2].includes(areaType)) { + const typeMap = { + 1: "棰勬祴妯℃嫙", + 2: "瀹炴椂妯℃嫙", + 3: "鍘嗗彶妯℃嫙", + }; + data.push({ + name: "妯℃嫙绫诲埆锛�", + value: typeMap[value] || "鏈煡", + }); + } + continue; + } + + // 澶勭悊 result 瀛楁 + if (key === "result") { + data.push({ + name: "浠跨湡缁撴灉锛�", + value: value || "鏃�", + }); + continue; + } + + // 澶勭悊 name 瀛楁 + if (key === "name") { + data.push({ + name: "浠跨湡鏂规锛�", + value: value || "鏃�", + }); + continue; + } + + // 澶勭悊 data 瀛楁 + if (key === "data" && typeof value === "string") { + try { + const parsedData = JSON.parse(value); + + // 澶勭悊 data.total 瀛楁 + if (parsedData.total !== undefined) { + data.push({ + name: "闄嶉洦鎬婚噺锛坢m锛夛細", + value: parsedData.total || "鏃�", + }); + } + + // 澶勭悊 data.duration 瀛楁 + if (parsedData.duration !== undefined) { + data.push({ + name: "闄嶉洦鏃堕暱锛堝垎閽燂級锛�", + value: parsedData.duration || "鏃�", + }); + } + + // 澶勭悊 data.intensity 瀛楁 + if (parsedData.intensity !== undefined) { + data.push({ + name: "闄嶉洦寮哄害锛坢m/灏忔椂锛夛細", + value: parsedData.intensity || "鏃�", + }); + } + + // 澶勭悊 data.prediction 瀛楁 + if (parsedData.prediction !== undefined) { + data.push({ + name: "闄嶉洦鍦烘锛�", + value: parsedData.prediction || "鏃�", + }); + } + + // 澶勭悊 data.model 瀛楁 + if (parsedData.model !== undefined) { + data.push({ + name: "闄嶉洦妯″紡锛�", + value: parsedData.model || "鏃�", + }); + } + + // 澶勭悊 data.history 瀛楁 + if (parsedData.history !== undefined) { + data.push({ + name: "鍘嗗彶闄嶉洦锛�", + value: parsedData.history || "鏃�", + }); + } + + // 澶勭悊 data.gauges 瀛楁 + if (parsedData.gauges !== undefined) { + data.push({ + name: "闆ㄩ噺璁″垪琛細", + value: Array.isArray(parsedData.gauges) ? parsedData.gauges.join(", ") : "鏃�", + }); + } + } catch (e) { + data.push({ + name: "鏁版嵁锛�", + value: value || "鏃�", + }); + } + continue; + } + + // 鍏朵粬瀛楁鐩存帴灞曠ず + data.push({ + name: `${key}锛歚, + value: value || "鏃�", + }); + } + + // 鏇存柊 formattedData + formattedData.value = data; + }, + { immediate: true } // 绔嬪嵆鎵ц涓�娆� +); + +// 鏍煎紡鍖栨椂闂存埑涓烘棩鏈� +function formatDate(timestamp) { + return dayjs(timestamp).format("YYYY-MM-DD HH:mm:ss"); } // 瀹氫箟浠诲姟鐘舵�佺殑鏂囨湰鏄犲皠 -- Gitblit v1.9.3