getList() { this.loading = true // 结果赋值给this.dataList listDishByPage(this.queryParams).then((response) => { this.dataList = response.data.list this.loading = false this.total = response.data.total } ) }<el-table-column label="编号" align="center" prop="dishNo" /> <el-table-column label="名称" align="center" prop="dishName" /> <el-table-column label="价格" align="center" prop="price" /> <el-table-column label="图片" align="center" prop="fileUrl" /> <el-table-column label="口味" align="center" prop="flavor" /> <el-table-column label="原材料" align="center" prop="ingredients" /> <el-table-column label="烹饪方式" align="center" prop="cookingMethod" />其中后端返回的image为文件名,需要调用selectByFileName,传入image参数,返回fileUrl,要怎么写
时间: 2023-08-20 22:06:02 浏览: 114
Vue.js 3.X开发经验及技巧汇总
你可以在 getList() 方法中,在获取到菜品列表数据后,对每个菜品的 image 字段调用 selectByFileName() 方法,将其替换为返回的 fileUrl,例如:
```
getList() {
this.loading = true;
listDishByPage(this.queryParams).then((response) => {
this.dataList = response.data.list;
this.loading = false;
this.total = response.data.total;
this.dataList.forEach((dish) => {
selectByFileName(dish.image).then((url) => {
dish.fileUrl = url;
});
});
});
}
```
这个方法首先将 loading 状态设为 true,然后调用菜品列表接口,获取菜品列表数据。当数据返回后,将 loading 状态设为 false,并将列表数据和总数分别赋值给 this.dataList 和 this.total。接着,对于每个菜品,都调用 selectByFileName() 方法,将其 image 字段替换为返回的 fileUrl。最后,将处理好的列表数据渲染到 el-table 中。
阅读全文