<el-table-column :label="item.label" :prop="item.prop" align="center"> <template slot-scope="scope"> <el-image style="width: 50px; height: 50px" :src="scope.row.goodimg" ></el-image> </template> </el-table-column>这段代码中如何将goodimg给替换成通用不管外面传的是userimg或者是goodimg都能使用
时间: 2024-03-03 20:49:47 浏览: 193
如果要将 `goodimg` 替换成通用的属性,可以使用动态绑定的方式来实现。具体做法是在 `:src` 绑定的时候,先判断 `scope.row` 对象中是否存在 `goodimg` 属性,如果存在就使用 `goodimg` 属性,否则就使用 `userimg` 属性。修改后的代码如下:
```
<el-table-column :label="item.label" :prop="item.prop" align="center">
<template slot-scope="scope">
<el-image style="width: 50px; height: 50px" :src="scope.row.goodimg ? scope.row.goodimg : scope.row.userimg"></el-image>
</template>
</el-table-column>
```
这样就可以通用地显示不同表格中的图片属性了,不管外面传的是 `goodimg` 还是 `userimg` 都能够使用。
相关问题
</el-table-column> <el-table-column v-for="(col, i) in columnList" :key="i" :prop="col.prop" :label="col.label" v-if="col.show == true" align="center" > <template v-if="col.children"> <el-table-column v-for="(item, index) in col.children" :key="index" :prop="item.prop" :label="item.label" > <template slot-scope="scope"> </template> </el-table-column> </template> </el-table-column> </el-table-column> 在<template slot-scope="scope"></template>添加代码,可以编辑任意一个子列单元格
在`<template slot-scope="scope"></template>`标签中,可以添加代码来编辑子列的单元格内容。
`slot-scope="scope"`是一个特殊的语法,用于接收父组件传递过来的数据,并在这个作用域中使用。
例如,如果想要在子列的单元格中显示每个单元格的索引值,可以在`<template slot-scope="scope"></template>`中添加以下代码:
```html
<template slot-scope="scope">
{{ scope.$index }}
</template>
```
在这个例子中,`scope.$index`表示当前单元格在子列中的索引值。
你可以根据自己的需求在`<template slot-scope="scope"></template>`中添加任意的代码来编辑子列的单元格内容。注意,`scope`对象提供了一些其他的属性和方法,可以根据需要使用,例如`scope.row`表示当前行的数据对象。
<el-table :data="membersList" style="width: 100%"> <el-table-column type="index" label="序号" align="center" width="80"></el-table-column> <el-table-column label="考勤人员" align="center"> <el-table-column label="姓名" prop="memberName" align="center"></el-table-column> <el-table-column label="岗位" prop="post" align="center"></el-table-column> </el-table-column> <el-table-column label="出勤天数" prop="attendanceDays" align="center"></el-table-column> <el-table-column label="岗位系数" prop="postFactor" align="center"></el-table-column> <el-table-column label="调整系数" align="center"> <template slot-scope="scope"> <div> <el-input-number v-model="scope.row.adjustFactor" :precision="2" :step="0.01" :max="0.15" :min="-0.15" size="small" @change="changeFinal(scope.row)" ></el-input-number> </div> </template> </el-table-column> <el-table-column label="最终考勤天数" prop="finalDavs"></el-table-column> </el-table> <div class="membersDays"> <span>合计</span> <span>{{membersDaysJs}}</span>天 </div>computed: { membersDaysJs() { let num = 0; this.membersList.forEach(item => { if (item.finalDavs > 0) { num += item.finalDavs; } }); console.log(num); return num; } },
根据您提供的代码,我发现您的`computed`选项写在了模板的后面,而不是Vue组件的选项中。您应该将`computed`选项移到Vue组件的选项中,像这样:
```
<template>
<div>
<el-table :data="membersList" style="width: 100%">
<!-- 表格列定义 -->
</el-table>
<div class="membersDays">
<span>合计</span>
<span>{{membersDaysJs}}</span>天
</div>
</div>
</template>
<script>
export default {
data() {
return {
// 数据定义
};
},
computed: {
membersDaysJs() {
let num = 0;
this.membersList.forEach(item => {
if (item.finalDavs > 0) {
num += item.finalDavs;
}
});
console.log(num);
return num;
}
},
methods: {
// 方法定义
}
};
</script>
```
这样应该可以解决computed不生效的问题。
阅读全文