From 8331bf651646bbbb3d9afc4b95ac2f256e23cd00 Mon Sep 17 00:00:00 2001 From: chenyong <chenyong@hnkhzn.com> Date: 星期四, 19 十二月 2024 15:32:24 +0800 Subject: [PATCH] 设备监控页面更新 --- Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Volume.vue | 59 ++++++ Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/baozhuang.vue | 42 +++++ Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/hightemperature.vue | 64 +++++++ Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Twoletters.vue | 21 -- Code Management/WCS/WIDESEAWCS_Client/src/components/DeviceLineVo.vue | 67 ++++++++ Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue | 22 -- Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue | 5 Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/indexLibrary.vue | 7 Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/roomtemperature.vue | 64 +++++++ Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue | 108 ++++++------- 10 files changed, 339 insertions(+), 120 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/components/DeviceLineVo.vue b/Code Management/WCS/WIDESEAWCS_Client/src/components/DeviceLineVo.vue new file mode 100644 index 0000000..6419f9c --- /dev/null +++ b/Code Management/WCS/WIDESEAWCS_Client/src/components/DeviceLineVo.vue @@ -0,0 +1,67 @@ +<template> + <div class="Linebox"> + <div class="card"> + <div class="card-header"> + <div id="lines2" > + <div class="card-body">{{device.deviceName}}<br/> + -{{ device.data.childDeviceCode }}- + </div> + </div> + </div> + <div class="card-body"> + <ul class="list-group lis"> + <li class="list-group-item list-group-item-dark">璇诲彇淇″彿</li> + <li class="list-group-item list-group-item-secondary">浠诲姟鍙凤細{{ device.data.commandAfter.conveyorLineTaskNum }}</li> + <li class="list-group-item list-group-item-secondary">鎵樼洏鍙凤細{{ device.data.commandAfter.conveyorLineBarcode }}</li> + <li class="list-group-item list-group-item-secondary">缁堢偣鍦板潃锛歿{ device.data.commandAfter.conveyorLineTargetAddress }}</li> + <li class="list-group-item list-group-item-secondary">鏄惁鏈夌洏锛歿{ device.data.commandAfter.hasPallet }}</li> + <li class="list-group-item list-group-item-secondary">鎶ヨ浠g爜锛歿{ device.data.commandAfter.conveyorLineAlarm }}</li> + <li class="list-group-item list-group-item-secondary">璇锋眰鍙嶉锛歿{ device.data.commandAfter.responState }}</li> + <li :class="device.data.commandAfter.interactiveSignal !=0 ? 'list-group-item list-group-item-success' :'list-group-item list-group-item-danger'">浜や簰淇″彿</li> + </ul> + </div> + </div> +</div> +</template> +<script setup> +import { defineProps } from "vue"; + +// 瀹氫箟缁勪欢灞炴�� +const props = defineProps({ + device: { + type: Object, + required: true + } +}); + +// 鑾峰彇淇″彿绫诲悕 +const getSignalClass = (signal) => { + // console.log("馃殌 ~ getSignalClass ~ signal:", signal) + return signal !== true ? 'list-group-item list-group-item-danger' : 'list-group-item list-group-item-success'; +}; +</script> + +<style scoped> +.Stackerbox { + width: 220px; + float: left; +} +.Linebox { + width: 300px; + float: left; +} +.box1 { + float: left; +} +.card-body { + text-align: center; + border-radius: 6%; +} +.Stacker { + background-color: burlywood; +} +.lis { + float: left; + width: 266px; +} +</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue index 47c9bd9..98eb092 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue @@ -1,78 +1,74 @@ <template> - <div> - <div> - <div class="Stackerbox"> - <div class="card"> - <div class="card-header"> - <div> - <div class="card-body Stacker"> - {{ StackerOne.deviceName }} - </div> - </div> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item list-group-item-secondary"> - 浠诲姟鍙凤細{{ StackerOne.data.currentTaskNum || '鏆傛棤浠诲姟鍙�' }} - </li> - <li :class="getStatusClass(StackerOne.data.stackerCraneAutoStatusDes)"> - 宸ヤ綔妯″紡锛歿{ StackerOne.data.stackerCraneAutoStatusDes }} - </li> - <li :class="getStatusClass(StackerOne.data.stackerCraneStatusDes)"> - 璁惧鐘舵�侊細{{ StackerOne.data.stackerCraneStatusDes }} - </li> - <li :class="getStatusClass(StackerOne.data.stackerCraneWorkStatusDes)"> - 宸ヤ綔鐘舵�侊細{{ StackerOne.data.stackerCraneWorkStatusDes }} - </li> - </ul> - </div> - </div> - </div> - </div> - <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> - </div> + <el-row> + <el-col :span="3"> + + <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> + </el-col> + <el-col :span="21"> + <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> + </el-col> + </el-row> </template> <script setup> import { onMounted, reactive, toRefs } from "vue"; import eventBus from "@/uitils/eventBus"; import DeviceLine from "@/components/DeviceLine.vue"; +import DeviceStacker from "@/components/DeviceStacker.vue"; // 鍫嗗灈鏈� -const StackerOne = reactive({ - deviceName: "", - data: { - } -}); +const Stackers = reactive([]); // 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級 -const devices = reactive([ - { deviceName: "闄堝寲鍑哄簱杈撻�佺嚎", data: { command: {}, commandWrite: {}, writeInteractiveSignal: [] } }, - { deviceName: "闄堝寲鍏ュ簱杈撻�佺嚎", data: { command: {}, commandWrite: {}, writeInteractiveSignal: [] } }, - // { deviceName: "鍫嗗灈鏈�1", data: { command: {}, commandWrite: {}, writeInteractiveSignal: [] } }, - // Add all devices similarly... -]); +const devices = reactive([]); -// 鑾峰彇鐘舵�佺被鍚嶏紙浼樺寲鐘舵�佸垽鏂級 -const getStatusClass = (status) => { - if (status === '姝e父' || status === '鑷姩' || status === '寰呮満') { - return 'list-group-item list-group-item-success'; - } - if (status === '鏁呴殰' || status === '鍋滄満') { - return 'list-group-item list-group-item-danger'; - } - return 'list-group-item list-group-item-warning'; // 榛樿璀﹀憡鐘舵�� +const intToBitArrayFromBinaryString = (num, numBits) => { + let binaryString = num.toString(2).padStart(numBits, '0'); + return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); }; // 鐩戝惉璁惧鏁版嵁鍙樺寲 onMounted(() => { eventBus.on('locationData', eventData => { - const device = devices.find(d => d.deviceName === eventData.deviceName); - if (device) { - // 浣跨敤鎵╁睍杩愮畻绗︽洿鏂板璞″睘鎬э紝淇濇寔鍝嶅簲鎬� - device.data = { ...device.data, ...eventData.data }; + console.log(eventData) + if (eventData.deviceName === "闄堝寲鍏ュ簱杈撻�佺嚎"||eventData.deviceName === "闄堝寲鍏ュ簱杈撻�佺嚎") { + + if (devices.length <= 0) { + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); + } + else { + const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) + if (device) { + const number = eventData.data.commandWrite.writeInteractiveSignal; + const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) + eventData.data.writeInteractiveSignal = writeInteractiveSignal; + device.data = eventData.data + } + else { + const number = eventData.data.commandWrite.writeInteractiveSignal; + const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) + eventData.data.writeInteractiveSignal = writeInteractiveSignal; + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); + } + } } }); + eventBus.on('stackerData', eventData => { + if (eventData.deviceName == "闄堝寲1鍙峰爢鍨涙満"||eventData.deviceName == "闄堝寲2鍙峰爢鍨涙満") { + if (Stackers.length == 0) { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + else { + const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); + if (Stacker) { + Stacker.data = eventData.data + } + else { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + } + } + }) }); </script> <style scoped> diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue index 91440c6..3d46097 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue @@ -33,7 +33,7 @@ const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) eventData.data.writeInteractiveSignal = writeInteractiveSignal; device.data = eventData.data - console.log("馃殌 ~ onMounted ~ device:", device.data) + } else { const number = eventData.data.commandWrite.writeInteractiveSignal; @@ -47,23 +47,3 @@ }); </script> -<style scoped> -.Linebox{ - width: 573px; - float: left; -} -.box1{ - float: left; -} -.card-body{ - text-align: center; - border-radius: 6% ; -} -.Stacker{ - background-color: burlywood; -} -.lis{ - float: left; - width: 269px; -} -</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue index f6b7a83..61d0435 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue @@ -29,6 +29,7 @@ // 鐩戝惉璁惧鏁版嵁鍙樺寲 onMounted(() => { eventBus.on('locationData', eventData => { + console.log(eventData) if (eventData.deviceName === "闈欑疆杈撻�佺嚎") { if (devices.length <= 0) { @@ -66,10 +67,6 @@ } } } - // if (eventData.deviceName == "闄堝寲1鍙峰爢鍨涙満") { - // StackerOne.deviceName = eventData.deviceName; - // StackerOne.data = eventData.data - // } }) }); </script> diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Twoletters.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Twoletters.vue index c24eac2..4a17acb 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Twoletters.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Twoletters.vue @@ -46,24 +46,3 @@ }); }); </script> - -<style scoped> -.Linebox{ - width: 573px; - float: left; -} -.box1{ - float: left; -} -.card-body{ - text-align: center; - border-radius: 6% ; -} -.Stacker{ - background-color: burlywood; -} -.lis{ - float: left; - width: 269px; -} -</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Volume.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Volume.vue index 2effa57..cf2b85a 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Volume.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/Volume.vue @@ -1,9 +1,58 @@ <template> - <div> - 鍒嗗搴� - </div> + <el-row> + <el-col :span="3"> + <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> + </el-col> + <el-col :span="21"> + <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> + </el-col> + </el-row> </template> <script setup> +import { onMounted, ref, reactive, toRaw } from "vue"; +import eventBus from "@/uitils/eventBus"; +import DeviceLineVo from "@/components/DeviceLineVo.vue"; +import DeviceStacker from "@/components/DeviceStacker.vue"; +// 鍫嗗灈鏈� +const Stackers = reactive([]); +var i=0; +// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級 +const devices = reactive([]); +const num = reactive([]) +onMounted(() => { + eventBus.on('stackerData', eventData => { + if (eventData.deviceName === "鍒嗗3绾垮叆搴撹緭閫佺嚎"||eventData.deviceName === "鍒嗗鍑哄簱杈撻�佺嚎") { + if (devices.length <= 0) { + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + else { + const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) + if(device){ + device.data = eventData.data + }else{ + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + } + } + }) + eventBus.on('stackerData', eventData => { + if (eventData.deviceName == "鍒嗗3鍙峰爢鍨涙満"||eventData.deviceName == "鍒嗗2鍙峰爢鍨涙満") { + if (Stackers.length == 0) { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + else { + const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); + if (Stacker) { + Stacker.data = eventData.data + } + else { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + } + } + }) +}) +</script> +<style scoped> - -</script> \ No newline at end of file +</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/baozhuang.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/baozhuang.vue new file mode 100644 index 0000000..dc57889 --- /dev/null +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/baozhuang.vue @@ -0,0 +1,42 @@ +<template> + <el-row> + <el-col :span="21"> + <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> + </el-col> + </el-row> +</template> +<script setup> +import { onMounted, ref, reactive, toRaw } from "vue"; +import eventBus from "@/uitils/eventBus"; +import DeviceLineVo from "@/components/DeviceLineVo.vue"; +import DeviceStacker from "@/components/DeviceStacker.vue"; +// 鍫嗗灈鏈� +const Stackers = reactive([]); +var i=0; +// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級 +const devices = reactive([]); +const num = reactive([]) +onMounted(() => { + eventBus.on('stackerData', eventData => { + if (eventData.deviceName === "鍖呰鍑哄簱杈撻�佺嚎") { + if (devices.length <= 0) { + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + else { + const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) + if(device){ + device.data = eventData.data + }else{ + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + } + + } + }) + +}) + +</script> +<style scoped> + +</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/hightemperature.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/hightemperature.vue index 1f6369c..cf09620 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/hightemperature.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/hightemperature.vue @@ -1,9 +1,63 @@ <template> - <div> - 楂樻俯搴� - </div> + <el-row> + <el-col :span="3"> + <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> + </el-col> + <el-col :span="21"> + <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> + </el-col> + </el-row> </template> <script setup> +import { onMounted, ref, reactive, toRaw } from "vue"; +import eventBus from "@/uitils/eventBus"; +import DeviceLineVo from "@/components/DeviceLineVo.vue"; +import DeviceStacker from "@/components/DeviceStacker.vue"; +// 鍫嗗灈鏈� +const Stackers = reactive([]); +var i=0; +// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級 +const devices = reactive([]); +const num = reactive([]) +onMounted(() => { + eventBus.on('stackerData', eventData => { + // console.log(eventData) + + console.log(eventData) + + if (eventData.deviceName === "鑰佸寲鍏ュ簱杈撻�佺嚎") { + if (devices.length <= 0) { + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + else { + const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) + if(device){ + device.data = eventData.data + }else{ + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + } + + } + }) + eventBus.on('stackerData', eventData => { + if (eventData.deviceName == "鑰佸寲1鍙峰爢鍨涙満") { + if (Stackers.length == 0) { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + else { + const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); + if (Stacker) { + Stacker.data = eventData.data + } + else { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + } + } + }) +}) +</script> +<style scoped> - -</script> \ No newline at end of file +</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/roomtemperature.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/roomtemperature.vue index 520ee72..07cab63 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/roomtemperature.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/Craftlibrary/roomtemperature.vue @@ -1,9 +1,63 @@ <template> - <div> - 甯告俯搴� - </div> + <el-row> + <el-col :span="3"> + <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> + </el-col> + <el-col :span="21"> + <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> + </el-col> + </el-row> </template> <script setup> +import { onMounted, ref, reactive, toRaw } from "vue"; +import eventBus from "@/uitils/eventBus"; +import DeviceLineVo from "@/components/DeviceLineVo.vue"; +import DeviceStacker from "@/components/DeviceStacker.vue"; +// 鍫嗗灈鏈� +const Stackers = reactive([]); +var i=0; +// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級 +const devices = reactive([]); +const num = reactive([]) +onMounted(() => { + eventBus.on('stackerData', eventData => { + // console.log(eventData) + + console.log(eventData) + + if (eventData.deviceName === "甯告俯鍏ュ簱杈撻�佺嚎") { + if (devices.length <= 0) { + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + else { + const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) + if(device){ + device.data = eventData.data + }else{ + devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); + } + } + + } + }) + eventBus.on('stackerData', eventData => { + if (eventData.deviceName == "甯告俯1鍙峰爢鍨涙満"||eventData.deviceName == "甯告俯2鍙峰爢鍨涙満"||eventData.deviceName == "甯告俯3鍙峰爢鍨涙満"||eventData.deviceName == "甯告俯4鍙峰爢鍨涙満") { + if (Stackers.length == 0) { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + else { + const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); + if (Stacker) { + Stacker.data = eventData.data + } + else { + Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); + } + } + } + }) +}) +</script> +<style scoped> - -</script> \ No newline at end of file +</style> \ No newline at end of file diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/indexLibrary.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/indexLibrary.vue index 725783b..1daa868 100644 --- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/indexLibrary.vue +++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Devicestatus/indexLibrary.vue @@ -5,14 +5,15 @@ <RouterLink class="navlink" to="/AgingLibrary" >闄堝寲搴�</RouterLink> <RouterLink class="navlink" to="/FormationLibrary" >鍖栨垚搴�</RouterLink> <RouterLink class="navlink" to="/StaticLibrary" >闈欑疆搴�</RouterLink> - <RouterLink class="navlink" to="/Twoletters" >浜屽皝搴�</RouterLink> + <RouterLink class="navlink" to="/Twoletters" >浜屽皝</RouterLink> <RouterLink class="navlink" to="/Volume" >鍒嗗搴�</RouterLink> - <RouterLink class="navlink" to="/highTemperature" >楂樻俯搴�</RouterLink> + <RouterLink class="navlink" to="/highTemperature" >鑰佸寲搴�</RouterLink> <RouterLink class="navlink" to="/roomTemperature" >甯告俯搴�</RouterLink> + <RouterLink class="navlink" to="/Baozhuang" >鍖呰</RouterLink> </div> <!--娉ㄦ剰浜嬮」--> <div class="area"> - <RouterView></RouterView> + <RouterView :key="$route.fullPath" ></RouterView> </div> </template> <script setup> -- Gitblit v1.9.3