el-form内容重置(解决点击保存关闭后再点击新增会有编辑携带的数据的问题)

这篇具有很好参考价值的文章主要介绍了el-form内容重置(解决点击保存关闭后再点击新增会有编辑携带的数据的问题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要代码:  this.$refs['ruleForm'].resetFields()

<template>
  <div class="add-edit-coupon">
    <el-dialog title="商品优惠券" top="10vh" :visible.sync="dialogVisible" width="660px" :before-close="handleClose">
      <div class="add-edit-coupon-cont">
        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
          <el-form-item label="优惠券类型" prop="couponType">
            <div class="add-edit-coupon-item-cont">商品优惠券</div>
          </el-form-item>
          <el-form-item label="优惠券名称" prop="couponName">
            <el-input v-model="ruleForm.couponName" maxlength="14" placeholder="请输入优惠券名称" show-word-limit></el-input>
          </el-form-item>
          <el-form-item label="优惠券简介" prop="briefIntroduction">
            <el-input type="textarea" maxlength="40" placeholder="请输入优惠券简介" v-model="ruleForm.briefIntroduction" show-word-limit></el-input>
          </el-form-item>
          <el-form-item label="优惠方式" prop="couponType">
            <el-radio-group v-model="ruleForm.couponType">
              <el-radio :label="1">折扣券</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="折扣力度" prop="deductionPrice">
            <el-input type="number" v-model="ruleForm.deductionPrice">
              <template slot="append">折</template>
            </el-input>
          </el-form-item>
          <el-form-item label="使用范围" prop="toolApplicationIdList">
            <el-checkbox-group v-model="ruleForm.toolApplicationIdList">
              <el-checkbox label="5" name="toolApplicationIdList">现场投票</el-checkbox>
              <el-checkbox label="2" name="toolApplicationIdList">H5聚合页</el-checkbox>
              <el-checkbox label="4" name="toolApplicationIdList">投票评选</el-checkbox>
              <el-checkbox label="1" name="toolApplicationIdList">大屏抽奖</el-checkbox>
            </el-checkbox-group>
          </el-form-item>
          <el-form-item label="领取方式" prop="payment">
            <el-radio-group v-model="ruleForm.payment">
              <el-radio :label="1">自动发放</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="可用日期" prop="availabilityDate">
            <el-input type="number" v-model="ruleForm.availabilityDate">
              <template slot="prepend">领劵后</template>
              <template slot="append">天</template>
            </el-input>
          </el-form-item>
          <el-form-item label="发放条件" prop="distributionConditions">
            <el-select v-model="ruleForm.distributionConditions" placeholder="完成首单后发放">
              <el-option label="完成首单后发放" value="1"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="是否上线" prop="status">
            <el-radio-group v-model="ruleForm.status">
              <el-radio :label="1">是</el-radio>
              <el-radio :label="0">否</el-radio>
            </el-radio-group>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer flex-center">
          <el-button @click="dialogVisible = false">取 消</el-button>
          <!-- 编辑改保存 -->
          <el-button type="primary" @click="submitForm('ruleForm')">{{ isAdd ? '创 建' : '保 存' }}</el-button>
        </div>
      </div>
    </el-dialog>
  </div>
</template>

<script>
export default {
  components: {},
  props: {
    value: {
      type: Boolean,
    },
    isAdd: {
      type: Number,
      default: 0,
    },

    productCouponItem: {
      type: Object,
      default: () => {},
    },
  },
  watch: {
    productCouponItem: {
      handler(value, oldValue) {
        if (value) {
          this.ruleForm = value
          if (value.distributionConditions == 1) {
            this.ruleForm.distributionConditions = '完成首单后发放'
          }
        }
      },
    },
    isAdd: {
      handler(value, oldValue) {
        if (value == 1) {
          // 1为新增,新增时重置表单数据,ruleForm为form的ref的名称
                    // 1为新增,新增时重置表单数据,ruleForm为form的ref的名称
          this.ruleForm = {
            toolCouponId: '',
            couponName: '', //优惠券名称
            briefIntroduction: '', //优惠券简介
            couponType: 1, //优惠方式:1 折扣券
            deductionPrice: '', //折扣力度
            payment: 1, //领取方式:1 自动发放
            toolApplicationIdList: [], //使用范围
            availabilityDate: '', //可用日期
            distributionConditions: '', //发放条件
            status: '', //优惠码状态: 1上线 0下架
          }
          if (typeof this.$refs.ruleForm !== 'undefined') {
            this.$refs['ruleForm'].resetFields()
          }
        }
      },
    },
    'ruleForm.deductionPrice': {
      handler(value, oldValue) {
        if (value) {
          this.ruleForm.deductionPrice = value.toString().replace(/^\D*(\d*(?:\.\d{0,1})?).*$/g, '$1') //保留一位小数
        }
      },
    },
    'ruleForm.availabilityDate': {
      handler(value, oldValue) {
        if (value) {
          this.ruleForm.deductionPrice = value.toString().replace(/^\D*(\d*(?:\.\d{0,1})?).*$/g, '$1') //保留一位小数
        }
      },
    },
  },
  data() {
    return {
      ruleForm: {
        toolCouponId: '',
        couponName: '', //优惠券名称
        briefIntroduction: '', //优惠券简介
        couponType: 1, //优惠方式:1 折扣券
        deductionPrice: '', //折扣力度
        payment: 1, //领取方式:1 自动发放
        toolApplicationIdList: [], //使用范围
        availabilityDate: '', //可用日期
        distributionConditions: '', //发放条件
        status: '', //优惠码状态: 1上线 0下架
      },
      rules: {
        couponName: [
          { required: true, message: '请输入优惠券名称', trigger: 'blur' },
          { min: 1, max: 14, message: '长度在 1 到 14个字符', trigger: 'blur' },
        ],
        briefIntroduction: [
          { required: true, message: '请输入优惠券名称', trigger: 'blur' },
          { min: 1, max: 40, message: '长度在 1 到 40个字符', trigger: 'blur' },
        ],
        couponType: [{ required: true, message: '请选择优惠方式', trigger: 'change' }],
        deductionPrice: [{ required: true, message: '请输入折扣力度', trigger: 'blur' }],
        toolApplicationIdList: [{ type: 'array', required: true, message: '请至少选择一个工具', trigger: 'change' }],
        payment: [{ required: true, message: '请选择领取方式', trigger: 'change' }],
        availabilityDate: [{ required: true, message: '请填写可用日期', trigger: 'blur' }],
        distributionConditions: [{ required: true, message: '请选择发放条件', trigger: 'change' }],
        status: [{ required: true, message: '请选择是否上线', trigger: 'change' }],
      },
    }
  },
  computed: {
    dialogVisible: {
      get() {
        return this.value
      },
      set(val) {
        this.$emit('input', val)
      },
    },
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          this.$emit('submitCoupon', this.ruleForm)
        } else {
          console.log('error submit!!')
          return false
        }
      })
    },
    handleClose() {
      this.dialogVisible = false
      this.$refs['ruleForm'].resetFields()
    },
  },
  created() {
    console.log(Object.keys(this.productCouponItem).length != 0, 'productCouponItem')
  },
  mounted() {},
  beforeCreate() {},
  beforeMount() {},
  beforeUpdate() {},
  updated() {},
  beforeDestroy() {},
  destroyed() {},
  activated() {},
}
</script>
<style lang='scss' scoped>
.add-edit-coupon {
  .add-edit-coupon-item {
    margin-bottom: 16px;
  }
}
</style>

