01jiangwei01
01jiangwei01
这家伙很懒,什么也没写!

注册于 12月前

回答
4
文章
0
关注者
0

使用下列方法来刷新,重新与服务端交互。

this.doRefresh()

`
const gridData = this.getD2Crud().d2CrudData
if (gridData) {

request({
  url: deviceinfoUrl,
  method: 'post',
  params: { id: id }
}).then(res => {
  if (res.code === 2000) {
    res.id = id
    const rowData = res.data
    rowData.id = id
    gridData.forEach((item, index, array) => {
      if (item.id === id) {
        for (const v1 in rowData) {
          item[v1] = rowData[v1]
        }
        return false
      }
    })
  }
  return res
})

}
`
其中 const gridData = this.getD2Crud().d2CrudData 是获取要修改的表格里的数据

gridData.forEach((item, index, array) => {
          if (item.id === id) {
            for (const v1 in rowData) {
              item[v1] = rowData[v1]
            }
            return false
          }
        })

上面这个是对行数值进行赋值。

问题总共有两个,

假设表格中有两列,一列是id,一列是value.

id value
1001 x1
1002 x2

标题我的需求是,根据一个id,找到要修改的行,并修改对应行的值。

代码片段1

mounted () {
    window.setIntervalFn001 = (listdata) => {
      this.mysetIntervalFn(listdata)
    }
    window.getDeviceInfoFn001 = (id) => {
      this.getDeviceInfo(id)
    }
    window.getImgFn001 = (id) => {
      this.getImg(id)
    }
  }

代码片段2

mysetIntervalFn (listdata) {
      if (!listdata || listdata.length === 0) {
        console.log('没有查询到设备', listdata)
        return
      }
      if (listdata && listdata.length >= 1) {
        console.log('到达', listdata)
        listdata.forEach((item) => {
          // setInterval(function () { this.getImgFn001(item.id) }, 1000)
          setInterval(function () {
            this.getDeviceInfoFn001(item.id)
          }, 1000)
        })
      }
    }

说明: 在mounted 里将本地方法暴漏出去。

发布
问题