购物车历史订单增加,代码优化

This commit is contained in:
GaoHao
2025-04-02 09:20:26 +08:00
parent 5a655ba09e
commit 5e6646b574
31 changed files with 418 additions and 357 deletions

View File

@@ -289,7 +289,7 @@
<script setup>
import { onLoad, onReady, onShow,onHide } from '@dcloudio/uni-app'
import { ref, inject, onUnmounted, reactive, computed, watch } from 'vue';
import { ref, inject, onUnmounted, nextTick, reactive, computed, watch } from 'vue';
import modelDiscount from './components/discount'
import giveFood from './components/give-food'
@@ -369,6 +369,7 @@
pageData.table.id = opt.tableId
pageData.table.tableCode = opt.tableCode
}
pageData.shopInfo = uni.getStorageSync('shopInfo')
getTbShopInfo()
})
@@ -399,6 +400,7 @@
console.log("onUnmounted")
websocketUtil.offMessage()
});
/**
* 获取订单详情
* @param {Object} tableCode
@@ -457,6 +459,7 @@
return prve + (cur.is_gift ? 0 : tPrice)
}, 0)
const tpackFee = $packFee.value > 0 ? $packFee.value*1 : 0
return ((goodsTotalPrice - discount_sale_amount.value + tpackFee) || 0).toFixed(2)
})
@@ -490,6 +493,9 @@
* init
*/
async function init() {
nextTick(()=>{
onMessage()
})
// 获取商品列表
$goods = await getProductList({},'product', false)
// console.log("商品列表===",$goods)
@@ -500,84 +506,92 @@
/**
* socket消息监听
*/
websocketUtil.offMessage()
websocketUtil.onMessage(res => {
let msg = JSON.parse(res);
let cartItem;
if( msg.msg_id ){
websocketUtil.send(JSON.stringify({
type: 'receipt',
msg_id: msg.msg_id,
}))
}
if( msg.status == 0 ){
infoBox.showToast('添加失败')
return false;
}
switch (msg.operate_type) {
case 'onboc_init':
goods.list = []
msg.data.map(item=>{
cartItem = getNowCart(item,$goods,pageData.user)
if( cartItem.isGrounding||cartItem.is_temporary == 1 ){
cartControls(cartItem,'add')
} else {
delCart(cartItem.id)
function onMessage() {
websocketUtil.offMessage()
websocketUtil.onMessage(res => {
let msg = JSON.parse(res);
console.log(msg)
let cartItem;
if( msg.msg_id ){
websocketUtil.send(JSON.stringify({
type: 'receipt',
msg_id: msg.msg_id,
}))
}
if( msg.status == 0 ){
infoBox.showToast('添加失败')
return false;
}
switch (msg.operate_type) {
case 'onboc_init':
goods.list = []
console.log(msg.data)
msg.data.map(item=>{
cartItem = getNowCart(item,$goods,pageData.user)
console.log(cartItem)
if( cartItem.isGrounding||cartItem.is_temporary == 1 ){
cartControls(cartItem,'add')
} else {
delCart(cartItem.id)
}
})
if( pageData.eatTypes.isShow ){
if( pageData.eatTypes.active == 'take-out') {
cartItem.pack_number = cartItem.number
} else {
cartItem.pack_number = 0
}
let par = {
type:'onboc',
account: uni.getStorageSync("iToken").loginId,
shop_id: uni.getStorageSync("shopInfo").id,
operate_type:'batch',
table_code: pageData.table.tableCode,
is_pack: pageData.eatTypes.active == 'take-out' ? 1 : 0,
}
updateCart(par)
}
// 是否更新就餐人数
if (!$seatFee.totalNumber) {
updateChoseCount()
}
})
if( pageData.eatTypes.isShow ){
if( pageData.eatTypes.active == 'take-out') {
cartItem.pack_number = cartItem.number
} else {
cartItem.pack_number = 0
}
let par = {
type:'onboc',
account: uni.getStorageSync("iToken").loginId,
shop_id: uni.getStorageSync("shopInfo").id,
operate_type:'batch',
table_code: pageData.table.tableCode,
is_pack: pageData.eatTypes.active == 'take-out' ? 1 : 0,
}
updateCart(par)
}
// 是否更新就餐人数
if (!$seatFee.totalNumber) {
updateChoseCount()
}
pageData.eatTypes.isShow = false
break;
case 'onboc_add':
case 'add':
cartItem = getNowCart(msg.data,$goods,pageData.user)
cartControls(cartItem,'add')
break;
case 'onboc_edit':
case 'edit':
getCart()
break;
case 'onboc_del':
case 'del':
cartItem = getNowCart(msg.data,$goods,pageData.user)
cartControls(cartItem,'del')
break;
case 'onboc_cleanup':
case 'cleanup':
goods.list = []
$seatFee.totalNumber = 0
$seatFee.totalAmount = 0
userNumbers.defaultCateIndex = 0
init()
break;
case 'product_update':
init()
break;
}
pageData.eatTypes.isShow = false
break;
case 'onboc_add':
case 'add':
cartItem = getNowCart(msg.data,$goods,pageData.user)
cartControls(cartItem,'add')
break;
case 'onboc_edit':
case 'edit':
getCart()
break;
case 'onboc_del':
case 'del':
cartItem = getNowCart(msg.data,$goods,pageData.user)
cartControls(cartItem,'del')
break;
case 'onboc_cleanup':
case 'cleanup':
goods.list = []
$seatFee.totalNumber = 0
$seatFee.totalAmount = 0
userNumbers.defaultCateIndex = 0
init()
break;
case 'product_update':
init()
break;
}
});
});
}
/**
* 删除购物车菜品
@@ -840,9 +854,11 @@
userNumbers.defaultCateIndex = maxCapacity - 1
return
}
console.log(pageData.shopInfo)
console.log(!pageData.shopInfo.isTableFee)
if (!pageData.shopInfo.isTableFee && pageData.table && pageData.table.id && goods.list.length > 0) {
//不免餐位费
console.log("不免餐位费")
let seatFee = {
totalNumber: userNumbers.defaultCateIndex * 1 + 1,
totalAmount: (userNumbers.defaultCateIndex * 1 + 1) * pageData.shopInfo.tableFee,
@@ -897,7 +913,7 @@
}
let vipPrice = isVip.value ? 1 : 0
let placeNum = pageData.shopInfo.registerType == 'after'&&pageData.orderInfo ? pageData.orderInfo.placeNum + 1 : 1;
let placeNum = pageData.orderInfo ? pageData.orderInfo.placeNum + 1 : 1;
let originAmount = goodsPrice.value*1+youhui.value*1
let par = {
shopId: pageData.shopInfo.id, //店铺Id
@@ -915,7 +931,7 @@
if(!pageData.shopInfo.isTableFee&&pageData.table&&pageData.table.id){
par.seatNum = userNumbers.defaultCateIndex * 1 + 1
}
if(pageData.shopInfo.registerType == 'after'&&pageData.orderInfo){
if(pageData.orderInfo){
par.orderId = pageData.orderInfo.id
}
@@ -928,6 +944,7 @@
operate_type:'cleanup',
table_code: pageData.table.tableCode,
}))
uni.removeStorageSync("table_code")
if (pageData.shopInfo.registerType == 'before' || pageData.eatTypes.active == 'take-out') {
//先付
return go.to('PAGES_ORDER_PAY', {