@@ -1,9 +1,9 @@
import { store } from "@/store" ;
import WebSocketManager , { type ApifoxModel , msgType } from "@/utils/websocket" ;
import orderApi from "@/api/order/order" ;
import { useUserStore } from "@/store/modules/user" ;
import { useUserStoreHook } from "@/store/modules/user" ;
const shopUser = useUserStore ( ) ;
const shopUser = useUserStoreHook ( ) ;
export interface CartsState {
id : string | number ;
[ property : string ] : any ;
@@ -78,6 +78,12 @@ export const useCartsStore = defineStore("carts", () => {
} )
//赠菜总价
const giftMoney = computed ( ( ) = > {
let oldGiftMoney = 0
for ( let i in oldOrder . value . detailMap ) {
oldGiftMoney += oldOrder . value . detailMap [ i ] . reduce ( ( prve : number , cur : any ) = > {
return prve + cur . number * cur . salePrice
} , 0 )
}
return giftList . value . reduce ( ( acc : number , cur : any ) = > {
return acc + cur . number * cur . salePrice
} , 0 )
@@ -90,7 +96,13 @@ export const useCartsStore = defineStore("carts", () => {
const giftNumber = giftList . value . reduce ( ( acc : number , cur : any ) = > {
return acc + cur . pack_number * 1
} , 0 )
return nowCart Number + giftNumber
let old Number = 0
for ( let i in oldOrder . value . detailMap ) {
oldNumber += oldOrder . value . detailMap [ i ] . reduce ( ( prve : number , cur : any ) = > {
return prve + cur . pack_number
} , 0 )
}
return nowCartNumber + giftNumber + oldNumber
} )
//打包费
const packFee = computed ( ( ) = > {
@@ -100,27 +112,73 @@ export const useCartsStore = defineStore("carts", () => {
const giftPackFee = giftList . value . reduce ( ( acc : number , cur : any ) = > {
return acc + ( cur . packFee || 0 ) * cur . pack_number
} , 0 )
return now PackF ee + giftPackFee
let old Packf ee = 0 ;
for ( let i in oldOrder . value . detailMap ) {
oldPackfee += oldOrder . value . detailMap [ i ] . reduce ( ( prve : number , cur : any ) = > {
return prve + ( cur . packFee || 0 ) * cur . pack_number
} , 0 )
}
return nowPackFee + giftPackFee + oldPackfee
} )
//会员优惠
const vipDiscount = computed ( ( ) = > {
if ( ! useVipPrice . value ) {
return 0
}
const listTotal = list . value . reduce ( ( acc : number , cur : any ) = > {
const n = ( cur . salePrice * 1 - cur . memberPrice * 1 ) * cur . number
return acc + ( n <= 0 ? 0 : n )
} , 0 )
return listTotal
} )
//单品改价优惠
const singleDiscount = computed ( ( ) = > {
const listTotal = list . value . reduce ( ( acc : number , cur : any ) = > {
if ( cur . discount_sale_amount * 1 <= 0 ) {
return acc + 0
}
const originPrice = useVipPrice . value ? ( cur . memberPrice || cur . salePrice ) : cur . salePrice
const n = ( originPrice * 1 - cur . discount_sale_amount * 1 ) * cur . number
return acc + ( n <= 0 ? 0 : n )
} , 0 )
return listTotal
} )
// 优惠
const yiyouhui = computed ( ( ) = > {
const youhui = giftMoney . value
const youhui = giftMoney . value * 1 + vipDiscount . value * 1 + singleDiscount . value * 1
if ( youhui > 0 ) {
return '已优惠¥' + youhui . toFixed ( 2 )
}
return ''
} )
//历史订单价格
const oldOrderMoney = computed ( ( ) = > {
let total = 0
for ( let i in oldOrder . value . detailMap ) {
console . log ( oldOrder . value )
total += oldOrder . value . detailMap [ i ] . reduce ( ( prve : number , cur : any ) = > {
const discount_sale_amount = cur . discount_sale_amount * 1 || 0
const memberPrice = cur . skuData ? ( cur . skuData . memberPrice || cur . skuData . salePrice ) : 0
const price = ( discount_sale_amount || cur . salePrice || 0 )
return prve + cur . number * ( discount_sale_amount || ( useVipPrice . value ? memberPrice : price ) )
} , 0 )
}
return total
} )
//支付总价
const payMoney = computed ( ( ) = > {
const money = list . value . reduce ( ( acc : number , cur : any ) = > {
const discount_sale_amount = cur . discount_sale_amount * 1 || 0
const memberPrice = cur . skuData ? ( cur . skuData . memberPrice || cur . skuData . salePrice ) : 0
const price = ( cur . discount_sale_amount * 1 || cur . salePrice || 0 )
return acc + cur . number * ( useVipPrice . value ? memberPrice : price )
return acc + cur . number * ( discount_sale_amount || ( useVipPrice. value ? memberPrice : price ) )
} , 0 )
return ( money + packFee . value ) . toFixed ( 2 )
return ( money + packFee . value + oldOrderMoney . value * 1 ) . toFixed ( 2 )
} )
//总计数量
const totalNumber = computed ( ( ) = > {
@@ -130,7 +188,14 @@ export const useCartsStore = defineStore("carts", () => {
const giftNumber = list . value . reduce ( ( acc : number , cur : any ) = > {
return acc + cur . number * 1
} , 0 )
return cart Number + giftNumber
let old Number = 0
for ( let i in oldOrder . value . detailMap ) {
oldNumber += oldOrder . value . detailMap [ i ] . reduce ( ( prve : number , cur : any ) = > {
return prve + cur . number * 1
} , 0 )
}
return cartNumber + giftNumber + oldNumber
} )
@@ -238,6 +303,10 @@ export const useCartsStore = defineStore("carts", () => {
if ( cart . number * 1 < cart . skuData . suitNum * 1 ) {
return sendMessage ( 'del' , cart ) ;
}
console . log ( key , val )
if ( key == 'discount_sale_amount' && val * 1 <= 0 ) {
return ElMessage . error ( '价格不能为0! ' )
}
sendMessage ( 'edit' , { . . . cart , [ key ] : val } ) ;
}
@@ -245,13 +314,12 @@ export const useCartsStore = defineStore("carts", () => {
sendMessage ( 'cleanup' , { } ) ;
}
function dataReset() {
list . value = [ ] ;
giftList . value = [ ] ;
selListIndex . value = - 1
selListIndex . value = - 1 ;
selPlaceNum . value = 1
isOldOrder . value = false
selListIndex . value = - 1 ;
isSelGift . value = false
list . value = [ ] ;
giftList . value = [ ] ;
}
// 寻找套餐商品sku
@@ -304,14 +372,15 @@ export const useCartsStore = defineStore("carts", () => {
const newData : { [ key : string ] : any } = { }
for ( let i in data ) {
newData [ i ] = data [ i ] . map ( ( v : any ) = > {
const skuData = getProductDetails ( { product_id : v.productId , sku_id : v.skuId } )
console . log ( v )
return {
. . . skuData ,
placeNum : v.placeNum ,
number : v . num ,
id : v.id
id : v.id ,
pack_number : v.packNumber ,
discount_sale_amount : v.discountSaleAmount * 1 || 0
}
} )
}
@@ -332,7 +401,7 @@ export const useCartsStore = defineStore("carts", () => {
. . . $oldOrder ,
detailMap : returnDetailMap ( $oldOrder . detailMap )
}
console . log ( 'initParams' , initParams )
console . log ( 'oldOrder.detailMap' , oldOrder . value . detailMap )
table_code . value = initParams && initParams . table_code ? initParams . table_code : '' ;
@@ -454,13 +523,7 @@ export const useCartsStore = defineStore("carts", () => {
}
}
if ( msg . operate_type === "manage_cleanup" ) {
list . value = [ ]
giftList . value = [ ]
oldOrder . value = {
detailMap : [ ] ,
originAmount : 0
}
table_code . value = ''
dataReset ( )
}
console . log ( list . value )
} ) ;
@@ -478,6 +541,8 @@ export const useCartsStore = defineStore("carts", () => {
WebSocketManager . sendMessage ( msg ) ;
}
return {
singleDiscount ,
vipDiscount ,
dataReset ,
useVipPrice ,
changeUser ,
@@ -503,6 +568,6 @@ export const useCartsStore = defineStore("carts", () => {
} ;
} ) ;
export function useDict StoreHook() {
export function useCarts StoreHook() {
return useCartsStore ( store ) ;
}