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
e66e6c21
Commit
e66e6c21
authored
Sep 17, 2025
by
yzh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:完成了爬虫管理页面,任务执行记录页面
parent
c91a0f1d
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
138 additions
and
210 deletions
+138
-210
apiPaths.ts
src/api/apiPaths.ts
+12
-0
spiderTask.ts
src/api/spiderTask.ts
+22
-0
system.ts
src/api/system.ts
+11
-2
index.vue
src/components/Delete/index.vue
+3
-3
request.ts
src/utils/request.ts
+6
-2
index.vue
src/views/os-log/index.vue
+1
-1
index.vue
src/views/os-spiderManager/index.vue
+9
-49
index.vue
src/views/os-system/index.vue
+2
-0
addTaskDialog.vue
src/views/os-taskInformation/components/addTaskDialog.vue
+1
-1
taskCard.vue
src/views/os-taskInformation/components/taskCard.vue
+13
-1
index.vue
src/views/os-taskInformation/index.vue
+9
-8
index.vue
src/views/os-taskRecord/index.vue
+49
-143
No files found.
src/api/apiPaths.ts
View file @
e66e6c21
...
@@ -78,3 +78,14 @@ export const userApi = {
...
@@ -78,3 +78,14 @@ export const userApi = {
deleteUser
:
'/user/delete'
,
deleteUser
:
'/user/delete'
,
batchDelete
:
'/user/batchDelete'
,
batchDelete
:
'/user/batchDelete'
,
}
as
const
}
as
const
export
const
spiderApi
=
{
// 系统用户相关接口
spiderList
:
'/scrapyd/listSpiders'
,
}
as
const
export
const
spiderTaskApi
=
{
// 爬虫任务相关接口
taskList
:
'/schedule/getJobs'
,
taskRecord
:
'/schedule/scheduleLogs'
,
}
as
const
\ No newline at end of file
src/api/spiderTask.ts
0 → 100644
View file @
e66e6c21
import
{
request
,
POST
}
from
'@/utils/request'
import
type
{
ApiResponse
,
QueryParams
,
UserQueryParams
}
from
'@/utils/request'
import
{
systemApi
,
scrapydServerApi
,
spiderApi
,
spiderTaskApi
}
from
'./apiPaths'
// 爬虫任务执行记录
export
function
getSpiderTaskRecord
(
data
:
UserQueryParams
)
{
return
request
({
url
:
spiderTaskApi
.
taskRecord
,
method
:
POST
,
data
})
as
unknown
as
Promise
<
ApiResponse
>
}
// 爬虫任务列表
export
function
getSpiderTaskList
(
data
:
UserQueryParams
)
{
return
request
({
url
:
spiderTaskApi
.
taskList
,
method
:
POST
,
data
})
as
unknown
as
Promise
<
ApiResponse
>
}
\ No newline at end of file
src/api/system.ts
View file @
e66e6c21
import
{
request
,
POST
}
from
'@/utils/request'
import
{
request
,
POST
}
from
'@/utils/request'
import
type
{
ApiResponse
,
QueryParams
}
from
'@/utils/request'
import
type
{
ApiResponse
,
QueryParams
,
UserQueryParams
}
from
'@/utils/request'
import
{
systemApi
,
scrapydServerApi
}
from
'./apiPaths'
import
{
systemApi
,
scrapydServerApi
,
spiderApi
}
from
'./apiPaths'
// 获取系统信息
// 获取系统信息
export
function
getSystemInfo
():
Promise
<
ApiResponse
>
{
export
function
getSystemInfo
():
Promise
<
ApiResponse
>
{
...
@@ -52,3 +52,11 @@ export const getScrapydServerList = (): Promise<ApiResponse> => {
...
@@ -52,3 +52,11 @@ export const getScrapydServerList = (): Promise<ApiResponse> => {
})
as
unknown
as
Promise
<
ApiResponse
>
})
as
unknown
as
Promise
<
ApiResponse
>
}
}
// 爬虫列表
export
function
getSpiderList
(
data
:
UserQueryParams
)
{
return
request
({
url
:
spiderApi
.
spiderList
,
method
:
POST
,
data
})
as
unknown
as
Promise
<
ApiResponse
>
}
\ No newline at end of file
src/components/Delete/index.vue
View file @
e66e6c21
...
@@ -50,9 +50,9 @@ const handleDelelte = async () => {
...
@@ -50,9 +50,9 @@ const handleDelelte = async () => {
}
}
else
if
(
props
.
deleteMode
==
'2'
)
{
else
if
(
props
.
deleteMode
==
'2'
)
{
console
.
log
(
props
.
ids
);
console
.
log
(
props
.
ids
);
await
batchDeleteUser
({
ids
:
props
.
ids
})
//
await batchDeleteUser({ ids: props.ids })
emit
(
'getUserList'
)
//
emit('getUserList')
deleteDialogVisible
.
value
=
false
//
deleteDialogVisible.value = false
}
}
}
}
// 关闭弹窗的方法
// 关闭弹窗的方法
...
...
src/utils/request.ts
View file @
e66e6c21
...
@@ -106,8 +106,11 @@ export interface UserQueryParams {
...
@@ -106,8 +106,11 @@ export interface UserQueryParams {
nickname
?:
string
nickname
?:
string
password
?:
string
password
?:
string
role
?:
number
role
?:
number
status
?:
boolean
status
?:
any
id
?:
number
id
?:
number
ids
?:
any
ids
?:
any
scrapydServerId
?:
string
project
?:
string
spiders
?:
any
times
?:
any
}
}
\ No newline at end of file
src/views/os-log/index.vue
View file @
e66e6c21
...
@@ -18,7 +18,7 @@ const textarea = ref('')
...
@@ -18,7 +18,7 @@ const textarea = ref('')
const
bactToRecord
=
()
=>
{
const
bactToRecord
=
()
=>
{
router
.
push
({
router
.
push
({
path
:
'/os
-t
askRecord/list'
,
path
:
'/os
T
askRecord/list'
,
})
})
}
}
</
script
>
</
script
>
...
...
src/views/os-spiderManager/index.vue
View file @
e66e6c21
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
<div>
<div>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
:header-cell-style=
"
{ textAlign: 'center' }"
<el-table
:data=
"tableData"
style=
"width: 100%"
border
:header-cell-style=
"
{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }" :row-style="{ height: '60px' }">
:cell-style="{ textAlign: 'center' }" :row-style="{ height: '60px' }">
<
el-table-column
type=
"selection"
width=
"40"
height=
"40"
/
>
<
!--
<el-table-column
type=
"selection"
width=
"40"
height=
"40"
/>
--
>
<el-table-column
property=
"number"
label=
"序号"
/>
<el-table-column
property=
"number"
label=
"序号"
type=
"index"
width=
"80"
/>
<el-table-column
property=
"spider
Name
"
label=
"爬虫名称"
show-overflow-tooltip
/>
<el-table-column
property=
"spider"
label=
"爬虫名称"
show-overflow-tooltip
/>
<el-table-column
label=
"查看任务"
>
<el-table-column
label=
"查看任务"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<el-button
type=
"primary"
plain
@
click=
"handleDetails(scope.row)"
>
<el-button
type=
"primary"
plain
@
click=
"handleDetails(scope.row)"
>
...
@@ -27,51 +27,9 @@
...
@@ -27,51 +27,9 @@
import
{
ref
,
onMounted
}
from
'vue'
import
{
ref
,
onMounted
}
from
'vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
getSpiderList
}
from
'@/api/system.ts'
const
router
=
useRouter
()
const
router
=
useRouter
()
const
tableData
=
ref
([
const
tableData
=
ref
([])
{
number
:
'1'
,
spiderName
:
'sk网爬虫'
,
},
{
name
:
'2'
,
address
:
'sk网'
,
},
{
name
:
'3'
,
address
:
'sk网'
,
},
{
name
:
'4'
,
address
:
'sk网'
,
},
{
name
:
'5'
,
address
:
'sk网'
,
},
{
name
:
'6'
,
address
:
'sk网'
,
},
{
name
:
'7'
,
address
:
'sk网'
,
},
{
name
:
'8'
,
address
:
'sk网'
,
},
{
name
:
'9'
,
address
:
'sk网'
,
},
{
name
:
'10'
,
address
:
'sk网'
,
},
])
const
pageObj
=
ref
({
const
pageObj
=
ref
({
total
:
10
,
total
:
10
,
pageSize
:
10
,
pageSize
:
10
,
...
@@ -86,11 +44,13 @@ const handleDetails = (row: any) => {
...
@@ -86,11 +44,13 @@ const handleDetails = (row: any) => {
}
}
})
})
}
}
const
getData
=
()
=>
{
const
getData
=
async
()
=>
{
console
.
log
(
'getData'
);
const
res
=
await
getSpiderList
({
scrapydServerId
:
'1'
,
project
:
'spiders'
})
tableData
.
value
=
res
.
data
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
getData
()
})
})
</
script
>
</
script
>
...
...
src/views/os-system/index.vue
View file @
e66e6c21
...
@@ -95,6 +95,8 @@ const handleSelectionChange = (data: any) => {
...
@@ -95,6 +95,8 @@ const handleSelectionChange = (data: any) => {
array
.
push
(
data
[
i
].
id
)
array
.
push
(
data
[
i
].
id
)
}
}
userIds
.
value
=
array
userIds
.
value
=
array
console
.
log
(
userIds
.
value
);
}
}
const
openAddUserDialog
=
()
=>
{
const
openAddUserDialog
=
()
=>
{
...
...
src/views/os-taskInformation/components/addTaskDialog.vue
View file @
e66e6c21
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<div
class=
"m-t-4"
/>
<div
class=
"m-t-4"
/>
<el-form
:inline=
"true"
>
<el-form
:inline=
"true"
>
<el-form-item
label=
"所属爬虫:"
>
<el-form-item
label=
"所属爬虫:"
>
<el-select
v-model=
"spiderTypeValue"
placeholder=
"请选择爬虫类型"
style=
"width: 18
3
px"
>
<el-select
v-model=
"spiderTypeValue"
placeholder=
"请选择爬虫类型"
style=
"width: 18
1
px"
>
<el-option
v-for=
"item in spiderTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
<el-option
v-for=
"item in spiderTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
...
src/views/os-taskInformation/components/taskCard.vue
View file @
e66e6c21
...
@@ -46,10 +46,11 @@
...
@@ -46,10 +46,11 @@
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
'vue'
import
{
ref
,
onMounted
}
from
'vue'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
deleteDialog
from
'@/components/Delete/index.vue'
import
deleteDialog
from
'@/components/Delete/index.vue'
import
addTaskDialog
from
'./addTaskDialog.vue'
import
addTaskDialog
from
'./addTaskDialog.vue'
import
{
getSpiderTaskList
}
from
'@/api/spiderTask'
defineProps
({
defineProps
({
successTask
:
{
successTask
:
{
type
:
String
,
type
:
String
,
...
@@ -159,6 +160,17 @@ const handleEdit = () => {
...
@@ -159,6 +160,17 @@ const handleEdit = () => {
const
handleDeleteConfirm
=
()
=>
{
const
handleDeleteConfirm
=
()
=>
{
}
}
const
getData
=
async
()
=>
{
console
.
log
(
'getData'
);
const
res
=
await
getSpiderTaskList
({
spiders
:[
'api_spider'
]})
// taskList.value = res.data
console
.
log
(
res
);
}
onMounted
(()
=>
{
getData
()
})
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/os-taskInformation/index.vue
View file @
e66e6c21
<
template
>
<
template
>
<div>
<div>
<div
class=
"backStyle"
v-if=
"route.query.jump === 'yes'"
@
click=
"goToTaskInformation"
/>
<div
class=
"backStyle"
v-if=
"route.query.jump === 'yes'"
@
click=
"goToTaskInformation"
/>
<div
class=
"m-t-
5
"
/>
<div
class=
"m-t-
10
"
/>
<div
class=
"text-left p-4 toolbarStyle"
>
<div
class=
"text-left p-4 toolbarStyle"
>
<div
class=
"formStyle"
>
<div
class=
"formStyle"
>
<el-form
inline
>
<el-form
inline
>
...
@@ -36,10 +36,10 @@
...
@@ -36,10 +36,10 @@
</div>
</div>
<div
class=
"cardStyle"
>
<div
class=
"cardStyle"
>
<taskCard
successTask=
"100"
failTask=
"10"
unusualTask=
"1"
/>
<taskCard
successTask=
"100"
failTask=
"10"
unusualTask=
"1"
/>
<div
class=
"pagination w-full flex flex-row-reverse pr-18 m-t-0"
>
<
!--
<
div
class=
"pagination w-full flex flex-row-reverse pr-18 m-t-0"
>
<Pagination
:total=
"pageObj.total"
v-model:page=
"pageObj.pageNo"
v-model:limit=
"pageObj.pageSize"
<Pagination
:total=
"pageObj.total"
v-model:page=
"pageObj.pageNo"
v-model:limit=
"pageObj.pageSize"
@
pagination=
"getData"
/>
@
pagination=
"getData"
/>
</div>
</div>
-->
</div>
</div>
<!-- 添加任务对话框组件 -->
<!-- 添加任务对话框组件 -->
<addTaskDialog
v-model:dialogVisible=
"showDialog"
@
confirm=
"handleDeleteConfirm"
:mode=
"editMode"
/>
<addTaskDialog
v-model:dialogVisible=
"showDialog"
@
confirm=
"handleDeleteConfirm"
:mode=
"editMode"
/>
...
@@ -54,10 +54,13 @@ import taskCard from './components/taskCard.vue'
...
@@ -54,10 +54,13 @@ import taskCard from './components/taskCard.vue'
import
addTaskDialog
from
'./components/addTaskDialog.vue'
import
addTaskDialog
from
'./components/addTaskDialog.vue'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
useRoute
}
from
'vue-router'
import
{
useRoute
}
from
'vue-router'
import
{
getSpiderTaskList
}
from
'@/api/spiderTask'
const
route
=
useRoute
()
const
route
=
useRoute
()
const
router
=
useRouter
()
const
router
=
useRouter
()
const
editMode
=
ref
(
'1'
)
const
editMode
=
ref
(
'1'
)
const
taskValue
=
ref
(
''
)
const
taskValue
=
ref
(
''
)
const
taskList
=
ref
([])
const
taskOptions
=
[
const
taskOptions
=
[
{
{
value
:
'task1'
,
value
:
'task1'
,
...
@@ -77,9 +80,7 @@ const pageObj = ref({
...
@@ -77,9 +80,7 @@ const pageObj = ref({
pageSize
:
10
,
pageSize
:
10
,
pageNo
:
1
pageNo
:
1
})
})
const
getData
=
()
=>
{
console
.
log
(
'getData'
);
}
// 控制对话框显示/隐藏的状态变量
// 控制对话框显示/隐藏的状态变量
const
showDialog
=
ref
(
false
)
const
showDialog
=
ref
(
false
)
...
@@ -105,8 +106,8 @@ onMounted(() => {
...
@@ -105,8 +106,8 @@ onMounted(() => {
background-image
:
url("@/assets/picture/back.png")
;
background-image
:
url("@/assets/picture/back.png")
;
background-size
:
100%
100%
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
background-repeat
:
no-repeat
;
height
:
5
vh
;
height
:
7
vh
;
width
:
5
%
;
width
:
7
%
;
display
:
flex
;
display
:
flex
;
margin-left
:
0.8%
;
margin-left
:
0.8%
;
}
}
...
...
src/views/os-taskRecord/index.vue
View file @
e66e6c21
...
@@ -6,38 +6,28 @@
...
@@ -6,38 +6,28 @@
<div
class=
"formStyle"
>
<div
class=
"formStyle"
>
<el-form
inline
>
<el-form
inline
>
<el-form-item>
<el-form-item>
<el-text
class=
"mx-1"
>
任务名称:
</el-text>
</el-form-item>
<el-form-item>
<div>
<el-select
v-model=
"taskValue"
placeholder=
"请选择"
style=
"width: 220px"
>
<el-option
v-for=
"item in taskOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</el-form-item>
<el-form-item>
<el-text
class=
"mx-1"
>
时间:
</el-text>
<el-text
class=
"mx-1"
>
时间:
</el-text>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-date-picker
v-model=
"timeValue"
type=
"datetimerange"
start-placeholder=
"Start date"
<el-date-picker
v-model=
"timeValue"
type=
"datetimerange"
start-placeholder=
"Start date"
end-placeholder=
"End date"
format=
"YYYY-MM-DD HH:mm:ss"
date-format=
"YYYY/MM/DD ddd"
end-placeholder=
"End date"
format=
"YYYY-MM-DD HH:mm:ss"
date-format=
"YYYY/MM/DD ddd"
time-format=
"A hh:mm:ss"
/>
time-format=
"A hh:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
/>
</el-form-item>
</el-form-item>
<el-form-item>
<
!--
<
el-form-item>
<el-text
class=
"mx-1"
>
调度状态:
</el-text>
<el-text
class=
"mx-1"
>
调度状态:
</el-text>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<div>
<div>
<el-select
v-model=
"taskValue"
placeholder=
"请选择"
style=
"width: 220px"
>
<el-select
v-model=
"taskValue"
placeholder=
"请选择"
style=
"width: 220px"
>
<el-option
v-for=
"item in taskOptions"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in taskOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
</div>
</div>
</el-form-item>
</el-form-item>
-->
<el-form-item>
<el-form-item>
<el-space>
<el-space>
<el-button
type=
"primary"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"searchData"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"getData"
>
重置表格
</el-button>
</el-space>
</el-space>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -47,27 +37,36 @@
...
@@ -47,27 +37,36 @@
<div>
<div>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
:header-cell-style=
"
{ textAlign: 'center' }"
<el-table
:data=
"tableData"
style=
"width: 100%"
border
:header-cell-style=
"
{ textAlign: 'center' }"
: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=
"number"
label=
"序号"
width=
"55"
/>
<el-table-column
property=
"project"
label=
"项目名称"
show-overflow-tooltip
/>
<el-table-column
property=
"taskName"
label=
"任务名称"
show-overflow-tooltip
/>
<el-table-column
property=
"spider"
label=
"所属爬虫"
show-overflow-tooltip
/>
<el-table-column
property=
"scheduleMode"
label=
"调度模式"
show-overflow-tooltip
/>
<el-table-column
property=
"schedule_mode"
label=
"调度模式"
show-overflow-tooltip
/>
<el-table-column
property=
"scheduleStatus"
label=
"调度状态"
show-overflow-tooltip
/>
<el-table-column
property=
"run_status"
label=
"调度状态"
show-overflow-tooltip
>
<el-table-column
property=
"errorMessage"
label=
"错误消息"
show-overflow-tooltip
/>
<template
#
default=
"scope"
>
<el-table-column
property=
"runningStatus"
label=
"运行状态"
show-overflow-tooltip
/>
{{
'已完成'
}}
<el-table-column
property=
"duration"
label=
"持续时间"
show-overflow-tooltip
/>
</
template
>
<el-table-column
property=
"scheduleTime"
label=
"调度时间"
width=
"200"
show-overflow-tooltip
/>
</el-table-column>
<el-table-column
label=
"运行日志"
width=
"120"
>
<el-table-column
label=
"错误消息"
show-overflow-tooltip
>
<!-- 当错误消息为空时默认值为'-' -->
<
template
#
default=
"scope"
>
{{
scope
.
row
.
message
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
property=
"run_status"
label=
"运行状态"
show-overflow-tooltip
/>
<!-- <el-table-column property="duration" label="持续时间" show-overflow-tooltip /> -->
<el-table-column
property=
"create_time"
label=
"调度时间"
width=
"200"
show-overflow-tooltip
/>
<!-- <el-table-column label="运行日志" width="120">
<template #default="scope">
<template #default="scope">
<el-button size="small" plain type="primary" @click="handleDetails(scope.row)">
<el-button size="small" plain type="primary" @click="handleDetails(scope.row)">
日志
日志
</el-button>
</el-button>
</template>
</template>
</el-table-column>
</el-table-column>
-->
</el-table>
</el-table>
</div>
</div>
<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
:total=
"pageObj.total"
v-model:page=
"pageObj.pageNo"
v-model:limit=
"pageObj.pageSize"
@
pagination=
"getData"
/>
@
pagination=
"getData"
v-model:pagerCount=
"pageObj.pagerCount"
/>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -77,6 +76,7 @@ import { ref, onMounted } from 'vue'
...
@@ -77,6 +76,7 @@ import { ref, onMounted } from 'vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
Pagination
from
'@/components/pagination/index.vue'
import
{
useRoute
}
from
'vue-router'
import
{
useRoute
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
getSpiderTaskRecord
}
from
'@/api/spiderTask.ts'
const
route
=
useRoute
()
const
route
=
useRoute
()
const
router
=
useRouter
()
const
router
=
useRouter
()
...
@@ -96,121 +96,12 @@ const taskOptions = [
...
@@ -96,121 +96,12 @@ const taskOptions = [
label
:
'网'
,
label
:
'网'
,
},
},
]
]
const
tableData
=
ref
([
const
tableData
=
ref
([])
{
number
:
'1'
,
taskName
:
'dsn爬虫任务'
,
scheduleMode
:
'自动'
,
scheduleStatus
:
'自动'
,
errorMessage
:
'无'
,
runningStatus
:
'完成'
,
duration
:
'10s'
,
scheduleTime
:
'2023-05-13 10:00:00'
,
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
}
,
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
},
{
name
:
'1'
,
address
:
'sk网'
,
address1
:
'成功'
,
address2
:
'100'
,
address3
:
'0'
,
address4
:
'无'
,
address5
:
'10s'
,
address6
:
'2023-05-13 10:00:00'
,
status
:
0
}
])
const
pageObj
=
ref
({
const
pageObj
=
ref
({
total
:
10
,
total
:
10
,
pageSize
:
10
,
pageSize
:
10
,
pageNo
:
1
pageNo
:
1
,
pagerCount
:
5
,
})
})
const
handleDetails
=
(
row
:
any
)
=>
{
const
handleDetails
=
(
row
:
any
)
=>
{
console
.
log
(
row
);
console
.
log
(
row
);
...
@@ -235,12 +126,27 @@ const goToStatus = () => {
...
@@ -235,12 +126,27 @@ const goToStatus = () => {
}
}
const
getData
=
()
=>
{
const
getData
=
async
()
=>
{
console
.
log
(
'getData'
);
console
.
log
(
'getData'
);
const
res
=
await
getSpiderTaskRecord
({
page
:
pageObj
.
value
.
pageNo
,
size
:
pageObj
.
value
.
pageSize
,
status
:
'total'
})
pageObj
.
value
.
total
=
res
.
data
.
total
tableData
.
value
=
res
.
data
.
list
console
.
log
(
res
);
}
}
onMounted
(()
=>
{
const
searchData
=
async
()
=>
{
let
resTime
=
[]
const
startTime
=
timeValue
.
value
[
0
]
const
endTime
=
timeValue
.
value
[
1
]
resTime
.
push
(
startTime
)
resTime
.
push
(
endTime
)
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
}
onMounted
(()
=>
{
getData
()
})
})
</
script
>
</
script
>
...
...
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