许多小伙伴在开发过程中会使用计算属性,但是如果不传值就不能拿到数据,单纯的传值却报错。
我们需要在return传的值里面进行使用传的值进行逻辑操作。注意思路是想到了闭包。
在这里我将for循环的item传进了计算属性。
<div class="infoDrawer" v-for="(item, index) in cargoData " @key="index">
<el-collapse-item :title="item.title + '-' + item.vago" :name="item.title">
<div class="addProgramBtn">
<span style="width:100%; font-size: 14px; color: #060606; font-weight: bold">
合计:
<span style="
color: red;
font-size: 14px;
font-weight: bold;
margin-right: 5px;
">{{ quantityUnit(item) }}
</span>
{{ item.uniName }}
</span>
<span style="width:100%; font-size: 14px; color: #060606; font-weight: bold">
,
<span style="
color: red;
font-size: 14px;
font-weight: bold;
margin-right: 5px;
">{{ amountAll(item) }}
</span>
{{ item.currencyTypeName }}
</span>
<!-- -->
</div>
<EditTable ref="editTableData" :tableData="item.btStorageReleaseDetailList" :columns="creditInfoColumns"
:isShowHandle="true" :isDisabled="false" :isRenderHeader="false" />
</el-collapse-item>
</div>
computed: {
quantityUnit(item){
return item=>{
var sum=0;
item.btStorageReleaseDetailList.forEach((item)=>{
sum+=Number(item.Number)
})
item.quantityUnit=sum;
return sum
}
},
amountAll(item){
return item=>{
var sum=0;
item.btStorageReleaseDetailList.forEach((item)=>{
sum+=Number(item.amount)
})
item.amountAll=sum;
return sum
}
}
},