forked from opentiny/tiny-vue
140 lines
3.3 KiB
Vue
140 lines
3.3 KiB
Vue
<template>
|
|
<div class="demo-form-validate">
|
|
<div class="page__hd">
|
|
<h1 class="page__title">Form</h1>
|
|
<p class="page__desc">表单校验</p>
|
|
</div>
|
|
<div class="demo-form-validate-padds">
|
|
<tiny-form ref="ruleForm" :model="createData" :rules="rules" inline-message>
|
|
<tiny-form-item label="优秀" prop="users" vertical>
|
|
<tiny-input v-model="createData.users" placeholder="请输入内容" type="form"></tiny-input>
|
|
</tiny-form-item>
|
|
<tiny-form-item label="优秀" prop="user" vertical>
|
|
<tiny-input
|
|
v-model="createData.user"
|
|
is-select
|
|
:select-menu="menus"
|
|
placeholder="请输入内容"
|
|
type="form"
|
|
></tiny-input>
|
|
</tiny-form-item>
|
|
<tiny-form-item class="demo-form-validate-item">
|
|
<tiny-button type="primary" @click="handleSubmit('ruleForm')">提交</tiny-button>
|
|
<tiny-button type="primary" @click="clearValidate('ruleForm')">移除校验</tiny-button>
|
|
<tiny-button type="primary" @click="resetFields('ruleForm')">重置</tiny-button>
|
|
</tiny-form-item>
|
|
</tiny-form>
|
|
</div>
|
|
<tiny-dialog-box
|
|
:visible="boxVisibility"
|
|
@update:visible="boxVisibility = $event"
|
|
:modal-append-to-body="false"
|
|
title="消息提示"
|
|
>
|
|
<span>提交成功!</span>
|
|
</tiny-dialog-box>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="jsx">
|
|
import { Form, FormItem, Input, Button, DialogBox } from '@opentiny/vue'
|
|
|
|
export default {
|
|
components: {
|
|
TinyForm: Form,
|
|
TinyFormItem: FormItem,
|
|
TinyInput: Input,
|
|
TinyButton: Button,
|
|
TinyDialogBox: DialogBox
|
|
},
|
|
data() {
|
|
return {
|
|
menus: [
|
|
{
|
|
id: 1,
|
|
label: '我是小花,我是小花,我是小花,我是小花,我是小花,我是小花,我是小花'
|
|
},
|
|
{
|
|
id: 2,
|
|
label: '我是小树'
|
|
},
|
|
{
|
|
id: 3,
|
|
label: '我是小草'
|
|
},
|
|
{
|
|
id: 4,
|
|
label: '我是小叶',
|
|
warn: true
|
|
}
|
|
],
|
|
createData: {
|
|
users: '',
|
|
user: ''
|
|
},
|
|
rules: {
|
|
users: [{ required: true, message: '必填', trigger: 'change' }]
|
|
},
|
|
boxVisibility: false
|
|
}
|
|
},
|
|
methods: {
|
|
clearValidate(formName) {
|
|
this.$refs[formName].clearValidate()
|
|
},
|
|
resetFields(formName) {
|
|
this.$refs[formName].resetFields()
|
|
},
|
|
handleSubmit(formName) {
|
|
this.$refs[formName].validate((valid) => {
|
|
if (valid) {
|
|
this.boxVisibility = true
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.demo-form-validate-padds {
|
|
padding: 15px;
|
|
background: white;
|
|
margin-bottom: 15px;
|
|
}
|
|
.page__hd {
|
|
padding: 40px;
|
|
}
|
|
.page__title {
|
|
font-weight: 400;
|
|
font-size: 21px;
|
|
text-align: left;
|
|
}
|
|
.page__desc {
|
|
margin-top: 5px;
|
|
color: #888;
|
|
font-size: 14px;
|
|
text-align: left;
|
|
}
|
|
.demo-form-validate {
|
|
height: 100%;
|
|
background: #f4f4f4;
|
|
}
|
|
.demo-form-validate-item {
|
|
margin-top: 12px;
|
|
}
|
|
</style>
|
|
|
|
<style>
|
|
.demo-form-validate .tiny-mobile-form-item__label {
|
|
background: #fff;
|
|
}
|
|
.demo-form-validate-padds .tiny-mobile-input-form__input {
|
|
text-align: right;
|
|
}
|
|
.demo-form-validate-item .tiny-mobile-form-item__content {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
}
|
|
</style>
|