Element 框架中根据不同状态渲染数据
需求 : 根据后端返回的 Status 值的不同在页面中显示对应的状态 .
例如 : 后端返回 “Status = 4” → 页面显示 “已收货”
备忘 :
<el-table stripe ref="searchTable" :data="searchData" tooltip-effect="dark" @selection-change="handleSelectionChange">
// 正常渲染:
<el-table-column prop="CustName" label="所属客户名" align="center"></el-table-column>
// 自定义渲染:
<el-table-column label="订单状态" width="90" align="center">
<template slot-scope="scope">
<p>{{ scope.row.Status }}</p>
</template>
</el-table-column>
</el-table>
方法一 ( v-if ) :
html 中 :
<el-table stripe ref="searchTable" :data="searchData" tooltip-effect="dark" @selection-change="handleSelectionChange">
<el-table-column label="订单状态" width="90" align="center">
<template slot-scope="scope">
<p v-if="scope.row.Status == -1">待支付</p>
<p v-else-if="scope.row.Status == 0">待配货</p>
<p v-else-if="scope.row.Status == 1">配货中</p>
<p v-else-if="scope.row.Status == 2">待发货</p>
<p v-else-if="scope.row.Status == 3">待收货</p>
<p v-else-if="scope.row.Status == 4">已收货</p>
<p v-else>未知</p>
</template>
</el-table-column>
</el-table>
方法二 ( 多元表达式 ) :
html 中 :
<el-table stripe ref="searchTable" :data="searchData" tooltip-effect="dark" @selection-change="handleSelectionChange">
<el-table-column label="订单状态" width="90" align="center">
<template slot-scope="scope">
<p>
{{ scope.row.Status == -1 ? "待支付" :
scope.row.Status == 0 ? "待配货" :
scope.row.Status == 1 ? "配货中" :
scope.row.Status == 2 ? "待发货" :
scope.row.Status == 3 ? "待收货" :
scope.row.Status == 4 ? "已收货" : "未知" }}
</p>
</template>
</el-table-column>
</el-table>
方法三 ( 过滤器 ) : 推荐 !!!
html 中 :
<el-table stripe ref="searchTable" :data="searchData" tooltip-effect="dark" @selection-change="handleSelectionChange">
<el-table-column label="订单状态" width="90" align="center">
<template slot-scope="scope">
<p>{{ scope.row.Status | Status }}</p>
</template>
</el-table-column>
</el-table>
js 中 :
filters 的书写位置与 data , methods 同级
filters: {
Status(Status) {
if (Status == -1) { return "待支付" }
else if (Status == 0) { return "待配货" }
else if (Status == 1) { return "配货中" }
else if (Status == 2) { return "待发货" }
else if (Status == 3) { return "待收货" }
else if (Status == 4) { return "已收货" }
else { return "未知" }
}
},