代码更新

This commit is contained in:
GaoHao
2025-03-12 14:13:29 +08:00
parent 2f1523d4e9
commit c2135c6119
105 changed files with 2026 additions and 278 deletions

View File

@@ -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 工具类实例

View File

@@ -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)

View File

@@ -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

View File

@@ -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通知购物车商品数量修改处理
*/

View File

@@ -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: "",

View File

@@ -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}}

View File

@@ -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)

View File

@@ -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)