added setup.py

This commit is contained in:
Marvin Zhang
2019-03-03 10:48:04 +08:00
parent d26f43e09e
commit 8361c04de9
151 changed files with 21609 additions and 10 deletions

View File

@@ -0,0 +1,73 @@
<template>
<div class="info-view">
<el-row>
<el-form label-width="150px"
:model="nodeForm"
ref="nodeForm"
class="node-form"
label-position="right">
<el-form-item label="Node Name">
<el-input v-model="nodeForm.name" placeholder="Node Name" disabled></el-input>
</el-form-item>
<el-form-item label="Node IP" prop="ip" required>
<el-input v-model="nodeForm.ip" placeholder="Node IP" :disabled="isView"></el-input>
</el-form-item>
<el-form-item label="Node Port" prop="port" required>
<el-input v-model="nodeForm.port" placeholder="Node Port" :disabled="isView"></el-input>
</el-form-item>
<el-form-item label="Description">
<el-input type="textarea" v-model="nodeForm.description" placeholder="Description" :disabled="isView">
</el-input>
</el-form-item>
</el-form>
</el-row>
<el-row class="button-container" v-if="!isView">
<el-button type="success" @click="onSave">Save</el-button>
</el-row>
</div>
</template>
<script>
import {
mapState
} from 'vuex'
export default {
name: 'NodeInfoView',
props: {
isView: {
type: Boolean,
default: false
}
},
computed: {
...mapState('node', [
'nodeForm'
])
},
methods: {
onSave () {
this.$refs.nodeForm.validate(valid => {
if (valid) {
this.$store.dispatch('node/editNode')
.then(() => {
this.$message.success('Node has been saved successfully')
})
}
})
}
}
}
</script>
<style scoped>
.node-form {
padding: 10px;
}
.button-container {
padding: 0 10px;
width: 100%;
text-align: right;
}
</style>

View File

@@ -0,0 +1,112 @@
<template>
<div class="info-view">
<el-row>
<el-form label-width="150px"
:model="spiderForm"
ref="spiderForm"
class="spider-form"
label-position="right">
<el-form-item label="Spider ID">
<el-input v-model="spiderForm._id.$oid" placeholder="Spider ID" disabled></el-input>
</el-form-item>
<el-form-item label="Spider Name">
<el-input v-model="spiderForm.name" placeholder="Spider Name" :disabled="isView"></el-input>
</el-form-item>
<el-form-item label="Source Folder">
<el-input v-model="spiderForm.src" placeholder="Source Folder" disabled></el-input>
</el-form-item>
<el-form-item label="Execute Command" prop="cmd" :rule="cmdRule" required>
<el-input v-model="spiderForm.cmd" placeholder="Execute Command"
:disabled="isView"></el-input>
</el-form-item>
<el-form-item label="Spider Type">
<el-select v-model="spiderForm.type" placeholder="Select Spider Type" :disabled="isView" clearable>
<el-option value="scrapy" label="Scrapy"></el-option>
<el-option value="pyspider" label="PySpider"></el-option>
<el-option value="webmagic" label="WebMagic"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Language">
<el-select v-model="spiderForm.lang" placeholder="Select Language" :disabled="isView" clearable>
<el-option value="python" label="Python"></el-option>
<el-option value="javascript" label="JavaScript"></el-option>
<el-option value="java" label="Java"></el-option>
<el-option value="go" label="Go"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-row>
<el-row class="button-container" v-if="!isView">
<el-button type="success" @click="onRun">Run</el-button>
<el-button type="primary" @click="onDeploy">Deploy</el-button>
<el-button type="success" @click="onSave">Save</el-button>
</el-row>
</div>
</template>
<script>
import {
mapState
} from 'vuex'
export default {
name: 'SpiderInfoView',
props: {
isView: {
default: false,
type: Boolean
}
},
data () {
return {
cmdRule: [
{ message: 'Execute Command should not be empty', required: true }
]
}
},
computed: {
...mapState('spider', [
'spiderForm'
])
},
methods: {
onRun () {
this.$refs['spiderForm'].validate(res => {
if (res) {
this.$store.commit('dialogView/SET_DIALOG_VISIBLE', true)
this.$store.commit('dialogView/SET_DIALOG_TYPE', 'spiderRun')
}
})
},
onDeploy () {
this.$store.commit('dialogView/SET_DIALOG_VISIBLE', true)
this.$store.commit('dialogView/SET_DIALOG_TYPE', 'spiderDeploy')
},
onSave () {
this.$refs['spiderForm'].validate(res => {
if (res) {
this.$store.dispatch('spider/editSpider')
.then(() => {
this.$message.success('Spider info has been saved successfully')
})
.catch(error => {
this.$message.error(error)
})
}
})
}
}
}
</script>
<style scoped>
.spider-form {
padding: 10px;
}
.button-container {
padding: 0 10px;
width: 100%;
text-align: right;
}
</style>

View File

@@ -0,0 +1,89 @@
<template>
<div class="info-view">
<el-row>
<el-form label-width="150px"
:model="taskForm"
ref="nodeForm"
class="node-form"
label-position="right">
<el-form-item label="Task ID">
<el-input v-model="taskForm._id" placeholder="Task ID" disabled></el-input>
</el-form-item>
<el-form-item label="Status">
<el-tag type="success" v-if="taskForm.status === 'SUCCESS'">SUCCESS</el-tag>
<el-tag type="warning" v-else-if="taskForm.status === 'PENDING'">PENDING</el-tag>
<el-tag type="danger" v-else-if="taskForm.status === 'FAILURE'">FAILURE</el-tag>
<el-tag type="info" v-else>{{taskForm.status}}</el-tag>
</el-form-item>
<el-form-item label="Spider Version">
<el-input v-model="taskForm.spider_version" placeholder="Log File Path" disabled></el-input>
</el-form-item>
<el-form-item label="Log File Path">
<el-input v-model="taskForm.log_file_path" placeholder="Log File Path" disabled></el-input>
</el-form-item>
<el-form-item label="Create Timestamp">
<el-input v-model="taskForm.create_ts" placeholder="Create Timestamp" disabled></el-input>
</el-form-item>
<el-form-item label="Finish Timestamp">
<el-input v-model="taskForm.finish_ts" placeholder="Finish Timestamp" disabled></el-input>
</el-form-item>
<el-form-item label="Duration (sec)">
<el-input v-model="taskForm.duration" placeholder="Duration" disabled></el-input>
</el-form-item>
<el-form-item label="Error Message" v-if="taskForm.status === 'FAILURE'">
<div class="error-message">
{{taskForm.result}}
</div>
</el-form-item>
</el-form>
</el-row>
<el-row class="button-container">
<el-button type="danger" @click="onRestart">Restart</el-button>
</el-row>
</div>
</template>
<script>
import {
mapState
} from 'vuex'
export default {
name: 'NodeInfoView',
computed: {
...mapState('task', [
'taskForm'
])
},
methods: {
Restart () {
}
}
}
</script>
<style scoped>
.node-form {
padding: 10px;
}
.button-container {
padding: 0 10px;
width: 100%;
text-align: right;
}
.el-tag {
height: 36px;
line-height: 36px;
}
.error-message {
background-color: rgba(245, 108, 108, .1);
color: #f56c6c;
border: 1px solid rgba(245, 108, 108, .2);
border-radius: 4px;
line-height: 18px;
padding: 5px 10px;
}
</style>