【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"
相关推荐
Eloudy1 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
ZJU_统一阿萨姆2 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
用户921080262862 小时前
4. 前端地图大量点位实时更新优化:后端推增量,前端做 diff
前端
SoaringHeart3 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter
西安小哥3 小时前
破局与重生:大厂前端如何借力 AI 转型“超级全栈“
前端·人工智能
sunly_4 小时前
TypeScript总结:16、面向对象速查
前端·javascript·typescript
张元清4 小时前
React useInterval Hook:没有过期闭包的 setInterval (2026)
javascript·react.js
MXN_小南学前端4 小时前
React超长文本域中实现“返回顶部”浮动按钮
前端·javascript·react.js
学习嵌入式的小周4 小时前
Notepad++8.8.7下载安装(附安装包)
前端·notepad++
gs801404 小时前
解构 Cordis:面向“时空可组合性”的 TypeScript 元框架深度剖析
前端·javascript·typescript