From daeaa05d85122b055a4963afaa2e94958a867062 Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Wed, 17 Apr 2019 21:50:30 +0800 Subject: [PATCH] added filter for TaskList --- .../components/InfoView/SpiderInfoView.vue | 40 +++++++++--------- frontend/src/store/modules/task.js | 11 ++++- frontend/src/views/task/TaskList.vue | 42 +++++++++++++------ 3 files changed, 59 insertions(+), 34 deletions(-) diff --git a/frontend/src/components/InfoView/SpiderInfoView.vue b/frontend/src/components/InfoView/SpiderInfoView.vue index a02088ad..6bc1a157 100644 --- a/frontend/src/components/InfoView/SpiderInfoView.vue +++ b/frontend/src/components/InfoView/SpiderInfoView.vue @@ -38,26 +38,26 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/store/modules/task.js b/frontend/src/store/modules/task.js index c421a79b..02a23841 100644 --- a/frontend/src/store/modules/task.js +++ b/frontend/src/store/modules/task.js @@ -9,6 +9,11 @@ const state = { taskResultsData: [], taskResultsColumns: [], taskResultsTotalCount: 0, + // filter + filter: { + node_id: '', + spider_id: '' + }, // pagination pageNum: 0, pageSize: 10, @@ -68,7 +73,11 @@ const actions = { getTaskList ({ state, commit }) { return request.get('/tasks', { page_num: state.pageNum, - page_size: state.pageSize + page_size: state.pageSize, + filter: { + node_id: state.filter.node_id || undefined, + spider_id: state.filter.spider_id || undefined + } }) .then(response => { commit('SET_TASK_LIST', response.data.items) diff --git a/frontend/src/views/task/TaskList.vue b/frontend/src/views/task/TaskList.vue index 87fa6804..fe40fe5c 100644 --- a/frontend/src/views/task/TaskList.vue +++ b/frontend/src/views/task/TaskList.vue @@ -2,20 +2,22 @@
- - -
+
+ + + + + + - {{$t('Refresh')}} + {{$t('Search')}}
+ +
@@ -102,26 +104,31 @@ export default { return { isEditMode: false, dialogVisible: false, - filter: { - keyword: '' - }, // tableData, columns: [ { name: 'create_ts', label: 'Create Time', width: '150' }, { name: 'start_ts', label: 'Start Time', width: '150' }, { name: 'finish_ts', label: 'Finish Time', width: '150' }, + { name: 'duration', label: 'Duration (sec)', width: '80' }, { name: 'spider_name', label: 'Spider', width: '160' }, { name: 'node_id', label: 'Node', width: '160' }, - { name: 'status', label: 'Status', width: '160', sortable: true } + { name: 'status', label: 'Status', width: '80' } ] } }, computed: { ...mapState('task', [ + 'filter', 'taskList', 'taskListTotalCount', 'taskForm' ]), + ...mapState('spider', [ + 'spiderList' + ]), + ...mapState('node', [ + 'nodeList' + ]), pageNum: { get () { return this.$store.state.task.pageNum @@ -200,6 +207,8 @@ export default { }, created () { this.$store.dispatch('task/getTaskList') + this.$store.dispatch('spider/getSpiderList') + this.$store.dispatch('node/getNodeList') } } @@ -215,6 +224,13 @@ export default { display: flex; justify-content: space-between; + .left { + .filter-select { + width: 180px; + margin-right: 10px; + } + } + .filter-search { width: 240px; }