Nuxt/examples/with-element-ui/pages/index.vue

101 lines
2.8 KiB
Vue

<template>
<div class="elm-demo">
<el-form ref="elm-demo" :model="account" :rules="formRules" label-width="100px">
<el-row type="flex" justify="flex-start">
<el-col :xs="24" :sm="10">
<el-form-item label="Account Name" prop="name" required>
<el-input v-model="account.name"/>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="flex-start">
<el-col :xs="24" :sm="10">
<el-form-item label="Date" prop="date" required>
<el-date-picker v-model="account.date" style="width: 100%;"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="{span: 3, offset: 2}">
<el-form-item label="Subscribe" prop="subscribe">
<el-switch v-model="account.subscribe" on-text="" off-text=""/>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="flex-start">
<el-col :xs="24" :sm="10">
<el-form-item label="Rate" prop="rate">
<el-rate v-model="account.rate" :colors="['#99A9BF', '#F7BA2A', '#FF9900']"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="{span: 10, offset: 2}">
<el-form-item label="Priority" prop="priority">
<el-radio-group v-model="account.priority">
<el-radio label="m">Medium</el-radio>
<el-radio label="h">High</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="center">
<el-button type="primary" @click="submit('elm-demo')">Create</el-button>
<el-button @click="reset('elm-demo')">Reset</el-button>
</el-row>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
account: {
name: '',
date: '',
subscribe: false,
priority: 'm',
rate: 5
},
formRules: {
name: [
{ required: true, message: 'Account is required', trigger: 'blur' },
{ min: 6, message: 'Account\'s length is at least 6', trigger: 'blur' }
]
}
}
},
methods: {
submit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.$message.success('Create successfully !')
if (formName === 'popForm') {
this.popVisible = false
}
return false
} else {
this.$message.warning('Create failed')
return false
}
})
},
reset(formName) {
this.$refs[formName].resetFields()
}
}
}
</script>
<style lang="scss" scoped>
.el-select {
display: block
}
@media (max-width: 768px) {
.el-row {
flex-direction:column;
.el-button+.el-button {
margin-left: 0px;
margin-top: 15px;
}
}
}
</style>