【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"
相关推荐
一水鉴天6 小时前
整体设计 之28 整体设计 架构表表述总表的 完整程序(之27 的Q268 )(codebuddy)
java·前端·javascript
DsirNg6 小时前
使用 SSE 单向推送实现 系统通知功能
前端·javascript
IT_陈寒6 小时前
SpringBoot 3.2 实战:用这5个新特性让你的API性能提升40%
前端·人工智能·后端
宋军涛6 小时前
重操旧业,继续码农生活,温故vue moment类库和new Date()
vue.js·生活
霍理迪6 小时前
HTML初相识
前端·html
恋猫de小郭6 小时前
Android 宣布 Runtime 编译速度史诗级提升:在编译时间上优化了 18%
android·前端·flutter
莓莓儿~6 小时前
Next.js 14 App Router数据获取开发手册
开发语言·前端·javascript
文心快码BaiduComate7 小时前
AI Coding老跑偏?用Comate Rules功能,少走十年弯路!
前端·架构·前端框架
PineappleCoder7 小时前
WebP/AVIF 有多香?比 JPEG 小 30%,<picture>标签完美解决兼容性
前端·面试·性能优化