加入scrapy日志选择

This commit is contained in:
marvzhang
2020-02-15 21:25:21 +08:00
parent acdf4d5951
commit 01fefbee88
7 changed files with 115 additions and 44 deletions

View File

@@ -3,11 +3,11 @@
:title="$t('Notification')"
:visible="visible"
class="crawl-confirm-dialog"
width="540px"
width="580px"
:before-close="beforeClose"
>
<div style="margin-bottom: 20px;">{{$t('Are you sure to run this spider?')}}</div>
<el-form label-width="120px" :model="form" ref="form">
<el-form label-width="140px" :model="form" ref="form">
<el-form-item :label="$t('Run Type')" prop="runType" required inline-message>
<el-select v-model="form.runType" :placeholder="$t('Run Type')">
<el-option value="all-nodes" :label="$t('All Nodes')"/>
@@ -36,8 +36,23 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('Parameters')" prop="param" inline-message>
<el-input v-model="form.param" :placeholder="$t('Parameters')"></el-input>
<el-form-item v-if="spiderForm.is_scrapy" :label="$t('Scrapy Log Level')" prop="scrapy_log_level" required
inline-message>
<el-select v-model="form.scrapy_log_level" :placeholder="$t('Scrapy Log Level')">
<el-option value="INFO" label="INFO"/>
<el-option value="DEBUG" label="DEBUG"/>
<el-option value="WARN" label="WARN"/>
<el-option value="ERROR" label="ERROR"/>
</el-select>
</el-form-item>
<el-form-item v-if="spiderForm.type === 'customized'" :label="$t('Parameters')" prop="param" inline-message>
<template v-if="spiderForm.is_scrapy">
<el-input v-model="form.param" :placeholder="$t('Parameters')" class="param-input"/>
<el-button type="primary" icon="el-icon-edit" class="param-btn"/>
</template>
<template v-else>
<el-input v-model="form.param" :placeholder="$t('Parameters')"></el-input>
</template>
</el-form-item>
<el-form-item class="disclaimer-wrapper">
<div>
@@ -84,6 +99,7 @@ export default {
runType: 'random',
nodeIds: undefined,
spider: undefined,
scrapy_log_level: 'INFO',
param: '',
nodeList: []
},
@@ -120,7 +136,7 @@ export default {
const res = await this.$store.dispatch('spider/crawlSpider', {
spiderId: this.spiderId,
nodeIds: this.form.nodeIds,
param: this.form.param + ' ' + this.form.spider,
param: `${this.form.spider} --loglevel=${this.form.scrapy_log_level} ${this.form.param}`,
runType: this.form.runType
})
@@ -177,4 +193,19 @@ export default {
.crawl-confirm-dialog >>> .disclaimer-wrapper a {
color: #409eff;
}
.crawl-confirm-dialog >>> .param-input {
width: calc(100% - 56px);
}
.crawl-confirm-dialog >>> .param-input .el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: none;
}
.crawl-confirm-dialog >>> .param-btn {
width: 56px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
</style>

View File

@@ -184,6 +184,7 @@ export default {
'Template': '模版',
'Is Scrapy': '是否为 Scrapy',
'Scrapy Spider': 'Scrapy 爬虫',
'Scrapy Log Level': 'Scrapy 日志等级',
// 爬虫列表
'Name': '名称',

View File

@@ -94,6 +94,15 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="spiderForm.is_scrapy" :label="$t('Scrapy Log Level')" prop="scrapy_spider" required
inline-message>
<el-select v-model="scheduleForm.scrapy_log_level" :placeholder="$t('Scrapy Log Level')">
<el-option value="INFO" label="INFO"/>
<el-option value="DEBUG" label="DEBUG"/>
<el-option value="WARN" label="WARN"/>
<el-option value="ERROR" label="ERROR"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('Cron')" prop="cron" required>
<el-popover v-model="isShowCron" trigger="focus">
<template>
@@ -111,7 +120,7 @@
</el-popover>
<!--<el-button size="small" style="width:100px" type="primary" @click="onShowCronDialog">{{$t('schedules.add_cron')}}</el-button>-->
</el-form-item>
<el-form-item :label="$t('Execute Command')" prop="params">
<el-form-item :label="$t('Execute Command')" prop="cmd">
<el-input
id="cmd"
v-model="spiderForm.cmd"
@@ -119,7 +128,7 @@
disabled
/>
</el-form-item>
<el-form-item :label="$t('Parameters')" prop="param">
<el-form-item v-if="spiderForm.type === 'customized'" :label="$t('Parameters')" prop="param">
<el-input
id="param"
v-model="scheduleForm.param"
@@ -445,6 +454,9 @@ export default {
if (res) {
const form = JSON.parse(JSON.stringify(this.scheduleForm))
form.cron = '0 ' + this.scheduleForm.cron
if (this.spiderForm.is_scrapy) {
form.param += form.param + ' --loglevel=' + form.scrapy_log_level
}
if (this.isEdit) {
request.post(`/schedules/${this.scheduleForm._id}`, form).then(response => {
if (response.data.error) {
@@ -479,6 +491,9 @@ export default {
this.$st.sendEv('定时任务', '修改定时任务')
this.isLoading = true
if (!this.scheduleForm.scrapy_log_level) {
this.$set(this.scheduleForm, 'scrapy_log_level', 'INFO')
}
await this.$store.dispatch('spider/getSpiderData', row.spider_id)
if (this.spiderForm.is_scrapy) {
await this.$store.dispatch('spider/getSpiderScrapySpiders', row.spider_id)