爬虫详情显示定时任务

This commit is contained in:
marvzhang
2020-01-03 17:20:24 +08:00
parent a8c9fffa7a
commit 44c0b050f7
9 changed files with 117 additions and 44 deletions

View File

@@ -180,6 +180,11 @@ const actions = {
async getTemplateList ({ state, commit }) {
const res = await request.get(`/config_spiders_templates`)
commit('SET_TEMPLATE_LIST', res.data.data)
},
async getScheduleList ({ state, commit }, payload) {
const { id } = payload
const res = await request.get(`/spiders/${id}/schedules`)
commit('schedule/SET_SCHEDULE_LIST', res.data.data, { root: true })
}
}

View File

@@ -240,7 +240,7 @@ export default {
message: 'Deleted successfully'
})
})
})
}))
},
onDeploy (row) {
this.$store.dispatch('spider/getSpiderData', row._id)

View File

@@ -32,8 +32,30 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('Spider')" prop="spider_id" required>
<el-select v-model="scheduleForm.spider_id" :placeholder="$t('Spider')" filterable>
<el-form-item v-if="!isDisabledSpiderSchedule" :label="$t('Spider')" prop="spider_id" required>
<el-select
v-model="scheduleForm.spider_id"
:placeholder="$t('Spider')"
filterable
:disabled="isDisabledSpiderSchedule"
>
<el-option
v-for="op in spiderList"
:key="op._id"
:value="op._id"
:label="`${op.display_name} (${op.name})`"
:disabled="isDisabledSpider(op)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-else :label="$t('Spider')" required>
<el-select
:value="spiderId"
:placeholder="$t('Spider')"
filterable
:disabled="isDisabledSpiderSchedule"
>
<el-option
v-for="op in spiderList"
:key="op._id"
@@ -199,6 +221,9 @@ export default {
}
}
return {}
},
isDisabledSpiderSchedule () {
return false
}
},
methods: {

View File

@@ -25,6 +25,9 @@
<el-tab-pane :label="$t('Analytics')" name="analytics">
<spider-stats ref="spider-stats"/>
</el-tab-pane>
<el-tab-pane :label="$t('Schedules')" name="schedules">
<spider-schedules/>
</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -38,10 +41,12 @@ import SpiderOverview from '../../components/Overview/SpiderOverview'
import EnvironmentList from '../../components/Environment/EnvironmentList'
import SpiderStats from '../../components/Stats/SpiderStats'
import ConfigList from '../../components/Config/ConfigList'
import SpiderSchedules from './SpiderSchedules'
export default {
name: 'SpiderDetail',
components: {
SpiderSchedules,
ConfigList,
SpiderStats,
EnvironmentList,

View File

@@ -556,11 +556,6 @@ export default {
}
this.$store.dispatch('spider/getSpiderList', params)
}
// getTypes () {
// request.get(`/spider/types`).then(resp => {
// this.types = resp.data.data
// })
// }
},
async created () {
// fetch spider types

View File

@@ -0,0 +1,55 @@
<script>
import ScheduleList from '../schedule/ScheduleList'
export default {
name: 'SpiderSchedules',
extends: ScheduleList,
computed: {
isDisabledSpiderSchedule () {
return true
},
spiderId () {
const arr = this.$route.path.split('/')
return arr[arr.length - 1]
}
},
methods: {
getNodeList () {
this.$request.get('/nodes', {}).then(response => {
this.nodeList = response.data.data.map(d => {
d.systemInfo = {
os: '',
arch: '',
num_cpu: '',
executables: []
}
return d
})
})
},
getSpiderList () {
this.$request.get('/spiders', {})
.then(response => {
this.spiderList = response.data.data.list || []
})
},
onAdd () {
this.isEdit = false
this.dialogVisible = true
this.$store.commit('schedule/SET_SCHEDULE_FORM', { node_ids: [], spider_id: this.spiderId })
this.$st.sendEv('定时任务', '添加定时任务')
}
},
created () {
const arr = this.$route.path.split('/')
const id = arr[arr.length - 1]
this.$store.dispatch(`spider/getScheduleList`, { id })
// 节点列表
this.getNodeList()
// 爬虫列表
this.getSpiderList()
}
}
</script>