diff --git a/frontend/src/components/File/FileList.vue b/frontend/src/components/File/FileList.vue index d4f6106d..698fe908 100644 --- a/frontend/src/components/File/FileList.vue +++ b/frontend/src/components/File/FileList.vue @@ -409,6 +409,23 @@ export default { this.isShowDelete = false this.showFile = false this.$st.sendEv('爬虫详情', '文件', '删除') + }, + clickPipeline () { + const filename = 'pipelines.py' + for (let i = 0; i < this.computedFileTree.length; i++) { + const dataLv1 = this.computedFileTree[i] + const nodeLv1 = this.$refs['tree'].getNode(dataLv1.path) + if (dataLv1.is_dir) { + for (let j = 0; j < dataLv1.children.length; j++) { + const nodeLv2 = dataLv1.children[j] + if (nodeLv2.path.match(filename)) { + this.onFileClick(nodeLv2) + nodeLv1.expanded = true + return + } + } + } + } } }, async created () { diff --git a/frontend/src/components/Scrapy/SpiderScrapy.vue b/frontend/src/components/Scrapy/SpiderScrapy.vue index 7fd28bda..39d808d2 100644 --- a/frontend/src/components/Scrapy/SpiderScrapy.vue +++ b/frontend/src/components/Scrapy/SpiderScrapy.vue @@ -349,6 +349,7 @@ v-for="s in spiderScrapyPipelines" :key="s" class="item" + @click="$emit('click-pipeline')" > {{s}} diff --git a/frontend/src/views/spider/SpiderDetail.vue b/frontend/src/views/spider/SpiderDetail.vue index e6742a94..d4d126d1 100644 --- a/frontend/src/views/spider/SpiderDetail.vue +++ b/frontend/src/views/spider/SpiderDetail.vue @@ -26,13 +26,18 @@ - + - + @@ -162,7 +167,8 @@ export default { } this.$utils.tour.nextStep('spider-detail', currentStep) } - } + }, + redirectType: '' } }, computed: { @@ -227,6 +233,20 @@ export default { this.$store.dispatch('spider/getSpiderScrapySettings', this.$route.params.id), this.$store.dispatch('spider/getSpiderScrapyPipelines', this.$route.params.id) ]) + }, + async onClickScrapySpider () { + this.redirectType = 'spider' + this.activeTabName = 'files' + await this.$store.dispatch('spider/getFileTree') + if (this.currentPath) { + await this.$store.dispatch('file/getFileContent', { path: this.currentPath }) + } + }, + async onClickScrapyPipeline () { + this.redirectType = 'pipeline' + this.activeTabName = 'files' + await this.$store.dispatch('spider/getFileTree') + this.$refs['file-list'].clickPipeline() } }, async created () {