Commit 40c8610d by liucan

pref:修改数据展示页面的数据详情布局

parent 4c265c8e
const getCurTime = () => {
const now = new Date();
const year = now.getFullYear();
const month = now.getMonth() + 1;
const date = now.getDate();
const weekdays = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
const weekday = weekdays[now.getDay()];
const hours = String(now.getHours()).padStart(2, "0");
const minutes = String(now.getMinutes()).padStart(2, "0");
const seconds = String(now.getSeconds()).padStart(2, "0");
return `${year}${month}${date}${weekday} ${hours}${minutes}${seconds}`;
};
export default getCurTime;
\ No newline at end of file
<template> <template>
<!-- <div class="text-left p-1 toolbarStyle">
<div class="formStyle">
<el-form inline>
<el-form-item>
<el-text class="mx-1">目标名称:</el-text>
</el-form-item>
<el-form-item>
<div>
<el-input placeholder="请输入" style="width: 190px" />
</div>
</el-form-item>
<el-form-item>
<el-text class="mx-1">获取时间:</el-text>
</el-form-item>
<el-form-item>
<el-date-picker v-model="timeValue" type="datetimerange" format="YYYY-MM-DD HH:mm:ss"
start-placeholder="开始时间" end-placeholder="结束时间" date-format="YYYY/MM/DD ddd"
time-format="A hh:mm:ss" style="width: 330px" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item>
<el-text class="mx-1">站点名称:</el-text>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" style="width: 180.5px" />
</el-form-item>
<el-form-item>
<el-space>
<el-button type="primary">查询</el-button>
</el-space>
</el-form-item>
</el-form>
</div>
</div> -->
<div class="flex justify-left" style="padding-left: 10px"> <div class="flex justify-left" style="padding-left: 10px">
<el-button :type="statusMode === false ? 'primary' : 'danger'" @click="handleRefresh" size="small">{{ <el-button :type="statusMode === false ? 'primary' : 'danger'" @click="handleRefresh" size="small">{{
statusMode === false ? "开始刷新" : "停止刷新" statusMode === false ? "开始刷新" : "停止刷新"
...@@ -61,193 +28,119 @@ ...@@ -61,193 +28,119 @@
<!-- <el-table-column property="targetDistance" label="目标距离" show-overflow-tooltip /> --> <!-- <el-table-column property="targetDistance" label="目标距离" show-overflow-tooltip /> -->
<el-table-column property="windSpeed" label="风速(km/hr)" show-overflow-tooltip> <el-table-column property="windSpeed" label="风速(km/hr)" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.windSpeed === "" ? "" : scope.row.windSpeed }} {{ scope.row.windSpeed === "" ? "-" : scope.row.windSpeed }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="targets[0].name" label="上行信号来源" show-overflow-tooltip /> <el-table-column property="targets[0].name" label="上行信号来源" show-overflow-tooltip />
<el-table-column property="signals[0].band" label="上行信号频段" show-overflow-tooltip> <el-table-column property="signals[0].band" label="上行信号频段" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.signals.length === 0 ? "" : scope.row.signals[0].band }} {{ scope.row.signals.length === 0 ? "-" : scope.row.signals[0].band }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="signals[0].power" label="上行发射功率" show-overflow-tooltip> <el-table-column property="signals[0].power" label="上行发射功率" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.signals.length === 0 ? "" : scope.row.signals[0].power }} {{ scope.row.signals.length === 0 ? "-" : scope.row.signals[0].power }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="targets[0].name" label="下行信号来源" show-overflow-tooltip /> <el-table-column property="targets[0].name" label="下行信号来源" show-overflow-tooltip />
<el-table-column property="signals[1].band" label="下行信号频段" show-overflow-tooltip> <el-table-column property="signals[1].band" label="下行信号频段" show-overflow-tooltip>
<template #default="scope"> {{ scope.row.signals.length < 2 ? "" : scope.row.signals[1].band }} </template> <template #default="scope"> {{ scope.row.signals.length < 2 ? "-" : scope.row.signals[1].band }} </template>
</el-table-column> </el-table-column>
<el-table-column property="signals[1].power" label="下行接收功率" show-overflow-tooltip> <el-table-column property="signals[1].power" label="下行接收功率" show-overflow-tooltip>
<template #default="scope"> {{ scope.row.signals.length < 2 ? "" : scope.row.signals[1].power }} </template> <template #default="scope"> {{ scope.row.signals.length < 2 ? "-" : scope.row.signals[1].power }} </template>
</el-table-column> </el-table-column>
<!-- <el-table-column property="dataTime" label="数据时间" show-overflow-tooltip /> -->
<el-table-column label="操作" width="60"> <el-table-column label="操作" width="60">
<template #default="scope"> <template #default="scope">
<el-button type="primary" plain link @click="handleDetails(scope.row)"> 详情 </el-button> <el-button type="primary" plain link @click="handleDetails(scope.row)"> 详情 </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div class="pagination w-full flex flex-row-reverse pr-4 m-t-4">
<Pagination :total="pageObj.total" v-model:page="pageObj.pageNo" v-model:limit="pageObj.pageSize"
@pagination="getData" />
</div> -->
</div> </div>
<div class="detailForm"> <div class="detailForm">
<el-dialog v-model="detailVisibleValue" center width="800px" align-center @close="handleClose" draggable> <el-dialog v-model="detailVisibleValue" center width="800px" align-center @close="handleClose" draggable>
<template #header> <template #header>
<div class="text-center font-size-8">详情</div> <div class="text-center font-size-6">详情-{{ antennaName }}</div>
</template> </template>
<el-form label-width="94px" size="small" class="px-4"> <el-row>
<div> <el-col :span="12">
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">航天器信息:</div>
<el-form-item label="天线名称:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="antennaName" /> <div class="info-item">
</el-form-item> <span class="item-title">目标名称:</span>
</el-col> <span class="item">{{ targetName }}</span>
<el-col :span="12"> </div>
<el-form-item label="风速(km/hr):" label-position="left"> <div class="info-item">
<el-input v-model="windSpeed" /> <span class="item-title">距离:</span>
</el-form-item> <span class="item">{{ targetDistance }}</span>
</el-col> </div>
<!-- <el-col :span="12"> <div class="info-item">
<el-form-item label="距离(km):" label-position="left"> <span class="item-title">往返光时:</span>
<el-input v-model="distance" /> <span class="item">{{ roundTripTime }}</span>
</el-form-item> </div>
</el-col> --> </el-card>
</el-row>
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">天线信息:</div>
<el-form-item label="目标名称:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="targetName" /> <div class="info-item">
</el-form-item> <span class="item-title">天线名称:</span>
</el-col> <span class="item">{{ antennaName }}</span>
<el-col :span="12"> </div>
<el-form-item label="天线状态:" label-position="left"> <div class="info-item">
<el-input v-model="antennaStatus" /> <span class="item-title">状态:</span>
</el-form-item> <span class="item">{{ antennaStatus }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">方位:</span>
<!-- <el-col :span="12"> <span class="item">{{ targetAzimuth }}</span>
<el-form-item label="往返光时:" label-position="left"> </div>
<el-input v-model="roundTripTime" /> <div class="info-item">
</el-form-item> <span class="item-title">仰俯:</span>
</el-col> <span class="item">{{ targetElevation }}</span>
<el-col :span="12"> </div>
<el-form-item label="站点名称:" label-position="left"> <div class="info-item">
<el-input v-model="stationName" /> <span class="item-title">风速(km/hr):</span>
</el-form-item> <span class="item">{{ windSpeed }}</span>
</el-col> --> </div>
</el-row> </el-card>
<el-row :gutter="20"> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="目标方位:" label-position="left"> <el-card>
<el-input v-model="targetAzimuth" /> <div class="title">上行信号信息:</div>
</el-form-item> <el-divider style="margin: 0"></el-divider>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">信号来源:</span>
<el-form-item label="目标俯仰:" label-position="left"> <span class="item">{{ upSignalSource }}</span>
<el-input v-model="targetElevation" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">信号频段:</span>
</el-row> <span class="item">{{ upSignalFrequencyBand }}</span>
<!-- <el-row :gutter="20"> --> </div>
<!-- <el-col :span="12"> <div class="info-item">
<el-form-item label="目标距离:" label-position="left"> <span class="item-title">发射功率:</span>
<el-input v-model="targetDistance" /> <span class="item">{{ upSignalLaunchPower }}</span>
</el-form-item> </div>
</el-col> --> </el-card>
<!-- <el-col :span="12"> <el-card>
<el-form-item label="风速(km/hr):" label-position="left"> <div class="title">下行信号信息:</div>
<el-input v-model="windSpeed" /> <el-divider style="margin: 0"></el-divider>
</el-form-item> <div class="info-item">
</el-col> --> <span class="item-title">信号来源:</span>
<!-- </el-row> --> <span class="item">{{ downSignalSource }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="上行信号状态:" label-position="left"> <span class="item-title">信号频段:</span>
<el-input v-model="upSignalStatus" /> <span class="item">{{ downSignalFrequencyBand }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">接收功率:</span>
<el-form-item label="上行信号来源:" label-position="left"> <span class="item">{{ downSignalReceptionPower }}</span>
<el-input v-model="upSignalSource" /> </div>
</el-form-item> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="上行信号频段:" label-position="left">
<el-input v-model="upSignalFrequencyBand" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上行发射功率:" label-position="left">
<el-input v-model="upSignalLaunchPower" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="下行信号来源:" label-position="left">
<el-input v-model="downSignalSignalSource" />
</el-form-item>
</el-col> -->
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="下行信号状态:" label-position="left">
<el-input v-model="downSignalStatus" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="下行信号来源:" label-position="left">
<el-input v-model="downSignalSource" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="下行信号频段:" label-position="left">
<el-input v-model="downSignalFrequencyBand" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="下行接收功率:" label-position="left">
<el-input v-model="downSignalReceptionPower" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="往返光时(s):" label-position="left">
<el-input v-model="roundTripTime" />
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="20">
<el-col :span="12">
<el-form-item label="数据时间:" label-position="left">
<el-input v-model="dataTime" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="记录时间:" label-position="left">
<el-input v-model="recordTime" />
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否暂停使用:" label-position="left">
<el-input v-model="isSuspended" />
</el-form-item>
</el-col>
</el-row> -->
</div>
</el-form>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -319,21 +212,21 @@ const pageObj = ref({ ...@@ -319,21 +212,21 @@ const pageObj = ref({
}); });
// 查看数据详情的方法 // 查看数据详情的方法
const handleDetails = (row: any) => { const handleDetails = (row: any) => {
console.log(row);
targetName.value = row.targets[0].name; targetName.value = row.targets[0].name;
windSpeed.value = row.windSpeed === "" ? "" : row.windSpeed; windSpeed.value = row.windSpeed === "" ? "-" : row.windSpeed;
antennaName.value = row.name; antennaName.value = row.name;
antennaStatus.value = row.activity; antennaStatus.value = row.activity;
targetAzimuth.value = row.azimuthAngle; targetAzimuth.value = row.azimuthAngle;
targetDistance.value = row.targets[0].uplegRange;
targetElevation.value = row.elevationAngle; targetElevation.value = row.elevationAngle;
upSignalStatus.value = row.signals.length < 1 ? "" : row.signals[0].active; upSignalStatus.value = row.signals.length < 1 ? "-" : row.signals[0].active;
upSignalSource.value = row.signals.length < 1 ? "" : row.targets[0].name; upSignalSource.value = row.signals.length < 1 ? "-" : row.targets[0].name;
upSignalFrequencyBand.value = row.signals.length < 1 ? "" : row.signals[0].band; upSignalFrequencyBand.value = row.signals.length < 1 ? "-" : row.signals[0].band;
upSignalLaunchPower.value = row.signals.length < 1 ? "" : row.signals[0].power; upSignalLaunchPower.value = row.signals.length < 1 ? "-" : row.signals[0].power;
downSignalStatus.value = row.signals.length < 2 ? "" : row.signals[1].active; downSignalStatus.value = row.signals.length < 2 ? "-" : row.signals[1].active;
downSignalSource.value = row.signals.length < 2 ? "" : row.targets[0].name; downSignalSource.value = row.signals.length < 2 ? "-" : row.targets[0].name;
downSignalFrequencyBand.value = row.signals.length < 2 ? "" : row.signals[1].band; downSignalFrequencyBand.value = row.signals.length < 2 ? "-" : row.signals[1].band;
downSignalReceptionPower.value = row.signals.length < 2 ? "" : row.signals[1].power; downSignalReceptionPower.value = row.signals.length < 2 ? "-" : row.signals[1].power;
roundTripTime.value = row.targets[0].rtlt; roundTripTime.value = row.targets[0].rtlt;
detailVisibleValue.value = true; detailVisibleValue.value = true;
}; };
...@@ -416,6 +309,27 @@ onMounted(async () => { ...@@ -416,6 +309,27 @@ onMounted(async () => {
.el-text { .el-text {
color: #ffffff; color: #ffffff;
} }
.title {
color: white;
font-size: 18px;
font-weight: 500;
}
.info-item {
display: flex;
align-items: center;
margin: 10px 0;
justify-content: space-between;
}
.item-title {
color: #fff;
}
.item {
color: #eee;
}
</style> </style>
<style> <style>
......
...@@ -118,329 +118,236 @@ ...@@ -118,329 +118,236 @@
<div class="detailForm"> <div class="detailForm">
<el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable> <el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable>
<template #header> <template #header>
<div class="text-center font-size-8">详情</div> <div class="text-center font-size-6">目标详情-{{ targetName }}</div>
</template> </template>
<el-form label-width="155px" size="small" class="px-4"> <el-row>
<div> <el-col>
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">目标信息:</div>
<el-form-item label="目标名称:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="targetName" /> <el-row :gutter="20" style="display: flex; justify-content: space-between">
</el-form-item> <el-col :span="12">
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">目标名称:</span>
<el-form-item label="任务类型:" label-position="left"> <span class="item">{{ targetName }}</span>
<el-input v-model="targetMissionType" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">任务类型:</span>
</el-row> <span class="item">{{ targetMissionType }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="目标运行轨道:" label-position="left"> <span class="item-title">运行轨道:</span>
<el-input v-model="targetOrbit" /> <span class="item">{{ targetOrbit }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">目标尺寸:</span>
<el-form-item label="目标尺寸:" label-position="left"> <span class="item">{{ targetDimension ?? "-" }}</span>
<el-input v-model="targetDimension" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">发射质量:</span>
</el-row> <span class="item">{{ targetLaunchMass ?? "-" }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="目标发射质量:" label-position="left"> <span class="item-title">干质量:</span>
<el-input v-model="targetLaunchMass" /> <span class="item">{{ targetDryMass }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">近地点:</span>
<el-form-item label="目标干质量:" label-position="left"> <span class="item">{{ targetPerigee }}</span>
<el-input v-model="targetDryMass" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">远地点:</span>
</el-row> <span class="item">{{ targetApogee }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="近地点:" label-position="left"> <span class="item-title">目标功率:</span>
<el-input v-model="targetPerigee" /> <span class="item">{{ targetPower }}</span>
</el-form-item> </div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="远地点:" label-position="left"> <div class="info-item">
<el-input v-model="targetApogee" /> <span class="item-title">发射日期::</span>
</el-form-item> <span class="item">{{ targetLaunchDate }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">发射站点:</span>
<el-col :span="12"> <span class="item">{{ targetLaunchLocation ?? "-" }}</span>
<el-form-item label="目标功率:" label-position="left"> </div>
<el-input v-model="targetPower" /> <div class="info-item">
</el-form-item> <span class="item-title">轨道周期:</span>
</el-col> <span class="item">{{ targetPeriod }}</span>
<el-col :span="12"> </div>
<el-form-item label="轨道倾角:" label-position="left"> <div class="info-item">
<el-input v-model="targetInclination" /> <span class="item-title">相关仪器:</span>
</el-form-item> <span class="item">{{ targetInstruments ?? "-" }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">服役日期:</span>
<el-col :span="12"> <span class="item">{{ targetServiceDate ?? "-" }}</span>
<el-form-item label="发射日期:" label-position="left"> </div>
<el-input v-model="targetLaunchDate" /> <div class="info-item">
</el-form-item> <span class="item-title">是否为核心任务:</span>
</el-col> <span class="item">{{ targetIsCoreMission ?? "-" }}</span>
<el-col :span="12"> </div>
<el-form-item label="发射站点:" label-position="left"> <div class="info-item">
<el-input v-model="targetLaunchLocation" /> <span class="item-title">太阳风速:</span>
</el-form-item> <span class="item">{{ targetSolarWindSpeed ?? "-" }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">太阳通量密度:</span>
<el-col :span="12"> <span class="item">{{ targetSolarFluxDensity ?? "-" }}</span>
<el-form-item label="轨道周期:" label-position="left"> </div>
<el-input v-model="targetPeriod" /> <div class="info-item">
</el-form-item> <span class="item-title">轨道倾角:</span>
</el-col> <span class="item">{{ targetInclination }}</span>
<el-col :span="12"> </div>
<el-form-item label="相关仪器:" label-position="left"> </el-col>
<el-input v-model="targetInstruments" /> </el-row>
</el-form-item> <div class="title">描述信息:</div>
</el-col> <el-divider style="margin: 0"></el-divider>
</el-row> <p class="target-desc">{{ targetDescription }}</p>
<el-row :gutter="20"> </el-card>
<el-col :span="12"> </el-col>
<el-form-item label="服役日期:" label-position="left"> </el-row>
<el-input v-model="targetServiceDate" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否为核心任务:" label-position="left">
<el-input v-model="targetIsCoreMission" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="太阳风速:" label-position="left">
<el-input v-model="targetSolarWindSpeed" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="太阳通量密度:" label-position="left">
<el-input v-model="targetSolarFluxDensity" />
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否在仪表盘中显示:" label-position="left">
<el-input v-model="targetIsShowInDashboard" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型:" label-position="left">
<el-input v-model="targetType" />
</el-form-item>
</el-col>
</el-row> -->
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="描述:" label-position="left">
<el-input v-model="targetDescription" type="textarea" :rows="3" />
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-dialog> </el-dialog>
</div> </div>
<div class="detailForm"> <div class="detailForm">
<el-dialog v-model="stationVisibleValue" center width="880px" align-center @close="handleClose" draggable> <el-dialog v-model="stationVisibleValue" center width="880px" align-center @close="handleClose" draggable>
<template #header> <template #header>
<div class="text-center font-size-8">详情</div> <div class="text-center font-size-6">站点详情-{{ stationName }}</div>
</template> </template>
<el-form label-width="196px" size="small" class="px-4"> <el-row>
<div> <el-col>
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">站点信息:</div>
<el-form-item label="站点名称:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="stationName" /> <el-row :gutter="20" style="display: flex; justify-content: space-between">
</el-form-item> <el-col :span="12">
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">站点名称:</span>
<el-form-item label="所在国家:" label-position="left"> <span class="item">{{ stationName }}</span>
<el-input v-model="stationCountry" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">所在国家:</span>
</el-row> <span class="item">{{ stationCountry }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="站点经度:" label-position="left"> <span class="item-title">站点经度:</span>
<el-input v-model="stationLongitude" /> <span class="item">{{ stationLongitude }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">站点纬度:</span>
<el-form-item label="站点纬度:" label-position="left"> <span class="item">{{ stationLatitude }}</span>
<el-input v-model="stationLatitude" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">站点海拔:</span>
</el-row> <span class="item">{{ stationAltitude }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="站点海拔:" label-position="left"> <span class="item-title">站点直径:</span>
<el-input v-model="stationAltitude" /> <span class="item">{{ stationDiameter }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">天线方位角速度:</span>
<el-form-item label="站点直径:" label-position="left"> <span class="item">{{ stationAzimuthSpeed }}</span>
<el-input v-model="stationDiameter" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">天线俯仰角速度:</span>
</el-row> <span class="item">{{ stationElevationSpeed }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="天线方位角速度:" label-position="left"> <span class="item-title">信号频段:</span>
<el-input v-model="stationAzimuthSpeed" /> <span class="item">{{ stationBand }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">TMTC标准:</span>
<el-form-item label="天线俯仰角速度:" label-position="left"> <span class="item">{{ stationTMTC }}</span>
<el-input v-model="stationElevationSpeed" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">信号频率与定时:</span>
</el-row> <span class="item">{{ stationFrequencyAndTiming }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="信号频段:" label-position="left"> <span class="item-title">站点类型:</span>
<el-input v-model="stationBand" /> <span class="item">{{ stationType }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">站点气压:</span>
<el-form-item label="TMTC标准:" label-position="left"> <span class="item">{{ stationPressure === "" ? "-" : stationPressure }}</span>
<el-input v-model="stationTMTC" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">站点天气情况:</span>
</el-row> <span class="item">{{ stationWeather }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> </el-col>
<el-form-item label="信号频率与定时:" label-position="left"> <el-col :span="12">
<el-input v-model="stationFrequencyAndTiming" /> <div class="info-item">
</el-form-item> <span class="item-title">上行信号S频段极化:</span>
</el-col> <span class="item">{{ stationUplinkSPolarization }}</span>
<el-col :span="12"> </div>
<el-form-item label="站点天气情况:" label-position="left"> <div class="info-item">
<el-input v-model="stationWeather" /> <span class="item-title">上行信号S频段等效全向辐射功率:</span>
</el-form-item> <span class="item">{{ stationUplinkSPolarization }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">上行信号X频段极化:</span>
<el-col :span="12"> <span class="item">{{ stationUplinkXPolarization }}</span>
<el-form-item label="上行信号S频段极化:" label-position="left"> </div>
<el-input v-model="stationUplinkSPolarization" /> <div class="info-item">
</el-form-item> <span class="item-title">上行信号X频段等效全向辐射功率:</span>
</el-col> <span class="item">{{ stationUplinkXEirp }}</span>
<el-col :span="12"> </div>
<el-form-item label="上行信号S频段等效全向辐射功率:" label-position="left"> <div class="info-item">
<el-input v-model="stationUplinkSEirp" /> <span class="item-title">上行信号Ka频段极化:</span>
</el-form-item> <span class="item">{{ stationUplinkKaPolarization }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">上行信号Ka频段等效全向辐射功率:</span>
<el-col :span="12"> <span class="item">{{ stationUplinkKaEirp }}</span>
<el-form-item label="上行信号X频段极化:" label-position="left"> </div>
<el-input v-model="stationUplinkXPolarization" /> <div class="info-item">
</el-form-item> <span class="item-title">下行信号S频段极化:</span>
</el-col> <span class="item">{{ stationDownlinkSPolarization }}</span>
<el-col :span="12"> </div>
<el-form-item label="上行信号X频段等效全向辐射功率:" label-position="left"> <div class="info-item">
<el-input v-model="stationUplinkXEirp" /> <span class="item-title">下行信号S频段G/T比:</span>
</el-form-item> <span class="item">{{ stationDownlinkSGt }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">下行信号X频段极化:</span>
<el-col :span="12"> <span class="item">{{ stationDownlinkXPolarization }}</span>
<el-form-item label="上行信号Ka频段极化:" label-position="left"> </div>
<el-input v-model="stationUplinkKaPolarization" /> <div class="info-item">
</el-form-item> <span class="item-title">下行信号X频段G/T比:</span>
</el-col> <span class="item">{{ stationDownlinkXGt }}</span>
<el-col :span="12"> </div>
<el-form-item label="上行信号Ka频段等效全向辐射功率:" label-position="left"> <div class="info-item">
<el-input v-model="stationUplinkKaEirp" /> <span class="item-title">下行信号Ka频段极化:</span>
</el-form-item> <span class="item">{{ stationDownlinkKaPolarization }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">下行信号Ka频段G/T比:</span>
<el-col :span="12"> <span class="item">{{ stationDownlinkKaGt }}</span>
<el-form-item label="下行信号S频段极化:" label-position="left"> </div>
<el-input v-model="stationDownlinkSPolarization" /> <div class="info-item">
</el-form-item> <span class="item-title">站点温度:</span>
</el-col> <span class="item">{{ stationTemperature === "" ? "-" : stationTemperature }}</span>
<el-col :span="12"> </div>
<el-form-item label="下行信号S频段G/T比:" label-position="left"> <div class="info-item">
<el-input v-model="stationDownlinkSGt" /> <span class="item-title">站点湿度:</span>
</el-form-item> <span class="item">{{ stationHumidity === "" ? "-" : stationHumidity }}</span>
</el-col> </div>
</el-row> </el-col>
<el-row :gutter="20"> </el-row>
<el-col :span="12"> <div class="title">描述信息:</div>
<el-form-item label="下行信号X频段极化:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="stationDownlinkXPolarization" /> <p class="target-desc">{{ stationDescription }}</p>
</el-form-item> </el-card>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="下行信号X频段G/T比:" label-position="left">
<el-input v-model="stationDownlinkXGt" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="下行信号Ka频段极化:" label-position="left">
<el-input v-model="stationDownlinkKaPolarization" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="下行信号Ka频段G/T比:" label-position="left">
<el-input v-model="stationDownlinkKaGt" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="站点温度:" label-position="left">
<el-input v-model="stationTemperature" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="站点气压:" label-position="left">
<el-input v-model="stationPressure" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="站点湿度:" label-position="left">
<el-input v-model="stationHumidity" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="站点类型:" label-position="left">
<el-input v-model="stationType" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="描述:" label-position="left">
<el-input v-model="stationDescription" type="textarea" :rows="3" />
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-dialog> </el-dialog>
</div> </div>
<exportDialog v-model:dialogVisible="showDeleteDialog" /> <exportDialog v-model:dialogVisible="showDeleteDialog" />
</template> </template>
...@@ -471,6 +378,7 @@ const stationVisibleValue = ref(false); ...@@ -471,6 +378,7 @@ const stationVisibleValue = ref(false);
const targetName = ref(""); const targetName = ref("");
// 任务类型 // 任务类型
const targetMissionType = ref(""); const targetMissionType = ref("");
// 目标运行轨道 // 目标运行轨道
const targetOrbit = ref(""); const targetOrbit = ref("");
// 目标尺寸 // 目标尺寸
...@@ -572,48 +480,94 @@ const stationDescription = ref(""); ...@@ -572,48 +480,94 @@ const stationDescription = ref("");
// 查看esa站点详情的方法 // 查看esa站点详情的方法
const handleStationDetails = async (id: any) => { const handleStationDetails = async (id: any) => {
const res = await getESAStationDetail({ name: id }); try {
// 防止残留数据 const res = await getESAStationDetail({ name: id });
stationDescription.value = ""; // 1. 初始化清空数据
// 字段赋值 stationName.value = "";
stationName.value = res.data.data[0].name; stationCountry.value = "";
stationCountry.value = res.data.data[0].country; stationLongitude.value = "";
stationLongitude.value = res.data.data[0].longitude; stationLatitude.value = "";
stationLatitude.value = res.data.data[0].latitude; stationAltitude.value = "";
stationAltitude.value = res.data.data[0].altitude; stationDiameter.value = "";
stationDiameter.value = res.data.data[0].diameter; stationAzimuthSpeed.value = "";
stationAzimuthSpeed.value = res.data.data[0].antennaSpeedAzimuth; stationElevationSpeed.value = "";
stationElevationSpeed.value = res.data.data[0].antennaSpeedElevation; stationBand.value = "";
stationBand.value = res.data.data[0].band; stationTMTC.value = "";
stationTMTC.value = res.data.data[0].tmtcStandards; stationFrequencyAndTiming.value = "";
stationFrequencyAndTiming.value = res.data.data[0].frequencyAndTiming; stationWeather.value = "";
stationWeather.value = res.data.data[0].weather === null ? "无" : res.data.data[0].weather; stationUplinkSPolarization.value = "";
stationUplinkSPolarization.value = stationUplinkSEirp.value = "";
res.data.data[0].uplinkSBandPolarization === null ? "无" : res.data.data[0].uplinkSBandPolarization; stationUplinkXPolarization.value = "";
stationUplinkSEirp.value = res.data.data[0].uplinkSBandEirp === null ? "无" : res.data.data[0].uplinkSBandEirp; stationUplinkXEirp.value = "";
stationUplinkXPolarization.value = stationUplinkKaPolarization.value = "";
res.data.data[0].uplinkXBandPolarization === null ? "无" : res.data.data[0].uplinkXBandPolarization; stationUplinkKaEirp.value = "";
stationUplinkXEirp.value = res.data.data[0].uplinkXBandEirp === null ? "无" : res.data.data[0].uplinkXBandEirp; stationDownlinkSPolarization.value = "";
stationUplinkKaPolarization.value = stationDownlinkSGt.value = "";
res.data.data[0].uplinkKaBandPolarization === null ? "无" : res.data.data[0].uplinkKaBandPolarization; stationDownlinkXPolarization.value = "";
stationUplinkKaEirp.value = res.data.data[0].uplinkKaBandEirp === null ? "无" : res.data.data[0].uplinkKaBandEirp; stationDownlinkXGt.value = "";
stationDownlinkSPolarization.value = stationDownlinkKaPolarization.value = "";
res.data.data[0].downlinkSBandPolarization === null ? "无" : res.data.data[0].downlinkSBandPolarization; stationDownlinkKaGt.value = "";
stationDownlinkSGt.value = res.data.data[0].downlinkSBandGT === null ? "无" : res.data.data[0].downlinkSBandGT; stationTemperature.value = "";
stationDownlinkXPolarization.value = stationPressure.value = "";
res.data.data[0].downlinkXBandPolarization === null ? "无" : res.data.data[0].downlinkXBandPolarization; stationHumidity.value = "";
stationDownlinkXGt.value = res.data.data[0].downlinkXBandGT === null ? "无" : res.data.data[0].downlinkXBandGT; stationType.value = "";
stationDownlinkKaPolarization.value = stationDescription.value = "";
res.data.data[0].downlinkKaBandPolarization === null ? "无" : res.data.data[0].downlinkKaBandPolarization;
stationDownlinkKaGt.value = res.data.data[0].downlinkKaBandGT === null ? "无" : res.data.data[0].downlinkKaBandGT; // 2.判断 data 是否存在且非空
stationTemperature.value = res.data.data[0].temperature; if (!res?.data?.data || res.data.data.length === 0) {
stationPressure.value = res.data.data[0].airPressure; ElMessage.warning("未查询到该站点的详细信息");
stationHumidity.value = res.data.data[0].humidity; return;
stationType.value = res.data.data[0].type; }
for (let i = 0; i < res.data.data[0].description.length; i++) {
stationDescription.value += res.data.data[0].description[i]; // 3. 安全赋值
const stationData = res.data.data[0];
stationName.value = stationData.name || "";
stationCountry.value = stationData.country || "";
stationLongitude.value = stationData.longitude || "";
stationLatitude.value = stationData.latitude || "";
stationAltitude.value = stationData.altitude || "";
stationDiameter.value = stationData.diameter || "";
stationAzimuthSpeed.value = stationData.antennaSpeedAzimuth || "";
stationElevationSpeed.value = stationData.antennaSpeedElevation || "";
stationBand.value = stationData.band || "";
stationTMTC.value = stationData.tmtcStandards || "";
stationFrequencyAndTiming.value = stationData.frequencyAndTiming || "";
stationWeather.value = stationData.weather === null ? "-" : stationData.weather || "-";
stationUplinkSPolarization.value =
stationData.uplinkSBandPolarization === null ? "-" : stationData.uplinkSBandPolarization || "-";
stationUplinkSEirp.value = stationData.uplinkSBandEirp === null ? "-" : stationData.uplinkSBandEirp || "-";
stationUplinkXPolarization.value =
stationData.uplinkXBandPolarization === null ? "-" : stationData.uplinkXBandPolarization || "-";
stationUplinkXEirp.value = stationData.uplinkXBandEirp === null ? "-" : stationData.uplinkXBandEirp || "-";
stationUplinkKaPolarization.value =
stationData.uplinkKaBandPolarization === null ? "-" : stationData.uplinkKaBandPolarization || "-";
stationUplinkKaEirp.value = stationData.uplinkKaBandEirp === null ? "-" : stationData.uplinkKaBandEirp || "-";
stationDownlinkSPolarization.value =
stationData.downlinkSBandPolarization === null ? "-" : stationData.downlinkSBandPolarization || "-";
stationDownlinkSGt.value = stationData.downlinkSBandGT === null ? "-" : stationData.downlinkSBandGT || "-";
stationDownlinkXPolarization.value =
stationData.downlinkXBandPolarization === null ? "-" : stationData.downlinkXBandPolarization || "-";
stationDownlinkXGt.value = stationData.downlinkXBandGT === null ? "-" : stationData.downlinkXBandGT || "-";
stationDownlinkKaPolarization.value =
stationData.downlinkKaBandPolarization === null ? "-" : stationData.downlinkKaBandPolarization || "-";
stationDownlinkKaGt.value = stationData.downlinkKaBandGT === null ? "-" : stationData.downlinkKaBandGT || "-";
stationTemperature.value = stationData.temperature || "";
stationPressure.value = stationData.airPressure || "";
stationHumidity.value = stationData.humidity || "";
stationType.value = stationData.type || "";
// 处理描述信息(避免 description 为 undefined 时报错)
if (Array.isArray(stationData.description)) {
stationDescription.value = stationData.description.join("");
} else {
stationDescription.value = stationData.description || "-";
}
stationVisibleValue.value = true;
} catch (error) {
ElMessage.error("查询站点详情失败,请稍后重试");
console.error("站点详情查询错误:", error);
} }
stationVisibleValue.value = true;
}; };
const tableData = ref([]); const tableData = ref([]);
...@@ -728,10 +682,35 @@ onMounted(() => { ...@@ -728,10 +682,35 @@ onMounted(() => {
margin-top: 1%; margin-top: 1%;
} }
.title {
color: white;
font-size: 18px;
font-weight: 500;
}
.info-item {
display: flex;
align-items: center;
margin: 10px 0;
justify-content: space-between;
}
.item-title {
color: #fff;
}
.item {
color: #eee;
}
/* 文字样式 */ /* 文字样式 */
.el-text { .el-text {
color: #ffffff; color: #ffffff;
} }
.target-desc {
color: white;
}
</style> </style>
<style> <style>
......
...@@ -70,26 +70,6 @@ ...@@ -70,26 +70,6 @@
{{ scope.row.identity.long_nom === null ? "-" : scope.row.identity.long_nom }} {{ scope.row.identity.long_nom === null ? "-" : scope.row.identity.long_nom }}
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column property="item.minPerigee" label="近地点" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.item.minPerigee === null ? '-' : scope.row.item.minPerigee }}
</template>
</el-table-column>
<el-table-column property="item.maxApog" label="远地点" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.item.maxApog === null ? '-' : scope.row.identity.maxApog }}
</template>
</el-table-column>
<el-table-column property="item.minAltitude" label="最低海拔" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.item.minAltitude === null ? '-' : scope.row.item.minAltitude }}
</template>
</el-table-column>
<el-table-column property="item.ref_body" label="参考主体" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.item.ref_body === null ? '-' : scope.row.item.ref_body }}
</template>
</el-table-column> -->
<el-table-column property="item.freq_min" label="最低频率" show-overflow-tooltip> <el-table-column property="item.freq_min" label="最低频率" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.item.freq_min === null ? "-" : scope.row.item.freq_min }} {{ scope.row.item.freq_min === null ? "-" : scope.row.item.freq_min }}
...@@ -128,151 +108,114 @@ ...@@ -128,151 +108,114 @@
<div class="detailForm"> <div class="detailForm">
<el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable> <el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable>
<template #header> <template #header>
<div class="text-center font-size-8">详情</div> <div class="text-center font-size-6">详情-{{ targetName }}</div>
</template> </template>
<el-form label-width="155px" size="small" class="px-4"> <el-row>
<div> <el-col :span="12">
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">身份信息:</div>
<el-form-item label="SNS Notice ID:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input disabled v-model="snsId" /> <div class="info-item">
</el-form-item> <span class="item-title">卫星网络名称:</span>
</el-col> <span class="item">{{ targetName }}</span>
<el-col :span="12"> </div>
<el-form-item label="主管部门:" label-position="left"> <div class="info-item">
<el-input disabled v-model="department" /> <span class="item-title">主管部门:</span>
</el-form-item> <span class="item">{{ department }}({{ departmentDetail }})</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">网络组织:</span>
<el-col :span="12"> <span class="item">{{ ntwkOrg ?? "-" }}</span>
<el-form-item label="目标名称:" label-position="left"> </div>
<el-input disabled v-model="targetName" /> <div class="info-item">
</el-form-item> <span class="item-title">计划/非计划类型:</span>
</el-col> <span class="item">{{ planType }}</span>
<el-col :span="12"> </div>
<el-form-item label="计划/非计划类型:" label-position="left"> <div class="info-item">
<el-input disabled v-model="planType" /> <span class="item-title">卫星网络类型:</span>
</el-form-item> <span class="item">{{ ntwkType }}</span>
</el-col> </div>
</el-row> </el-card>
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">监管状态跟踪:</div>
<el-form-item label="是否为同步:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input disabled v-model="syncType" /> <div class="info-item">
</el-form-item> <span class="item-title">状态:</span>
</el-col> <span class="item">{{ status }}</span>
<el-col :span="12"> </div>
<el-form-item label="同步位置:" label-position="left"> <div class="info-item">
<el-input disabled v-model="syncPosition" /> <span class="item-title">是否纳入国际频率总表:</span>
</el-form-item> <span class="item">{{ IsInTheInternationalFrequencyList }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">有效期:</span>
<el-col :span="12"> <span class="item">{{ validityPeriod }} 年</span>
<el-form-item label="近地点:" label-position="left"> </div>
<el-input disabled v-model="perigee" /> <div class="info-item">
</el-form-item> <span class="item-title">是否确认使用:</span>
</el-col> <span class="item">{{ isUsed }}</span>
<el-col :span="12"> </div>
<el-form-item label="远地点:" label-position="left"> <div class="info-item">
<el-input disabled v-model="apogee" /> <span class="item-title">是否暂停使用:</span>
</el-form-item> <span class="item">{{ isPauseUsed }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">最早监管日期:</span>
<el-col :span="12"> <span class="item">{{ earliestRegulatoryDate }}</span>
<el-form-item label="最低海拔:" label-position="left"> </div>
<el-input disabled v-model="lowestAltitude" /> </el-card>
</el-form-item> </el-col>
</el-col> <el-col :span="12">
<el-col :span="12"> <el-card>
<el-form-item label="参考主体:" label-position="left"> <div class="title">特征信息:</div>
<el-input disabled v-model="referenceSubject" /> <el-divider style="margin: 0"></el-divider>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">近地点:</span>
</el-row> <span class="item">{{ perigee }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="最低频率:" label-position="left"> <span class="item-title">远地点:</span>
<el-input disabled v-model="lowestFrequency" /> <span class="item">{{ apogee }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">最低频率:</span>
<el-form-item label="最高频率:" label-position="left"> <span class="item">{{ lowestFrequency }}</span>
<el-input disabled v-model="highestFrequency" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">最高频率:</span>
</el-row> <span class="item">{{ highestFrequency }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="状态:" label-position="left"> <span class="item-title">最低海拔:</span>
<el-input v-model="status" /> <span class="item">{{ lowestAltitude }}</span>
</el-form-item> </div>
</el-col> </el-card>
<el-col :span="12"> <el-card>
<el-form-item label="有效期:" label-position="left"> <div class="title">其他信息:</div>
<el-input disabled v-model="validityPeriod" /> <el-divider style="margin: 0"></el-divider>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">是否为同步:</span>
</el-row> <span class="item">{{ isNtcType === "G" ? "是" : "否" }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="最早使用日期:" label-position="left"> <span class="item-title">同步位置:</span>
<el-input disabled v-model="earliestUsageDate" /> <span class="item">{{ syncPosition }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">参考主体:</span>
<el-form-item label="是否确认使用:" label-position="left"> <span class="item">{{ referenceSubject }}</span>
<el-input disabled v-model="isUsed" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">是否恢复使用:</span>
</el-row> <span class="item">{{ isRestoreUsed }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="是否暂停使用:" label-position="left"> <span class="item-title">最新相关 BR IFIC 发布日期:</span>
<el-input disabled v-model="isPauseUsed" /> <span class="item">{{ BFIFICdate }}</span>
</el-form-item> </div>
</el-col> </el-card>
<el-col :span="12"> </el-col>
<el-form-item label="记录时间:" label-position="left"> </el-row>
<el-input disabled v-model="recordTime" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否纳入国际频率总表:" label-position="left">
<el-input disabled v-model="IsInTheInternationalFrequencyList" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最早监管日期:" label-position="left">
<el-input disabled v-model="earliestRegulatoryDate" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否恢复使用:" label-position="left">
<el-input disabled v-model="isRestoreUsed" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最新相关 BR IFIC 发布日期:" label-position="left">
<el-input disabled v-model="BFIFICdate" />
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="20">
<el-col :span="24">
<el-form-item label="最新相关 BR IFIC 发布日期:" label-position="top">
<el-input v-model="BRIFICdate" />
</el-form-item>
</el-col>
</el-row> -->
</div>
</el-form>
</el-dialog> </el-dialog>
</div> </div>
<exportDialog v-model:dialogVisible="showDeleteDialog" /> <exportDialog v-model:dialogVisible="showDeleteDialog" />
...@@ -282,7 +225,7 @@ ...@@ -282,7 +225,7 @@
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import Pagination from "@/components/pagination/index.vue"; import Pagination from "@/components/pagination/index.vue";
import exportDialog from "@/components/Export/index.vue"; import exportDialog from "@/components/Export/index.vue";
import { getItuList, getItuDetail, deleteItuData } from "@/api/spiderData"; import { getItuList, getItuDetail } from "@/api/spiderData";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
// ElConfigProvider 组件 // ElConfigProvider 组件
import { ElConfigProvider } from "element-plus"; import { ElConfigProvider } from "element-plus";
...@@ -303,6 +246,12 @@ const detailVisibleValue = ref(false); ...@@ -303,6 +246,12 @@ const detailVisibleValue = ref(false);
const snsId = ref(""); const snsId = ref("");
// 主管部门 // 主管部门
const department = ref(""); const department = ref("");
//详细主管部门
const departmentDetail = ref("");
//网络组织
const ntwkOrg = ref("");
//卫星网络类型
const ntwkType = ref("");
// 目标名称 // 目标名称
const targetName = ref(""); const targetName = ref("");
// 计划/非计划类型 // 计划/非计划类型
...@@ -325,6 +274,8 @@ const lowestFrequency = ref(""); ...@@ -325,6 +274,8 @@ const lowestFrequency = ref("");
const highestFrequency = ref(""); const highestFrequency = ref("");
// 状态 // 状态
const status = ref(""); const status = ref("");
//是否为同步
const isNtcType = ref("");
// 有效期 // 有效期
const validityPeriod = ref(""); const validityPeriod = ref("");
// 最早使用日期 // 最早使用日期
...@@ -354,23 +305,26 @@ const pageObj = ref({ ...@@ -354,23 +305,26 @@ const pageObj = ref({
// 查看数据详情的方法 // 查看数据详情的方法
const handleDetails = async (id: any) => { const handleDetails = async (id: any) => {
const res = await getItuDetail({ id: id._id }); const res = await getItuDetail({ id: id._id });
console.log(res);
snsId.value = res.data.item.ntc_id; snsId.value = res.data.item.ntc_id;
department.value = res.data.item.adm; department.value = res.data.item.adm;
departmentDetail.value = res.data.item.notifying_adm_tooltip;
ntwkOrg.value = res.data.item.ntwk_org;
ntwkType.value = res.data.item.notice_type_tooltip;
targetName.value = res.data.identity.sat_name; targetName.value = res.data.identity.sat_name;
planType.value = res.data.identity.plan_type; planType.value = res.data.identity.plan_type;
syncType.value = res.data.identity.ntc_type; syncType.value = res.data.identity.ntc_type;
syncPosition.value = res.data.identity.long_nom === null ? "无" : res.data.identity.long_nom; isNtcType.value = res.data.item.ntc_type;
perigee.value = res.data.item.minPerigee === null ? "无" : res.data.item.minPerigee; syncPosition.value = res.data.identity.long_nom === null ? "-" : res.data.identity.long_nom;
apogee.value = res.data.item.maxApog === null ? "无" : res.data.item.maxApog; perigee.value = res.data.item.minPerigee === null ? "-" : res.data.item.minPerigee;
lowestAltitude.value = res.data.item.minAltitude === null ? "无" : res.data.item.minAltitude; apogee.value = res.data.item.maxApog === null ? "-" : res.data.item.maxApog;
referenceSubject.value = res.data.item.ref_body === null ? "无" : res.data.item.ref_body; lowestAltitude.value = res.data.item.minAltitude === null ? "-" : res.data.item.minAltitude;
lowestFrequency.value = res.data.item.freq_min === null ? "无" : res.data.item.freq_min; referenceSubject.value = res.data.item.ref_body === null ? "-" : res.data.item.ref_body;
highestFrequency.value = res.data.item.freq_max === null ? "无" : res.data.item.freq_max; lowestFrequency.value = res.data.item.freq_min === null ? "-" : res.data.item.freq_min;
highestFrequency.value = res.data.item.freq_max === null ? "-" : res.data.item.freq_max;
status.value = res.data.regulatory_status.active_status; status.value = res.data.regulatory_status.active_status;
validityPeriod.value = res.data.regulatory_status.prd_valid; validityPeriod.value = res.data.regulatory_status.prd_valid;
earliestUsageDate.value = earliestUsageDate.value =
res.data.regulatory_status.d_reg_limit === null ? "" : res.data.regulatory_status.d_reg_limit; res.data.regulatory_status.d_reg_limit === null ? "-" : res.data.regulatory_status.d_reg_limit;
isUsed.value = res.data.regulatory_status.f_biu_grps; isUsed.value = res.data.regulatory_status.f_biu_grps;
isPauseUsed.value = res.data.regulatory_status.resumption_list; isPauseUsed.value = res.data.regulatory_status.resumption_list;
recordTime.value = res.data.crawl_time; recordTime.value = res.data.crawl_time;
...@@ -378,7 +332,7 @@ const handleDetails = async (id: any) => { ...@@ -378,7 +332,7 @@ const handleDetails = async (id: any) => {
earliestRegulatoryDate.value = res.data.regulatory_status.d_inuse_list; earliestRegulatoryDate.value = res.data.regulatory_status.d_inuse_list;
isRestoreUsed.value = res.data.regulatory_status.resumption_list; isRestoreUsed.value = res.data.regulatory_status.resumption_list;
validityPeriodSatelliteNetworkOldName.value = res.data.regulatory_status.old_satellite_network_name; validityPeriodSatelliteNetworkOldName.value = res.data.regulatory_status.old_satellite_network_name;
BFIFICdate.value = res.data.regulatory_status.d_wic === null ? "" : res.data.regulatory_status.d_wic; BFIFICdate.value = res.data.regulatory_status.d_wic === null ? "-" : res.data.regulatory_status.d_wic;
detailVisibleValue.value = true; detailVisibleValue.value = true;
}; };
// 获取itu数据列表的方法 // 获取itu数据列表的方法
...@@ -389,7 +343,6 @@ const getData = async () => { ...@@ -389,7 +343,6 @@ const getData = async () => {
searchTimeValue.value = ""; searchTimeValue.value = "";
pageObj.value.total = res.data.total; pageObj.value.total = res.data.total;
tableData.value = res.data.list; tableData.value = res.data.list;
console.log(res.data.list);
}; };
const handleClose = () => { const handleClose = () => {
detailVisibleValue.value = false; detailVisibleValue.value = false;
...@@ -409,6 +362,7 @@ const handleSearch = async () => { ...@@ -409,6 +362,7 @@ const handleSearch = async () => {
pageObj.value.total = res.data.total; pageObj.value.total = res.data.total;
tableData.value = res.data.list; tableData.value = res.data.list;
}; };
onMounted(() => { onMounted(() => {
getData(); getData();
}); });
...@@ -452,6 +406,27 @@ onMounted(() => { ...@@ -452,6 +406,27 @@ onMounted(() => {
.el-text { .el-text {
color: #ffffff; color: #ffffff;
} }
.title {
color: white;
font-size: 18px;
font-weight: 500;
}
.info-item {
display: flex;
align-items: center;
margin: 10px 0;
justify-content: space-between;
}
.item-title {
color: #fff;
}
.item {
color: #eee;
}
</style> </style>
<style> <style>
......
...@@ -69,14 +69,11 @@ ...@@ -69,14 +69,11 @@
<!-- <el-table-column property="runningTime" label="运行时间" show-overflow-tooltip /> --> <!-- <el-table-column property="runningTime" label="运行时间" show-overflow-tooltip /> -->
<el-table-column property="data[0].SITE" label="SITE" show-overflow-tooltip /> <el-table-column property="data[0].SITE" label="SITE" show-overflow-tooltip />
<!-- <el-table-column property="failTime" label="失效时间" show-overflow-tooltip /> --> <!-- <el-table-column property="failTime" label="失效时间" show-overflow-tooltip /> -->
<el-table-column property="data[0].PERIOD" label="周期" show-overflow-tooltip /> <el-table-column property="data[0].PERIOD" label="周期(min)" show-overflow-tooltip />
<el-table-column property="data[0].PERIAPSIS" label="近地点" show-overflow-tooltip /> <el-table-column property="data[0].PERIAPSIS" label="近地点" show-overflow-tooltip />
<el-table-column property="data[0].APOAPSIS" label="远地点" show-overflow-tooltip /> <el-table-column property="data[0].APOAPSIS" label="远地点" show-overflow-tooltip />
<!-- <el-table-column property="incl" label="INCL" show-overflow-tooltip /> --> <!-- <el-table-column property="incl" label="INCL" show-overflow-tooltip /> -->
<el-table-column property="data[0].RCS_SIZE" label="RCS" show-overflow-tooltip /> <el-table-column property="data[0].RCS_SIZE" label="RCS" show-overflow-tooltip />
<el-table-column property="data[0].TLE_LINE0" label="TLE_LINE0" show-overflow-tooltip />
<el-table-column property="data[0].TLE_LINE1" label="TLE_LINE1" show-overflow-tooltip />
<el-table-column property="data[0].TLE_LINE2" label="TLE_LINE2" show-overflow-tooltip />
<el-table-column label="操作" width="60"> <el-table-column label="操作" width="60">
<template #default="scope"> <template #default="scope">
<el-button type="primary" plain link @click="handleDetails(scope.row)"> 详情 </el-button> <el-button type="primary" plain link @click="handleDetails(scope.row)"> 详情 </el-button>
...@@ -96,91 +93,78 @@ ...@@ -96,91 +93,78 @@
<div class="detailForm"> <div class="detailForm">
<el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable> <el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable>
<template #header> <template #header>
<div class="text-center font-size-8">详情</div> <div class="text-center font-size-6">详情-{{ targetName }}</div>
</template> </template>
<el-form label-width="70px" size="small" class="px-4"> <el-row>
<div> <el-col>
<el-row :gutter="20"> <el-card>
<el-col :span="12"> <div class="title">目标信息:</div>
<el-form-item label="NoradCatID:" label-position="left"> <el-divider style="margin: 0"></el-divider>
<el-input v-model="NoradCatID" /> <el-row :gutter="20" style="display: flex;justify-content: space-between;">
</el-form-item> <el-col :span="12">
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">目标名称:</span>
<el-form-item label="目标名称:" label-position="left"> <span class="item">{{ targetName }}</span>
<el-input v-model="targetName" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">近地点幅角:</span>
</el-row> <span class="item">{{ argOfPericenter }}</span>
<el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="周期(min):" label-position="left"> <span class="item-title">带星号的弹道系数:</span>
<el-input v-model="period" /> <span class="item">{{ bStar }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">偏心率:</span>
<el-form-item label="类型:" label-position="left"> <span class="item">{{ eccentricity }}</span>
<el-input v-model="type" /> </div>
</el-form-item> <div class="info-item">
</el-col> <span class="item-title">倾斜角:</span>
</el-row> <span class="item">{{ inclination }}</span>
<!-- <el-row :gutter="20"> </div>
<el-col :span="12"> <div class="info-item">
<el-form-item label="运行时间:" label-position="left"> <span class="item-title">发射日期:</span>
<el-input v-model="workTime" /> <span class="item">{{ launchDate }}</span>
</el-form-item> </div>
</el-col> <div class="info-item">
<el-col :span="12"> <span class="item-title">卫星站点:</span>
<el-form-item label="失效时间:" label-position="left"> <span class="item">{{ site }}</span>
<el-input v-model="failTime" /> </div>
</el-form-item> </el-col>
</el-col> <el-col :span="12">
</el-row> --> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">升交点赤经:</span>
<el-col :span="12"> <span class="item">{{ raOfAscNode }}</span>
<el-form-item label="记录时间:" label-position="left"> </div>
<el-input v-model="recordTime" /> <div class="info-item">
</el-form-item> <span class="item-title">平近点角:</span>
</el-col> <span class="item">{{ meanAnomaly }}</span>
<el-col :span="12"> </div>
<el-form-item label="所属国家:" label-position="left"> <div class="info-item">
<el-input v-model="belongCountry" /> <span class="item-title">轨道半长轴:</span>
</el-form-item> <span class="item">{{ semimajorAxis }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">雷达截面积:</span>
<el-col :span="12"> <span class="item">{{ rcsSize }}</span>
<el-form-item label="近地点:" label-position="left"> </div>
<el-input v-model="perigee" /> <div class="info-item">
</el-form-item> <span class="item-title">TLE第一行数据:</span>
</el-col> <span class="item">{{ tleLine0 }}</span>
<el-col :span="12"> </div>
<el-form-item label="远地点:" label-position="left"> <div class="info-item">
<el-input v-model="apogee" /> <span class="item-title">TLE第二行数据:</span>
</el-form-item> <span class="item">{{ tleLine1 }}</span>
</el-col> </div>
</el-row> <div class="info-item">
<el-row :gutter="20"> <span class="item-title">TLE第三行数据:</span>
<el-col :span="12"> <span class="item">{{ tleLine2 }}</span>
<el-form-item label="RCS:" label-position="left"> </div>
<el-input v-model="rcs" /> </el-col>
</el-form-item> </el-row>
</el-col> </el-card>
<el-col :span="12"> </el-col>
<el-form-item label="SITE:" label-position="left"> </el-row>
<el-input v-model="site" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="TLE:" label-position="left">
<el-input type="textarea" :rows="3" v-model="tle" />
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-dialog> </el-dialog>
</div> </div>
<exportDialog v-model:dialogVisible="showDeleteDialog" /> <exportDialog v-model:dialogVisible="showDeleteDialog" />
...@@ -190,7 +174,7 @@ ...@@ -190,7 +174,7 @@
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import Pagination from "@/components/pagination/index.vue"; import Pagination from "@/components/pagination/index.vue";
import exportDialog from "@/components/Export/index.vue"; import exportDialog from "@/components/Export/index.vue";
import { getStList, getStDetail, deleteStData } from "@/api/spiderData"; import { getStList, getStDetail } from "@/api/spiderData";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
// ElConfigProvider 组件 // ElConfigProvider 组件
import { ElConfigProvider } from "element-plus"; import { ElConfigProvider } from "element-plus";
...@@ -225,14 +209,40 @@ const perigee = ref(""); ...@@ -225,14 +209,40 @@ const perigee = ref("");
const apogee = ref(""); const apogee = ref("");
// 周期 // 周期
const period = ref(""); const period = ref("");
// INCL
const incl = ref("");
// RCS // RCS
const rcs = ref(""); const rcs = ref("");
// SITE // SITE
const site = ref(""); const site = ref("");
// TLE // TLE
const tle = ref(""); const tle = ref("");
//近地点幅角
const argOfPericenter = ref("");
//弹道系数
const bStar = ref("");
//备注
const comment = ref("");
//偏心率 ECCENTRICITY
const eccentricity = ref("");
//倾斜角 INCLINATION
const inclination = ref("");
//升交点赤经 RA_OF_ASC_NODE
const raOfAscNode = ref("");
//平近点角 MEAN_ANOMALY
const meanAnomaly = ref("");
//RCS_SIZE
const rcsSize = ref("");
//LAUNCH_DATE
const launchDate = ref("");
//卫星站点
//半长轴SEMIMAJOR_AXIS
const semimajorAxis = ref("");
//第一行数据 TLE_LINE0
const tleLine0 = ref("");
//第二行数据 TLE_LINE0
const tleLine1 = ref("");
//第三行数据 TLE_LINE0
const tleLine2 = ref("");
const tableData = ref([]); const tableData = ref([]);
const pageObj = ref({ const pageObj = ref({
...@@ -243,9 +253,23 @@ const pageObj = ref({ ...@@ -243,9 +253,23 @@ const pageObj = ref({
// 查看数据详情的方法 // 查看数据详情的方法
const handleDetails = async (row: any) => { const handleDetails = async (row: any) => {
const res = await getStDetail({ id: row._id }); const res = await getStDetail({ id: row._id });
console.log(res);
NoradCatID.value = res.data.data[0].NORAD_CAT_ID; NoradCatID.value = res.data.data[0].NORAD_CAT_ID;
rcsSize.value = res.data.data[0].RCS_SIZE;
launchDate.value = res.data.data[0].LAUNCH_DATE;
semimajorAxis.value = res.data.data[0].SEMIMAJOR_AXIS;
targetName.value = res.data.data[0].OBJECT_NAME; targetName.value = res.data.data[0].OBJECT_NAME;
tleLine0.value = res.data.data[0].TLE_LINE0;
tleLine1.value = res.data.data[0].TLE_LINE1;
tleLine2.value = res.data.data[0].TLE_LINE2;
inclination.value = res.data.data[0].INCLINATION;
meanAnomaly.value = res.data.data[0].MEAN_ANOMALY;
eccentricity.value = res.data.data[0].ECCENTRICITY;
raOfAscNode.value = res.data.data[0].RA_OF_ASC_NODE;
comment.value = res.data.data[0].COMMENT;
type.value = res.data.data[0].OBJECT_TYPE; type.value = res.data.data[0].OBJECT_TYPE;
argOfPericenter.value = res.data.data[0].ARG_OF_PERICENTER;
bStar.value = res.data.data[0].BSTAR;
period.value = res.data.data[0].PERIOD; period.value = res.data.data[0].PERIOD;
intleds.value = res.data.data[0].INTLDES; intleds.value = res.data.data[0].INTLDES;
recordTime.value = res.data.data[0].CREATION_DATE; recordTime.value = res.data.data[0].CREATION_DATE;
...@@ -322,6 +346,27 @@ onMounted(() => { ...@@ -322,6 +346,27 @@ onMounted(() => {
.el-text { .el-text {
color: #ffffff; color: #ffffff;
} }
.title {
color: white;
font-size: 18px;
font-weight: 500;
}
.info-item {
display: flex;
align-items: center;
margin: 10px 0;
justify-content: space-between;
}
.item-title {
color: #fff;
}
.item {
color: #eee;
}
</style> </style>
<style> <style>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
@del-no="handleSateDel" @del-no="handleSateDel"
:reset-selected="resetSelected" :reset-selected="resetSelected"
></NoItem> ></NoItem>
/>
</TransitionGroup> </TransitionGroup>
</div> </div>
<div class="footer"> <div class="footer">
...@@ -159,13 +158,16 @@ const delNoList = async () => { ...@@ -159,13 +158,16 @@ const delNoList = async () => {
sateNoList.value = sateNoList.value.filter((item) => !curSelSateNo.value.includes(item)); sateNoList.value = sateNoList.value.filter((item) => !curSelSateNo.value.includes(item));
const res = await addSateNo({ id: sateNoList.value as string[] }); const res = await addSateNo({ id: sateNoList.value as string[] });
if (res.code === 0) { if (res.code === 0) {
ElMessage.success("删除编号成功");
} }
resetSelected.value = true; resetSelected.value = true;
curSelSateNo.value = []; curSelSateNo.value = [];
nextTick(() => { nextTick(() => {
resetSelected.value = false; resetSelected.value = false;
}); });
} catch (error: any) {} } catch (error: any) {
ElMessage.error(error.message);
}
}; };
const noContentRef = ref<HTMLDivElement | null>(null); const noContentRef = ref<HTMLDivElement | null>(null);
......
<template> <template>
<div class="flex gap-10"> <div class="flex">
<span class="textStyle">数据统计</span> <span class="textStyle">数据统计</span>
<div class="dataCard" @click="goToAllDataPage"> <div class="dataCard" @click="goToAllDataPage">
<div class="titleStyle"> <div class="titleStyle">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment