this.$set(this.dataList,this.dataList.findIndex(item=>item.erp_goods_id===val.erp_goods_id),val)
时间: 2024-02-26 18:52:38 浏览: 69
这行代码的作用是:在dataList数组中找到erp_goods_id等于val对象中的erp_goods_id属性的元素,然后将该元素替换为val对象。其中,$set方法用于解决Vue.js响应式系统中的一个问题,即在Vue.js中直接修改数组或对象内的属性,无法触发界面的重新渲染,因此需要使用$set方法来进行修改。具体来说,$set方法的第一个参数是需要修改的数组或对象,第二个参数是需要修改的属性的索引或属性名,第三个参数是修改后的值。这行代码的作用就是将dataList数组中符合条件的元素替换为val对象,并触发Vue.js的响应式系统重新渲染界面。
相关问题
checkAll(val, event) { this.$set(this.dataList,this.dataList.findIndex(item=>item.erp_goods_id===val.erp_goods_id),val) if (event == true) { this.multipleSelection.push(val) } else if (event == false) { this.multipleSelection = this.multipleSelection.filter(v => v.index != val.index) } console.log(this.multipleSelection) },
这段代码看起来像是Vue.js中的一个方法,可以看出其中使用了$set方法来动态地给dataList添加或修改属性,同时通过findIndex方法来查找需要修改的元素。另外,根据event的值,将元素加入或从multipleSelection数组中删除,并在控制台输出multipleSelection数组的内容。但是,缺少上下文,无法判断这段代码的完整功能和作用。需要更多的代码和信息才能给出更全面的答案。
watch: { dataList(val) { let arr = JSON.parse(JSON.stringify(val)) arr.map((ele, index) => { this.saveRows.map((item) => { if (item.containerId && ele.containerId) { let arr1 = ele.containerId, arr2 = item.containerId let ifHas = arr1.every((a) => { return arr2.some((b) => a === b) }) //如果是在这个里面,那么就是true console.log(ifHas) //true if (ifHas) { this.$nextTick(() => { this.$refs.table.toggleRowSelection(this.dataList[index], true) }) } } }) }) if (this.cancelRows.length > 0) { arr.map((ele, index) => { this.cancelRows.map((item) => { if (item.containerId && ele.containerId) { let arr1 = ele.containerId, arr2 = item.containerId let ifHas = arr1.every((a) => { return arr2.some((b) => a === b) }) if (ifHas) { this.$nextTick(() => { this.$refs.table.toggleRowSelection( this.dataList[index], false, ) }) } } }) }) } },
这段代码是一个Vue组件的`watch`属性中的一个监听函数。它监听`dataList`属性的变化,并在值发生变化时执行一些操作。
首先,它将`val`的值深拷贝到`arr`数组中,以防止对原始值的修改。
然后,它使用`map`方法遍历`arr`数组中的每个元素,并在每个元素上执行一些操作。在这个操作中,它使用`this.saveRows`数组中的每个元素来与当前元素进行匹配。
如果当前元素和`this.saveRows`数组中的元素都有`containerId`属性,那么它会比较两个数组的`containerId`属性是否完全相同。如果完全相同,它会将当前元素添加到Vue组件中的一个表格组件的选中行中。
接着,它检查是否存在`this.cancelRows`数组中的元素,并与当前元素进行匹配。如果匹配成功,它会将当前元素从Vue组件中的表格组件的选中行中移除。
总之,这段代码的目的是根据特定的条件来更新Vue组件中的一个表格组件的选中行。
阅读全文