树形表格的校验与索引

直接上代码:
//基于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
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值