|
@@ -114,7 +114,7 @@
|
|
:key="item.id"
|
|
:key="item.id"
|
|
class="float-left md:w-40 w-1/2 md:h-38 h-auto p-1"
|
|
class="float-left md:w-40 w-1/2 md:h-38 h-auto p-1"
|
|
>
|
|
>
|
|
- <a href="#" @click="addGoods(item)"
|
|
|
|
|
|
+ <a href="javascript:void(0);" @click="addGoods(item)"
|
|
><el-card shadow="never" :body-style="{ padding: '0px' }">
|
|
><el-card shadow="never" :body-style="{ padding: '0px' }">
|
|
<el-image
|
|
<el-image
|
|
style="width: 100%; height: 100px"
|
|
style="width: 100%; height: 100px"
|
|
@@ -168,7 +168,8 @@ const data = reactive<any>({
|
|
deskName: '',
|
|
deskName: '',
|
|
deskCap: 0,
|
|
deskCap: 0,
|
|
currentNum: 0,
|
|
currentNum: 0,
|
|
- selectGoods: []
|
|
|
|
|
|
+ selectGoods: [],
|
|
|
|
+ oldGoods: [],
|
|
})
|
|
})
|
|
const orderData = reactive<any>({
|
|
const orderData = reactive<any>({
|
|
priceSum: 0,
|
|
priceSum: 0,
|
|
@@ -180,10 +181,11 @@ const params = reactive({
|
|
})
|
|
})
|
|
const submit = () => {
|
|
const submit = () => {
|
|
//出单
|
|
//出单
|
|
- feedback.loading('正在出单...')
|
|
|
|
if (data.selectGoods.length == 0) {
|
|
if (data.selectGoods.length == 0) {
|
|
feedback.alert('未点菜品!')
|
|
feedback.alert('未点菜品!')
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
+ feedback.loading('正在出单...')
|
|
orderSubmit(params).then(() => {
|
|
orderSubmit(params).then(() => {
|
|
// data.selectGoods.length = 0
|
|
// data.selectGoods.length = 0
|
|
// orderData.priceSum = 0
|
|
// orderData.priceSum = 0
|
|
@@ -202,44 +204,15 @@ const open = (item: any, num?: number, orderNumber?: any) => {
|
|
|
|
|
|
deskOrderedDishListAll({ id: params.number }).then((res) => {
|
|
deskOrderedDishListAll({ id: params.number }).then((res) => {
|
|
data.selectGoods = res
|
|
data.selectGoods = res
|
|
|
|
+ data.oldGoods = JSON.parse(JSON.stringify(res));//记录下进入时当前餐桌已有的食物
|
|
if (res.length > 0) {
|
|
if (res.length > 0) {
|
|
params.remark = res[0].remark
|
|
params.remark = res[0].remark
|
|
- orderData.priceSum = res.reduce((accumulator, currentValue) => accumulator + currentValue.summary, 0);
|
|
|
|
|
|
+ orderData.priceSum = res.reduce((accumulator, currentValue) => accumulator + (currentValue.summary * currentValue.num), 0);
|
|
orderData.numSum = res.reduce((accumulator, currentValue) => accumulator + currentValue.num, 0);
|
|
orderData.numSum = res.reduce((accumulator, currentValue) => accumulator + currentValue.num, 0);
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
-const addGoods = (item: any) => {
|
|
|
|
- orderLoading.value = true
|
|
|
|
- const tempGoods = data.selectGoods.filter((element: any) => {
|
|
|
|
- return element.id == item.id
|
|
|
|
- })
|
|
|
|
- if (tempGoods.length == 0) {
|
|
|
|
- item.num = 1
|
|
|
|
- dishAdd({
|
|
|
|
- orderId: params.number,
|
|
|
|
- dishId: item.id
|
|
|
|
- }).then((res) => {
|
|
|
|
- //拿到orders_dish的id
|
|
|
|
- item.ordersDishId = res
|
|
|
|
- data.selectGoods.push(item)
|
|
|
|
- feedback.msgSuccess('成功添加商品' + item.title)
|
|
|
|
- orderLoading.value = false
|
|
|
|
- console.log(item)
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
- dishInc({ id: item.ordersDishId })
|
|
|
|
- data.selectGoods[data.selectGoods.indexOf(tempGoods[0])].num++
|
|
|
|
- orderLoading.value = false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- orderData.numSum++
|
|
|
|
- orderData.priceSum += Number(item.summary)
|
|
|
|
- nextTick(() => {
|
|
|
|
- scrollbarRef.value!.setScrollTop(innerRef.value!.clientHeight)
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
const clickSortButton = (name: any) => {
|
|
const clickSortButton = (name: any) => {
|
|
buttonType.value = name
|
|
buttonType.value = name
|
|
if (name == 'all') {
|
|
if (name == 'all') {
|
|
@@ -258,7 +231,38 @@ const toEmpty = () => {
|
|
toEmptyy({ id: params.number })
|
|
toEmptyy({ id: params.number })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+const isEqual = (obj1: { [x: string]: any } | null, obj2: { [x: string]: any } | null)=> {
|
|
|
|
+ // 如果两个对象是同一个引用,直接返回 true
|
|
|
|
+ if (obj1 === obj2) return true;
|
|
|
|
+
|
|
|
|
+ // 如果其中一个为 null 或者不是对象,返回 false
|
|
|
|
+ if (obj1 === null || typeof obj1 !== 'object' || obj2 === null || typeof obj2 !== 'object') {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取两个对象的键
|
|
|
|
+ const keys1 = Object.keys(obj1);
|
|
|
|
+ const keys2 = Object.keys(obj2);
|
|
|
|
+
|
|
|
|
+ // 如果键的数量不同,返回 false
|
|
|
|
+ if (keys1.length !== keys2.length) return false;
|
|
|
|
+
|
|
|
|
+ // 遍历所有键,递归比较每个键的值
|
|
|
|
+ for (let key of keys1) {
|
|
|
|
+ if (!keys2.includes(key) || !isEqual(obj1[key], obj2[key])) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 如果所有键的值都相等,返回 true
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
const beforeClose = () => {
|
|
const beforeClose = () => {
|
|
|
|
+ //data.oldGoods
|
|
|
|
+ if(isEqual(data.selectGoods,data.oldGoods)){
|
|
|
|
+ showOrderConsole.value = false;
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
if (data.selectGoods && data.selectGoods.length > 0) {
|
|
if (data.selectGoods && data.selectGoods.length > 0) {
|
|
feedback.confirm('所点菜品信息将不被保存,确认关闭?').then(() => {
|
|
feedback.confirm('所点菜品信息将不被保存,确认关闭?').then(() => {
|
|
toEmpty()
|
|
toEmpty()
|
|
@@ -269,6 +273,36 @@ const beforeClose = () => {
|
|
const add = (item: any) => {
|
|
const add = (item: any) => {
|
|
addGoods(item)
|
|
addGoods(item)
|
|
}
|
|
}
|
|
|
|
+const addGoods = (item: any) => {
|
|
|
|
+ orderLoading.value = true
|
|
|
|
+ const tempGoods = data.selectGoods.filter((element: any) => {
|
|
|
|
+ return element.id == item.id
|
|
|
|
+ })
|
|
|
|
+ if (tempGoods.length == 0) {
|
|
|
|
+ item.num = 1
|
|
|
|
+ dishAdd({
|
|
|
|
+ orderId: params.number,
|
|
|
|
+ dishId: item.id
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ //拿到orders_dish的id
|
|
|
|
+ item.ordersDishId = res
|
|
|
|
+ data.selectGoods.push(item)
|
|
|
|
+ feedback.msgSuccess('成功添加商品' + item.title)
|
|
|
|
+ orderLoading.value = false
|
|
|
|
+ console.log(item)
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ dishInc({ id: item.ordersDishId })
|
|
|
|
+ data.selectGoods[data.selectGoods.indexOf(tempGoods[0])].num++
|
|
|
|
+ orderLoading.value = false
|
|
|
|
+ }
|
|
|
|
+ console.warn("***addGoods-dish***",item,data.selectGoods)
|
|
|
|
+ orderData.numSum++
|
|
|
|
+ orderData.priceSum += Number(item.summary)
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ scrollbarRef.value!.setScrollTop(innerRef.value!.clientHeight)
|
|
|
|
+ })
|
|
|
|
+}
|
|
const reduce = (item: any) => {
|
|
const reduce = (item: any) => {
|
|
orderLoading.value = true
|
|
orderLoading.value = true
|
|
const tempGoods = data.selectGoods.filter((element: any) => {
|
|
const tempGoods = data.selectGoods.filter((element: any) => {
|
|
@@ -281,14 +315,21 @@ const reduce = (item: any) => {
|
|
data.selectGoods[t].num--
|
|
data.selectGoods[t].num--
|
|
orderLoading.value = false
|
|
orderLoading.value = false
|
|
})
|
|
})
|
|
- } else {
|
|
|
|
|
|
+ } else {//餐品数量为0,要删减该餐品
|
|
dishDel({ id: item.ordersDishId }).then(() => {
|
|
dishDel({ id: item.ordersDishId }).then(() => {
|
|
data.selectGoods.splice(t, 1)
|
|
data.selectGoods.splice(t, 1)
|
|
orderLoading.value = false
|
|
orderLoading.value = false
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+ console.warn("***reduce-dish***",item,data.selectGoods)
|
|
orderData.numSum--
|
|
orderData.numSum--
|
|
orderData.priceSum -= item.summary
|
|
orderData.priceSum -= item.summary
|
|
|
|
+ if(orderData.priceSum <= 0){
|
|
|
|
+ orderData.priceSum = 0;
|
|
|
|
+ }
|
|
|
|
+ if(orderData.numSum <= 0){
|
|
|
|
+ orderData.numSum = 0;
|
|
|
|
+ }
|
|
orderLoading.value = false
|
|
orderLoading.value = false
|
|
}
|
|
}
|
|
onMounted(() => {
|
|
onMounted(() => {
|