ant design vue 表单在提交和编辑页面的使用

1使用

因为考虑加载速度,框架不是全局引用,需要什么就引入需要的组件。

1.1引入

import Vue from 'vue'
import {Row, Col, Input, Button, Icon, Form, Avatar, Skeleton, Empty, Alert, Popover, Checkbox} from 'ant-design-vue';
Vue.use(Col);
Vue.use(Input);
Vue.use(Icon);
Vue.use(Button);
Vue.use(Row);
Vue.use(Form);
Vue.use(Avatar);
Vue.use(Skeleton);
Vue.use(Empty);
Vue.use(Alert);
Vue.use(Popover);
Vue.use(Checkbox);

 1.2html

       <a-form :form="form" :label-col="{ span: 3 }" :wrapper-col="{ span: 15 }">
          <a-form-item label="标题:">
            <a-input
              v-decorator="['name', { rules: [{ required: true, message: '请输入名称' }] }]"
              :disabled="editStatus"
              placeholder="请输入名称"
              autocomplete="off"
            />
          </a-form-item>
          <a-form-item label="编号:" :class="errorCode ? 'ant-form-item-with-help': ''" class="cveIdBox">
            <a-input
              v-decorator="['code', { rules: [{ required: true, message: '请输入编号' }] }]"
              @blur="checkCve"
              @change="changeCve"
              placeholder="请输入编号"
              autocomplete="off"
            />
            <div :class="errorCode ? 'ant-form-explain' : ''">{{errorCode}}</div>
          </a-form-item>
          <a-form-item label="地址:">
            <a-input
              v-decorator="['address', { rules: [{ required: true, message: '请输入地址' }] }]"
              placeholder="请输入地址"
              :disabled="editStatus"
              autocomplete="off"
            />
          </a-form-item>
            //v-preventReClick是自定义的防重点功能
            <a-button type="primary" @click="handleSubmit" html-type="submit" v-preventReClick>
              提交
            </a-button>
          </a-form-item>
        </a-form>

1.3data

form: this.$form.createForm(this, { name: 'coordinated' }),
errorCode: null,//后端返回错的提示,自定义的一个div标签

 2事件

2.1输入框的change

changeCve() {
    this.errorCode = null;//清空后端返回的错误提示
},

2.2提交

handleSubmit(e) {
    let self = this;
    this.form.validateFields((err, values) => {
        if (!err) {
            self.submitVulFun(values)
        }
    });
},
async submitVulFun(values) {
    let params = {
        name: values.name,
        coed: values.coed,
        address: values.address,
     };
     const res = await add(params);
     if (res.data.code === 1) {
        this.$message.success("提交成功,请等待审核通过!", 3).then(() => {
        //成功3秒后事件处理
          this.$router.push(sessionStorage.getItem('toPath'))
        });
      } else {
        this.$message.error(res.data.msg);
      }
},

2.3编辑页面回填

self.form.resetFields();//重置表单
//getData获得后端返回的数据
let newArr = {
    name: self.getData.name,
    code: self.getData.code,
    address: self.getData.address,
    };
self.$nextTick(() => {
    self.form.setFieldsValue(newArr);//回填到表单
});

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值