文章来源地址https://www.toymoban.com/news/detail-702825.html

到了这里,关于el-form内容重置(解决点击保存关闭后再点击新增会有编辑携带的数据的问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue + elementui 中 在弹框中使用了 tree型结构(<el-tree></el-tree>),点击关闭按钮按钮重置tree

    vue 项目中使用了element-ui 中 tree,选择了懒加载的模式 通过点击按钮,使得 tree 重新加载 通过点击重置按钮,使得tree 重新加载 解决的思路为:通过v-if 的显示隐藏来控制重新加载

    2024年02月12日
    浏览(52)
  • Element-UI中el-form内部在输入框回车导致刷新页面的问题解决。

    当 el-form 表单里面只有一个 el-input 输入框的时候,在输入框选中时按回车会刷新页面: 默认情况下, el-form 中只有一个输入框时, el-form 会自动为输入框添加一个 type=\\\"submit\\\" 的按钮,当按下回车键时,该按钮会触发表单的提交事件。 在el-form标签内加入 @submit.native.prevent 即可

    2024年02月11日
    浏览(59)
  • el-form/el-form-item表单验证

    如下图所示,当触发表单验证后,输入相应的内容,表单检验通过,但是上传图片后的表单校验没有通过,需要点击表单提交触发表单提交时的校验才有效 el-form 表单,在输入内容改变元素的值后,会触发上层 el-form-item 的 el.form.chang / \\\'el.form.blur’事件,el-form-item 接收到此事

    2024年02月12日
    浏览(54)
  • el-form验证问题

    1.如果第一次打开el-dialog有验证失败,重新打开el-dialog仍然会有验证失败 解决方案: 给el-dialog绑定close事件,并调用clearValidate() 2.手动控制验证状态 error:错误信息 validate-status:验证状态。 success 验证成功, error验证失败, validating验证中,\\\'\\\'未验证 3.编辑界面验证这行数据

    2024年01月18日
    浏览(43)
  • el-form单个表单项校验方法;element-ui表单单个选项校验;el-form单个表单校验

    当我们使用element-ui的el-form时,想在提交表单前对其中一个表单进行验证时就可以使用element自带的方法“validateField” 如图: 使用示例

    2024年02月16日
    浏览(56)
  • vue3使用el-form实现登录、注册功能,且进行表单验证(Element Plus中的el-form)

    简介:Element Plus 中的 el-form 是一个表单组件,用于快速构建表单并进行数据校验。它提供了丰富的表单元素和验证规则,使表单开发变得更加简单和高效。可以搭配el-dialog实现当前页面的登录、注册页 ,这两天在vue3中用到了表单登录,特意记录一下,这里没有封装,直接使

    2024年02月07日
    浏览(73)
  • el-form自定义校验规则

    Vue 的 el-form 组件可以使用自定义校验规则进行表单验证。自定义校验规则可以通过传递一个函数来实现,该函数接受要校验的字段的值作为参数,并返回一个布尔值或一个 Promise 对象。 下面是一个示例,演示如何在 el-form 中使用自定义校验规则: 在上述例子中,我们定义了

    2024年02月12日
    浏览(43)
  • el-form前端表单校验步骤详细

    (1),Form组件提供了表单验证的功能,只需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名即可。 (2),data-return里面加上formData,在这里写上限定条件,通过rules属性传入约定的验证规则 (3),提交验证 例子:

    2024年02月16日
    浏览(49)
  • el-form表单el-form-item prop一次验证两个值

    1.表单添加两个框,prop写上 2.data里写,验证规则添加validator: this.validateFields 3.validateFields设置

    2024年02月10日
    浏览(43)
  • Vue: el-form 自定义校验规则

    Vue 的 el-form 组件可以使用自定义校验规则进行表单验证。自定义校验规则可以通过传递一个函数来实现,该函数接受要校验的字段的值作为参数,并返回一个布尔值或一个 Promise 对象。 下面是一个示例,演示如何在 el-form 中使用自定义校验规则: 在上述例子中,我们定义了

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包