一、表单:
二、代码——拿官方的代码举例(做了一些小改动):
改动:model绑定的字段,由form改为queryParams
ref绑定的字段form改为queryFrom
注:model绑定的这个字段用来做数据双向绑定的
注:ref绑定的这个字段用来清空表单数据的
<el-form ref="queryForm" :model="queryParams" label-width="80px"><el-form-item label="活动名称" prop="name"><el-input v-model="queryParams.name"></el-input></el-form-item><el-form-item label="活动区域" prop="region"><el-select v-model="queryParams.region" placeholder="请选择活动区域"><el-option label="区域一" value="shanghai"></el-option><el-option label="区域二" value="beijing"></el-option></el-select></el-form-item><el-form-item label="活动时间" prop="date"><el-col :span="11"><el-date-picker type="date" placeholder="选择日期" v-model="queryParams.date1" style="width: 100%;"></el-date-picker></el-col><el-col class="line" :span="2">-</el-col><el-col :span="11"><el-time-picker placeholder="选择时间" v-model="queryParams.date2" style="width: 100%;"></el-time-picker></el-col></el-form-item><el-form-item label="即时配送" prop="delivery"><el-switch v-model="queryParams.delivery"></el-switch></el-form-item><el-form-item label="活动性质" prop="type"><el-checkbox-group v-model="queryParams.type"><el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox><el-checkbox label="地推活动" name="type"></el-checkbox><el-checkbox label="线下主题活动" name="type"></el-checkbox><el-checkbox label="单纯品牌曝光" name="type"></el-checkbox></el-checkbox-group></el-form-item><el-form-item label="特殊资源" prop="resource"><el-radio-group v-model="queryParams.resource"><el-radio label="线上品牌商赞助"></el-radio><el-radio label="线下场地免费"></el-radio></el-radio-group></el-form-item><el-form-item label="活动形式" prop="desc"><el-input type="textarea" v-model="queryParams.desc"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button><el-button>取消</el-button></el-form-item>
</el-form>
三、数据初始化:
data() {return {queryParams: {name: '',region: '',date1: '',date2: '',delivery: false,type: [],resource: '',desc: ''}}},
注:这里不要图省事,直接写queryParams:{},这样的话可能会产生一些问题,由于视图模型,模型都没有,他页面渲染的时候,你改变数据的话,就找不到这个模型了, 如下图:
重置表单时,输入框,下拉框输入的内容就无法呈现。
四、表单重置,另外,要加prop字段,不然重置方法、表单校验方法不生效
像上面的活动时间,一个表单项,绑定两个不同的值,我们可以直接用this.queryParam.字段1=null进行重置
/** 重置按钮操作 */resetQuery() {this.resetForm("queryForm");this.queryParams.date1=null;this.queryParams.date2=null;},