Element 表格内使用表单进行数据校验(多个表单list结构)

上代码:

  <el-form ref="tableDataFrom" :model="tableDataFrom" :rules="rules">
      <el-table
        class="positionLimit"
        :data="tableDataFrom.list"
        border
        height="calc(100vh - 450px)"
        @selection-change="changeRow"
      >
        <el-table-column min-width="30" align="center" type="selection" />
        <el-table-column min-width="120" align="center" label="债券名称">
          <template slot-scope="scope">
            <el-form-item :prop="'list.'+ scope.$index + '.name'" :rules="rules.name">
              <el-select
                v-model="scope.row.name"
                :disabled="type===2"
                placeholder="请选择"
                filterable
              >
                <el-option
                  v-for="item in accountList"
                  :key="item.id"
                  :label="item.loginaccount"
                  :value="item.loginaccount"
                />
              </el-select>
            </el-form-item>

          </template>
        </el-table-column>
        <el-table-column min-width="120" align="center" label="债券代码">
          <template slot-scope="scope">
            <el-form-item>
              <el-input v-model="scope.row.code" disabled />
            </el-form-item>

          </template>
        </el-table-column>
        <el-table-column min-width="120" align="center" label="持仓数量(万元)">
          <template slot-scope="scope">
            <el-form-item :prop="'list.'+ scope.$index + '.count'" :rules="rules.count">
              <el-input v-model="scope.row.count" placeholder="请输入持仓数量" />
            </el-form-item>
          </template>
        </el-table-column>
        <el-table-column min-width="120" align="center" label="单位成本">
          <template slot-scope="scope">
            <el-form-item :prop="'list.'+ scope.$index + '.chengben'" :rules="rules.chengben">
              <el-input v-model="scope.row.chengben" placeholder="请输入单位成本" />
            </el-form-item>
          </template>
        </el-table-column>
        <el-table-column min-width="120" align="center" label="持仓成本">
          <template slot-scope="scope">
            <el-form-item :prop="'list.'+ scope.$index + '.chengben1'" :rules="rules.chengben1">
              <el-input v-model="scope.row.chengben1" placeholder="请输入持仓成本" />
            </el-form-item>
          </template>
        </el-table-column>
        <el-table-column min-width="120" align="center" label="持仓市值">
          <template slot-scope="scope">
            <el-form-item :prop="'list.'+ scope.$index + '.shizhi'" :rules="rules.shizhi">
              <el-input v-model="scope.row.shizhi" placeholder="请输入持仓市值" />
            </el-form-item>
          </template>
        </el-table-column>

        <el-table-column min-width="80" align="center" label="操作">
          <template slot-scope="scope">
            <el-button type="danger" size="mini" @click="deleteSum(scope.$index)">删除</el-button>
          </template>
        </el-table-column></el-table>
    </el-form>

数据结构:

 tableDataFrom: {
        list: []
      },

//rules
  rules: {
        name: [{ required: true, message: '请选择证券名称', trigger: 'change' }],
        count: [{ required: true, validator: checkNumFloLength('持仓数量', 13, 2), trigger: 'blur' }],
        chengben: [{ required: true, validator: checkNumFloLength('单位成本', 13, 4), trigger: 'blur' }],
        chengben1: [{ required: true, validator: checkNumFloLength('持仓成本', 13, 2), trigger: 'blur' }],
        shizhi: [{ required: true, validator: checkNumFloLength('持仓市值', 13, 2), trigger: 'blur' }]
      }

校验:

 this.$refs['tableDataFrom'].validate((valid) => {
        if (!valid) return false;
        console.log('保存成功');
      });

效果图:

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值