vue表单中遍历表单中操作按钮的显示隐藏

1. 第一步先在data中定义数组
data () {
  return {
    passSaveShow: [], // 通行组保存和取消的显示隐藏
    passEditShow: [], // 通行组编辑的显示隐藏
    checkedUnLink: [], // 取消关联是否选中
    valDate: [], // 有效期显示
    pickDateShow: [], // 日期插件隐藏
    linkedValue: [],
    showImg: false, // 是否放大图片
    imgSrc: '', // 图片的路径
    checkName: '', // 输入姓名关键字
    checked: false,
    checkLists: [],
    checkPage: {
      page: 1,
      count: 2,
      total: 0
    }
  };
}
2.页面中使用
<td>
  <i v-if="passEditShow[index]" @click="editValDate(index)" title="编辑" class="el-icon-edit-outline"></i>
  <div class="passSave" v-if="passSaveShow[index]">
    <i @click="passSaveDate(index)" title="保存提交" class="el-icon-circle-check"></i>&nbsp;
    <i @click="passCancel(index)" title="取消" class="el-icon-circle-close"></i>
  </div>
</td>
3.重要的一步,push到数组中
// 初始化加载数据
mounted () {
  let groupId = this.$props.perGroupInfo.id;
  let page = 1;
  let count = this.checkPage.count;
  let expired = 0;
  console.log(groupId);
  let url = `api/groupemp/linked?page=${page}&count=${count}&groupId=${groupId}&expired=${expired}`;
  this.$https.get(url).then(res => {
    console.log('查看初始化数据');
    console.log(res);
    console.log(res.data.data);
    console.log('查看初始化数据尾');
    this.checkLists = res.data.data;
    this.checkPage.total = res.data.Total;
    this.checkLists.forEach((item, index) => {
      this.valDate.push(true);
      this.pickDateShow.push(false);
      this.passSaveShow.push(false);
      this.passEditShow.push(true);
    });
  }).catch(err => {
    console.log('查看初始化数据报错');
    console.log(err);
  });
},
4.更改按钮的显示隐藏,使用splice ,不能直接更改

// 修改有效期
editValDate (val) {
  this.passEditShow.splice(val, 1, false);
  this.passSaveShow.splice(val, 1, true);
  this.valDate.splice(val, 1, false);
  this.pickDateShow.splice(val, 1, true);
 // console.log(this.valDate[val]);
 // console.log(this.pickDateShow[val]);
},

猜你喜欢

转载自blog.csdn.net/xie123aaa/article/details/80780926