Skip to content
On this page

表单

基础使用

username
password
兴趣爱好
唱歌
跳舞
rap
篮球
国籍
代码示例
js
<template>
<div class="card">
    <pied-form model="form">
      <pied-form-item prop="username">
        <pied-input v-model="form.username" label="username"></pied-input>
      </pied-form-item>
      <pied-form-item prop="password">
        <pied-input v-model="form.password" label="password" type="password"></pied-input>
      </pied-form-item>
      <pied-form-item label="兴趣爱好" prop="like" label-width="100px" bottom="20px">
        <pied-checkbox-group v-model="form.like" data="checkList">
        </pied-checkbox-group>
      </pied-form-item>
      <pied-form-item label="国籍" prop="country" label-width="100px" bottom="20px">
        <pied-select v-model="form.country" data="countryList"></pied-select>
      </pied-form-item>
      <pied-form-item>
        <div style="text-align:center">
          <pied-button type="error">重置</pied-button>
          <pied-button>提交</pied-button>
        </div>
      </pied-form-item>
    </pied-form>
</div>
</template>

<script setup>
import { ref, reactive, onMounted, reactive } from 'vue'
const form = reactive({
  username: '',
  password: '',
  like: [],
  country: ''
})
</script>

表单校验

username
password
兴趣爱好
唱歌
跳舞
rap
篮球
国籍
代码示例
js
<template>
<div class="card">
    <pied-form model="form" ref="formRef" rules="rules">
      <pied-form-item prop="username">
        <pied-input v-model="form.username" label="username"></pied-input>
      </pied-form-item>
      <pied-form-item prop="password">
        <pied-input v-model="form.password" label="password" type="password"></pied-input>
      </pied-form-item>
      <pied-form-item label="兴趣爱好" prop="like" label-width="100px" bottom="20px">
        <pied-checkbox-group v-model="form.like" data="checkList">
        </pied-checkbox-group>
      </pied-form-item>
      <pied-form-item label="国籍" prop="country" label-width="100px" bottom="20px">
        <pied-select v-model="form.country" data="countryList"></pied-select>
      </pied-form-item>
      <pied-form-item>
        <div style="text-align:center">
          <pied-button click="handel">提交</pied-button>
        </div>
      </pied-form-item>
    </pied-form>
</div>
</template>

<script setup>
import { ref, reactive, onMounted, reactive } from 'vue'
const form = reactive({
  username: '',
  password: '',
  like: [],
  country: ''
})
const formRef = ref(null)

const rules = reactive({
  username: [
    {required: true, message: '请输入用户名', trigger: 'blur'}
  ],
  password: [
    {required: true, message: '请输入密码', trigger: 'blur'}
  ]
})
const checkList = ref([
  {
    label: '唱歌',
    value: 0
  },
  {
    label: '跳舞',
    value: 1
  },
  {
    label: 'rap',
    value: 2
  },
  {
    label: '篮球',
    value: 3
  }
])
const countryList = ref([
  {
    label: '中国',
    value: 0
  },
  {
    label: '日本',
    value: 1
  },
  {
    label: '美国',
    value: 2
  },
  {
    label: '俄罗斯',
    value: 3
  }
])
const handel = () => {
  formRef.value.validate((valid) => {
    if(valid){
      alert('注册成功')
    }else {
      alert('数据填写不完整')
    }
  })
}
</script>

表单重置

username
password
兴趣爱好
唱歌
跳舞
rap
篮球
国籍
代码示例
js
<template>
<div class="card">
    <pied-form model="form" ref="formRef" rules="rules">
      <pied-form-item prop="username">
        <pied-input v-model="form.username" label="username"></pied-input>
      </pied-form-item>
      <pied-form-item prop="password">
        <pied-input v-model="form.password" label="password" type="password"></pied-input>
      </pied-form-item>
      <pied-form-item label="兴趣爱好" prop="like" label-width="100px" bottom="20px">
        <pied-checkbox-group v-model="form.like" data="checkList">
        </pied-checkbox-group>
      </pied-form-item>
      <pied-form-item label="国籍" prop="country" label-width="100px" bottom="20px">
        <pied-select v-model="form.country" data="countryList"></pied-select>
      </pied-form-item>
      <pied-form-item>
        <div style="text-align:center">
            <pied-button type="error" click="reset">重置</pied-button>
            <pied-button click="handel">提交</pied-button>
        </div>
      </pied-form-item>
    </pied-form>
</div>
</template>

<script setup>
import { ref, reactive, onMounted, reactive } from 'vue'
const form = reactive({
  username: '',
  password: '',
  like: [],
  country: ''
})
const formRef = ref(null)

const rules = reactive({
  username: [
    {required: true, message: '请输入用户名', trigger: 'blur'}
  ],
  password: [
    {required: true, message: '请输入密码', trigger: 'blur'}
  ]
})
const checkList = ref([
  {
    label: '唱歌',
    value: 0
  },
  {
    label: '跳舞',
    value: 1
  },
  {
    label: 'rap',
    value: 2
  },
  {
    label: '篮球',
    value: 3
  }
])
const countryList = ref([
  {
    label: '中国',
    value: 0
  },
  {
    label: '日本',
    value: 1
  },
  {
    label: '美国',
    value: 2
  },
  {
    label: '俄罗斯',
    value: 3
  }
])
const handel = () => {
  formRef.value.validate((valid) => {
    if(valid){
      alert('注册成功')
    }else {
      alert('数据填写不完整')
    }
  })
}

const reset = () => {
  formRef.value.resetFields()
}
</script>
参数说明可选值默认值类型
model绑定数据Object-----Object
rules校验规则Object------Object
prop校验字段绑定数据中的字段名-----String
labelWidthlabel宽度px0pxString
label提示文字----------String
validate校验表单----------Function
resetFields重置表单----------Function

Released under the MIT License.