使用情况,vue中返回的数据循环遍历如果用到v-if时不能直接赋值true 或者false,要true 或者false push到数组里面,隐藏或显示时用 splice方法。
以下是详情
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>
<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]);
},