【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"
相关推荐
NorBugs2 分钟前
飞机大战 Low 版 (Made in AI)
前端
angerdream32 分钟前
Android手把手编写儿童手机远程监控App之agentweb如何实现全屏
前端
星栈41 分钟前
10 分钟跑起第一个 Dioxus 应用:`dx` CLI、`rsx!` 和热更新好不好用
前端·rust·前端框架
奋斗吧程序媛1 小时前
补充一个小知识点:有关@click.native
前端·vue.js
英勇无比的消炎药1 小时前
一行命令背后:TinyRobot CLI 如何重构 AI 对话接入的效率范式
vue.js·aigc
触底反弹1 小时前
🚀 手把手用 HTML5 Canvas 从零打造飞机大战游戏,代码全开源!
前端·javascript·canvas
DJ斯特拉1 小时前
axios快速使用
开发语言·前端·javascript
智通1 小时前
可取消的异步任务与 AbortController
javascript
还有多久拿退休金1 小时前
Ant Design Tree 搜索定位避坑指南:虚拟滚动下如何实现高亮与精准定位
前端·react.js
小月土星1 小时前
CSS 3D 从入门到炫技:手把手教你写一个旋转立方体
前端·css