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
6505f76f
Commit
6505f76f
authored
Sep 29, 2025
by
yzh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:修改主页跳转bug,代码添加注释
parent
307a70d8
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
82 additions
and
65 deletions
+82
-65
index.vue
src/components/Export/index.vue
+1
-1
dsnDataTab.vue
src/views/os-dataDisplay/components/dsnData/dsnDataTab.vue
+6
-0
ituDataTab.vue
src/views/os-dataDisplay/components/ituDataTab.vue
+4
-7
stDataTab.vue
src/views/os-dataDisplay/components/stDataTab.vue
+4
-10
index.vue
src/views/os-spiderManager/index.vue
+3
-1
dataCard.vue
src/views/os-status/components/dataCard.vue
+2
-1
taskCard.vue
src/views/os-status/components/taskCard.vue
+11
-7
addUserDialog.vue
src/views/os-system/components/addUserDialog.vue
+6
-9
index.vue
src/views/os-system/index.vue
+11
-7
taskCard.vue
src/views/os-taskInformation/components/taskCard.vue
+18
-8
index.vue
src/views/os-taskInformation/index.vue
+5
-1
index.vue
src/views/os-taskRecord/index.vue
+11
-13
No files found.
src/components/Export/index.vue
View file @
6505f76f
...
...
@@ -71,7 +71,7 @@ const props = defineProps({
default
:
false
}
})
const
emit
=
defineEmits
([
'update:dialogVisible'
,
'confirm'
])
const
emit
=
defineEmits
([
'update:dialogVisible'
])
const
exportDialogVisible
=
ref
(
props
.
dialogVisible
)
// 导出方法
...
...
src/views/os-dataDisplay/components/dsnData/dsnDataTab.vue
View file @
6505f76f
...
...
@@ -253,6 +253,7 @@
import
{
onMounted
,
ref
}
from
'vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
{
getDsnList
}
from
'@/api/spiderData'
import
{
ElMessage
}
from
'element-plus'
const
timeValue
=
ref
(
''
)
const
statusMode
=
ref
(
false
)
...
...
@@ -307,6 +308,7 @@ const pageObj = ref({
pageSize
:
10
,
pageNo
:
1
})
// 查看数据详情的方法
const
handleDetails
=
(
row
:
any
)
=>
{
console
.
log
(
row
);
targetName
.
value
=
row
.
targets
[
0
].
name
...
...
@@ -326,6 +328,7 @@ const handleDetails = (row: any) => {
roundTripTime
.
value
=
row
.
targets
[
0
].
rtlt
detailVisibleValue
.
value
=
true
}
// 获取dsn数据列表的方法
const
getData
=
async
()
=>
{
const
res
=
await
getDsnList
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
})
tableData
.
value
=
res
.
data
.
list
[
0
].
dishes
...
...
@@ -333,6 +336,7 @@ const getData = async () => {
const
handleClose
=
()
=>
{
detailVisibleValue
.
value
=
false
}
// 刷新数据的方法
const
handleRefresh
=
()
=>
{
// 切换是否开始刷新的状态
statusMode
.
value
=
!
statusMode
.
value
...
...
@@ -343,12 +347,14 @@ const handleRefresh = () => {
}
// 开始刷新时重新设置一个定时器
if
(
statusMode
.
value
)
{
ElMessage
.
success
(
'开始刷新'
)
// 保存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
{
ElMessage
.
success
(
'停止刷新'
)
getData
()
}
}
...
...
src/views/os-dataDisplay/components/ituDataTab.vue
View file @
6505f76f
...
...
@@ -260,7 +260,7 @@
</el-form>
</el-dialog>
</div>
<exportDialog
v-model:dialogVisible=
"showDeleteDialog"
@
confirm=
"handleExportConfirm"
/>
<exportDialog
v-model:dialogVisible=
"showDeleteDialog"
/>
</template>
<
script
setup
lang=
"ts"
>
...
...
@@ -326,8 +326,8 @@ const pageObj = ref({
pageSize
:
10
,
pageNo
:
1
})
// 查看数据详情的方法
const
handleDetails
=
async
(
id
:
any
)
=>
{
// console.log(id._id);
const
res
=
await
getItuDetail
({
id
:
id
.
_id
})
console
.
log
(
res
);
snsId
.
value
=
res
.
data
.
item
.
ntc_id
...
...
@@ -356,23 +356,20 @@ const handleDetails = async (id: any) => {
detailVisibleValue
.
value
=
true
}
// 获取itu数据列表的方法
const
getData
=
async
()
=>
{
const
res
=
await
getItuList
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
})
console
.
log
(
res
);
searchTargetName
.
value
=
''
searchTargetId
.
value
=
''
searchTimeValue
.
value
=
''
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
}
const
handleClose
=
()
=>
{
detailVisibleValue
.
value
=
false
}
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
})
// console.log(res);
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
}
...
...
src/views/os-dataDisplay/components/stDataTab.vue
View file @
6505f76f
...
...
@@ -167,7 +167,7 @@
</el-form>
</el-dialog>
</div>
<exportDialog
v-model:dialogVisible=
"showDeleteDialog"
@
confirm=
"handleExportConfirm"
/>
<exportDialog
v-model:dialogVisible=
"showDeleteDialog"
/>
</template>
<
script
setup
lang=
"ts"
>
...
...
@@ -214,8 +214,8 @@ const pageObj = ref({
pageSize
:
10
,
pageNo
:
1
})
// 查看数据详情的方法
const
handleDetails
=
async
(
row
:
any
)
=>
{
// console.log(row);
const
res
=
await
getStDetail
({
id
:
row
.
_id
})
NoradCatID
.
value
=
res
.
data
.
data
[
0
].
NORAD_CAT_ID
targetName
.
value
=
res
.
data
.
data
[
0
].
OBJECT_NAME
...
...
@@ -233,6 +233,7 @@ ${res.data.data[0].TLE_LINE1}
${
res
.
data
.
data
[
0
].
TLE_LINE2
}
`
detailVisibleValue
.
value
=
true
}
// 获取st数据列表的方法
const
getData
=
async
()
=>
{
const
res
=
await
getStList
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
})
pageObj
.
value
.
total
=
res
.
data
.
total
...
...
@@ -244,17 +245,10 @@ const getData = async () => {
const
handleClose
=
()
=>
{
detailVisibleValue
.
value
=
false
}
const
handleExportConfirm
=
()
=>
{
}
const
handleExport
=
()
=>
{
showDeleteDialog
.
value
=
true
}
const
handleSearch
=
async
()
=>
{
const
res
=
await
getStList
({
norad_cat_id
:
noradCatId
.
value
,
object_name
:
searchTargetName
.
value
,
times
:
timeValue
.
value
})
const
res
=
await
getStList
({
norad_cat_id
:
noradCatId
.
value
,
object_name
:
searchTargetName
.
value
,
times
:
timeValue
.
value
,
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
})
tableData
.
value
=
res
.
data
.
list
pageObj
.
value
.
total
=
res
.
data
.
total
}
onMounted
(()
=>
{
getData
()
...
...
src/views/os-spiderManager/index.vue
View file @
6505f76f
...
...
@@ -41,10 +41,12 @@ const handleDetails = (row: any) => {
path
:
'/osTaskInformation/list'
,
query
:
{
jump
:
'yes'
,
spiderType
:
row
.
spider
spiderType
:
row
.
spider
,
page
:
'spiderManager'
}
})
}
// 获取爬虫数据的方法
const
getData
=
async
()
=>
{
const
res
=
await
getSpiderList
({
scrapydServerId
:
'1'
,
project
:
'spiders'
})
tableData
.
value
=
res
.
data
...
...
src/views/os-status/components/dataCard.vue
View file @
6505f76f
...
...
@@ -68,7 +68,7 @@ const goToAllDataPage = () => {
path
:
'/osDataDisplay/list'
,
query
:
{
jump
:
'yes'
,
mode
:
'
综合
数据'
mode
:
'
DSN
数据'
}
})
}
...
...
@@ -83,6 +83,7 @@ const goToTaskRecordPage = () => {
})
}
// 获取数据统计数据的方法
const
getData
=
async
()
=>
{
const
staticData
=
await
getStatsDataList
({})
const
spiderTask
=
await
getSpiderTaskList
({})
...
...
src/views/os-status/components/taskCard.vue
View file @
6505f76f
...
...
@@ -78,33 +78,37 @@ const stErrorRate = ref('')
const
goToDSNTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
'/osTask
Record
/list'
,
path
:
'/osTask
Information
/list'
,
query
:
{
mode
:
'dsn'
,
jump
:
'yes'
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
const
goToITUTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
'/osTask
Record
/list'
,
path
:
'/osTask
Information
/list'
,
query
:
{
mode
:
'itu'
,
jump
:
'yes'
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
const
goToSTTaskRecordPage
=
()
=>
{
router
.
push
({
path
:
'/osTask
Record
/list'
,
path
:
'/osTask
Information
/list'
,
query
:
{
mode
:
'st'
,
jump
:
'yes'
jump
:
'yes'
,
page
:
'statusMonitor'
}
})
}
// 获取任务统计数据的方法
const
getData
=
async
()
=>
{
const
res
=
await
getAllSpiderTaskStatistics
({})
dsnTotalTaskNumber
.
value
=
res
.
data
.
dsn_now
.
totalCount
...
...
src/views/os-system/components/addUserDialog.vue
View file @
6505f76f
...
...
@@ -126,26 +126,24 @@ const editPasswordRules = ref<FormRules>({
],
})
// 状态选项(统一值类型,避免类型错误)
const
userStatusValue
=
ref
(
true
)
const
userRoleValue
=
ref
(
1
)
const
userStatusOptions
=
[
{
value
:
true
,
label
:
'启用'
},
{
value
:
false
,
label
:
'停用'
}
// 与userStatusValue类型一致(boolean)
{
value
:
false
,
label
:
'停用'
}
]
const
userRoleOptions
=
[
{
value
:
false
,
label
:
'管理员'
},
{
value
:
true
,
label
:
'普通用户'
}
// 统一值类型
{
value
:
1
,
label
:
'管理员'
},
{
value
:
0
,
label
:
'普通用户'
}
]
const
emit
=
defineEmits
([
'update:dialogVisible'
,
'getUserList'
])
// 组件状态
const
currentVisible
=
ref
(
props
.
dialogVisible
)
const
currentMode
=
ref
(
props
.
mode
)
// 关闭对话框
// 关闭对话框
的方法
const
handleClose
=
()
=>
{
firstRuleFormRef
.
value
?.
resetFields
()
secondRuleFormRef
.
value
?.
resetFields
()
...
...
@@ -153,14 +151,13 @@ const handleClose = () => {
currentVisible
.
value
=
false
}
//
确认操作
//
创建用户与编辑用户的方法
const
handleConfirm
=
async
()
=>
{
try
{
if
(
currentMode
.
value
===
AddMode
.
ADD_MODE
)
{
if
(
!
firstRuleFormRef
.
value
)
{
return
;
}
// 使用Promise形式的validate(不传入回调),确保await生效
const
valid
=
await
firstRuleFormRef
.
value
.
validate
();
if
(
valid
)
{
await
addUser
({
...
...
@@ -175,7 +172,6 @@ const handleConfirm = async () => {
currentVisible
.
value
=
false
;
}
}
else
if
(
currentMode
.
value
===
AddMode
.
UPDATE_MODE
)
{
// 编辑模式逻辑(略,可参考新增模式调整)
if
(
!
secondRuleFormRef
.
value
)
return
;
const
valid
=
await
secondRuleFormRef
.
value
.
validate
();
if
(
valid
)
{
...
...
@@ -214,6 +210,7 @@ watch(() => props.mode, (newVal) => {
currentMode
.
value
=
newVal
})
// 监听参数变化,将参数展示到对话框中
watch
(
[()
=>
props
.
dialogVisible
,
()
=>
props
.
mode
,
()
=>
props
.
nickName
,
()
=>
props
.
userPassword
,
()
=>
props
.
userStatus
,
()
=>
props
.
userRole
],
([
newVisible
,
newMode
,
newNickName
,
newPwd
,
newStatus
,
newRole
])
=>
{
...
...
src/views/os-system/index.vue
View file @
6505f76f
...
...
@@ -65,10 +65,11 @@ const dialogVisible = ref<boolean>(false)
const
mode
=
ref
<
AddMode
>
(
AddMode
.
ADD_MODE
)
const
tableData
=
ref
()
const
pageObj
=
ref
({
total
:
12
,
total
:
0
,
pageSize
:
10
,
pageNo
:
1
})
// 编辑用户信息的方法
const
handleEdit
=
async
(
row
:
any
)
=>
{
mode
.
value
=
AddMode
.
UPDATE_MODE
nickName
.
value
=
row
.
nickname
...
...
@@ -79,13 +80,14 @@ const handleEdit = async (row: any) => {
dialogVisible
.
value
=
true
userId
.
value
=
row
.
id
}
// 弹窗关闭的方法
const
handleDelete
=
async
(
row
:
any
)
=>
{
showDeleteDialog
.
value
=
true
deleteMode
.
value
=
DeleteMode
.
SINGLE_DELETE
userId
.
value
=
row
.
id
console
.
log
(
userId
.
value
);
}
// 批量删除用户的方法
const
handleBatchDelete
=
async
()
=>
{
if
(
userIds
.
value
==
undefined
){
ElMessage
({
...
...
@@ -98,6 +100,7 @@ const handleBatchDelete = async () => {
showDeleteDialog
.
value
=
true
}
}
// 多选框改变后的方法
const
handleSelectionChange
=
(
data
:
any
)
=>
{
let
array
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
...
...
@@ -110,14 +113,15 @@ const openAddUserDialog = () => {
mode
.
value
=
AddMode
.
ADD_MODE
dialogVisible
.
value
=
true
}
// 获取用户列表数据的方法
const
getUserListData
=
async
()
=>
{
const
userList
=
await
getUserList
({
// page: 1
,
size
:
10
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
})
tableData
.
value
=
userList
.
data
pageObj
.
value
.
total
=
tableData
.
value
.
length
console
.
log
(
tableData
.
value
.
length
);
tableData
.
value
=
userList
.
data
.
list
pageObj
.
value
.
total
=
userList
.
data
.
total
console
.
log
(
userList
);
}
onMounted
(
async
()
=>
{
...
...
src/views/os-taskInformation/components/taskCard.vue
View file @
6505f76f
<!-- 任务执行统计卡片组件 -->
<
template
>
<div>
<div
class=
"m-t-2"
/>
<div
class=
"text-left p-4 toolbarStyle "
>
<div
class=
"formStyle"
>
<el-form
inline
>
...
...
@@ -31,7 +33,6 @@
</el-form>
</div>
</div>
<div
class=
"cardStyle"
>
<div
class=
"taskCard p-6"
v-for=
"task in taskList"
:key=
"task.taskId"
>
<div
class=
"taskContent"
>
...
...
@@ -152,12 +153,14 @@ const taskOptions = ref('')
const
jobId
=
ref
(
''
)
const
taskList
=
ref
<
any
[]
>
([])
// 删除任务的方法
const
deleteTask
=
(
task
:
any
)
=>
{
console
.
log
(
task
);
jobId
.
value
=
task
.
id
deleteMode
.
value
=
DeleteMode
.
SINGLE_DELETE
showDeleteDialog
.
value
=
true
}
// 编辑任务的方法
const
editTask
=
(
task
:
any
)
=>
{
jobId
.
value
=
task
.
id
taskOptions
.
value
=
JSON
.
stringify
(
JSON
.
parse
(
task
.
kwargs
.
options
))
...
...
@@ -177,6 +180,7 @@ const goToTaskRecord = () => {
}
})
}
// 启动与停止任务的方法
const
changeStatus
=
async
(
task
:
any
,
newStatus
:
string
)
=>
{
if
(
newStatus
===
"running"
)
{
await
resumeSpiderTask
({
job_id
:
task
.
id
});
...
...
@@ -192,26 +196,33 @@ const openTaskDialog = () => {
editMode
.
value
=
AddMode
.
ADD_TASK
showTaskDialog
.
value
=
true
}
// 获取任务列表的方法
const
getData
=
async
()
=>
{
const
res
=
await
getSpiderTaskList
({
spiders
:
searchCondition
.
value
.
spiders
?
[
searchCondition
.
value
.
spiders
]
:
[]
})
// for (let i = 0; i
<
res
.
data
.
length
;
i
++
)
{
// const resId = await getTaskCount({id:res.data[i].id})
// res.data[i].count = resId.data.count
// }
const
resId
=
await
getTaskCount
({})
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
res
.
data
[
i
].
count
=
resId
.
data
[
res
.
data
[
i
].
id
]
===
undefined
?
0
:
resId
.
data
[
res
.
data
[
i
].
id
]
}
taskList
.
value
=
res
.
data
console
.
log
(
taskList
.
value
);
}
// 重置任务列表的方法
const
resetData
=
async
()
=>
{
searchCondition
.
value
.
spiders
=
''
const
res
=
await
getSpiderTaskList
({
spiders
:
[],
options
:
JSON
.
stringify
({
jobName
:
taskName
.
value
})
})
const
resId
=
await
getTaskCount
({})
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
res
.
data
[
i
].
count
=
resId
.
data
[
res
.
data
[
i
].
id
]
===
undefined
?
0
:
resId
.
data
[
res
.
data
[
i
].
id
]
}
taskList
.
value
=
res
.
data
}
// 搜索任务的方法
const
search
=
async
()
=>
{
const
res
=
await
getSpiderTaskList
({
spiders
:
searchCondition
.
value
.
spiders
?
[
searchCondition
.
value
.
spiders
]
:
[],
options
:
JSON
.
stringify
({
jobName
:
taskName
.
value
})
})
const
resId
=
await
getTaskCount
({})
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
res
.
data
[
i
].
count
=
resId
.
data
[
res
.
data
[
i
].
id
]
===
undefined
?
0
:
resId
.
data
[
res
.
data
[
i
].
id
]
}
taskList
.
value
=
res
.
data
}
onMounted
(()
=>
{
...
...
@@ -219,8 +230,7 @@ onMounted(() => {
searchCondition
.
value
.
spiders
=
props
.
spiderType
}
getData
()
const
interval
=
CronExpressionParser
.
parse
(
'*/2 * * * *'
);
console
.
log
(
interval
);
})
...
...
src/views/os-taskInformation/index.vue
View file @
6505f76f
...
...
@@ -47,7 +47,11 @@ const pageObj = ref({
})
const
goToTaskInformation
=
()
=>
{
router
.
push
({
path
:
'/osSpiderManager/list'
})
if
(
route
.
query
.
page
===
'spiderManager'
){
router
.
push
({
path
:
'/osSpiderManager/list'
})
}
else
{
router
.
push
({
path
:
'/osStatus/list'
})
}
}
onMounted
(
async
()
=>
{
...
...
src/views/os-taskRecord/index.vue
View file @
6505f76f
...
...
@@ -103,17 +103,17 @@ const pageObj = ref({
pageNo
:
1
,
pagerCount
:
5
,
})
const
handleDetails
=
(
row
:
any
)
=>
{
console
.
log
(
row
);
router
.
push
({
path
:
'/os-log/list'
,
query
:
{
id
:
row
.
id
}
})
}
// 前往运行日志,暂时不要
// const handleDetails = (row: any) => {
// console.log(row);
// router.push({
// path: '/os-log/list',
// query: {
// id: row.id
// }
// })
// }
const
goToStatus
=
()
=>
{
if
(
route
.
query
.
mode
===
'状态监控'
)
{
router
.
push
({
path
:
'/osStatus/list'
,
...
...
@@ -123,8 +123,6 @@ const goToStatus = () => {
path
:
'/osTaskInformation/list'
,
})
}
}
// 获取任务执行记录列表
const
getData
=
async
()
=>
{
...
...
@@ -132,7 +130,7 @@ const getData = async () => {
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
}
// 数据的方法
const
searchData
=
async
()
=>
{
let
resTime
=
[]
const
startTime
=
timeValue
.
value
[
0
]
...
...
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