Files
crawlab/frontend/src/components/InfoView/NodeInfoView.vue
Marvin Zhang cc59e1cfce added setup.py
2019-03-03 10:48:04 +08:00

74 lines
1.8 KiB
Vue

<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>