问题1

javascript
// 智能推荐餐具数量
const recommendedCount = computed(() => {
// TODO :目标 1 待补充代码 Start
// 初始化空数组
let category = []
// 初始化推荐餐具数为0
let count = 0
// 遍历当前已选中的菜品数组
cartItems.value.forEach(item => {
// 用for循环使每一份菜品都单独存入数组
for (let i = 0; i < item.count; i++) {
category.push(item.category)
}
})
// 用if语句判断菜品全是主食或全是热菜,则按照主食或热菜的数量赋值给推荐餐具数
if ((category.includes('主食') && !category.includes('热菜')) || (!category.includes('主食') && category.includes('热菜'))) {
count = category.length
} else {
// 若既有主食又有热菜
// 则通过比较两者数量,数量较多的一者,赋值给推荐餐具数
if (category.filter(item => item === '主食').length > category.filter(item => item === '热菜').length) {
count = category.filter(item => item === '主食').length
} else if (category.filter(item => item === '主食').length < category.filter(item => item === '热菜').length) {
count = category.filter(item => item === '热菜').length
}
}
// 输出推荐餐具数
return count
// TODO :目标 1 待补充代码 End
});
问题2

javascript
// 选择餐具模式
const selectUtensilsMode = (mode) => {
// TODO :目标 2 待补充代码 Start
// 根据题目意思将选择模式赋值给utensilsMode
utensilsMode.value = mode
// 判断mode为auto或custom
if (mode === 'auto') {
// mode为auto时,
// 给utensilsMode新赋值auto
// 将 utensilsCount 设置为 recommendedCount
utensilsMode.value = 'auto'
utensilsCount.value = recommendedCount.value
} else if (mode === 'custom') {
// mode为custom时
// 给utensilsMode新赋值custom
// 将 utensilsCount 设置为 customUtensilsCount
utensilsMode.value = 'custom'
utensilsCount.value = customUtensilsCount.value
}
// TODO :目标 2 待补充代码 End
};
// 选择具体餐具数量
const selectUtensilsCount = (count) => {
// TODO :目标 2 待补充代码 Start
// 判断推荐餐具数为1、2、3时
// 给 utensilsMode新赋值manual
// 更新utensilsCount.value
if (count === 1 || count === 2 || count === 3) {
utensilsMode.value = 'manual'
utensilsCount.value = count
}
// TODO :目标 2 待补充代码 End
};
<!-- TODO :目标 2 待补充代码 Start -->
<el-input-number v-model="utensilsCount" max=4 min=1></el-input-number>
<!-- TODO :目标 2 待补充代码 End -->