树形表格的校验与索引

直接上代码:
//基于element ui 树形表格校验

          <el-table-column
            #default="{ row }" 
            prop="paramName"
            label="中文名称"
            width="200"
            show-overflow-tooltip
          >
            <template v-if="isFirst(row) && !row?.ref"><span></span></template>
            <template v-else>
              <el-form-item
                v-if="row.editable && isObjArrRefer(row)"
                :prop="'rows.' + findProp(grid.rows, row.id) + '.paramName'"
                :rules="isResultBody ? rules.paramName : null"
              >
                <el-input
                  v-model="row.paramName"
                  placeholder="请输入"
                ></el-input>
              </el-form-item>
              <template v-else>{{ row.paramName }}</template>
            </template>
          </el-table-column>
    findProp(treeData, targId, path = '') {
      const len = treeData.length
      for(let i = 0; i < len; i++) {
        const node = treeData[i]
        if (node.id === targId) {
          return path + i
        }
        if (node.children && node.children.length > 0) {
          const childPath = `${path}${i}.children.`
          const result = this.findProp(node.children, targId, childPath)
          if (result) {
            return  result
          }
        }
      }
    },

树形表格索引

   // 生成树形数组索引
    indexList() {
      let indexs = []
      function  traverse(node, index, parentIndex) {
        const currentIndex = parentIndex
          ? `${parentIndex}.${index + 1}`
          : `${index + 1}`
        indexs.push(currentIndex)
        if (node.children) {
          for (let i = 0; i < node.children.length; i++) {
            traverse(node.children[i], i, currentIndex)
          }
        }
      }
      for (let i = 0; i < this.grid.rows.length; i++) {
        traverse(this.grid.rows[i], i)
      }
      return indexs
    }
在element组件库中,可以利用表单嵌套树形表格来实现复杂的表单输入校验。具体而言,我们可以通过以下步骤来完成校验问题。 首先,需要利用element的`tree`组件和`form`组件来构建树形表格。`tree`组件用于展示树形结构的数据,而`form`组件用于接收用户的输入。我们可以将`tree`组件嵌套在`form`组件中,实现表单嵌套树形表格的效果。 其次,需要使用element提供的校验规则方法来对表单中的数据进行校验。可以在每个表单元素的`rules`属性中定义校验的规则。这些规则可以包括必填字段、数据格式要求、长度要求等等。校验规则可以通过`async-validator`库实现,这个库不仅可以满足基本的校验需求,还可以实现自定义的校验规则。 接着,我们需要在提交表单时调用element提供的校验方法,将校验规则应用于表单中的数据。可以使用`this.$refs.form.validate()`方法来触发表单的校验流程。校验的结果会通过回调函数的方式返回给我们。如果校验通过,可以继续处理提交逻辑;如果校验不通过,可以通过回调函数的参数获取到相应的错误信息,并进行相应的处理,比如展示错误提示。 最后,应该注意到,在嵌套树形表格的场景下,可能会存在一些额外的校验问题,比如确认密码和密码是否一致的校验。对于这种情况,我们可以利用element提供的`el-form-item`组件来实现表单元素的嵌套和分组,进而更灵活地定义校验规则。 总之,element提供了丰富的组件和方法来实现表单嵌套树形表格校验问题。通过合理地配置校验规则,并调用相应的校验方法,我们可以实现对数据输入的有效控制和错误提示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值