tableDataAdd()接口res.data.map里要怎么判断num参数,复选框才会正确勾选?

1572832899(1).png
1572833677(1).png
<template>
<div>

<div id="cmr">
  <el-table 
    :data="tableData"
    @row-click="handleCurrentChange"
    border 
    highlight-current-row
    class="tb-edit" 
    style="width: 100%;"       
    >
    <el-table-column label="Id" prop="id" width="80" align="center"></el-table-column>

    <el-table-column label="Num" prop="num" width="400" align="left">
      <template slot-scope="scope">
        <div>
          <el-checkbox v-model="scope.row.checked1" :disabled="scope.row.saveButton == true?false:true">
            {{scope.row.upload}}
          </el-checkbox> 
        </div>       
        <div>
          <el-checkbox v-model="scope.row.checked2" :disabled="scope.row.saveButton == true?false:true">
            {{scope.row.option}}
          </el-checkbox>
        </div>
      </template>
    </el-table-column>   
    
  </el-table>      
</div>

</div>
</template>

<script>
import Axios from "axios"
import CryptoJS from 'crypto-js'
import qs from 'qs'
import store from 'storejs'
export default {

data() {
  return {             
    loginButton: true,   //登录按钮
    exitButton: false,    //退出按钮
    login_content: false, //登录弹框
    username: '',      //登录用户名
    password: '',      //登录密码
    itcode: '',        //展示用户名
    search: '',
    token: [], //加密后用户密码 
    checked1: [],
    checked2: [],  
    tableData: [],             
    showBtn:[],
  }
},
mounted() {
  this.tableDataAdd(); //调用表格数据接口
},
methods: {
  // 保存编辑按钮,保存成功提示
  saveEdit(index, row){     
    let api = "/ar/saveArTeam";
    let data = { 
      acid: row.id,
      user: row.user,
      num: row.num,
      token: store("token"),
    };
    Axios.post(api,data).then(res => {
      if (res.data.result == true) { 
        this.$message({
          message: 'Save successfully!',
          type: 'success',
        });
        row.saveButton = false;
        row.editButton = true; 
        console.log("保存成功!");
      } else {
        console.log("保存失败!");
      }
    }).catch(e => {
      console.log(e);
    });
    
  },
  handleCurrentChange(row, event, column) {
    console.log(row, event, column, event.currentTarget)
  },
  // 表格数据接口地址
  tableDataAdd(){  
    let tokenId = store("token");
    let api = "/ar/getAdmin?token="+tokenId;    
    console.log('-------111111',api)  
    Axios.get(api).then(res => {  
      console.log('resresresres......', res) 
      console.log('ttttttddddddd', this.tableData) 
      this.tableData = res.data.map(item => {           
        item.saveButton = false;        //保存按钮  
        item.editButton = true;         //编辑按钮
        item.userInput = true;        //用户
        item.numButton = false;       //增加行的num数据
        item.upload = "allowing uploading";
        item.option = "access to option 7";

        for(let i = 0; i < res.data.length; i++){
          // debugger
          if(res.data[i].num.indexOf('1')!= -1){
            item.checked1 = true;                       
          }else{
            item.checked1 = false;
          }
          if(res.data[i].num.indexOf('2')!= -1){       
            item.checked2 = true;
          }else{
            item.checked2 = false;
          }
        };
        return item
      });          
    })
    .catch(e => {
      console.log(e);
    });
  }, 
},

}
</script>

阅读 3.2k
2 个回答

重复循环了,把for循环去除掉就可以了,已解决了

for 中的代码替换成如下代码:

res.data.map(item => {
    let nums = item.num.split(',')
    for (let i = 0; i < nums.length; i++){
        if (i) {
            let current = i + 1
            item[`current${current}`] = nums[i] == current 
        }
    }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题