瀑布流请求了两次接口,请问怎么解决?

export function myList (obj, pageNumber, fn, url, query) {
  obj.panel.page.pageNumber = pageNumber
  let data
  if (query) {
    // 如果有传进来查询参数,则用传进来的参数
    console.log('------组件自带参数------')
    data = query
  } else {
    // 否则,使用默认的分页参数
    console.log('------默认分页参数------')
    obj.data = {
      'page': obj.panel.page,
      'row': {
        'host_ids': obj.hostIds,
        'hostIds': obj.hostIds
      }
    }
    data = obj.data
  }
  obj.crud.loading(obj, true)
  // 如果hostid改变了,则数据都清空,
  if (obj.lastId !== obj.hostIds) {
    obj.panel.gridData = []
    obj.n = 1
  }
  obj.getData(obj, url, data, msg => {
    // console.log(msg)
    obj.isFirst = false
    obj.startScroll = true
    let len
    // 因为返回的数据分几种情况 所以这里得多加判断
    // 首先 如果msg为真
    if (msg) {
      //再它的totalRow或者total也为真
      if (msg.totalRow >= 0) {
        len = msg.totalRow
      } else {
        len = msg.total
      }
      if (msg.length >= 0) {
        len = msg.length
      }
    } else {
      len = 0
    }
    // 设置标题总记录数
    obj.totalRow = len
    obj.total = len
    // 为了搜索和排序做的准备
    if (msg) {
      if (msg.size) {
        obj.data.size = msg.size
        // obj.data.size.beforeId = msg.size.beforeId
        // obj.data.size.offset = msg.size.offset
        obj.n = parseInt(msg.size.offset) / parseInt(obj.panel.page.pageSize)
      }
    } else {
      // 显示完页面的记录条数后,如果msg其实是undefined的,那么,直接return
      obj.crud.loading(obj, false, () => {
        obj.panel.hasData = false
        obj.reloadLock = false
      })
      return
    }

    // 数据处理函数
    function dataHanding (tmp) {
      // 把所有的checked设为false
      tmp.forEach(function (curr) {
        curr.checked = false
      })
      //把新拿到的数据推进gridData中去作处理
      obj.crud.loading(obj, false, o => {
        // 如果fn传进来 才执行
        if (fn) fn(msg)
        for (let entry of tmp) {
          obj.panel.gridData.push(entry)
        }
        // 给gridData加上序号
        obj.panel.gridData.map((val, i) => {
          val.myNum = i + 1
        })
        obj.$store.dispatch({type: 'changePanelData', val: obj.panel.gridData})
        obj.nowData = obj.panel.gridData
        obj.panel.hasData = true
        if (obj.panel.gridData.length === 0) obj.panel.hasData = false
      })
    }

    // 如果穿进来的是没list的
    if (msg.length >= 0) dataHanding(msg)
    else if (msg.list.length >= 0) dataHanding(msg.list)
    // 为瀑布流做准备
    obj.lastId = obj.hostIds
  })
}
阅读 1.8k
1 个回答

最简单方式就是请求接口前多加个变量进行判断

var status=true;
if(!status)return;

getData start
status=false;


getData end
status=true;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题