项目中遇到一个需求,后台返回一个list数据,然后给了一个id数组,如果id在list中能匹配上,给list中的id相等的数据增加状态。
实现代码如下:
<VTable
:data="tableDataComp"
:columnList="columnList"
stripe
class="function-list"
@handleBtnClick="handleBtnClick"
>
<el-table-column slot="slotCol" label="操作" width="150px">
<template slot-scope="scope">
<el-button
type="text"
v-if="scope.row.assigned"
@click="addOrCancelAssigned(scope.row, 'dataCancel')"
>取消分配</el-button>
<el-button
type="text"
v-if="!scope.row.assigned"
@click="addOrCancelAssigned(scope.row, 'dataAdd')"
>分配</el-button>
</template>
</el-table-column>
</VTable>
data(){
return{
tableData: [], // 具体数据是从后台接口获取的
roleData: [] // 具体数据是从后台接口获取的
}
},
computed: {
tableDataComp(){
const roleDataObj = {}
this.roleData.map(item=> {
roleDataObj[item] = true
})
console.log(roleDataObj)
this.tableData.forEach(i => {
this.$set(i,'assigned',roleDataObj[i.dataId])
})
return this.tableData;
}
}
tableData数据如下
roleData数据如下: