1. 程式人生 > 其它 >前端頁面部分資料不顯示問題

前端頁面部分資料不顯示問題

 不顯示菜品分類。原因是給前端返回的是一個Dish物件,裡面的屬性categoryId不能被前端解析,在list.html中,菜品分類這一列標識為:

  

<el-table-column
 prop="categoryName"
 label="菜品分類"
></el-table-column>

所以封裝一個DishDTO類:

@Data
public class DishDto extends Dish {

    private List<DishFlavor> flavors = new ArrayList<>();

    private
String categoryName; private Integer copies; }

查的時候這麼查:

 1 @GetMapping("/page")
 2     public R<Page<DishDto>> page(int page, int pageSize, String name) {
 3         Page<Dish> dishPage = new Page<>(page, pageSize);
 4         dishService.page(dishPage, new QueryWrapper<Dish>().like(StringUtils.isNotEmpty(name), "name", name).orderByDesc("update_time"));
5 6 Page<DishDto> dishDtoPage = new Page<>(); 7 /** 8 * protected List<T> records; 9 * records裡儲存的就是Dish、DishDTO物件,拷貝的時候,單獨處理 10 */ 11 BeanUtils.copyProperties(dishPage, dishDtoPage, "records"); 12 List<DishDto> dishDtos = dishPage.getRecords().stream().map((item) -> {
13 /** 14 * 因為Dish裡只存了categoryId,沒有前端要的categoryName 15 * 所以我們根據categoryId查一下categoryName 16 */ 17 DishDto dishDto = new DishDto(); 18 BeanUtils.copyProperties(item, dishDto); 19 Long categoryId = item.getCategoryId(); 20 String categoryName = categoryService.getById(categoryId).getName(); 21 dishDto.setCategoryName(categoryName); 22 return dishDto; 23 }).collect(Collectors.toList()); 24 dishDtoPage.setRecords(dishDtos); 25 return R.success(dishDtoPage); 26 }