zoukankan      html  css  js  c++  java
  • element中级联选择器动态加载数据 递归的思想(数据量过于庞大,后端不一次性把数据返回)

          <el-cascader
                ref="myCascader"
                v-model="addClockperson.organId"
                :options="defaultOptions"
                :props="props"
                :show-all-levels="false"
                @change="handleChange"
                placeholder="请选择机构"
                @active-item-change="handleItemChange"
           ></el-cascader>

    请求的参数
         addressParams: {     
            divCode: '101',
            level: '0'
          }
    //请求8级机构
        getorganizationData() {
          getAllOrganTree(this.addressParams).then(res => {
            if (res.code === 0) {
              this.defaultOptions = this.handleData(res.data)
            }
          })
        },
        //级联选中的val
        handleChange(val) {
          let code = val //需请求数据的上级地址的code值
          this.addpersoninfoall.level = this.$refs['myCascader'].getCheckedNodes()[0].data.divLevel
          let level = this.$refs['myCascader'].getCheckedNodes()[0].data.divLevel //需请求第几级
          this.defaultOptions = this.handleData(this.defaultOptions, code, level)
        },
        handleData(defaultOptions, val, level) {
          //console.log(defaultOptions, val, level)
          for (let i = 0; i < defaultOptions.length; i++) {
            if (!defaultOptions[i].children) {
              this.$set(defaultOptions[i], 'children', [])
            }
            if (defaultOptions[i].divCode === val) {
              //如果两者相等,就请求
              getAllOrganTree({ level: level, divCode: val })
                .then(res => {
                  if (res.data.length && res.code === 0) {
                    defaultOptions[i].children = res.data
                    defaultOptions[i].children.forEach(ele => {
                      this.$set(ele, 'children', [])
                    })
                  } else {
                    defaultOptions[i].children = []
                  }
                })
                .catch(err => {})
            } else {
              if (defaultOptions[i].children.length) {
                this.handleData(defaultOptions[i].children, val, level)
              }
            }
          }
          return defaultOptions
        }
  • 相关阅读:
    统计一个字符串中字母、空格和数字的个数
    java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。
    java判断一个数是否为素数[转]
    Set集合
    List&ArrayList&LinkedList
    java_异常
    内部类&匿名内部类
    多态&抽象类&接口
    数组排序和字符串
    Java笔记_数据类型和运算符
  • 原文地址:https://www.cnblogs.com/shun1015/p/12747930.html
Copyright © 2011-2022 走看看