【vue2form表单中的动态表单校验】

动态表单校验

一、业务构建

vue 复制代码
      <el-form
        ref="viewForm"
        :inline="true"
        :model="view.form"
        :rules="rulesView"
        size="small"
        label-width="100"
      >
        <el-form-item
          style="width: 300px"
          label="店面"
        >
        <div v-if="viewTitle === '收银'">
          <div
            v-for="(payRcd, index) in view.form.couponsPayRcdList"
            :key="index"
          >
            <el-form-item
              label="收款方式"
              :prop="`couponsPayRcdList.${index}.prcdTermType`"
              :rules="rulesView.prcdTermType"
            >
              <el-select
                v-model.number="payRcd.prcdTermType"
                clearable
                placeholder="收款方式"
                size="small"
                style="width: 300px"
              >
                <el-option
                  v-for="item1 in pubDict.common_pay_type"
                  :key="item1.key"
                  :label="item1.name"
                  :value="1 * item1.code"
                />
              </el-select>
            </el-form-item>
            <el-form-item
              label="收款账户"
              :prop="`couponsPayRcdList.${index}.acctFnmAll`"
              :rules="rulesView.acctFnmAll"
            >
              <el-select
                v-model.trim="payRcd.acctFnmAll"
                clearable
                placeholder="收款账户"
                size="small"
                style="width: 300px"
                @change="changeAcct(payRcd.acctFnmAll,payRcd)"
              >
                <el-option
                  v-for="item in acctFnmAlllist"
                  :key="item.id"
                  :label="item.label"
                  :value="item.id"
                />
              </el-select>
            </el-form-item>
            <el-form-item
              label="实收金额"
              :prop="`couponsPayRcdList.${index}.xsPrice`"
              :rules="rulesView.xsPrice"
            >
              <el-input
                v-model.number.trim="payRcd.xsPrice"
                v-two-correct-input
                type="number"
                style="width: 300px"
              />
              <el-button
                v-show="index === 0"
                icon="el-icon-plus"
                type="primary"
                @click.stop="addSy"
              />
              <el-button
                v-show="index !== 0"
                icon="el-icon-delete"
                type="primary"
                @click.stop="delSy(view.form.couponsPayRcdList, index)"
              />
            </el-form-item>
          </div>
        </div>
     el-form/> 

二、 校验规则

  • 动态设置prop
  • 单个设置规则

-关建点

vue 复制代码
 :prop="`couponsPayRcdList.${index}.prcdTermType`"
 :rules="rulesView.prcdTermType"
相关推荐
支支დ20 分钟前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆1 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF1 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿6742 小时前
vue3-async
前端·javascript·vue.js
YXWik62 小时前
记录前端请求接口在浏览器请求响应的Preview和Response展示的一样的问题
前端
2501_928996222 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
东风破_2 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
原则猫2 小时前
TS 类型工具
前端
excel3 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript
计算机魔术师4 小时前
美国司法部正式站队 OpenAI,AI 训练的版权账要这么算了
前端