marvzhang
2020-03-28 17:59:58 +08:00
parent 923c710e6d
commit ce8188f3b6
4 changed files with 68 additions and 8 deletions

View File

@@ -0,0 +1,24 @@
<script>
import {
mapState
} from 'vuex'
import TaskList from '../../views/task/TaskList'
export default {
name: 'ScheduleTaskList',
extends: TaskList,
computed: {
...mapState('task', [
'filter'
]),
...mapState('schedule', [
'scheduleForm'
])
},
async created () {
this.isFilterSpiderDisabled = true
this.filter.spider_id = this.scheduleForm.spider_id
await this.$store.dispatch('task/getTaskList')
}
}
</script>

View File

@@ -297,6 +297,7 @@ export default {
'Cron': 'Cron',
'Cron Expression': 'Cron 表达式',
'Cron expression is invalid': 'Cron 表达式不正确',
'View Tasks': '查看任务',
// 网站
'Site': '网站',

View File

@@ -161,6 +161,18 @@
<el-button id="btn-submit" size="small" type="primary" @click="onAddSubmit" :disabled="isLoading">{{$t('Submit')}}</el-button>
</span>
</el-dialog>
<!--./add popup-->
<!--view tasks popup-->
<el-dialog
:title="$t('Tasks')"
:visible.sync="isViewTasksDialogVisible"
width="calc(100% - 240px)"
:before-close="() => this.isViewTasksDialogVisible = false"
>
<schedule-task-list/>
</el-dialog>
<!--./view tasks popup-->
<!--cron generation popup-->
<el-dialog title="生成 Cron" :visible.sync="cronDialogVisible">
@@ -245,19 +257,25 @@
</template>
</el-table-column>
</template>
<el-table-column :label="$t('Action')" align="left" width="130" fixed="right">
<el-table-column :label="$t('Action')" class="actions" align="left" width="130" fixed="right">
<template slot-scope="scope">
<!-- 编辑 -->
<!--编辑-->
<el-tooltip :content="$t('Edit')" placement="top">
<el-button type="warning" icon="el-icon-edit" size="mini" @click="onEdit(scope.row)"></el-button>
</el-tooltip>
<!-- 删除 -->
<!--./编辑-->
<!--删除-->
<el-tooltip :content="$t('Remove')" placement="top">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="onRemove(scope.row)"></el-button>
</el-tooltip>
<!--<el-tooltip :content="$t(getStatusTooltip(scope.row))" placement="top">-->
<!--<el-button type="success" icon="fa fa-bug" size="mini" @click="onCrawl(scope.row)"></el-button>-->
<!--</el-tooltip>-->
<!--./删除-->
<!--查看任务-->
<el-tooltip :content="$t('View Tasks')" placement="top">
<el-button type="primary" icon="el-icon-search" size="mini" @click="onViewTasks(scope.row)"></el-button>
</el-tooltip>
<!--./查看任务-->
</template>
</el-table-column>
</el-table>
@@ -273,10 +291,12 @@ import {
mapState
} from 'vuex'
import ParametersDialog from '../../components/Common/ParametersDialog'
import ScheduleTaskList from '../../components/Schedule/ScheduleTaskList'
export default {
name: 'ScheduleList',
components: {
ScheduleTaskList,
VueCronLinux,
ParametersDialog
},
@@ -305,6 +325,7 @@ export default {
isShowCron: false,
isLoading: false,
isParametersVisible: false,
isViewTasksDialogVisible: false,
// tutorial
tourSteps: [
@@ -593,6 +614,11 @@ export default {
onShowCronDialog () {
this.cronDialogVisible = true
this.$st.sendEv('定时任务', '点击编辑Cron')
},
async onViewTasks (row) {
this.isViewTasksDialogVisible = true
this.$store.commit('schedule/SET_SCHEDULE_FORM', row)
this.$st.sendEv('定时任务', '查看任务列表')
}
},
created () {
@@ -637,6 +663,12 @@ export default {
margin-top: 10px;
}
.table .el-button {
width: 28px;
height: 28px;
padding: 0;
}
.status-tag {
cursor: pointer;
}

View File

@@ -21,7 +21,7 @@
</el-select>
</el-form-item>
<el-form-item prop="spider_id" :label="$t('Spider')">
<el-select v-model="filter.spider_id" size="small" :placeholder="$t('Spider')" @change="onFilterChange">
<el-select v-model="filter.spider_id" size="small" :placeholder="$t('Spider')" @change="onFilterChange" :disabled="isFilterSpiderDisabled">
<el-option value="" :label="$t('All')"/>
<el-option v-for="spider in spiderList" :key="spider._id" :value="spider._id" :label="spider.name"/>
</el-select>
@@ -241,6 +241,7 @@ export default {
}
}
],
tourCallbacks: {
onStop: () => {
this.$utils.tour.finishTour('task-list')
@@ -251,7 +252,9 @@ export default {
onNextStep: (currentStep) => {
this.$utils.tour.nextStep('task-list', currentStep)
}
}
},
isFilterSpiderDisabled: false
}
},
computed: {