vue3 + element plus 的表单校验

新增弹框的表单校验 直接上代码

新增功能基本是每个程序都需要的 下面这个直接可以拿去复用 v3是没有this的所以表单的校验和v2还是有区别的

	<el-dialog
      title="添加视图"
      :before-close="handleClose"
      v-model="data.Newlyincreased"
    >
      <el-form ref="ruleForm" :model="data.form" :rules="data.rules">
        <el-form-item label="视图名称:" label-width="100px" prop="viewName">
          <el-input v-model="data.form.viewName" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="视图类型:" label-width="100px" prop="viewType">
          <el-select
            v-model="data.form.viewType"
            style="width: 100%"
            clearable
            placeholder="请选择"
          >
            <el-option
              v-for="item in data.options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="是否有效:" prop="radio" label-width="100px">
          <el-radio-group v-model="data.form.radio">
            <el-radio :label="1"></el-radio>
            <el-radio :label="0"></el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="描述:" prop="describe" label-width="100px">
          <el-input v-model="data.form.describe" :rows="2" type="textarea" />
        </el-form-item>
      </el-form>
      <template #footer>
        <div slot="footer" class="dialog-footer">
          <el-button @click="cancel()">取 消</el-button>
          <el-button type="primary" @click="confirm_xz()">确 定</el-button>
        </div>
      </template>
    </el-dialog>
import { reactive, ref } from "vue";
import { ElMessageBox } from "element-plus";
export default {
  setup() {
    const data = reactive({
      Newlyincreased: false,
      form: {
        viewName: "",
        viewType: "",
        describe: "",
        radio: 1,
      },
      rules: {
        viewName: [
          { required: true, message: "视图名称不能为空!", trigger: "blur" },
        ],
        viewType: [
          { required: true, message: "视图类型不能为空!", trigger: "change" },
        ],
        radio: [
          { required: true, message: "是否有效不能不选!", trigger: "change" },
        ],
        describe: [
          { required: true, message: "描述不能为空!", trigger: "blur" },
        ],
      },
    });
    const ruleForm = ref(null);
    const methods = {
      confirm_xz() {
        ruleForm.value.validate((valid) => {
          if (valid) {
            alert("aaa");
          } else {
            return false;
          }
        });
      },
      handleClose(done) {
        ElMessageBox.confirm("确认关闭?")
          .then((_) => {
            done();
            ruleForm.value.resetFields();
          })
          .catch((_) => {});
      },
    };
    return {
      ...methods,
      ruleForm,
      data,
    };
  },
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值