新增业务数据时,还没有选择待验证的组件就出现了验证提示,产生这种效果的原因是我们每一次初始化表单时应该重置下验证内容。如下图是一个业务列表功能:
<template>
<el-container>
<el-main>
<el-row>
<el-button type="primary" size="small" icon="el-icon-plus" @click="handlerAdd">新增</el-button>
</el-row>
<el-table ref="projectTable" :data="tableData" style="width: 100%" height="800">
<el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
<el-table-column prop="ProjectName" label="项目名称" width="250" align="center"></el-table-column>
<el-table-column prop="ProjectContent" label="项目描述" align="center"></el-table-column>
<el-table-column prop="CreateUser" label="创建人" width="250" align="center"></el-table-column>
<el-table-column prop="CreateTime" label="操作日期" width="180" column-key="date" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="success" @click="handleEditor(scope.row)">设计器</el-button>
<el-button size="mini" type="primary" @click="handleEdit(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog :visible.sync="dialogVisible" :title="dialogTitle" :modal="true">
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-form-item label="项目名称" prop="ProjectName">
<el-input v-model="form.ProjectName"></el-input>
</el-form-item>
<el-form-item label="菜单项" prop="menu">
<treeselect v-model="checkedKeys" :multiple="true" :options="menuData" :clearable="false" :show-count="true"
:value-consists-of="valueConsistsOf" placeholder />
</el-form-item>
<el-form-item label="所属煤矿" prop="Kjcode">
<el-select v-model="form.Kjcode" placeholder="请选择">
<el-option v-for="item in coalMineType" :key="item.Code" :label="item.Name" :value="item.Code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目描述">
<el-input type="textarea" v-model="form.ProjectContent"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" size="small" @click="handleSave">提交</el-button>
</span>
</el-dialog>
</el-main>
</el-container>
</template>
我们在新增或者编辑按钮点击事件中执行this.$refs.form.resetFields(),这样就不会出现在打开窗体就出发验证事件;
handlerAdd() {
this.dialogVisible = true;
this.dialogTitle = "新增";
this.form = {};
this.$refs.form.resetFields();
this.checkedKeys = [];
},