代码更新
This commit is contained in:
@@ -110,7 +110,7 @@
|
||||
<script setup>
|
||||
import { reactive, onMounted, ref, onBeforeMount } from 'vue';
|
||||
import { onLoad, onShow } from '@dcloudio/uni-app'
|
||||
import { getCategoryList, getProdUnitList } from '@/api/product.js'
|
||||
import { getCategoryList, getProdUnitList } from '@/http/api/product.js'
|
||||
import { inject } from 'vue';
|
||||
|
||||
const websocketUtil = inject('websocketUtil'); // 注入 WebSocket 工具类实例
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { $status } from '@/commons/table-status.js'
|
||||
|
||||
import { getShopTable } from '@/api/table.js'
|
||||
import { getShopArea} from '@/api/area.js'
|
||||
import { getShopTable } from '@/http/api/table.js'
|
||||
import { getShopArea} from '@/http/api/area.js'
|
||||
|
||||
let nouser = ref(false)
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<script setup>
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { reactive, onBeforeMount, ref } from 'vue';
|
||||
import { shopUserList } from '@/api/shopUser.js';
|
||||
import { shopUserList } from '@/http/api/shopUser.js';
|
||||
|
||||
let nouser = ref(false)
|
||||
let timer = null
|
||||
|
||||
@@ -300,10 +300,10 @@
|
||||
import $storageManage from '@/commons/utils/storageManage.js'
|
||||
import { hasPermission } from '@/commons/utils/hasPermission.js'
|
||||
import { getNowCart } from '@/pagesCreateOrder/util.js'
|
||||
import { getShopInfo } from '@/api/shop.js'
|
||||
import { getShopTableDetail } from '@/api/table.js'
|
||||
import { getProductPage } from '@/api/product.js'
|
||||
import { createOrder,getHistoryOrder } from '@/api/order.js'
|
||||
import { getShopInfo } from '@/http/api/shop.js'
|
||||
import { getShopTableDetail } from '@/http/api/table.js'
|
||||
import { getProductPage } from '@/http/api/product.js'
|
||||
import { createOrder,getHistoryOrder } from '@/http/api/order.js'
|
||||
import { number } from 'uview-plus/libs/function/test';
|
||||
|
||||
const models = new Map();
|
||||
@@ -414,7 +414,7 @@
|
||||
const $packFee = computed(() => {
|
||||
console.log("打包费===",goods.list)
|
||||
return goods.list.reduce((prve, cur) => {
|
||||
return prve + (cur.packFee*parseFloat(cur.pack_number).toFixed(0))
|
||||
return prve + ((cur.packFee||0)*parseFloat(cur.pack_number).toFixed(0))
|
||||
}, 0).toFixed(2)
|
||||
})
|
||||
|
||||
@@ -486,6 +486,7 @@
|
||||
/**
|
||||
* socket消息监听
|
||||
*/
|
||||
websocketUtil.offMessage()
|
||||
websocketUtil.onMessage(res => {
|
||||
let msg = JSON.parse(res);
|
||||
let cartItem;
|
||||
@@ -505,7 +506,11 @@
|
||||
goods.list = []
|
||||
msg.data.map(item=>{
|
||||
cartItem = getNowCart(item,$goods,pageData.user)
|
||||
cartControls(cartItem,'add')
|
||||
if( cartItem.isGrounding||cartItem.is_temporary == 1 ){
|
||||
cartControls(cartItem,'add')
|
||||
} else {
|
||||
delCart(cartItem.id)
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'onboc_add':
|
||||
@@ -515,8 +520,7 @@
|
||||
break;
|
||||
case 'onboc_edit':
|
||||
case 'edit':
|
||||
cartItem = getNowCart(msg.data,$goods,pageData.user)
|
||||
cartControls(cartItem,'edit')
|
||||
getCart()
|
||||
break;
|
||||
case 'onboc_del':
|
||||
case 'del':
|
||||
@@ -533,6 +537,23 @@
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 删除购物车菜品
|
||||
*/
|
||||
function delCart (cartItem) {
|
||||
let params = {
|
||||
type:'onboc',
|
||||
account: uni.getStorageSync("iToken").loginId,
|
||||
shop_id: uni.getStorageSync("shopInfo").id,
|
||||
is_gift: 0,
|
||||
id: cartItem.id,
|
||||
operate_type:'del',
|
||||
table_code: cartItem.table_code,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* socket通知购物车商品数量修改处理
|
||||
*/
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
$table,
|
||||
tableswitch
|
||||
} from '@/http/yskApi/table.js'
|
||||
import { getShopTable } from '@/api/table.js'
|
||||
import { getShopTable } from '@/http/api/table.js'
|
||||
let datas = reactive({
|
||||
current: 0,
|
||||
item: "",
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
<up-image :src="data.coverImg" mode="aspectFill" :width="img.width" :height="img.height"></up-image>
|
||||
<view class="info u-flex u-row-between u-col-top u-flex-col">
|
||||
<view>
|
||||
<view>
|
||||
<text class="u-line-2">{{data.name}}</text>
|
||||
<view >
|
||||
<view >
|
||||
<text class="up-line-1">{{data.name}}</text>
|
||||
</view>
|
||||
<view class="u-font-32 font-bold u-m-t-16">
|
||||
¥{{data.lowPrice}}
|
||||
|
||||
@@ -138,11 +138,11 @@
|
||||
|
||||
import appConfig from '@/config/appConfig.js';
|
||||
import WebsocketUtil from '@/commons/utils/websocket.js'
|
||||
import { getShopTable,getShopTableDetail } from '@/api/table.js'
|
||||
import { getProductList } from '@/api/product.js'
|
||||
import { categoryPage } from '@/api/cateGory.js'
|
||||
import { getShopTable,getShopTableDetail } from '@/http/api/table.js'
|
||||
import { getProductList } from '@/http/api/product.js'
|
||||
import { categoryPage } from '@/http/api/cateGory.js'
|
||||
import { inject } from 'vue';
|
||||
import { getShopInfo } from '@/api/shop.js'
|
||||
import { getShopInfo } from '@/http/api/shop.js'
|
||||
|
||||
|
||||
const modal = reactive({
|
||||
@@ -204,7 +204,7 @@
|
||||
let option = {
|
||||
type: ''
|
||||
}
|
||||
|
||||
const websocketUtil = inject('websocketUtil'); // 注入 WebSocket 工具类实例
|
||||
onLoad((opt) => {
|
||||
option = opt
|
||||
console.log("opt===",opt)
|
||||
@@ -233,7 +233,10 @@
|
||||
// watchChooseuser()
|
||||
watchChooseTable()
|
||||
watchUpdate()
|
||||
|
||||
data.isGoodsAdd = true;
|
||||
nextTick(()=>{
|
||||
onMessage()
|
||||
})
|
||||
})
|
||||
onReady(() => {
|
||||
getElRect('list-tight-top').then(res => {
|
||||
@@ -297,85 +300,104 @@
|
||||
initCart()
|
||||
}
|
||||
|
||||
const websocketUtil = inject('websocketUtil'); // 注入 WebSocket 工具类实例
|
||||
/**
|
||||
* socket消息监听
|
||||
*/
|
||||
websocketUtil.onMessage(res => {
|
||||
let msg = JSON.parse(res);
|
||||
let cartItem;
|
||||
let cartArr = [];
|
||||
console.log(msg)
|
||||
if( msg.msg_id ){
|
||||
websocketUtil.send(JSON.stringify({
|
||||
type: 'receipt',
|
||||
msg_id: msg.msg_id,
|
||||
}))
|
||||
}
|
||||
if( msg.status == 0 ){
|
||||
infoBox.showToast('添加失败')
|
||||
data.isGoodsAdd = true;
|
||||
return;
|
||||
}
|
||||
if ( msg.data ) {
|
||||
cartArr = data.tabbar.reduce((prve,cur)=>{
|
||||
prve = [...prve,...cur.foods]
|
||||
return prve
|
||||
},[])
|
||||
}
|
||||
|
||||
switch (msg.operate_type) {
|
||||
case 'onboc_init':
|
||||
cars.length = 0
|
||||
function onMessage (){
|
||||
websocketUtil.offMessage()
|
||||
websocketUtil.onMessage(async res => {
|
||||
let msg = JSON.parse(res);
|
||||
let cartItem;
|
||||
let cartArr = [];
|
||||
console.log("onMessage===",msg)
|
||||
if( msg.msg == "收到了"){
|
||||
data.isCars = true;
|
||||
console.log("购物车信息onboc_init===",msg)
|
||||
if( !data.table.tableCode ){
|
||||
data.table.tableCode = msg.table_code
|
||||
uni.setStorageSync("table_code",msg.table_code)
|
||||
}
|
||||
msg.data.map(item=>{
|
||||
cartItem = getNowCart(item,cartArr)
|
||||
cartControls(cartItem,'add')
|
||||
})
|
||||
|
||||
uni.hideLoading()
|
||||
break;
|
||||
case 'onboc_add':
|
||||
case 'add':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'add')
|
||||
infoBox.showToast('操作成功')
|
||||
break;
|
||||
case 'onboc_edit':
|
||||
case 'edit':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'edit')
|
||||
infoBox.showToast('操作成功')
|
||||
break;
|
||||
case 'onboc_del':
|
||||
case 'del':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'del')
|
||||
break;
|
||||
case 'onboc_cleanup':
|
||||
case 'cleanup':
|
||||
cars.length = 0
|
||||
for (let i in data.tabbar) {
|
||||
for (let k in data.tabbar[i].foods) {
|
||||
data.tabbar[i].foods[k].chooseNumber = 0
|
||||
// initCart()
|
||||
}
|
||||
if( msg.msg_id ){
|
||||
websocketUtil.send(JSON.stringify({
|
||||
type: 'receipt',
|
||||
msg_id: msg.msg_id,
|
||||
}))
|
||||
}
|
||||
if( msg.status == 0 ){
|
||||
infoBox.showToast('添加失败')
|
||||
data.isGoodsAdd = true;
|
||||
return;
|
||||
}
|
||||
if ( msg.data ) {
|
||||
cartArr = data.tabbar.reduce((prve,cur)=>{
|
||||
prve = [...prve,...cur.foods]
|
||||
return prve
|
||||
},[])
|
||||
}
|
||||
|
||||
switch (msg.operate_type) {
|
||||
case 'onboc_init':
|
||||
cars.length = 0
|
||||
data.isCars = true;
|
||||
console.log("购物车信息onboc_init===",msg)
|
||||
if( !data.table.tableCode ){
|
||||
data.table.tableCode = msg.table_code
|
||||
uni.setStorageSync("table_code",msg.table_code)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'init':
|
||||
case 'rottable':
|
||||
initCart()
|
||||
break;
|
||||
case 'product_update':
|
||||
init()
|
||||
break;
|
||||
}
|
||||
|
||||
});
|
||||
console.log("cartArr===",cartArr)
|
||||
msg.data.map(item=>{
|
||||
cartItem = getNowCart(item,cartArr)
|
||||
console.log("cartItem===",cartItem)
|
||||
if( cartItem.isGrounding||cartItem.is_temporary == 1 ){
|
||||
cartControls(cartItem,'add')
|
||||
} else {
|
||||
delCart(cartItem.id)
|
||||
}
|
||||
})
|
||||
uni.hideLoading()
|
||||
break;
|
||||
case 'onboc_add':
|
||||
case 'add':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'add')
|
||||
infoBox.showToast('操作成功')
|
||||
break;
|
||||
case 'onboc_edit':
|
||||
case 'edit':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'edit')
|
||||
infoBox.showToast('操作成功')
|
||||
break;
|
||||
case 'onboc_del':
|
||||
case 'del':
|
||||
cartItem = getNowCart(msg.data,cartArr)
|
||||
cartControls(cartItem,'del')
|
||||
break;
|
||||
case 'onboc_cleanup':
|
||||
case 'cleanup':
|
||||
cars.length = 0
|
||||
for (let i in data.tabbar) {
|
||||
for (let k in data.tabbar[i].foods) {
|
||||
data.tabbar[i].foods[k].chooseNumber = 0
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'init':
|
||||
case 'rottable':
|
||||
if( data.table.tableCode == msg.data.new_table_code){
|
||||
initCart()
|
||||
} else {
|
||||
data.table.tableCode = msg.data.new_table_code
|
||||
let resData = await getShopTableDetail({tableCode:msg.data.new_table_code})
|
||||
data.table = resData
|
||||
initCart()
|
||||
}
|
||||
break;
|
||||
case 'product_update':
|
||||
init()
|
||||
break;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -387,6 +409,7 @@
|
||||
operate_type:'init',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
console.log("购物车初始化参数===",params)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
|
||||
|
||||
@@ -397,8 +420,6 @@
|
||||
* 购物车添加菜品
|
||||
*/
|
||||
function editCart (par,operate_type) {
|
||||
console.log('购物车添加菜品',par)
|
||||
console.log("data.table==",data.table)
|
||||
if( !data.isGoodsAdd ){ return; }
|
||||
let params = {
|
||||
...data.socketData,
|
||||
@@ -410,6 +431,7 @@
|
||||
is_temporary: 0, //是否是临时菜
|
||||
}
|
||||
Object.assign(params, par)
|
||||
console.log('购物车添加菜品参数===',params)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
data.isGoodsAdd = false;
|
||||
}
|
||||
@@ -424,6 +446,7 @@
|
||||
operate_type:'del',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
console.log('购物车删除菜品参数===',params)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
@@ -436,6 +459,7 @@
|
||||
operate_type:'cleanup',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
console.log('购物车清空菜品参数===',params)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
@@ -550,7 +574,7 @@
|
||||
// })
|
||||
// }
|
||||
if( !data.isCars ){
|
||||
return infoBox.showToast('购物车加载中请稍等...')
|
||||
return infoBox.showToast('购物车加载失败请刷新重试...')
|
||||
}
|
||||
if( !data.isGoodsAdd ){ return; }
|
||||
let $goods = data.tabbar[index].foods[foodsindex]
|
||||
@@ -633,6 +657,7 @@
|
||||
$goods = product_id < 0 ? {} : tabbarItem.foods.find(v => v.id == product_id)
|
||||
}
|
||||
})
|
||||
|
||||
if( type == 'del' ) {
|
||||
cars.splice(cartIndex, 1)
|
||||
if($goods)$goods.chooseNumber = 0;
|
||||
@@ -725,7 +750,7 @@
|
||||
// })
|
||||
// }
|
||||
if( !data.isCars ){
|
||||
return infoBox.showToast('购物车加载中请稍等...')
|
||||
return infoBox.showToast('购物车加载失败请刷新重试...')
|
||||
}
|
||||
const $goods = data.tabbar[index].foods[foodsindex]
|
||||
console.log($goods)
|
||||
@@ -1109,7 +1134,7 @@
|
||||
const refweighitem = ref(null)
|
||||
const tapweigh = (foodsindex, index) => {
|
||||
if( !data.isCars ){
|
||||
return infoBox.showToast('购物车加载中请稍等...')
|
||||
return infoBox.showToast('购物车加载失败请刷新重试...')
|
||||
}
|
||||
const goods = data.tabbar[index].foods[foodsindex]
|
||||
refweighitem.value.open(foodsindex, index, goods)
|
||||
|
||||
@@ -6,6 +6,7 @@ export function getNowCart(carItem,goodsList,user) {
|
||||
// const nowCart = records.find(v => v.placeNum == 0)
|
||||
const arr = []
|
||||
if( carItem.is_temporary != 1 ){
|
||||
carItem.isGrounding = false;
|
||||
goodsList.map(goodsItem => {
|
||||
if(carItem.product_id == goodsItem.id){
|
||||
goodsItem.skuList.map(item=>{
|
||||
@@ -24,9 +25,10 @@ export function getNowCart(carItem,goodsList,user) {
|
||||
carItem.name = goodsItem.name
|
||||
carItem.coverImg = goodsItem.coverImg
|
||||
carItem.packFee = goodsItem.packFee
|
||||
carItem.isGrounding = true;
|
||||
}
|
||||
carItem.number = parseFloat(carItem.number)
|
||||
})
|
||||
carItem.number = parseFloat(carItem.number)
|
||||
} else {
|
||||
// 临时菜
|
||||
carItem.number = parseFloat(carItem.number)
|
||||
|
||||
Reference in New Issue
Block a user