Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fk-spider-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周田
fk-spider-web
Commits
ea172f23
Commit
ea172f23
authored
Jan 19, 2026
by
liucan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:修改状态监控数字显示格式
parent
e584b822
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
508 additions
and
472 deletions
+508
-472
formatExactLargeNum.ts
src/utils/formatExactLargeNum.ts
+16
-13
esDataTab.vue
src/views/os-dataDisplay/components/esDataTab.vue
+211
-211
dataCard.vue
src/views/os-status/components/dataCard.vue
+79
-70
taskCard.vue
src/views/os-status/components/taskCard.vue
+122
-100
index.vue
src/views/os-taskRecord/index.vue
+80
-78
No files found.
src/utils/formatExactLargeNum.ts
View file @
ea172f23
const
formatExactLargeNum
=
(
num
:
number
|
string
|
null
)
=>
{
if
(
num
===
null
||
num
===
undefined
)
return
""
;
if
(
typeof
num
!==
"number"
&&
typeof
num
!==
"string"
)
return
num
;
if
(
num
===
null
||
num
===
undefined
)
return
''
if
(
typeof
num
!==
'number'
&&
typeof
num
!==
'string'
)
return
num
const
parsedNum
=
typeof
num
===
"string"
?
Number
(
num
.
replace
(
/,/g
,
""
))
:
num
;
const
parsedNum
=
typeof
num
===
'string'
?
Number
(
num
.
replace
(
/,/g
,
''
))
:
num
if
(
isNaN
(
parsedNum
))
return
num
;
if
(
isNaN
(
parsedNum
))
return
num
// 如果大于 100 万 或大于 1 亿,使用科学计数法
if
(
Math
.
abs
(
parsedNum
)
>
1
_000_000
)
{
return
parsedNum
.
toExponential
(
2
);
const
absNum
=
Math
.
abs
(
parsedNum
)
if
(
absNum
>=
100
_000_000
)
{
return
(
parsedNum
/
100
_000_000
).
toFixed
(
2
)
+
'亿'
}
else
if
(
absNum
>=
10
_000
)
{
return
(
parsedNum
/
10
_000
).
toFixed
(
2
)
+
'万'
}
else
{
return
parsedNum
.
toLocaleString
(
"en-US"
,
{
return
parsedNum
.
toLocaleString
(
'en-US'
,
{
useGrouping
:
true
,
maximumFractionDigits
:
0
,
minimumFractionDigits
:
0
,
})
;
maximumFractionDigits
:
2
,
minimumFractionDigits
:
0
})
}
}
;
}
export
default
formatExactLargeNum
;
export
default
formatExactLargeNum
src/views/os-dataDisplay/components/esDataTab.vue
View file @
ea172f23
...
...
@@ -5,7 +5,7 @@
<div
class=
"left"
>
<div>
<span
style=
"color: white"
>
目标名称:
</span>
<el-input
placeholder=
"请输入目标名称
:
"
v-model=
"searchTargetName"
style=
"width: 180px"
/>
<el-input
placeholder=
"请输入目标名称"
v-model=
"searchTargetName"
style=
"width: 180px"
/>
</div>
<div>
<span
style=
"color: white"
>
采集时间:
</span>
...
...
@@ -54,12 +54,12 @@
<el-table-column
property=
"data.station"
label=
"站点名称"
width=
"88"
show-overflow-tooltip
/>
<el-table-column
property=
"data.distance"
label=
"距离"
show-overflow-tooltip
>
<template
#
default=
"scope"
>
{{
scope
.
row
.
data
.
distance
===
null
?
"-"
:
scope
.
row
.
data
.
distance
}}
{{
scope
.
row
.
data
.
distance
===
null
?
'-'
:
scope
.
row
.
data
.
distance
}}
</
template
>
</el-table-column>
<el-table-column
property=
"data.roundTripLightTime"
label=
"往返光时"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
scope
.
row
.
data
.
roundTripLightTime
===
null
?
"-"
:
scope
.
row
.
data
.
roundTripLightTime
}}
{{
scope
.
row
.
data
.
roundTripLightTime
===
null
?
'-'
:
scope
.
row
.
data
.
roundTripLightTime
}}
</
template
>
</el-table-column>
<el-table-column
property=
"data.boa"
label=
"行动开始时间"
show-overflow-tooltip
>
...
...
@@ -72,19 +72,19 @@
{{
formatTimestamp
(
scope
.
row
.
data
.
bot
)
}}
</
template
>
</el-table-column>
<el-table-column
property=
"data.plan_txt"
label=
"跟踪
结束
时间"
show-overflow-tooltip
>
<el-table-column
property=
"data.plan_txt"
label=
"跟踪
开始
时间"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
formatTimestamp
(
scope
.
row
.
data
.
eo
a
)
}}
{{
formatTimestamp
(
scope
.
row
.
data
.
eo
t
)
}}
</
template
>
</el-table-column>
<el-table-column
property=
"data.plan_txt"
label=
"跟踪
开始
时间"
show-overflow-tooltip
>
<el-table-column
property=
"data.plan_txt"
label=
"跟踪
结束
时间"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
formatTimestamp
(
scope
.
row
.
data
.
eo
t
)
}}
{{
formatTimestamp
(
scope
.
row
.
data
.
eo
a
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"目标在线状态"
width=
"110"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
scope
.
row
.
data
.
target
?.[
scope
.
row
.
data
.
mission
]
===
"true"
?
"是"
:
"否"
}}
{{
scope
.
row
.
data
.
target
?.[
scope
.
row
.
data
.
mission
]
===
'true'
?
'是'
:
'否'
}}
</
template
>
</el-table-column>
<el-table-column
property=
"crawl_time"
label=
"采集时间"
/>
...
...
@@ -137,11 +137,11 @@
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
目标尺寸:
</span>
<span
class=
"item"
>
{{ targetDimension ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetDimension ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
发射质量:
</span>
<span
class=
"item"
>
{{ targetLaunchMass ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetLaunchMass ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
干质量:
</span>
...
...
@@ -167,7 +167,7 @@
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
发射站点:
</span>
<span
class=
"item"
>
{{ targetLaunchLocation ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetLaunchLocation ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
轨道周期:
</span>
...
...
@@ -175,23 +175,23 @@
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
相关仪器:
</span>
<span
class=
"item"
>
{{ targetInstruments ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetInstruments ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
服役日期:
</span>
<span
class=
"item"
>
{{ targetServiceDate ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetServiceDate ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
是否为核心任务:
</span>
<span
class=
"item"
>
{{ targetIsCoreMission ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetIsCoreMission ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
太阳风速:
</span>
<span
class=
"item"
>
{{ targetSolarWindSpeed ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetSolarWindSpeed ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
太阳通量密度:
</span>
<span
class=
"item"
>
{{ targetSolarFluxDensity ??
"--"
}}
</span>
<span
class=
"item"
>
{{ targetSolarFluxDensity ??
'--'
}}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
轨道倾角:
</span>
...
...
@@ -270,7 +270,7 @@
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
站点气压:
</span>
<span
class=
"item"
>
{{ stationPressure ===
"" ? "--"
: stationPressure }}
</span>
<span
class=
"item"
>
{{ stationPressure ===
'' ? '--'
: stationPressure }}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
站点天气情况:
</span>
...
...
@@ -328,11 +328,11 @@
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
站点温度:
</span>
<span
class=
"item"
>
{{ stationTemperature ===
"" ? "--"
: stationTemperature }}
</span>
<span
class=
"item"
>
{{ stationTemperature ===
'' ? '--'
: stationTemperature }}
</span>
</div>
<div
class=
"info-item"
>
<span
class=
"item-title"
>
站点湿度:
</span>
<span
class=
"item"
>
{{ stationHumidity ===
"" ? "--"
: stationHumidity }}
</span>
<span
class=
"item"
>
{{ stationHumidity ===
'' ? '--'
: stationHumidity }}
</span>
</div>
</el-col>
</el-row>
...
...
@@ -348,307 +348,307 @@
</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
{
getESAList
,
getESAMissionDetail
,
getESAStationDetail
}
from
"@/api/spiderData"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
onMounted
,
ref
}
from
'vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
exportDialog
from
'@/components/Export/index.vue'
import
{
getESAList
,
getESAMissionDetail
,
getESAStationDetail
}
from
'@/api/spiderData'
import
{
ElMessage
}
from
'element-plus'
// ElConfigProvider 组件
import
{
ElConfigProvider
}
from
"element-plus"
;
import
{
ElConfigProvider
}
from
'element-plus'
// 引入中文包
import
zhCn
from
"element-plus/es/locale/lang/zh-cn"
;
import
TableSearch
from
"@/components/TableSearch.vue"
;
defineOptions
({
name
:
"Pagination"
});
import
zhCn
from
'element-plus/es/locale/lang/zh-cn'
import
TableSearch
from
'@/components/TableSearch.vue'
defineOptions
({
name
:
'Pagination'
})
// 更改分页文字
zhCn
.
el
.
pagination
.
total
=
"共 `{total} 条`"
;
zhCn
.
el
.
pagination
.
goto
=
"跳至"
;
zhCn
.
el
.
pagination
.
pagesize
=
"条/页"
;
zhCn
.
el
.
pagination
.
pageClassifier
=
"页"
;
zhCn
.
el
.
pagination
.
total
=
'共 `{total} 条`'
zhCn
.
el
.
pagination
.
goto
=
'跳至'
zhCn
.
el
.
pagination
.
pagesize
=
'条/页'
zhCn
.
el
.
pagination
.
pageClassifier
=
'页'
// 查找字段
const
searchTargetName
=
ref
(
""
);
const
searchTimeValue
=
ref
(
""
);
const
searchStation
=
ref
(
""
);
const
showDeleteDialog
=
ref
(
false
)
;
const
detailVisibleValue
=
ref
(
false
)
;
const
stationVisibleValue
=
ref
(
false
)
;
const
searchTargetName
=
ref
(
''
)
const
searchTimeValue
=
ref
(
''
)
const
searchStation
=
ref
(
''
)
const
showDeleteDialog
=
ref
(
false
)
const
detailVisibleValue
=
ref
(
false
)
const
stationVisibleValue
=
ref
(
false
)
// 目标详情信息
const
targetName
=
ref
(
""
);
const
targetName
=
ref
(
''
)
// 任务类型
const
targetMissionType
=
ref
(
""
);
const
targetMissionType
=
ref
(
''
)
// 目标运行轨道
const
targetOrbit
=
ref
(
""
);
const
targetOrbit
=
ref
(
''
)
// 目标尺寸
const
targetDimension
=
ref
(
""
);
const
targetDimension
=
ref
(
''
)
// 目标发射质量
const
targetLaunchMass
=
ref
(
""
);
const
targetLaunchMass
=
ref
(
''
)
// 目标干质量
const
targetDryMass
=
ref
(
""
);
const
targetDryMass
=
ref
(
''
)
// 近地点
const
targetPerigee
=
ref
(
""
);
const
targetPerigee
=
ref
(
''
)
// 远地点
const
targetApogee
=
ref
(
""
);
const
targetApogee
=
ref
(
''
)
// 目标功率
const
targetPower
=
ref
(
""
);
const
targetPower
=
ref
(
''
)
// 轨道倾角
const
targetInclination
=
ref
(
""
);
const
targetInclination
=
ref
(
''
)
// 轨道周期
const
targetPeriod
=
ref
(
""
);
const
targetPeriod
=
ref
(
''
)
// 发射日期
const
targetLaunchDate
=
ref
(
""
);
const
targetLaunchDate
=
ref
(
''
)
// 发射站点
const
targetLaunchLocation
=
ref
(
""
);
const
targetLaunchLocation
=
ref
(
''
)
// 相关仪器
const
targetInstruments
=
ref
(
""
);
const
targetInstruments
=
ref
(
''
)
// 服役日期
const
targetServiceDate
=
ref
(
""
);
const
targetServiceDate
=
ref
(
''
)
// 是否为核心任务
const
targetIsCoreMission
=
ref
(
""
);
const
targetIsCoreMission
=
ref
(
''
)
// 太阳风速
const
targetSolarWindSpeed
=
ref
(
""
);
const
targetSolarWindSpeed
=
ref
(
''
)
// 太阳通量密度
const
targetSolarFluxDensity
=
ref
(
""
);
const
targetSolarFluxDensity
=
ref
(
''
)
// 是否在仪表盘中显示
// const targetIsShowInDashboard = ref('')
// 目标类型
const
targetType
=
ref
(
""
);
const
targetType
=
ref
(
''
)
// 描述
const
targetDescription
=
ref
(
""
);
const
targetDescription
=
ref
(
''
)
// 站点详情信息
// 站点名称
const
stationName
=
ref
(
""
);
const
stationName
=
ref
(
''
)
// 站点所在国家
const
stationCountry
=
ref
(
""
);
const
stationCountry
=
ref
(
''
)
// 站点经度
const
stationLongitude
=
ref
(
""
);
const
stationLongitude
=
ref
(
''
)
// 站点纬度
const
stationLatitude
=
ref
(
""
);
const
stationLatitude
=
ref
(
''
)
// 站点海拔高度
const
stationAltitude
=
ref
(
""
);
const
stationAltitude
=
ref
(
''
)
// 站点直径
const
stationDiameter
=
ref
(
""
);
const
stationDiameter
=
ref
(
''
)
// 天线方位角速度
const
stationAzimuthSpeed
=
ref
(
""
);
const
stationAzimuthSpeed
=
ref
(
''
)
// 天线俯仰角速度
const
stationElevationSpeed
=
ref
(
""
);
const
stationElevationSpeed
=
ref
(
''
)
// 天线信号频段
const
stationBand
=
ref
(
""
);
const
stationBand
=
ref
(
''
)
// TMTC标准
const
stationTMTC
=
ref
(
""
);
const
stationTMTC
=
ref
(
''
)
// 信号频率与定时
const
stationFrequencyAndTiming
=
ref
(
""
);
const
stationFrequencyAndTiming
=
ref
(
''
)
// 天气
const
stationWeather
=
ref
(
""
);
const
stationWeather
=
ref
(
''
)
// 上行信号S频段极化
const
stationUplinkSPolarization
=
ref
(
""
);
const
stationUplinkSPolarization
=
ref
(
''
)
// 上行信号S频段等效全向辐射功率
const
stationUplinkSEirp
=
ref
(
""
);
const
stationUplinkSEirp
=
ref
(
''
)
// 上行信号X频段极化
const
stationUplinkXPolarization
=
ref
(
""
);
const
stationUplinkXPolarization
=
ref
(
''
)
// 上行信号X频段等效全向辐射功率
const
stationUplinkXEirp
=
ref
(
""
);
const
stationUplinkXEirp
=
ref
(
''
)
// 上行信号Ka频段极化
const
stationUplinkKaPolarization
=
ref
(
""
);
const
stationUplinkKaPolarization
=
ref
(
''
)
// 上行信号Ka频段等效全向辐射功率
const
stationUplinkKaEirp
=
ref
(
""
);
const
stationUplinkKaEirp
=
ref
(
''
)
// 下行信号S频段极化
const
stationDownlinkSPolarization
=
ref
(
""
);
const
stationDownlinkSPolarization
=
ref
(
''
)
// 下行信号S频段G/T比
const
stationDownlinkSGt
=
ref
(
""
);
const
stationDownlinkSGt
=
ref
(
''
)
// 下行信号X频段极化
const
stationDownlinkXPolarization
=
ref
(
""
);
const
stationDownlinkXPolarization
=
ref
(
''
)
// 下行信号X频段G/T比
const
stationDownlinkXGt
=
ref
(
""
);
const
stationDownlinkXGt
=
ref
(
''
)
// 下行信号Ka频段极化
const
stationDownlinkKaPolarization
=
ref
(
""
);
const
stationDownlinkKaPolarization
=
ref
(
''
)
// 下行信号Ka频段G/T比
const
stationDownlinkKaGt
=
ref
(
""
);
const
stationDownlinkKaGt
=
ref
(
''
)
// 温度
const
stationTemperature
=
ref
(
""
);
const
stationTemperature
=
ref
(
''
)
// 气压
const
stationPressure
=
ref
(
""
);
const
stationPressure
=
ref
(
''
)
// 湿度
const
stationHumidity
=
ref
(
""
);
const
stationHumidity
=
ref
(
''
)
// 站点类型
const
stationType
=
ref
(
""
);
const
stationType
=
ref
(
''
)
// 描述
const
stationDescription
=
ref
(
""
);
const
stationDescription
=
ref
(
''
)
// 查看esa站点详情的方法
const
handleStationDetails
=
async
(
id
:
any
)
=>
{
try
{
const
res
=
await
getESAStationDetail
({
name
:
id
})
;
const
res
=
await
getESAStationDetail
({
name
:
id
})
// 1. 初始化清空数据
stationName
.
value
=
""
;
stationCountry
.
value
=
""
;
stationLongitude
.
value
=
""
;
stationLatitude
.
value
=
""
;
stationAltitude
.
value
=
""
;
stationDiameter
.
value
=
""
;
stationAzimuthSpeed
.
value
=
""
;
stationElevationSpeed
.
value
=
""
;
stationBand
.
value
=
""
;
stationTMTC
.
value
=
""
;
stationFrequencyAndTiming
.
value
=
""
;
stationWeather
.
value
=
""
;
stationUplinkSPolarization
.
value
=
""
;
stationUplinkSEirp
.
value
=
""
;
stationUplinkXPolarization
.
value
=
""
;
stationUplinkXEirp
.
value
=
""
;
stationUplinkKaPolarization
.
value
=
""
;
stationUplinkKaEirp
.
value
=
""
;
stationDownlinkSPolarization
.
value
=
""
;
stationDownlinkSGt
.
value
=
""
;
stationDownlinkXPolarization
.
value
=
""
;
stationDownlinkXGt
.
value
=
""
;
stationDownlinkKaPolarization
.
value
=
""
;
stationDownlinkKaGt
.
value
=
""
;
stationTemperature
.
value
=
""
;
stationPressure
.
value
=
""
;
stationHumidity
.
value
=
""
;
stationType
.
value
=
""
;
stationDescription
.
value
=
""
;
stationName
.
value
=
''
stationCountry
.
value
=
''
stationLongitude
.
value
=
''
stationLatitude
.
value
=
''
stationAltitude
.
value
=
''
stationDiameter
.
value
=
''
stationAzimuthSpeed
.
value
=
''
stationElevationSpeed
.
value
=
''
stationBand
.
value
=
''
stationTMTC
.
value
=
''
stationFrequencyAndTiming
.
value
=
''
stationWeather
.
value
=
''
stationUplinkSPolarization
.
value
=
''
stationUplinkSEirp
.
value
=
''
stationUplinkXPolarization
.
value
=
''
stationUplinkXEirp
.
value
=
''
stationUplinkKaPolarization
.
value
=
''
stationUplinkKaEirp
.
value
=
''
stationDownlinkSPolarization
.
value
=
''
stationDownlinkSGt
.
value
=
''
stationDownlinkXPolarization
.
value
=
''
stationDownlinkXGt
.
value
=
''
stationDownlinkKaPolarization
.
value
=
''
stationDownlinkKaGt
.
value
=
''
stationTemperature
.
value
=
''
stationPressure
.
value
=
''
stationHumidity
.
value
=
''
stationType
.
value
=
''
stationDescription
.
value
=
''
// 2.判断 data 是否存在且非空
if
(
!
res
?.
data
?.
data
||
res
.
data
.
data
.
length
===
0
)
{
ElMessage
.
warning
(
"未查询到该站点的详细信息"
);
return
;
ElMessage
.
warning
(
'未查询到该站点的详细信息'
)
return
}
// 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
||
"--"
;
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
||
"--"
;
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
||
"--"
;
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
||
"--"
;
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
||
"--"
;
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
||
"--"
;
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
||
""
;
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
(
""
);
stationDescription
.
value
=
stationData
.
description
.
join
(
''
)
}
else
{
stationDescription
.
value
=
stationData
.
description
||
"--"
;
stationDescription
.
value
=
stationData
.
description
||
'--'
}
stationVisibleValue
.
value
=
true
;
stationVisibleValue
.
value
=
true
}
catch
(
error
)
{
ElMessage
.
error
(
"查询站点详情失败,请稍后重试"
);
console
.
error
(
"站点详情查询错误:"
,
error
);
ElMessage
.
error
(
'查询站点详情失败,请稍后重试'
)
console
.
error
(
'站点详情查询错误:'
,
error
)
}
}
;
}
const
tableData
=
ref
([])
;
const
tableData
=
ref
([])
const
pageObj
=
ref
({
total
:
0
,
pageSize
:
10
,
pageNo
:
1
,
})
;
pageNo
:
1
})
const
formatTimestamp
=
(
timestamp
:
any
)
=>
{
if
(
!
timestamp
||
typeof
timestamp
!==
"number"
||
timestamp
<=
0
)
{
return
"--"
;
if
(
!
timestamp
||
typeof
timestamp
!==
'number'
||
timestamp
<=
0
)
{
return
'--'
}
const
msTimestamp
=
String
(
timestamp
).
length
===
10
?
timestamp
*
1000
:
timestamp
;
const
date
=
new
Date
(
msTimestamp
)
;
const
msTimestamp
=
String
(
timestamp
).
length
===
10
?
timestamp
*
1000
:
timestamp
const
date
=
new
Date
(
msTimestamp
)
if
(
isNaN
(
date
.
getTime
()))
{
return
"--"
;
return
'--'
}
const
year
=
date
.
getFullYear
()
;
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
"0"
);
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
"0"
);
const
hour
=
String
(
date
.
getHours
()).
padStart
(
2
,
"0"
);
const
minute
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
"0"
);
const
second
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
"0"
);
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hour
}
:
${
minute
}
:
${
second
}
`
;
}
;
const
year
=
date
.
getFullYear
()
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
)
const
hour
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
)
const
minute
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
)
const
second
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
)
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hour
}
:
${
minute
}
:
${
second
}
`
}
// 查看esa任务详情的方法
const
handleMissionDetails
=
async
(
id
:
any
)
=>
{
const
res
=
await
getESAMissionDetail
({
name
:
id
})
;
const
res
=
await
getESAMissionDetail
({
name
:
id
})
// 防止残留数据
targetDescription
.
value
=
""
;
targetDescription
.
value
=
''
// 字段赋值
targetName
.
value
=
res
.
data
.
data
[
0
].
name
;
targetMissionType
.
value
=
res
.
data
.
data
[
0
].
type
;
targetOrbit
.
value
=
res
.
data
.
data
[
0
].
orbitsAround
;
targetDimension
.
value
=
res
.
data
.
data
[
0
].
dimensions
;
targetLaunchMass
.
value
=
res
.
data
.
data
[
0
].
launchMass
;
targetDryMass
.
value
=
res
.
data
.
data
[
0
].
dryMass
;
targetPerigee
.
value
=
res
.
data
.
data
[
0
].
perigee
;
targetApogee
.
value
=
res
.
data
.
data
[
0
].
apogee
;
targetPower
.
value
=
res
.
data
.
data
[
0
].
power
;
targetInclination
.
value
=
res
.
data
.
data
[
0
].
inclination
;
targetLaunchDate
.
value
=
formatTimestamp
(
res
.
data
.
data
[
0
].
launchDate
)
;
targetLaunchLocation
.
value
=
res
.
data
.
data
[
0
].
launchSite
;
targetPeriod
.
value
=
res
.
data
.
data
[
0
].
period
;
targetInstruments
.
value
=
res
.
data
.
data
[
0
].
instruments
;
targetServiceDate
.
value
=
formatTimestamp
(
res
.
data
.
data
[
0
].
enteredService
)
;
targetIsCoreMission
.
value
=
res
.
data
.
data
[
0
].
coreMission
;
targetSolarWindSpeed
.
value
=
res
.
data
.
data
[
0
].
solarWindSpeed
;
targetSolarFluxDensity
.
value
=
res
.
data
.
data
[
0
].
solarFluxDensity
;
targetName
.
value
=
res
.
data
.
data
[
0
].
name
targetMissionType
.
value
=
res
.
data
.
data
[
0
].
type
targetOrbit
.
value
=
res
.
data
.
data
[
0
].
orbitsAround
targetDimension
.
value
=
res
.
data
.
data
[
0
].
dimensions
targetLaunchMass
.
value
=
res
.
data
.
data
[
0
].
launchMass
targetDryMass
.
value
=
res
.
data
.
data
[
0
].
dryMass
targetPerigee
.
value
=
res
.
data
.
data
[
0
].
perigee
targetApogee
.
value
=
res
.
data
.
data
[
0
].
apogee
targetPower
.
value
=
res
.
data
.
data
[
0
].
power
targetInclination
.
value
=
res
.
data
.
data
[
0
].
inclination
targetLaunchDate
.
value
=
formatTimestamp
(
res
.
data
.
data
[
0
].
launchDate
)
targetLaunchLocation
.
value
=
res
.
data
.
data
[
0
].
launchSite
targetPeriod
.
value
=
res
.
data
.
data
[
0
].
period
targetInstruments
.
value
=
res
.
data
.
data
[
0
].
instruments
targetServiceDate
.
value
=
formatTimestamp
(
res
.
data
.
data
[
0
].
enteredService
)
targetIsCoreMission
.
value
=
res
.
data
.
data
[
0
].
coreMission
targetSolarWindSpeed
.
value
=
res
.
data
.
data
[
0
].
solarWindSpeed
targetSolarFluxDensity
.
value
=
res
.
data
.
data
[
0
].
solarFluxDensity
for
(
let
i
=
0
;
i
<
res
.
data
.
data
[
0
].
description
.
length
;
i
++
)
{
targetDescription
.
value
+=
res
.
data
.
data
[
0
].
description
[
i
]
;
targetDescription
.
value
+=
res
.
data
.
data
[
0
].
description
[
i
]
}
detailVisibleValue
.
value
=
true
;
}
;
detailVisibleValue
.
value
=
true
}
//表格loading标记
const
tableLoading
=
ref
(
false
)
;
const
tableLoading
=
ref
(
false
)
//重置搜索条件
const
resetForm
=
()
=>
{
searchStation
.
value
=
""
;
searchTargetName
.
value
=
""
;
searchTimeValue
.
value
=
""
;
getData
()
;
}
;
searchStation
.
value
=
''
searchTargetName
.
value
=
''
searchTimeValue
.
value
=
''
getData
()
}
// 获取esa数据列表的方法
const
getData
=
async
()
=>
{
tableLoading
.
value
=
true
;
tableLoading
.
value
=
true
const
res
=
await
getESAList
({
spacecraft
:
searchTargetName
.
value
,
station
:
searchStation
.
value
,
times
:
searchTimeValue
.
value
,
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
,
})
;
pageObj
.
value
.
total
=
res
.
data
.
total
;
tableData
.
value
=
res
.
data
.
list
;
tableLoading
.
value
=
false
;
}
;
size
:
pageObj
.
value
.
pageSize
})
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
tableLoading
.
value
=
false
}
const
handleClose
=
()
=>
{
detailVisibleValue
.
value
=
false
;
}
;
detailVisibleValue
.
value
=
false
}
onMounted
(()
=>
{
getData
()
;
})
;
getData
()
})
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
@@ -668,7 +668,7 @@ onMounted(() => {
/* 工具栏样式 */
.toolbarStyle
{
background-image
:
url(
"@/assets/picture/box3.png"
)
;
background-image
:
url(
'@/assets/picture/box3.png'
)
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
}
...
...
src/views/os-status/components/dataCard.vue
View file @
ea172f23
...
...
@@ -9,21 +9,21 @@
<div
class=
"wordStyle"
>
<span>
总数据量(条):
</span>
<span
class=
"total-num"
v-if=
"totalDataNumber !== null"
>
{{
formatExactLargeNum
(
totalDataNumber
)
??
"--"
formatExactLargeNum
(
totalDataNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
采集的页面数量(个):
</span>
<span
class=
"total-num"
v-if=
"totalPageNumber !== null"
>
{{
formatExactLargeNum
(
totalPageNumber
)
??
"--"
}}
</span
{{
formatExactLargeNum
(
totalPageNumber
)
??
'--'
}}
</span
>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
采集的目标数量(个):
</span>
<span
class=
"total-num"
v-if=
"totalTargetNumber !== null"
>
{{
formatExactLargeNum
(
totalTargetNumber
)
??
"--"
}}
</span
{{
formatExactLargeNum
(
totalTargetNumber
)
??
'--'
}}
</span
>
<span
class=
"loading"
v-else
></span>
</div>
...
...
@@ -36,17 +36,12 @@
<div
class=
"items"
>
<div
class=
"wordStyle"
>
<span>
任务执行成功统计(个):
</span>
<span
class=
"total-num"
v-if=
"successTask !== null"
>
{{
formatExactLargeNum
(
successTask
)
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"successTask !== null"
>
{{
formatExactLargeNum
(
successTask
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行失败统计(个):
</span>
<span
class=
"total-num"
v-if=
"failTask !== null"
>
{{
formatExactLargeNum
(
failTask
)
??
"--"
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务异常数统计(个):
</span>
<span
class=
"total-num"
v-if=
"unusualTask !== null"
>
{{
formatExactLargeNum
(
unusualTask
)
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"failTask !== null"
>
{{
formatExactLargeNum
(
failTask
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
</div>
...
...
@@ -58,17 +53,16 @@
<div
class=
"items"
>
<div
class=
"wordStyle"
>
<span>
平均成功率:
</span>
<span
class=
"total-num"
v-if=
"speed !== null"
>
{{
speed
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"speed !== null"
>
{{
`${Number(Math.floor(speed * 100) / 100).toFixed(2)
}
%`
}}
<
/spa
n
>
<
span
class
=
"loading"
v
-
else
><
/span
>
<
/div
>
<
div
class
=
"wordStyle"
>
<
span
>
平均错误率
:
<
/span
>
<span
class=
"total-num"
v-if=
"errorRate !== null"
>
{{
errorRate
??
"--"
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
平均异常率:
</span>
<span
class=
"total-num"
v-if=
"unusualRate !== null"
>
{{
unusualRate
??
"--"
}}
</span>
<
span
class
=
"total-num"
v
-
if
=
"errorRate !== null"
>
{{
`${Number(Math.ceil(errorRate * 100) / 100).toFixed(2)
}
%`
}}
<
/span
>
<
span
class
=
"loading"
v
-
else
><
/span
>
<
/div
>
<
/div
>
...
...
@@ -77,73 +71,73 @@
<
/template
>
<
script
lang
=
"ts"
setup
>
import
{
useRouter
}
from
"vue-router"
;
import
{
getStatsDataList
,
getSpiderTaskList
,
getPerformanceList
}
from
"@/api/staticData"
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
formatExactLargeNum
from
"@/utils/formatExactLargeNum"
;
import
{
useSlideStateStore
}
from
"@/store/slideState"
;
import
{
storeToRefs
}
from
"pinia"
;
const
slideStateStore
=
useSlideStateStore
()
;
const
{
slideState
}
=
storeToRefs
(
slideStateStore
)
;
const
router
=
useRouter
()
;
const
totalDataNumber
=
ref
(
null
)
;
const
totalPageNumber
=
ref
(
null
)
;
const
totalTargetNumber
=
ref
(
null
)
;
const
successTask
=
ref
(
null
)
;
const
failTask
=
ref
(
null
)
;
const
unusualTask
=
ref
(
null
)
;
const
speed
=
ref
(
null
)
;
const
errorRate
=
ref
(
null
)
;
const
unusualRate
=
ref
(
null
)
;
import
{
useRouter
}
from
'vue-router'
import
{
getStatsDataList
,
getSpiderTaskList
,
getPerformanceList
}
from
'@/api/staticData'
import
{
onMounted
,
ref
}
from
'vue'
import
formatExactLargeNum
from
'@/utils/formatExactLargeNum'
import
{
useSlideStateStore
}
from
'@/store/slideState'
import
{
storeToRefs
}
from
'pinia'
const
slideStateStore
=
useSlideStateStore
()
const
{
slideState
}
=
storeToRefs
(
slideStateStore
)
const
router
=
useRouter
()
const
totalDataNumber
=
ref
(
null
)
const
totalPageNumber
=
ref
(
null
)
const
totalTargetNumber
=
ref
(
null
)
const
successTask
=
ref
(
null
)
const
failTask
=
ref
(
null
)
const
unusualTask
=
ref
(
null
)
const
speed
=
ref
(
null
)
const
errorRate
=
ref
(
null
)
const
unusualRate
=
ref
(
null
)
const
goToAllDataPage
=
()
=>
{
router
.
push
({
path
:
"/osDataDisplay/list"
,
path
:
'/osDataDisplay/list'
,
query
:
{
jump
:
"yes"
,
mode
:
"DSN数据"
,
}
,
})
;
}
;
jump
:
'yes'
,
mode
:
'DSN数据'
}
}
)
}
const
goToTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
"/osTaskRecord/list"
,
path
:
'/osTaskRecord/list'
,
query
:
{
jump
:
"yes"
,
mode
:
"状态监控"
,
}
,
})
;
}
;
jump
:
'yes'
,
mode
:
'状态监控'
}
}
)
}
// 获取数据统计数据的方法
const
getData
=
async
()
=>
{
const
staticData
=
await
getStatsDataList
({})
;
const
spiderTask
=
await
getSpiderTaskList
({})
;
const
performance
=
await
getPerformanceList
({})
;
totalDataNumber
.
value
=
staticData
.
data
.
totalData
;
totalPageNumber
.
value
=
staticData
.
data
.
ituPage
;
totalTargetNumber
.
value
=
staticData
.
data
.
spaceTrackItemCount
;
successTask
.
value
=
spiderTask
.
data
.
successCount
;
failTask
.
value
=
spiderTask
.
data
.
failCount
;
unusualTask
.
value
=
spiderTask
.
data
.
exceptionCount
;
speed
.
value
=
performance
.
data
.
success
;
errorRate
.
value
=
performance
.
data
.
error
;
unusualRate
.
value
=
performance
.
data
.
exception
;
}
;
const
staticData
=
await
getStatsDataList
({
}
)
const
spiderTask
=
await
getSpiderTaskList
({
}
)
const
performance
=
await
getPerformanceList
({
}
)
totalDataNumber
.
value
=
staticData
.
data
.
totalData
totalPageNumber
.
value
=
staticData
.
data
.
ituPage
totalTargetNumber
.
value
=
staticData
.
data
.
spaceTrackItemCount
successTask
.
value
=
spiderTask
.
data
.
successCount
failTask
.
value
=
spiderTask
.
data
.
failCount
unusualTask
.
value
=
spiderTask
.
data
.
exceptionCount
speed
.
value
=
performance
.
data
.
success
errorRate
.
value
=
performance
.
data
.
error
unusualRate
.
value
=
performance
.
data
.
exception
}
//sidebarStatus
onMounted
(()
=>
{
getData
()
;
})
;
getData
()
}
)
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
dataCard
{
background-image
:
url(
"@/assets/picture/box2.png"
)
;
background
-
image
:
url
(
'@/assets/picture/box2.png'
);
background
-
size
:
100
%
100
%
;
background
-
repeat
:
no
-
repeat
;
// background: #c6ebfc;
...
...
@@ -221,22 +215,37 @@ onMounted(() => {
aspect
-
ratio
:
2
;
margin
-
right
:
30
px
;
--
_g
:
no
-
repeat
radial
-
gradient
(
circle
closest
-
side
,
#
4
edaff
90
%
,
#
0000
);
background
:
var
(
--_g
)
0%
50%
,
var
(
--_g
)
50%
50%
,
var
(
--_g
)
100%
50%
;
background
:
var
(
--
_g
)
0
%
50
%
,
var
(
--
_g
)
50
%
50
%
,
var
(
--
_g
)
100
%
50
%
;
background
-
size
:
calc
(
100
%
/ 3
)
50%
;
animation
:
l3
1
s
infinite
linear
;
}
@
keyframes
l3
{
20
%
{
background-position
:
0%
0%
,
50%
50%
,
100%
50%
;
background
-
position
:
0
%
0
%
,
50
%
50
%
,
100
%
50
%
;
}
40
%
{
background-position
:
0%
100%
,
50%
0%
,
100%
50%
;
background
-
position
:
0
%
100
%
,
50
%
0
%
,
100
%
50
%
;
}
60
%
{
background-position
:
0%
50%
,
50%
100%
,
100%
0%
;
background
-
position
:
0
%
50
%
,
50
%
100
%
,
100
%
0
%
;
}
80
%
{
background-position
:
0%
50%
,
50%
50%
,
100%
100%
;
background
-
position
:
0
%
50
%
,
50
%
50
%
,
100
%
100
%
;
}
}
<
/style
>
src/views/os-status/components/taskCard.vue
View file @
ea172f23
...
...
@@ -9,27 +9,27 @@
<div
class=
"wordStyle"
>
<span>
DSN爬虫任务数(个):
</span>
<span
class=
"total-num"
v-if=
"dsnTotalTaskNumber !== null"
>
{{
formatExactLargeNum
(
dsnTotalTaskNumber
)
??
"--"
formatExactLargeNum
(
dsnTotalTaskNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行成功统计(个):
</span>
<span
class=
"total-num"
v-if=
"dsnTaskSuccessNumber !== null"
>
{{
formatExactLargeNum
(
dsnTaskSuccessNumber
)
??
"--"
formatExactLargeNum
(
dsnTaskSuccessNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行失败统计(个):
</span>
<span
class=
"total-num"
v-if=
"dsnTaskFailNumber !== null"
>
{{
formatExactLargeNum
(
dsnTaskFailNumber
)
??
"--"
formatExactLargeNum
(
dsnTaskFailNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
错误率:
</span>
<span
class=
"total-num"
v-if=
"dsnErrorRate !== null"
>
{{
dsnErrorRate
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"dsnErrorRate !== null"
>
{{
Number
(
dsnErrorRate
).
toFixed
(
2
)
+
'%'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
</div>
...
...
@@ -42,27 +42,27 @@
<div
class=
"wordStyle"
>
<span>
ITU爬虫任务数(个):
</span>
<span
class=
"total-num"
v-if=
"ituTotalTaskNumber !== null"
>
{{
formatExactLargeNum
(
ituTotalTaskNumber
)
??
"--"
formatExactLargeNum
(
ituTotalTaskNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
ITU爬取成功数据
统计(个):
</span>
<span>
任务执行成功
统计(个):
</span>
<span
class=
"total-num"
v-if=
"ituTaskSuccessNumber !== null"
>
{{
formatExactLargeNum
(
ituTaskSuccessNumber
)
??
"--"
formatExactLargeNum
(
ituTaskSuccessNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
ITU爬取失败数据
统计(个):
</span>
<span>
任务执行失败
统计(个):
</span>
<span
class=
"total-num"
v-if=
"ituTaskFailNumber !== null"
>
{{
formatExactLargeNum
(
ituTaskFailNumber
)
??
"--"
formatExactLargeNum
(
ituTaskFailNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
错误率:
</span>
<span
class=
"total-num"
v-if=
"ituErrorRate !== null"
>
{{
ituErrorRate
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"ituErrorRate !== null"
>
{{
Number
(
ituErrorRate
).
toFixed
(
2
)
+
'%'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
</div>
...
...
@@ -75,27 +75,27 @@
<div
class=
"wordStyle"
>
<span>
ST爬虫任务数(个):
</span>
<span
class=
"total-num"
v-if=
"stTotalTaskNumber !== null"
>
{{
formatExactLargeNum
(
stTotalTaskNumber
)
??
"--"
formatExactLargeNum
(
stTotalTaskNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行成功统计(个):
</span>
<span
class=
"total-num"
v-if=
"stTaskSuccessNumber !== null"
>
{{
formatExactLargeNum
(
stTaskSuccessNumber
)
??
"--"
formatExactLargeNum
(
stTaskSuccessNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行失败统计(个):
</span>
<span
class=
"total-num"
v-if=
"stTaskFailNumber !== null"
>
{{
formatExactLargeNum
(
stTaskFailNumber
)
??
"--"
formatExactLargeNum
(
stTaskFailNumber
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
错误率:
</span>
<span
class=
"total-num"
v-if=
"stErrorRate !== null"
>
{{
stErrorRate
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"stErrorRate !== null"
>
{{
Number
(
stErrorRate
).
toFixed
(
2
)
+
'%'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
</div>
...
...
@@ -107,24 +107,24 @@
<div
class=
"items"
>
<div
class=
"wordStyle"
>
<span>
ESA爬虫任务数(个):
</span>
<span
class=
"total-num"
v-if=
"esaTotalCount !== null"
>
{{
formatExactLargeNum
(
esaTotalCount
)
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"esaTotalCount !== null"
>
{{
formatExactLargeNum
(
esaTotalCount
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行成功统计(个):
</span>
<span
class=
"total-num"
v-if=
"esaSuccessCount !== null"
>
{{
formatExactLargeNum
(
esaSuccessCount
)
??
"--"
formatExactLargeNum
(
esaSuccessCount
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
任务执行失败统计(个):
</span>
<span
class=
"total-num"
v-if=
"esaFailCount !== null"
>
{{
formatExactLargeNum
(
esaFailCount
)
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"esaFailCount !== null"
>
{{
formatExactLargeNum
(
esaFailCount
)
??
'--'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
<div
class=
"wordStyle"
>
<span>
错误率:
</span>
<span
class=
"total-num"
v-if=
"esaErrorRate !== null"
>
{{
esaErrorRate
??
"--"
}}
</span>
<span
class=
"total-num"
v-if=
"esaErrorRate !== null"
>
{{
Number
(
esaErrorRate
).
toFixed
(
2
)
+
'%'
}}
</span>
<span
class=
"loading"
v-else
></span>
</div>
</div>
...
...
@@ -133,109 +133,116 @@
</
template
>
<
script
lang=
"ts"
setup
>
import
{
useRouter
}
from
"vue-router"
;
import
{
getAllSpiderTaskStatistics
}
from
"@/api/staticData"
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
{
getAllTaskStatistics
,
getSpiderTaskList
}
from
"@/api/spiderTask"
;
import
{
useSlideStateStore
}
from
"@/store/slideState"
;
import
{
storeToRefs
}
from
"pinia"
;
import
formatExactLargeNum
from
"@/utils/formatExactLargeNum"
;
import
{
useRouter
}
from
'vue-router'
import
{
getAllSpiderTaskStatistics
}
from
'@/api/staticData'
import
{
onMounted
,
ref
}
from
'vue'
import
{
getAllTaskStatistics
,
getSpiderTaskList
}
from
'@/api/spiderTask'
import
{
useSlideStateStore
}
from
'@/store/slideState'
import
{
storeToRefs
}
from
'pinia'
import
formatExactLargeNum
from
'@/utils/formatExactLargeNum'
const
slideStateStore
=
useSlideStateStore
()
;
const
{
slideState
}
=
storeToRefs
(
slideStateStore
)
;
const
slideStateStore
=
useSlideStateStore
()
const
{
slideState
}
=
storeToRefs
(
slideStateStore
)
const
router
=
useRouter
()
;
const
router
=
useRouter
()
const
dsnTotalTaskNumber
=
ref
(
null
)
;
const
dsnTaskSuccessNumber
=
ref
(
null
)
;
const
dsnTaskFailNumber
=
ref
(
null
)
;
const
dsnErrorRate
=
ref
(
null
)
;
const
ituTotalTaskNumber
=
ref
(
null
)
;
const
ituTaskSuccessNumber
=
ref
(
null
)
;
const
ituTaskFailNumber
=
ref
(
null
)
;
const
ituErrorRate
=
ref
(
null
)
;
const
stTotalTaskNumber
=
ref
(
null
)
;
const
stTaskSuccessNumber
=
ref
(
null
)
;
const
stTaskFailNumber
=
ref
(
null
)
;
const
stErrorRate
=
ref
(
null
)
;
const
esaTotalCount
=
ref
(
null
)
;
const
esaSuccessCount
=
ref
(
null
)
;
const
esaErrorRate
=
ref
(
null
)
;
const
esaFailCount
=
ref
(
null
)
;
const
dsnTotalTaskNumber
=
ref
(
null
)
const
dsnTaskSuccessNumber
=
ref
(
null
)
const
dsnTaskFailNumber
=
ref
(
null
)
const
dsnErrorRate
=
ref
(
null
)
const
ituTotalTaskNumber
=
ref
(
null
)
const
ituTaskSuccessNumber
=
ref
(
null
)
const
ituTaskFailNumber
=
ref
(
null
)
const
ituErrorRate
=
ref
(
null
)
const
stTotalTaskNumber
=
ref
(
null
)
const
stTaskSuccessNumber
=
ref
(
null
)
const
stTaskFailNumber
=
ref
(
null
)
const
stErrorRate
=
ref
(
null
)
const
esaTotalCount
=
ref
(
null
)
const
esaSuccessCount
=
ref
(
null
)
const
esaErrorRate
=
ref
(
null
)
const
esaFailCount
=
ref
(
null
)
const
goToDSNTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
"/osTaskInformation/list"
,
path
:
'/osTaskInformation/list'
,
query
:
{
spiderType
:
"dsn_now"
,
jump
:
"yes"
,
page
:
"statusMonitor"
,
}
,
})
;
}
;
spiderType
:
'dsn_now'
,
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
const
goToITUTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
"/osTaskInformation/list"
,
path
:
'/osTaskInformation/list'
,
query
:
{
spiderType
:
"itu_space_explorer"
,
jump
:
"yes"
,
page
:
"statusMonitor"
,
}
,
})
;
}
;
spiderType
:
'itu_space_explorer'
,
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
const
goToSTTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
"/osTaskInformation/list"
,
path
:
'/osTaskInformation/list'
,
query
:
{
spiderType
:
"space_track"
,
jump
:
"yes"
,
page
:
"statusMonitor"
,
}
,
})
;
}
;
spiderType
:
'space_track'
,
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
const
goToESATaskRecordPage
=
()
=>
{
router
.
push
({
path
:
"/osTaskInformation/list"
,
path
:
'/osTaskInformation/list'
,
query
:
{
spiderType
:
"es_track_transmission"
,
jump
:
"yes"
,
page
:
"statusMonitor"
,
}
,
})
;
}
;
spiderType
:
'es_track_transmission'
,
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
// 获取任务统计数据的方法
const
getData
=
async
()
=>
{
const
res
=
await
getAllSpiderTaskStatistics
({});
const
stTask
=
await
getSpiderTaskList
({
spiders
:
"itu_space_explorer"
});
const
allTask
=
await
getAllTaskStatistics
();
const
res
=
await
getAllSpiderTaskStatistics
({})
const
tasks
=
[
getSpiderTaskList
({
spiders
:
'itu_space_explorer'
}),
getSpiderTaskList
({
spiders
:
'dsn_now'
}),
getSpiderTaskList
({
spiders
:
'es_track_transmission'
}),
getSpiderTaskList
({
spiders
:
'space_track'
})
]
const
[
ituTask
,
dsnTask
,
esaTask
,
stTask
]
=
await
Promise
.
all
(
tasks
)
const
allTask
=
await
getAllTaskStatistics
()
dsnTotalTaskNumber
.
value
=
allTask
.
data
.
dsn_now
.
totalCount
;
dsnTaskSuccessNumber
.
value
=
res
.
data
.
dsn_now
.
successCount
;
dsnTaskFailNumber
.
value
=
res
.
data
.
dsn_now
.
failCount
;
dsnErrorRate
.
value
=
res
.
data
.
dsn_now
.
errorRate
;
ituTotalTaskNumber
.
value
=
allTask
.
data
.
itu_space_explorer
?.
totalCount
;
ituTaskSuccessNumber
.
value
=
res
.
data
.
itu_space_explorer
?.
successCount
;
ituTaskFailNumber
.
value
=
res
.
data
.
itu_space_explorer
?.
failCount
;
ituErrorRate
.
value
=
res
.
data
.
itu_space_explorer
?.
errorRate
;
stTotalTaskNumber
.
value
=
allTask
.
data
.
space_track
?.
totalCount
;
stTaskSuccessNumber
.
value
=
res
.
data
.
space_track
?.
successCount
;
stTaskFailNumber
.
value
=
res
.
data
.
space_track
?.
failCount
;
stErrorRate
.
value
=
res
.
data
.
space_track
?.
errorRate
;
esaTotalCount
.
value
=
res
.
data
.
es_track_transmission
?.
totalCount
;
esaSuccessCount
.
value
=
res
.
data
.
es_track_transmission
?.
successCount
;
esaFailCount
.
value
=
res
.
data
.
es_track_transmission
?.
failCount
;
esaErrorRate
.
value
=
res
.
data
.
es_track_transmission
?.
errorRate
;
}
;
dsnTotalTaskNumber
.
value
=
dsnTask
.
data
.
length
dsnTaskSuccessNumber
.
value
=
res
.
data
.
dsn_now
.
successCount
dsnTaskFailNumber
.
value
=
res
.
data
.
dsn_now
.
failCount
dsnErrorRate
.
value
=
res
.
data
.
dsn_now
.
errorRate
ituTotalTaskNumber
.
value
=
ituTask
.
data
.
length
ituTaskSuccessNumber
.
value
=
res
.
data
.
itu_space_explorer
?.
successCount
ituTaskFailNumber
.
value
=
res
.
data
.
itu_space_explorer
?.
failCount
ituErrorRate
.
value
=
res
.
data
.
itu_space_explorer
?.
errorRate
stTotalTaskNumber
.
value
=
stTask
.
data
.
length
stTaskSuccessNumber
.
value
=
res
.
data
.
space_track
?.
successCount
stTaskFailNumber
.
value
=
res
.
data
.
space_track
?.
failCount
stErrorRate
.
value
=
res
.
data
.
space_track
?.
errorRate
esaTotalCount
.
value
=
esaTask
.
data
.
length
esaSuccessCount
.
value
=
res
.
data
.
es_track_transmission
?.
successCount
esaFailCount
.
value
=
res
.
data
.
es_track_transmission
?.
failCount
esaErrorRate
.
value
=
res
.
data
.
es_track_transmission
?.
errorRate
}
onMounted
(()
=>
{
getData
()
;
})
;
getData
()
})
</
script
>
<
style
lang=
"scss"
scoped
>
.dataCard
{
background-image
:
url(
"@/assets/picture/box2.png"
)
;
background-image
:
url(
'@/assets/picture/box2.png'
)
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
width
:
275px
;
...
...
@@ -298,22 +305,37 @@ onMounted(() => {
aspect-ratio
:
2
;
margin-right
:
30px
;
--_g
:
no-repeat
radial-gradient
(
circle
closest-side
,
#4edaff
90%
,
#0000
);
background
:
var
(
--_g
)
0%
50%
,
var
(
--_g
)
50%
50%
,
var
(
--_g
)
100%
50%
;
background
:
var
(
--_g
)
0%
50%
,
var
(
--_g
)
50%
50%
,
var
(
--_g
)
100%
50%
;
background-size
:
calc
(
100%
/
3
)
50%
;
animation
:
l3
1s
infinite
linear
;
}
@keyframes
l3
{
20
%
{
background-position
:
0%
0%
,
50%
50%
,
100%
50%
;
background-position
:
0%
0%
,
50%
50%
,
100%
50%
;
}
40
%
{
background-position
:
0%
100%
,
50%
0%
,
100%
50%
;
background-position
:
0%
100%
,
50%
0%
,
100%
50%
;
}
60
%
{
background-position
:
0%
50%
,
50%
100%
,
100%
0%
;
background-position
:
0%
50%
,
50%
100%
,
100%
0%
;
}
80
%
{
background-position
:
0%
50%
,
50%
50%
,
100%
100%
;
background-position
:
0%
50%
,
50%
50%
,
100%
100%
;
}
}
...
...
src/views/os-taskRecord/index.vue
View file @
ea172f23
...
...
@@ -50,27 +50,32 @@
:cell-style="{ textAlign: 'center' }"
>
<el-table-column
property=
"number"
label=
"序号"
width=
"55"
type=
"index"
/>
<el-table-column
label=
"任务名称"
show-overflow-tooltip
>
<template
#
default=
"scope"
>
{{
JSON
.
parse
(
scope
.
row
.
options
).
jobName
}}
</
template
>
</el-table-column>
<el-table-column
property=
"spider"
label=
"所属爬虫"
show-overflow-tooltip
/>
<el-table-column
property=
"schedule_mode"
label=
"调度模式"
show-overflow-tooltip
/>
<el-table-column
property=
"run_status"
label=
"调度状态"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
"已完成"
}}
{{
scope
.
row
.
status
?
'已完成'
:
'未完成'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"错误消息"
show-overflow-tooltip
>
<!-- 当错误消息为空时默认值为'-' -->
<
template
#
default=
"scope"
>
{{
scope
.
row
.
message
||
"-"
}}
{{
scope
.
row
.
message
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
property=
"run_status"
label=
"运行状态"
show-overflow-tooltip
>
<
template
#
default=
"scope"
>
{{
scope
.
row
.
run_status
===
"unknown"
?
"已结束"
:
scope
.
row
.
run_status
}}
{{
scope
.
row
.
run_status
===
'unknown'
?
'已结束'
:
scope
.
row
.
run_status
}}
</
template
>
</el-table-column>
<el-table-column
label=
"运行耗时/ms"
>
<
template
#
default=
"scope"
>
{{
scope
.
row
.
duration
==
0
?
"-"
:
scope
.
row
.
duration
}}
{{
scope
.
row
.
duration
==
0
?
'-'
:
scope
.
row
.
duration
}}
</
template
>
</el-table-column>
<el-table-column
property=
"create_time"
label=
"采集时间"
width=
"200"
show-overflow-tooltip
/>
...
...
@@ -90,126 +95,123 @@
</template>
<
script
setup
lang=
"ts"
>
import
{
ref
,
onMounted
}
from
"vue"
;
import
Pagination
from
"@/components/pagination/index.vue"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
getSpiderTaskRecord
}
from
"@/api/spiderTask.ts"
;
import
{
ElMessage
}
from
"element-plus"
;
import
MenuTitle
from
"@/components/MenuTitle.vue"
;
import
TableSearch
from
"@/components/TableSearch.vue"
;
import
{
ref
,
onMounted
}
from
'vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
{
useRoute
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
getSpiderTaskRecord
}
from
'@/api/spiderTask.ts'
import
MenuTitle
from
'@/components/MenuTitle.vue'
import
TableSearch
from
'@/components/TableSearch.vue'
//时间处理库
import
dayjs
from
"dayjs"
;
import
dayjs
from
'dayjs'
// ElConfigProvider 组件
import
{
ElConfigProvider
}
from
"element-plus"
;
import
{
ElConfigProvider
}
from
'element-plus'
// 引入中文包
import
zhCn
from
"element-plus/es/locale/lang/zh-cn"
;
defineOptions
({
name
:
"Pagination"
});
import
zhCn
from
'element-plus/es/locale/lang/zh-cn'
defineOptions
({
name
:
'Pagination'
})
// 更改分页文字
zhCn
.
el
.
pagination
.
total
=
"共 `{total} 条`"
;
zhCn
.
el
.
pagination
.
goto
=
"跳至"
;
zhCn
.
el
.
pagination
.
pagesize
=
"条/页"
;
zhCn
.
el
.
pagination
.
pageClassifier
=
"页"
;
const
route
=
useRoute
()
;
const
router
=
useRouter
()
;
zhCn
.
el
.
pagination
.
total
=
'共 `{total} 条`'
zhCn
.
el
.
pagination
.
goto
=
'跳至'
zhCn
.
el
.
pagination
.
pagesize
=
'条/页'
zhCn
.
el
.
pagination
.
pageClassifier
=
'页'
const
route
=
useRoute
()
const
router
=
useRouter
()
//初始数据为近七天
const
timeValue
=
ref
<
string
[]
>
([])
;
const
tableData
=
ref
([])
;
const
timeValue
=
ref
<
string
[]
>
([])
const
tableData
=
ref
([])
const
pageObj
=
ref
({
total
:
10
,
pageSize
:
10
,
pageNo
:
1
,
pagerCount
:
5
,
})
;
pagerCount
:
5
})
const
goToStatus
=
()
=>
{
if
(
route
.
query
.
mode
===
"状态监控"
)
{
if
(
route
.
query
.
mode
===
'状态监控'
)
{
router
.
push
({
path
:
"/osStatus/list"
,
})
;
path
:
'/osStatus/list'
})
}
else
{
router
.
push
({
path
:
"/osTaskInformation/list"
,
})
;
path
:
'/osTaskInformation/list'
})
}
}
;
}
const
spideOptions
=
[
{
label
:
"dsn_now"
,
value
:
"dsn_now"
,
label
:
'dsn_now'
,
value
:
'dsn_now'
},
{
label
:
"itu_space_expolorer"
,
value
:
"itu_space_expolorer"
,
label
:
'itu_space_expolorer'
,
value
:
'itu_space_expolorer'
},
{
label
:
"space_track"
,
value
:
"space_track"
,
label
:
'space_track'
,
value
:
'space_track'
},
{
label
:
"es_track_transmission"
,
value
:
"es_track_transmission"
,
}
,
]
;
label
:
'es_track_transmission'
,
value
:
'es_track_transmission'
}
]
//表单loading标记
const
tableLoading
=
ref
(
false
)
;
const
tableLoading
=
ref
(
false
)
//重置查询
const
resetQuery
=
()
=>
{
timeValue
.
value
=
[]
;
spidername
.
value
=
""
;
getData
()
;
}
;
timeValue
.
value
=
[]
spidername
.
value
=
''
getData
()
}
// 获取任务执行记录列表
const
getData
=
async
()
=>
{
let
resTime
:
any
[]
=
[]
;
resTime
.
push
(
dayjs
().
subtract
(
7
,
"day"
).
format
(
"YYYY-MM-DD HH:mm:ss"
));
resTime
.
push
(
dayjs
().
format
(
"YYYY-MM-DD HH:mm:ss"
));
let
resTime
:
any
[]
=
[]
resTime
.
push
(
dayjs
().
subtract
(
7
,
'day'
).
format
(
'YYYY-MM-DD HH:mm:ss'
))
resTime
.
push
(
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
))
tableLoading
.
value
=
true
;
tableLoading
.
value
=
true
const
res
=
await
getSpiderTaskRecord
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
,
status
:
"total"
,
times
:
resTime
,
})
;
pageObj
.
value
.
total
=
res
.
data
.
total
;
tableData
.
value
=
res
.
data
.
list
;
tableLoading
.
value
=
false
;
}
;
status
:
'total'
,
times
:
resTime
})
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
tableLoading
.
value
=
false
}
const
spidername
=
ref
(
""
);
const
spidername
=
ref
(
''
)
//查询数据的方法
const
searchData
=
async
()
=>
{
let
resTime
:
any
[]
=
[]
;
let
resTime
:
any
[]
=
[]
if
(
timeValue
.
value
.
length
!==
0
)
{
const
startTime
=
timeValue
.
value
[
0
]
;
const
endTime
=
timeValue
.
value
[
1
]
;
resTime
.
push
(
dayjs
(
startTime
).
format
(
"YYYY-MM-DD HH:mm:ss"
));
resTime
.
push
(
dayjs
(
endTime
).
format
(
"YYYY-MM-DD HH:mm:ss"
));
const
startTime
=
timeValue
.
value
[
0
]
const
endTime
=
timeValue
.
value
[
1
]
resTime
.
push
(
dayjs
(
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
))
resTime
.
push
(
dayjs
(
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
))
}
tableLoading
.
value
=
true
;
tableLoading
.
value
=
true
const
res
=
await
getSpiderTaskRecord
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
,
status
:
"total"
,
status
:
'total'
,
spider
:
spidername
.
value
,
times
:
resTime
,
});
pageObj
.
value
.
total
=
res
.
data
.
total
;
tableData
.
value
=
res
.
data
.
list
;
console
.
log
(
tableData
.
value
);
tableLoading
.
value
=
false
;
};
times
:
resTime
})
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
tableLoading
.
value
=
false
}
onMounted
(()
=>
{
getData
()
;
})
;
getData
()
})
</
script
>
<
style
scoped
>
...
...
@@ -218,7 +220,7 @@ onMounted(() => {
}
/* 工具栏样式 */
.toolbarStyle
{
background-image
:
url(
"@/assets/picture/box3.png"
)
;
background-image
:
url(
'@/assets/picture/box3.png'
)
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
}
...
...
@@ -244,7 +246,7 @@ onMounted(() => {
}
.backStyle
{
background-image
:
url(
"@/assets/picture/back.png"
)
;
background-image
:
url(
'@/assets/picture/back.png'
)
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
height
:
5vh
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment