提交 d73184ca authored 作者: 周文艺's avatar 周文艺

2026/1/8

上级 271bec23
...@@ -509,7 +509,26 @@ function initChart() { ...@@ -509,7 +509,26 @@ function initChart() {
shadowColor: 'rgba(0, 0, 0, 0.5)' shadowColor: 'rgba(0, 0, 0, 0.5)'
} }
} }
}] },
],
tooltip: {
trigger: 'axis',
// 确保tooltip显示在最上层
extraCssText: 'z-index: 999999 !important;',
backgroundColor: 'rgba(50,50,50,0.8)',
borderColor: '#333',
borderWidth: 1,
padding: 10,
textStyle: {
color: '#fff',
fontSize: 12
},
// 固定tooltip位置在顶部
position: function (pos, params, dom, rect, size) {
return ['5%', pos[1]];
}
}
}; };
myChart.setOption(option); myChart.setOption(option);
......
...@@ -168,7 +168,9 @@ watch(useAppStoreInstance, () => { ...@@ -168,7 +168,9 @@ watch(useAppStoreInstance, () => {
document.getElementById('footer-content-up').style.bottom = '0px' document.getElementById('footer-content-up').style.bottom = '0px'
document.getElementById('all_footer').style.width = `calc(100% - ${asideWidth.value} - ${asideWidth.value})` document.getElementById('all_footer').style.width = `calc(100% - ${asideWidth.value} - ${asideWidth.value})`
// document.getElementById('all_footer').style.bottom = '10px' // document.getElementById('all_footer').style.bottom = '10px'
if (document.getElementById('control_panel1')) {
document.getElementById('control_panel1').style.right = '335px' document.getElementById('control_panel1').style.right = '335px'
}
// document.getElementById('search_panel').style.left = '395px' // document.getElementById('search_panel').style.left = '395px'
document.getElementById('two_footer').style.bottom = '100px' document.getElementById('two_footer').style.bottom = '100px'
......
...@@ -375,10 +375,7 @@ onUnmounted(() => { ...@@ -375,10 +375,7 @@ onUnmounted(() => {
// 清理定时器 // 清理定时器
clearInterval(updateTimer); clearInterval(updateTimer);
}); });
onDeactivated(() => {
// 组件被停用时,清除定时器
clearInterval(updateTimer);
});
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!-- 顶部标题栏 --> <!-- 顶部标题栏 -->
<div class="header"> <div class="header">
<div class="header_title"> <div class="header_title">
<h2>上海站</h2> <h2>{{props.satlTitle}}</h2>
</div> </div>
<div class="close-btn" @click="closePanel">×</div> <div class="close-btn" @click="closePanel">×</div>
</div> </div>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<!-- 设备列表内容区 --> <!-- 设备列表内容区 -->
<div class="content" v-if="activeTab === 'devices'"> <div class="content" v-if="activeTab === 'devices'">
<!-- 设备列表头部 --> <!-- 设备列表头部 -->
<div class="table-header"> <div class="table-header" v-if="devices.length > 0">
<div class="col device-name">设备名称</div> <div class="col device-name">设备名称</div>
<div class="col status">状态</div> <div class="col status">状态</div>
</div> </div>
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
<!-- 设备列表 --> <!-- 设备列表 -->
<div class="device-list"> <div class="device-list">
<!-- 普通设备项 --> <!-- 普通设备项 -->
<div v-if="devices.length > 0">
<div <div
class="device-item" class="device-item"
v-for="(device, index) in devices" v-for="(device, index) in devices"
...@@ -66,11 +67,19 @@ ...@@ -66,11 +67,19 @@
</div> </div>
</div> </div>
</div> </div>
<div v-else>
<div
class="no-data"
>
<p>暂无数据</p></div>
</div>
</div>
</div> </div>
<div class="content content_info" v-else> <div class="content content_info" v-else>
<!-- 设备列表 --> <!-- 设备列表 -->
<div class="device-list1"> <div class="device-list1">
<!-- 普通设备项 --> <!-- 普通设备项 -->
<div v-if="deviceStatusMap.length > 0">
<div <div
class="device-item" class="device-item"
v-for="(items, index) in deviceStatusMap" v-for="(items, index) in deviceStatusMap"
...@@ -78,15 +87,19 @@ ...@@ -78,15 +87,19 @@
> >
<!-- 主设备行 --> <!-- 主设备行 -->
<div class="device-row" > <div class="device-row"
v-for="(item, index) in items"
:key="index"
>
<div class="col device-name"> <div class="col device-name">
{{ items.label }}<span :class="items.status === 'error' ? 'has-error1' : 'notHas-error1'">(工作)</span> {{ item.label }}
<!-- <span :class="items.status === 'error' ? 'has-error1' : 'notHas-error1'">(工作)</span> -->
</div> </div>
<div class="col status"> <div class="col status">
<span class="status-text"> <span class="status-text">
{{ items.value }} {{ item.value }}
</span> </span>
</div> </div>
</div> </div>
...@@ -94,6 +107,17 @@ ...@@ -94,6 +107,17 @@
</div> </div>
</div> </div>
<div
v-else
>
<div
class="no-data"
>
<p>暂无数据</p></div>
</div>
</div>
<!-- 设备列表头部 --> <!-- 设备列表头部 -->
<!-- <div class="table-header"> <!-- <div class="table-header">
<div class="col device-name">设备名称12</div> <div class="col device-name">设备名称12</div>
...@@ -147,9 +171,9 @@ ...@@ -147,9 +171,9 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, watch } from 'vue'; import { onActivated, onMounted, ref, watch } from 'vue';
const props = defineProps(['errorDeviceList',"baseDeviceList"]) const props = defineProps(['satlTitle','errorDeviceList',"baseDeviceList"])
const emits = defineEmits(['errorDialoghandleClose']) const emits = defineEmits(['errorDialoghandleClose'])
// 状态管理 // 状态管理
...@@ -203,13 +227,39 @@ watch(() => props.errorDeviceList, (newVal) => { ...@@ -203,13 +227,39 @@ watch(() => props.errorDeviceList, (newVal) => {
}, { immediate: true }) }, { immediate: true })
watch(() => props.baseDeviceList, (newVal) => { watch(() => props.baseDeviceList, (newVal) => {
// console.log("11111111111",newVal.antennaEirp,typeof newVal) deviceStatusMap.value = []
deviceStatusMap.value = [
{label: '天线发射频率',value: newVal.antennaTransmitPower ,status: 1 ? 'normal' : 'error',}, newVal.forEach(item => {
{label: '天线发射EIRP',value: newVal.antennaEip ,status: 0? 'normal' : 'error',}, deviceStatusMap.value.push([{
{label: '天线方位角',value: newVal.antennaAzimuth ,status: 1 ? 'normal' : 'error',}, label: `天线${item.number }发射频率 `,
{label: '天线俯仰角',value: newVal.antennaElevation ,status: 1 ? 'normal' : 'error',} value: item.power || '0',
] status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }发射EIRP `,
value: item.eip || '-',
status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }方位角 `,
value: item.azimuth || '-',
status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }俯仰角 `,
value: item.elevation || '-',
status: item.power !==0 ? 'normal' : 'error',
},
])
})
console.log("11111EIRP111111baseDeviceList",newVal,deviceStatusMap.value)
// deviceStatusMap.value = [
// {label: '天线发射频率',value: newVal.antennaTransmitPower ,status: 1 ? 'normal' : 'error',},
// {label: '天线发射EIRP',value: newVal.antennaEip ,status: 0? 'normal' : 'error',},
// {label: '天线方位角',value: newVal.antennaAzimuth ,status: 1 ? 'normal' : 'error',},
// {label: '天线俯仰角',value: newVal.antennaElevation ,status: 1 ? 'normal' : 'error',}
// ]
}, { immediate: true }) }, { immediate: true })
...@@ -224,6 +274,11 @@ const toggleExpand = (device) => { ...@@ -224,6 +274,11 @@ const toggleExpand = (device) => {
const closePanel = () => { const closePanel = () => {
emits('errorDialoghandleClose') emits('errorDialoghandleClose')
}; };
onActivated(() => {
activeTab.value = 'devices';
console.log("展示了");
})
</script> </script>
<style scoped> <style scoped>
...@@ -571,7 +626,12 @@ const closePanel = () => { ...@@ -571,7 +626,12 @@ const closePanel = () => {
.content::-webkit-scrollbar-thumb:hover { .content::-webkit-scrollbar-thumb:hover {
background: #555570; background: #555570;
} */ } */
.no-data {
text-align: center;
padding: 20px;
font-size: 14px;
color: #888888;
}
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; width: 6px;
} }
......
差异被折叠。
...@@ -15,6 +15,7 @@ export default { ...@@ -15,6 +15,7 @@ export default {
<script setup> <script setup>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { ElMessage } from 'element-plus';
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue'; import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue';
const props = defineProps({ const props = defineProps({
...@@ -34,8 +35,15 @@ const props = defineProps({ ...@@ -34,8 +35,15 @@ const props = defineProps({
watch(() => props.propsDate, (newVal, oldVal) => { watch(() => props.propsDate, (newVal, oldVal) => {
if (newVal?.isFirstSearch) { if (newVal?.isFirstSearch) {
if (newVal.dataX.length === 0 || newVal.dataY.length === 0) {
ElMessage({
message: `${props.propsDate.chartName || 'CDF Curve'}该时间段数据为空,请检查数据`,
type: 'warning'
})
return;
}
changeCharte(); changeCharte();
console.log("完全不一样的数据",newVal); // console.log("完全不一样的数据",newVal);
} }
}, { immediate: true, deep: true }) }, { immediate: true, deep: true })
......
...@@ -166,6 +166,7 @@ import useAppStore from '@/store/module/app.js'; ...@@ -166,6 +166,7 @@ import useAppStore from '@/store/module/app.js';
import wss from '@/utils/subSystemRequestSocket.js' import wss from '@/utils/subSystemRequestSocket.js'
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { getSubSystemOpitionListApi,getSubSystemCurveListApi } from '../../api/Zodiac' import { getSubSystemOpitionListApi,getSubSystemCurveListApi } from '../../api/Zodiac'
import { tr } from 'element-plus/es/locales.mjs';
const router = useRouter(); const router = useRouter();
...@@ -249,7 +250,7 @@ const backHomeClick = () => { ...@@ -249,7 +250,7 @@ const backHomeClick = () => {
router.push('/'); router.push('/');
// console.log("1111111111111111111111111", useAppStoreInstance.isSourceLegendShow); // console.log("1111111111111111111111111", useAppStoreInstance.isSourceLegendShow);
// useAppStoreInstance.setGlobalisFromTosub(true);
useAppStoreInstance.setislegendShow(useAppStoreInstance.isSourceLegendShow ? true : false); useAppStoreInstance.setislegendShow(useAppStoreInstance.isSourceLegendShow ? true : false);
// console.log("11111111111111111111111112", useAppStoreInstance.islegendShow); // console.log("11111111111111111111111112", useAppStoreInstance.islegendShow);
useAppStoreInstance.setiscontrolPanelShow(true); useAppStoreInstance.setiscontrolPanelShow(true);
...@@ -623,7 +624,7 @@ const formatDateTime = (date) => { ...@@ -623,7 +624,7 @@ const formatDateTime = (date) => {
}; };
// 日期范围选择 // 日期范围选择
const historyTimeDateRange = ref([ formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[0]), formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[1])]); const historyTimeDateRange = ref(null);
// 卫星粒度选择 // 卫星粒度选择
const satelliteGranularity = ref(); const satelliteGranularity = ref();
...@@ -907,7 +908,11 @@ onBeforeMount(() => { ...@@ -907,7 +908,11 @@ onBeforeMount(() => {
}) })
onMounted(() => { onMounted(() => {
currentTelemetryData.value = telemetryData[0]; if(useAppStoreInstance.footerTimeHasedSelectTimeToSub) {
historyTimeDateRange.value = [ formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[0]), formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[1])]
}else {
historyTimeDateRange.value = [new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),new Date(Date.now()).toISOString()];
}
useAppStoreInstance.setiscontrolPanelShow(false); useAppStoreInstance.setiscontrolPanelShow(false);
useAppStoreInstance.subsystemSocket.onmessage = (event) => { useAppStoreInstance.subsystemSocket.onmessage = (event) => {
console.log('收到3 WebSocket 消息:', event); console.log('收到3 WebSocket 消息:', event);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: Z 1518051043@qq.com * @Author: Z 1518051043@qq.com
* @Date: 2025-09-12 13:51:43 * @Date: 2025-09-12 13:51:43
* @LastEditors: zwy 1518051043@qq.com * @LastEditors: zwy 1518051043@qq.com
* @LastEditTime: 2026-01-05 09:59:05 * @LastEditTime: 2026-01-08 09:15:58
* @FilePath: \yuanxinPro\src\store\module\app.js * @FilePath: \yuanxinPro\src\store\module\app.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -18,6 +18,8 @@ const useAppStore = defineStore( ...@@ -18,6 +18,8 @@ const useAppStore = defineStore(
globalTimeLineEndSelectTime: "2025-11-02 00:00:00", globalTimeLineEndSelectTime: "2025-11-02 00:00:00",
globalTimeLineStartTime: "2025-11-02 00:00:00", globalTimeLineStartTime: "2025-11-02 00:00:00",
globalTimeLineEndTime: "2025-11-02 00:00:00", globalTimeLineEndTime: "2025-11-02 00:00:00",
globalisFromTosub: false,
footerTimeHasedSelectTimeToSub: false,
subsystemSocket: null, subsystemSocket: null,
subsystemSocketContent: '', subsystemSocketContent: '',
...@@ -44,6 +46,12 @@ const useAppStore = defineStore( ...@@ -44,6 +46,12 @@ const useAppStore = defineStore(
}), }),
actions: { actions: {
setFooterTimeHasedSelectTimeToSub(status) {
this.footerTimeHasedSelectTimeToSub = status
},
setGlobalisFromTosub(status) {
this.globalisFromTosub = status
},
setGlobalTimeLineEndSelectTime(time) { setGlobalTimeLineEndSelectTime(time) {
this.globalTimeLineEndSelectTime = time; this.globalTimeLineEndSelectTime = time;
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论