<template slot-scope="scope">{{ scope.row.count_viewed }}
时间: 2024-04-12 22:11:36 浏览: 7
这是一个基于 Vue 的插槽(slot),用于定义表格列的内容。其中,通过属性 slot-scope="scope" 将作用域插槽的数据 scope 传递给模板。在模板中使用了 {{ scope.row.count_viewed }},表示显示表格中当前行的 count_viewed 字段的值。需要注意的是,这里的 count_viewed 字段是在表格数据源中定义的,scope.row 表示当前行的数据对象。
相关问题
<uni-card id="item.id" :title="item.supplierName" :extra="item.publicationDate" @click="goToDetail(item)" :class="{viewed: setViewedMarksStyle(item.id)}"> <text>项目名称: {{item.projectName}}</text> <text style="color: #000;float: right;">采购金额: {{item.purchaseAmountRepair+' 元'}}</text> </uni-card>setViewedMarksStyle(id) { let viewedMarks = JSON.parse(uni.getStorageSync('viewedMarks') || '[]'); return viewedMarks.includes(id); }列表没有gray属性,使用id判断,列表不能实时改变颜色
是的,因为这个列表没有 "gray" 属性,而是通过设置 class 来改变卡片的颜色。而当用户浏览过某个卡片后,虽然该卡片的 class 已经改变了,但是列表本身并没有重新渲染,因此该卡片的颜色也不会立即改变。
如果你希望用户浏览过的卡片能够实时改变颜色,可以考虑在 setViewedMarksStyle 方法中,返回一个动态计算的 class。这样,当用户浏览过某个卡片后,该卡片的 class 会发生变化,从而立即改变其颜色。
例如,你可以这样修改 setViewedMarksStyle 方法:
```
setViewedMarksStyle(id) {
let viewedMarks = JSON.parse(uni.getStorageSync('viewedMarks') || '[]');
return {
viewed: viewedMarks.includes(id)
};
}
```
这样,每个卡片的 class 会根据 setViewedMarksStyle 方法动态计算,从而实现实时改变颜色的效果。
<uni-card id="item.id" :title="item.supplierName" :extra="item.publicationDate" @click="goToDetail(item)" :class="{viewed: setViewedMarksStyle(item.id)}"> <text>项目名称: {{item.projectName}}</text> <text style="color: #000;float: right;">采购金额: {{item.purchaseAmountRepair+' 元'}}</text> </uni-card>setViewedMarksStyle(id) { let viewedMarks = JSON.parse(uni.getStorageSync('viewedMarks') || '[]'); return viewedMarks.includes(id); }列表没有gray属性,使用id判断,列表刷新才改变颜色
这段代码看起来是一个 Vue 组件,用于渲染一个项目卡片列表。其中,uni-card 是一个自定义组件,通过传入不同的 props 来渲染不同的卡片。这个组件还添加了一个 @click 事件,当用户点击卡片时会触发 goToDetail 方法。
setViewedMarksStyle 方法是用来判断当前卡片是否被用户浏览过的,如果被浏览过,则返回一个包含 "viewed" 类的 class。这个方法会从本地存储中获取之前浏览过的卡片 id,然后判断当前卡片的 id 是否在其中。
这个列表没有 "gray" 属性,而是通过设置 class 来改变卡片的颜色。当用户浏览过卡片时,对应的卡片会添加 "viewed" 类,从而改变其颜色。列表刷新时,这些 class 会重新计算,从而保证每个卡片的颜色都是正确的。