Commit d1815aa7 by yzh

feat:dsn页面定时刷新

parent 2ac07e0b
......@@ -40,12 +40,12 @@ export const constantRoutes: Array<RouteRecordRaw> = [
{
path: '',
component: Layout,
redirect: '/dashboard',
redirect: '/osStatus/list',
hidden: true,
children: [{
path: '/dashboard',
name: 'Dashboard',
component: () => import('@/views/home/home.vue'),
path: '/osStatus/list',
name: 'statusMonitor',
component: () => import('@/views/os-status/index.vue'),
meta: { title: '控制台', icon: 'Monitor' }
}]
} as unknown as RouteRecordRaw,
......@@ -198,14 +198,13 @@ export const constantRoutes: Array<RouteRecordRaw> = [
{
path: "/osStatus",
// redirect: "list",
component: Layout,
children: [
{
path: "list",
name: "statusMonitor",
component: () => import("@/views/os-status/index.vue"),
meta: { title: "状态监控", icon: "Key" }
meta: { title: "状态监控", icon: "Monitor" }
},
]
} as unknown as RouteRecordRaw,
......@@ -219,7 +218,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: "list",
name: "taskInformation",
component: () => import("@/views/os-taskInformation/index.vue"),
meta: { title: "任务信息", icon: "Key" }
meta: { title: "任务信息", icon: "List" }
},
]
} as unknown as RouteRecordRaw,
......@@ -232,7 +231,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: "list",
name: "taskRecord",
component: () => import("@/views/os-taskRecord/index.vue"),
meta: { title: "任务执行记录", icon: "Key" }
meta: { title: "任务执行记录", icon: "Notebook" }
},
]
} as unknown as RouteRecordRaw,
......@@ -245,7 +244,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: "list",
name: "dataDisplay",
component: () => import("@/views/os-dataDisplay/index.vue"),
meta: { title: "数据展示", icon: "Key" }
meta: { title: "数据展示", icon: "DataAnalysis" }
},
]
} as unknown as RouteRecordRaw,
......@@ -271,7 +270,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: "list",
name: "osSystem",
component: () => import("@/views/os-system/index.vue"),
meta: { title: "系统管理", icon: "Key" }
meta: { title: "系统管理", icon: "Setting" }
},
]
} as unknown as RouteRecordRaw,
......
......@@ -123,4 +123,8 @@ export interface UserQueryParams {
sat_name?: string
ntc_id?: string
filters?: any
norad_cat_id?: string
object_name?: string
}
\ No newline at end of file
......@@ -42,6 +42,7 @@ const redirect = ref<string | undefined>(undefined)
// 监听路由变化
if (route.query?.redirect) {
console.log(route.query.redirect);
redirect.value = route.query.redirect as string
}
......@@ -60,7 +61,7 @@ const handleLogin = () => {
loading.value = true
try {
await userStore.login(loginForm)
router.push({ path: redirect.value || '/' })
router.push({ path: '/' })
} catch (error: any) {
console.error('登录失败:', error)
} finally {
......
<template>
<div class="text-left p-1 toolbarStyle">
<!-- <div class="text-left p-1 toolbarStyle">
<div class="formStyle">
<el-form inline>
<el-form-item>
......@@ -14,8 +14,9 @@
<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-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>
......@@ -23,12 +24,6 @@
<el-form-item>
<el-input placeholder="请输入" style="width: 180.5px" />
</el-form-item>
<!-- <br></br> -->
<!-- <el-form-item>
<el-space>
<el-button type="primary" @click="handleExport">导出最近</el-button>
</el-space>
</el-form-item> -->
<el-form-item>
<el-space>
<el-button type="primary">查询</el-button>
......@@ -36,14 +31,18 @@
</el-form-item>
</el-form>
</div>
</div> -->
<div class="flex justify-left m-l-1%">
<el-button :type="statusMode === false ? 'primary' : 'danger'" @click="handleRefresh" size="small">{{ statusMode === false ?
'开始刷新' : '停止刷新' }}</el-button>
</div>
<div class="m-t-5" />
<div>
<el-table :data="tableData" style="width: 100%" border :row-style="{ height: '50px' }"
<el-table :data="tableData" style="width: 100%" border :row-style="{ height: '47.5px' }"
:header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<!-- <el-table-column type="selection" width="40" /> -->
<el-table-column property="number" label="序号" width="55" type="index" />
<el-table-column property="name" label="天线名称" show-overflow-tooltip />
<el-table-column property="targets[0].name" label="目标名称" show-overflow-tooltip />
<!-- <el-table-column property="distance" label="距离(km)" show-overflow-tooltip />
<el-table-column property="roundTripTime" label="往返光时(s)" show-overflow-tooltip />
......@@ -51,32 +50,30 @@
<el-table-column property="azimuthAngle" label="目标方位" show-overflow-tooltip />
<el-table-column property="elevationAngle" label="目标俯仰" show-overflow-tooltip />
<!-- <el-table-column property="targetDistance" label="目标距离" show-overflow-tooltip /> -->
<el-table-column property="windSpeed" label="风速(km/hr)" show-overflow-tooltip >
<!-- <template #default="scope">
{{ scope.row.windSpeed === '' ? '-' : scope.row.windSpeed }}
</template> -->
<el-table-column property="windSpeed" label="风速(km/hr)" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.windSpeed === '' ? '' : scope.row.windSpeed }}
</template>
</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>
<!-- <template #default="scope">
{{ scope.row.signals.length === 0 ? '-' : scope.row.signals[0].band }}
</template> -->
<template #default="scope">
{{ scope.row.signals.length === 0 ? '' : scope.row.signals[0].band }}
</template>
</el-table-column>
<el-table-column property="signals[0].power" label="上行发射功率" show-overflow-tooltip>
<!-- <template #default="scope">
{{ scope.row.signals.length === 0 ? '-' : scope.row.signals[0].power }}
</template> -->
<template #default="scope">
{{ scope.row.signals.length === 0 ? '' : scope.row.signals[0].power }}
</template>
</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>
<!-- <template #default="scope">
{{ scope.row.signals.length === 0 ? '-' : 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 property="signals[1].power" label="下行接收功率" show-overflow-tooltip>
<!-- <template #default="scope">
{{ scope.row.signals.length === 0 ? '-' : 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 property="dataTime" label="数据时间" show-overflow-tooltip /> -->
<el-table-column label="操作" width="60">
......@@ -87,14 +84,14 @@
</template>
</el-table-column>
</el-table>
<div class="pagination w-full flex flex-row-reverse pr-4 m-t-4">
<!-- <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">
<el-dialog v-model="detailVisibleValue" center width="765px" align-center @close="handleClose" draggable>
<el-dialog v-model="detailVisibleValue" center width="800px" align-center @close="handleClose" draggable>
<template #header>
<div class="text-center font-size-8">
详情
......@@ -104,18 +101,35 @@
<div>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="目标名称:" label-position="left">
<el-input v-model="targetName" />
<el-form-item label="天线名称:" label-position="left">
<el-input v-model="antennaName" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="风速(km/hr):" label-position="left">
<el-input v-model="windSpeed" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="距离(km):" label-position="left">
<el-input v-model="distance" />
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="目标名称:" label-position="left">
<el-input v-model="targetName" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="天线状态:" label-position="left">
<el-input v-model="antennaStatus" />
</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="roundTripTime" />
</el-form-item>
......@@ -124,7 +138,7 @@
<el-form-item label="站点名称:" label-position="left">
<el-input v-model="stationName" />
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row :gutter="20">
<el-col :span="12">
......@@ -138,40 +152,57 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<!-- <el-row :gutter="20"> -->
<!-- <el-col :span="12">
<el-form-item label="目标距离:" label-position="left">
<el-input v-model="targetDistance" />
</el-form-item>
</el-col>
<el-col :span="12">
</el-col> -->
<!-- <el-col :span="12">
<el-form-item label="风速(km/hr):" label-position="left">
<el-input v-model="windSpeed" />
</el-form-item>
</el-col>
</el-row>
</el-col> -->
<!-- </el-row> -->
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="上行信号状态:" label-position="left">
<el-input v-model="upSignalStatus" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上行信号来源:" label-position="left">
<el-input v-model="upSignalSource" />
</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="upSignalFrequencyBand" />
</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="upSignalLaunchPower" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <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">
......@@ -188,6 +219,13 @@
</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>
......@@ -197,31 +235,27 @@
<el-input v-model="recordTime" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
</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>
</el-row> -->
</div>
</el-form>
</el-dialog>
</div>
<exportDialog v-model:dialogVisible="showDeleteDialog" @confirm="handleExportConfirm" />
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import Pagination from '@/components/pagination/index.vue'
import exportDialog from '@/components/Export/index.vue'
import { getDsnList, getDsnDetail, deleteDsnData } from '@/api/spiderData'
import { getDsnList } from '@/api/spiderData'
const showDeleteDialog = ref(false)
const timeValue = ref('')
const statusMode = ref(false)
const detailVisibleValue = ref(false)
// 目标名称
const targetName = ref('')
......@@ -231,6 +265,10 @@ const distance = ref('')
const roundTripTime = ref('')
// 站点名称
const stationName = ref('')
// 天线名称
const antennaName = ref('')
// 天线状态
const antennaStatus = ref('')
// 目标方位
const targetAzimuth = ref('')
// 目标俯仰
......@@ -239,14 +277,18 @@ const targetElevation = ref('')
const targetDistance = ref('')
// 风速(km/hr)
const windSpeed = ref('')
// 上行信号状态
const upSignalStatus = ref('')
// 上行信号来源
const upSignalSource = ref('')
// 上行信号频段
const upSignalFrequencyBand = ref('')
// 上行发射功率
const upSignalLaunchPower = ref('')
// 下行信号状态
const downSignalStatus = ref('')
// 下行信号来源
const downSignalSignalSource = ref('')
const downSignalSource = ref('')
// 下行信号频段
const downSignalFrequencyBand = ref('')
// 下行接收功率
......@@ -257,10 +299,9 @@ const dataTime = ref('')
const recordTime = ref('')
// 是否暂停使用
const isSuspended = ref('')
const tableData = ref([
])
// 存放定时器的id
const timerId = ref<number | null>()
const tableData = ref([])
const pageObj = ref({
total: 10,
pageSize: 10,
......@@ -268,26 +309,56 @@ const pageObj = ref({
})
const handleDetails = (row: any) => {
console.log(row);
targetName.value = row.targets[0].name
windSpeed.value = row.windSpeed === '' ? '无' : row.windSpeed
antennaName.value = row.name
antennaStatus.value = row.activity
targetAzimuth.value = row.azimuthAngle
targetElevation.value = row.elevationAngle
upSignalStatus.value = row.signals.length < 1 ? '无' : row.signals[0].active
upSignalSource.value = row.signals.length < 1 ? '无' : row.targets[0].name
upSignalFrequencyBand.value = row.signals.length < 1 ? '无' : row.signals[0].band
upSignalLaunchPower.value = row.signals.length < 1 ? '无' : row.signals[0].power
downSignalStatus.value = row.signals.length < 2 ? '无' : row.signals[1].active
downSignalSource.value = row.signals.length < 2 ? '无' : row.targets[0].name
downSignalFrequencyBand.value = row.signals.length < 2 ? '无' : row.signals[1].band
downSignalReceptionPower.value = row.signals.length < 2 ? '无' : row.signals[1].power
roundTripTime.value = row.targets[0].rtlt
detailVisibleValue.value = true
}
const getData = async () => {
const res = await getDsnList({page:pageObj.value.pageNo,size:pageObj.value.pageSize})
console.log(res);
const res = await getDsnList({ page: pageObj.value.pageNo, size: pageObj.value.pageSize })
tableData.value = res.data.list[0].dishes
// pageObj.value.total = res.data[0].dishes.length
}
const handleClose = () => {
detailVisibleValue.value = false
}
const handleExportConfirm = () => {
}
const handleExport = () => {
showDeleteDialog.value = true
const handleRefresh = () => {
// 切换是否开始刷新的状态
statusMode.value = !statusMode.value
// 删除定时器
if (timerId.value !== null) {
clearInterval(timerId.value);
timerId.value = null;
}
// 开始刷新时重新设置一个定时器
if (statusMode.value) {
// 保存id删除的时候用
timerId.value = setInterval(async () => {
const res = await getDsnList({ page: pageObj.value.pageNo, size: pageObj.value.pageSize });
tableData.value = res.data.list[0].dishes;
}, 5000);
} else {
getData()
}
}
onMounted(() => {
onMounted(async () => {
// 进入页面时先删除定时器
if (timerId.value !== null) {
clearInterval(timerId.value);
}
statusMode.value = false
// 先获取一次
getData()
})
</script>
......
......@@ -7,7 +7,7 @@
</el-form-item>
<el-form-item>
<div>
<el-input placeholder="请输入" v-model="searchTargetName" style="width: 190px" />
<el-input placeholder="请输入" v-model="searchTargetName" style="width: 180px" />
</div>
</el-form-item>
<el-form-item>
......@@ -22,11 +22,12 @@
<el-text class="mx-1">SNS Notice ID:</el-text>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" v-model="searchTargetId" style="width: 180.5px" />
<el-input placeholder="请输入" v-model="searchTargetId" style="width: 170.5px" />
</el-form-item>
<el-form-item>
<el-space>
<el-button type="primary" @click="handleSearch">查询</el-button>
<el-button type="primary" @click="getData">重置表格</el-button>
</el-space>
</el-form-item>
</el-form>
......@@ -251,7 +252,7 @@
<!-- <el-row :gutter="20">
<el-col :span="24">
<el-form-item label="最新相关 BR IFIC 发布日期:" label-position="top">
<el-input v-model="BFIFICdate" />
<el-input v-model="BRIFICdate" />
</el-form-item>
</el-col>
</el-row> -->
......@@ -358,6 +359,8 @@ const handleDetails = async (id: any) => {
const getData = async () => {
const res = await getItuList({ page: pageObj.value.pageNo, size: pageObj.value.pageSize })
console.log(res);
searchTargetName.value = ''
searchTargetId.value = ''
pageObj.value.total = res.data.total
tableData.value = res.data.list
}
......@@ -369,7 +372,9 @@ const handleExportConfirm = () => {
}
const handleSearch = async () => {
const res = await getItuList({ sat_name: searchTargetName.value, ntc_id: searchTargetId.value, times: searchTimeValue.value , page: pageObj.value.pageNo, size: pageObj.value.pageSize })
tableData.value = res.data
// console.log(res);
pageObj.value.total = res.data.total
tableData.value = res.data.list
}
onMounted(() => {
getData()
......
......@@ -7,7 +7,7 @@
</el-form-item>
<el-form-item>
<div>
<el-input placeholder="请输入" style="width: 190px" />
<el-input placeholder="请输入" style="width: 180px" v-model="searchTargetName" />
</div>
</el-form-item>
<el-form-item>
......@@ -22,7 +22,7 @@
<el-text class="mx-1">NORAD CAT ID:</el-text>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" style="width: 180.5px" />
<el-input placeholder="请输入" style="width: 170.5px" v-model="noradCatId" />
</el-form-item>
<!-- <el-form-item>
<el-space>
......@@ -32,6 +32,7 @@
<el-form-item>
<el-space>
<el-button type="primary" @click="handleSearch">查询</el-button>
<el-button type="primary" @click="getData">重置表格</el-button>
</el-space>
</el-form-item>
</el-form>
......@@ -175,6 +176,8 @@ import Pagination from '@/components/pagination/index.vue'
import exportDialog from '@/components/Export/index.vue'
import { getStList, getStDetail, deleteStData } from '@/api/spiderData'
const searchTargetName = ref('')
const noradCatId = ref('')
const showDeleteDialog = ref(false)
const timeValue = ref('')
const detailVisibleValue = ref(false)
......@@ -234,7 +237,9 @@ const getData = async () => {
const res = await getStList({ page: pageObj.value.pageNo, size: pageObj.value.pageSize })
pageObj.value.total = res.data.total
tableData.value = res.data.list
// console.log(res);
noradCatId.value = ''
searchTargetName.value = ''
timeValue.value = ''
}
const handleClose = () => {
detailVisibleValue.value = false
......@@ -246,10 +251,10 @@ const handleExport = () => {
showDeleteDialog.value = true
}
const handleSearch = async () => {
console.log(timeValue.value);
const res = await getStList({ norad_cat_id: noradCatId.value, object_name: searchTargetName.value, times:timeValue.value })
tableData.value = res.data.list
pageObj.value.total = res.data.total
//const res = await getStlist({sat_name: targetName.value,ntc_id: snsId.value,times: timeValue.value})
// tableData.value = res.data
}
onMounted(() => {
getData()
......@@ -338,6 +343,4 @@ onMounted(() => {
.el-button:focus {
outline: none;
}
</style>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<div class="text-left p-4 ">
<div class="custom-style flex gap-4">
<el-segmented v-model="mode" :options="sizeOptions" style="margin-bottom: 1rem" size="default" />
<el-button type="primary" @click="handleExport" class="m-r-10">导出</el-button>
<el-button type="primary" @click="handleExport">导出</el-button>
</div>
</div>
<!-- 综合数据页面组件 -->
......@@ -34,6 +34,7 @@ import stDataTab from './components/stDataTab.vue'
import dsnDataTab from './components/dsnData/dsnTab.vue'
import exportDialog from '@/components/Export/index.vue'
// const
const mode = ref('DSN数据')
const showDeleteDialog = ref(false)
const sizeOptions = ['DSN数据', 'ITU数据', 'ST数据']
......
......@@ -107,7 +107,6 @@ const goToSTTaskRecordPage = () => {
}
const getData = async () => {
const res = await getAllSpiderTaskStatistics({})
console.log(res);
dsnTotalTaskNumber.value = res.data.dsn_now.totalCount
dsnTaskSuccessNumber.value = res.data.dsn_now.successCount
dsnTaskFailNumber.value = res.data.dsn_now.failCount
......
......@@ -48,10 +48,10 @@ import { ref, onMounted } from 'vue'
import Pagination from '@/components/pagination/index.vue'
import deleteDialog from '@/components/Delete/index.vue'
import addUserDialog from './components/addUserDialog.vue'
import { getUserList, addUser, deleteUser, updateUser, batchDeleteUser } from '@/api/user.ts'
import { getUserList } from '@/api/user.ts'
import { DeleteMode } from '@/components/Delete/enum.ts'
import { AddMode } from './components/enum.ts';
import { ElMessage } from 'element-plus'
const userId = ref<any>([])
const userIds = ref<any>()
const nickName = ref<string>('')
......@@ -78,7 +78,6 @@ const handleEdit = async (row: any) => {
userPassword.value = row.password
dialogVisible.value = true
userId.value = row.id
// console.log(row);
}
const handleDelete = async (row: any) => {
......@@ -88,8 +87,16 @@ const handleDelete = async (row: any) => {
console.log(userId.value);
}
const handleBatchDelete = async () => {
if(userIds.value == undefined){
ElMessage({
message: '请先选择要删除的用户',
type: 'warning'
})
return
}else{
deleteMode.value = DeleteMode.BATCH_DELETE
showDeleteDialog.value = true
}
}
const handleSelectionChange = (data: any) => {
let array = []
......@@ -97,8 +104,6 @@ const handleSelectionChange = (data: any) => {
array.push(data[i].id)
}
userIds.value = array
console.log(userIds.value);
}
const openAddUserDialog = () => {
......
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