代码更新
This commit is contained in:
131
pagesCreateOrder/confirm-order/components/pack-number.vue
Normal file
131
pagesCreateOrder/confirm-order/components/pack-number.vue
Normal file
@@ -0,0 +1,131 @@
|
||||
<template>
|
||||
<my-model ref="model" :title="title" iconColor="#000" @close="resetForm">
|
||||
<template #desc>
|
||||
<view class="u-text-left u-p-l-30 u-p-r-30 u-p-t-30 ">
|
||||
<view class="u-m-t-32 u-flex ">
|
||||
<uni-easyinput type="number" v-model="form.pack_number" placeholder="打包数量"></uni-easyinput>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template #btn>
|
||||
<view class="u-p-l-30 u-p-r-30 u-m-t-28 u-p-b-30">
|
||||
<view class="">
|
||||
<my-button @tap="confirm" shape="circle" fontWeight="700">确认</my-button>
|
||||
<view class="u-m-t-10">
|
||||
<my-button type="cancel" bgColor="#fff" @tap="confirm">取消</my-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</my-model>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, nextTick, ref } from 'vue';
|
||||
const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
})
|
||||
|
||||
const $form = {
|
||||
pack_number: 1
|
||||
}
|
||||
const form = reactive({
|
||||
number: null,
|
||||
...$form
|
||||
})
|
||||
|
||||
function resetForm() {
|
||||
Object.assign(form, {
|
||||
...$form
|
||||
})
|
||||
}
|
||||
|
||||
const model = ref(null)
|
||||
|
||||
function open(data) {
|
||||
console.log(data)
|
||||
form.number = data.number
|
||||
model.value.open()
|
||||
}
|
||||
|
||||
function close() {
|
||||
model.value.close()
|
||||
}
|
||||
const emits = defineEmits(['confirm'])
|
||||
|
||||
function confirm() {
|
||||
const { pack_number } = form
|
||||
if( pack_number > form.number){
|
||||
uni.showToast({
|
||||
title: '打包数量不能大于菜品数量',
|
||||
icon: 'none'
|
||||
})
|
||||
return false;
|
||||
}
|
||||
emits('confirm', pack_number)
|
||||
close()
|
||||
|
||||
}
|
||||
defineExpose({
|
||||
open,
|
||||
close
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.lh34{
|
||||
line-height: 34rpx;
|
||||
}
|
||||
.tag {
|
||||
background-color: #fff;
|
||||
border: 1px solid #E5E5E5;
|
||||
line-height: inherit;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
padding: 6rpx 20rpx;
|
||||
border-radius: 8rpx;
|
||||
|
||||
&.active {
|
||||
border-color: #E6F0FF;
|
||||
color: $my-main-color;
|
||||
}
|
||||
}
|
||||
|
||||
.hover-class {
|
||||
background-color: #E5E5E5;
|
||||
}
|
||||
|
||||
.discount {
|
||||
.u-absolute {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.bg1 {
|
||||
background: #F7F7FA;
|
||||
}
|
||||
|
||||
.tab {
|
||||
padding: 0 80rpx;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid #E5E5E5;
|
||||
border-radius: 4rpx;
|
||||
}
|
||||
|
||||
.input-box {
|
||||
padding: 22rpx 32rpx;
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.placeholder-class {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -135,7 +135,7 @@
|
||||
custom-style="background-color: #FFF0DF; border-color: #FFF0DF; color: #FF9F2E;">
|
||||
</uni-tag>
|
||||
</view>
|
||||
<view class="u-m-r-20 u-flex" v-if="item.is_pack" style="flex-shrink: 0;" >
|
||||
<view class="u-m-r-20 u-flex" v-if="item.pack_number>0" style="flex-shrink: 0;" >
|
||||
<uni-tag
|
||||
custom-style="background-color: #E6F0FF; border-color: #E6F0FF; color: #318AFE;"
|
||||
size="small" text="打包" inverted type="success" />
|
||||
@@ -149,7 +149,7 @@
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-font-24 color-999 u-m-t-10">{{item.specSnap||' '}}</view>
|
||||
<view class="u-font-24 color-999 u-m-t-10">{{item.specInfo||' '}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="">
|
||||
@@ -199,7 +199,7 @@
|
||||
</view>
|
||||
<view class="u-flex u-m-r-20 ">
|
||||
<button class="tag" hover-class="hover-class"
|
||||
@tap="toggleGoodsItemKey(item,index,'is_pack')">{{item.is_pack?'取消打包':'打包'}}</button>
|
||||
@tap="showModel('packNumber',index,item)">{{item.pack_number>0?'取消打包':'打包'}}</button>
|
||||
</view>
|
||||
<view class="u-flex u-m-r-20 ">
|
||||
<button class="tag" hover-class="hover-class"
|
||||
@@ -262,7 +262,7 @@
|
||||
<view class="btn ">
|
||||
<my-button shape="circle" @click="createAnOrder">
|
||||
<view class="font-bold u-font-32">
|
||||
{{(pageData.shopInfo.registerType=='munchies'||pageData.eatTypes.active=='take-out')?'结算': '下单'}}
|
||||
{{(pageData.shopInfo.registerType=='before'||pageData.eatTypes.active=='take-out')?'结算': '下单'}}
|
||||
</view>
|
||||
</my-button>
|
||||
</view>
|
||||
@@ -272,6 +272,7 @@
|
||||
@confirm="discountconfirm"></model-discount>
|
||||
<give-food title="赠菜" :ref="setModel" name="giveFood"></give-food>
|
||||
<one-remark @confirm="goodsOneRemarkConfirm" title="单品备注" :ref="setModel" name="remark"></one-remark>
|
||||
<pack-number @confirm="goodsOnePackNumberConfirm" title="打包" :ref="setModel" name="packNumber"></pack-number>
|
||||
<edit-discount title="优惠金额" :ref="setModel" name="editMoney" :price="allPrice"></edit-discount>
|
||||
</view>
|
||||
|
||||
@@ -284,6 +285,7 @@
|
||||
import { getSafeBottomHeight } from '@/commons/utils/safe-bottom.js'
|
||||
import modelDiscount from './components/discount'
|
||||
import giveFood from './components/give-food'
|
||||
import packNumber from './components/pack-number'
|
||||
import oneRemark from './components/remark'
|
||||
import editDiscount from '@/pagesCreateOrder/components/edit-discount.vue'
|
||||
import go from '@/commons/utils/go.js';
|
||||
@@ -297,6 +299,7 @@
|
||||
import { getShopTableDetail } from '@/api/table.js'
|
||||
import { getProductList } from '@/api/product.js'
|
||||
import { createOrder } from '@/api/order.js'
|
||||
import { number } from 'uview-plus/libs/function/test';
|
||||
|
||||
const models = new Map();
|
||||
const modelData = reactive({
|
||||
@@ -307,7 +310,9 @@
|
||||
masterId: '',
|
||||
tableId: ""
|
||||
})
|
||||
//用餐人数
|
||||
/**
|
||||
* 用餐人数
|
||||
*/
|
||||
const userNumbers = reactive({
|
||||
list: new Array(100).fill(1).map((v, index) => {
|
||||
// return index === 0 ? '无' : index + '人'
|
||||
@@ -360,7 +365,6 @@
|
||||
getTbShopInfo()
|
||||
init()
|
||||
|
||||
// updateChoseCount()
|
||||
})
|
||||
let bottomHeight = ref(100)
|
||||
onReady(() => {
|
||||
@@ -390,6 +394,26 @@
|
||||
totalAmount: 0,
|
||||
})
|
||||
|
||||
/**
|
||||
* 打包费
|
||||
*/
|
||||
const $packFee = computed(() => {
|
||||
return goods.list.reduce((prve, cur) => {
|
||||
return prve + (cur.packFee*parseFloat(cur.pack_number).toFixed(0))
|
||||
}, 0).toFixed(2)
|
||||
})
|
||||
|
||||
/**
|
||||
* 菜品数量
|
||||
*/
|
||||
const goodsNumber = computed(() => {
|
||||
const result = goods.list.reduce((prve, cur) => {
|
||||
return prve + cur.number
|
||||
}, 0)
|
||||
return result
|
||||
})
|
||||
|
||||
|
||||
const isVip = computed(() => {
|
||||
console.log("pageData==",pageData)
|
||||
return pageData.shopInfo.isMemberPrice && pageData.user && pageData.user.id && pageData.user.isVip
|
||||
@@ -405,17 +429,19 @@
|
||||
})
|
||||
|
||||
const goodsPrice = computed(() => {
|
||||
console.log("isVip.value===",isVip.value)
|
||||
console.log("isVip===",isVip.value)
|
||||
const goodsTotalPrice = goods.list.reduce((prve, cur) => {
|
||||
const lowMemberPrice = cur.lowMemberPrice ? cur.lowMemberPrice : cur.lowPrice
|
||||
const tPrice = (isVip.value ? lowMemberPrice : cur.lowPrice) * cur.number
|
||||
const tpackFee = cur.is_pack ? cur.packFee * 1 : 0
|
||||
const tpackFee = parseFloat(cur.pack_number).toFixed(0) > 0 ? cur.packFee*parseFloat(cur.pack_number).toFixed(0) : 0
|
||||
return prve + (cur.is_gift ? 0 : tPrice) + tpackFee
|
||||
}, 0)
|
||||
console.log("discount_sale_amount===",discount_sale_amount)
|
||||
return ((goodsTotalPrice - discount_sale_amount.value) || 0).toFixed(2)
|
||||
})
|
||||
|
||||
const allPrice = computed(() => {
|
||||
console.log("isVip===",goodsPrice.value)
|
||||
const n = goodsPrice.value * 1 + $seatFee.totalAmount
|
||||
return n.toFixed(2)
|
||||
})
|
||||
@@ -433,10 +459,8 @@
|
||||
}, 0)
|
||||
return goodsTotalPrice - allPrice.value
|
||||
} else {
|
||||
console.log(discount_sale_amount.value, '优惠金额')
|
||||
return (discount_sale_amount.value)
|
||||
}
|
||||
console.log(discount_sale_amount.value, '优惠金额1')
|
||||
return (goodsTotalPrice + discount_sale_amount.value * 1).toFixed(2)
|
||||
})
|
||||
|
||||
@@ -447,6 +471,13 @@
|
||||
websocketUtil.onMessage(data => {
|
||||
let msg = JSON.parse(data);
|
||||
let cartItem;
|
||||
if( msg.msg_id ){
|
||||
// console.log('Received data:', msg);
|
||||
websocketUtil.send(JSON.stringify({
|
||||
type: 'receipt',
|
||||
msg_id: msg.msg_id,
|
||||
}))
|
||||
}
|
||||
if( msg.status == 0 ){
|
||||
infoBox.showToast('添加失败')
|
||||
return false;
|
||||
@@ -462,13 +493,7 @@
|
||||
break;
|
||||
|
||||
}
|
||||
if( msg.msg_id ){
|
||||
// console.log('Received data:', msg);
|
||||
websocketUtil.send(JSON.stringify({
|
||||
type: 'receipt',
|
||||
msg_id: msg.msg_id,
|
||||
}))
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -507,15 +532,10 @@
|
||||
operate_type:'init',
|
||||
table_code: pageData.table.tableCode,
|
||||
}))
|
||||
|
||||
// console.log(useType);
|
||||
// pageData.eatTypes.active = useType == 'take-out' ? useType : useType.replace(
|
||||
// /-after|-before/g, '');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取店铺信息
|
||||
*/
|
||||
@@ -561,8 +581,8 @@
|
||||
*/
|
||||
async function changeUseType() {
|
||||
const { registerType } = pageData.shopInfo
|
||||
//munchies 先付 restaurant 后付
|
||||
const isPayAfter = registerType == "munchies" ? false : true;
|
||||
//before 先付 after 后付
|
||||
const isPayAfter = registerType == "before" ? false : true;
|
||||
let useType = "take-out";
|
||||
if (pageData.eatTypes.active == "take-out") {
|
||||
uni.setStorageSync("useType", "take-out");
|
||||
@@ -605,7 +625,7 @@
|
||||
* 菜品赠送/等叫/打印修改
|
||||
* @param {Object} item
|
||||
*/
|
||||
async function toggleItem(item,key) {
|
||||
function toggleItem(item,key) {
|
||||
let par = {
|
||||
id: item.id,
|
||||
product_id: item.product_id ,
|
||||
@@ -615,7 +635,24 @@
|
||||
updateCart(par)
|
||||
}
|
||||
|
||||
// 单品打折
|
||||
/**
|
||||
* 打包
|
||||
*/
|
||||
function toggleIsPack (item,key) {
|
||||
let par = {
|
||||
id: item.id,
|
||||
product_id: item.product_id ,
|
||||
sku_id: item.sku_id,
|
||||
pack_num: 0
|
||||
}
|
||||
par['pack_number'] = item['pack_number'] == 0 ? 1 : 0
|
||||
updateCart(par)
|
||||
}
|
||||
|
||||
/**
|
||||
* 单品打折
|
||||
* @param {Object} form
|
||||
*/
|
||||
async function discountconfirm(form) {
|
||||
if (form.discountMoney != '.') {
|
||||
let str = ''
|
||||
@@ -640,6 +677,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 打包
|
||||
*/
|
||||
function goodsOnePackNumberConfirm (e) {
|
||||
let par = {
|
||||
id: modelData.data.id,
|
||||
product_id: modelData.data.product_id ,
|
||||
sku_id: modelData.data.sku_id,
|
||||
pack_number: e
|
||||
}
|
||||
updateCart(par)
|
||||
}
|
||||
|
||||
/**
|
||||
* 单品备注确认
|
||||
* @param {Object} e
|
||||
@@ -669,13 +719,31 @@
|
||||
* @param {Object} key
|
||||
* @param {Object} index
|
||||
*/
|
||||
function showModel(key, index) {
|
||||
function showModel(key, index, item) {
|
||||
modelData.data = goods.list[index]
|
||||
modelData.selIndex = index
|
||||
const model = models.get(key)
|
||||
model && model.open({
|
||||
remark: modelData.data.note || ''
|
||||
})
|
||||
|
||||
if( key == 'packNumber'){
|
||||
if( item.pack_number > 0 ){
|
||||
let par = {
|
||||
id: modelData.data.id,
|
||||
product_id: modelData.data.product_id ,
|
||||
sku_id: modelData.data.sku_id,
|
||||
pack_number: 0
|
||||
}
|
||||
updateCart(par)
|
||||
return false;
|
||||
}
|
||||
model && model.open({
|
||||
number: item.number
|
||||
})
|
||||
|
||||
} else {
|
||||
model && model.open({
|
||||
packNumber: modelData.data.remark || ''
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function formatPrice(n) {
|
||||
@@ -688,10 +756,9 @@
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//更新就餐人数
|
||||
/**
|
||||
* 更新就餐人数
|
||||
*/
|
||||
async function updateChoseCount() {
|
||||
const maxCapacity = pageData.table.id ? (pageData.table.maxCapacity || 0) : 100
|
||||
if (pageData.table.id && userNumbers.defaultCateIndex * 1 + 1 > maxCapacity) {
|
||||
@@ -703,17 +770,21 @@
|
||||
}
|
||||
if (!pageData.shopInfo.isTableFee && pageData.table.id) {
|
||||
//不免餐位费
|
||||
const res = await Api.$choseCount({
|
||||
masterId: option.masterId,
|
||||
tableId: pageData.table.id || '',
|
||||
num: userNumbers.defaultCateIndex * 1 + 1,
|
||||
})
|
||||
Object.assign($seatFee, res)
|
||||
userNumbers.defaultCateIndex = res.totalNumber - 1
|
||||
|
||||
let seatFee = {
|
||||
totalNumber: userNumbers.defaultCateIndex * 1 + 1,
|
||||
totalAmount: (userNumbers.defaultCateIndex * 1 + 1) * pageData.shopInfo.tableFee,
|
||||
}
|
||||
Object.assign($seatFee, seatFee)
|
||||
userNumbers.defaultCateIndex = $seatFee.totalNumber - 1
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 选择就餐人数
|
||||
* @param {Object} e
|
||||
*/
|
||||
function userNumberChange(e) {
|
||||
console.log(e);
|
||||
userNumbers.defaultCateIndex = e.detail.value
|
||||
@@ -721,20 +792,7 @@
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 打包费
|
||||
*/
|
||||
const $packFee = computed(() => {
|
||||
return goods.list.reduce((prve, cur) => {
|
||||
return prve + cur.packFee
|
||||
}, 0).toFixed(2)
|
||||
})
|
||||
const goodsNumber = computed(() => {
|
||||
const result = goods.list.reduce((prve, cur) => {
|
||||
return prve + cur.number
|
||||
}, 0)
|
||||
return result
|
||||
})
|
||||
|
||||
|
||||
function chooseUser() {
|
||||
go.to('PAGES_CHOOSE_USER')
|
||||
@@ -771,41 +829,40 @@
|
||||
* 创建订单
|
||||
*/
|
||||
async function createAnOrder() {
|
||||
if (!pageData.shopInfo.isTableFee) {
|
||||
//不免餐位费
|
||||
await Api.$choseCount({
|
||||
masterId: option.masterId,
|
||||
tableId: pageData.table.id || "",
|
||||
num: userNumbers.defaultCateIndex + 1,
|
||||
})
|
||||
}
|
||||
if (pageData.shopInfo.registerType == 'munchies' || pageData.eatTypes.active == 'take-out') {
|
||||
|
||||
if (pageData.shopInfo.registerType == 'before' || pageData.eatTypes.active == 'take-out') {
|
||||
const canJiesuan = await hasPermission('允许收款')
|
||||
if (!canJiesuan) {
|
||||
return
|
||||
}
|
||||
}
|
||||
// updateChoseCount()
|
||||
let originAmount = allPrice.value
|
||||
|
||||
console.log(originAmount)
|
||||
|
||||
let vipPrice = isVip.value ? 1 : 0
|
||||
let par = {
|
||||
shopId: pageData.shopInfo.id, //店铺Id
|
||||
userId: pageData.user.id, //用户Id
|
||||
userId: pageData.user.userId, //用户Id
|
||||
tableCode: pageData.table.tableCode, //台桌编码
|
||||
dineMode: pageData.eatTypes.active, //用餐模式 堂食 dine-in 外带 take-out 外卖 take-away
|
||||
remark: pageData.form.note, //备注
|
||||
seatNum: 0, //用餐人数
|
||||
packFee: 0, //打包费
|
||||
originAmount: originAmount, //订单原金额(包含打包费+餐位费) 不含折扣价格
|
||||
seatNum: userNumbers.defaultCateIndex * 1 + 1, //用餐人数
|
||||
packFee: $packFee.value, //打包费
|
||||
originAmount: goodsPrice.value, //订单原金额(包含打包费+餐位费) 不含折扣价格
|
||||
placeNum: 0, //当前订单下单次数
|
||||
waitCall: 0, //是否等叫 0 否 1 等叫
|
||||
vipPrice: pageData.shopInfo.isMemberPrice, //是否使用会员价
|
||||
vipPrice: vipPrice, //是否使用会员价
|
||||
}
|
||||
console.log(userNumbers.defaultCateIndex * 1 + 1)
|
||||
console.log(pageData.shopInfo.registerType)
|
||||
const res = await createOrder(par)
|
||||
uni.$emit('update:createOrderIndex')
|
||||
|
||||
if (pageData.shopInfo.registerType == 'munchies' || pageData.eatTypes.active == 'take-out') {
|
||||
websocketUtil.send(JSON.stringify({
|
||||
type:'onboc',
|
||||
account: uni.getStorageSync("iToken").loginId,
|
||||
shop_id: uni.getStorageSync("shopInfo").id,
|
||||
operate_type:'cleanup',
|
||||
table_code: pageData.table.tableCode,
|
||||
}))
|
||||
if (pageData.shopInfo.registerType == 'before' || pageData.eatTypes.active == 'take-out') {
|
||||
//先付
|
||||
return go.to('PAGES_ORDER_PAY', {
|
||||
orderId: res.id,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
v-for="(item,index) in data" :key="index">
|
||||
<view class="">
|
||||
<view class="u-line-1">{{item.name}}</view>
|
||||
<view class="u-m-t-10 u-font-24 color-666 u-line-1">{{item.specSnap||''}}</view>
|
||||
<view class="u-m-t-10 u-font-24 color-666 u-line-1">{{item.specInfo||''}}</view>
|
||||
</view>
|
||||
<view class="u-flex">
|
||||
<view class="font-bold red u-m-r-32">¥{{formatPrice(item.lowPrice*item.number) }}</view>
|
||||
@@ -129,7 +129,7 @@
|
||||
console.log(modal);
|
||||
}
|
||||
|
||||
|
||||
console.log(props.data);
|
||||
|
||||
const edmits = defineEmits(['clear', 'updateNumber'])
|
||||
|
||||
@@ -149,7 +149,6 @@
|
||||
}
|
||||
|
||||
function toConfimOrder() {
|
||||
console.log(props.table);
|
||||
if (props.data.length <= 0) {
|
||||
return infoBox.showToast('还没有选择商品')
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
})
|
||||
|
||||
const goods = computed(() => {
|
||||
console.log(props.skuMap[selSku.value])
|
||||
return props.skuMap[selSku.value]
|
||||
})
|
||||
watch(() => goods.value, (newval) => {
|
||||
|
||||
@@ -113,32 +113,12 @@
|
||||
|
||||
</template>
|
||||
<script setup>
|
||||
import {
|
||||
onLoad,
|
||||
onReady,
|
||||
onShow,
|
||||
onPageScroll,
|
||||
onPullDownRefresh
|
||||
} from '@dcloudio/uni-app';
|
||||
import {
|
||||
computed,
|
||||
reactive,
|
||||
ref,
|
||||
nextTick,
|
||||
watch,
|
||||
getCurrentInstance,
|
||||
onUnmounted,
|
||||
onBeforeUnmount,
|
||||
} from 'vue';
|
||||
import { onLoad, onReady, onShow } from '@dcloudio/uni-app';
|
||||
import { computed, reactive, ref, nextTick, watch, getCurrentInstance, onUnmounted, onBeforeUnmount } from 'vue';
|
||||
|
||||
|
||||
|
||||
import _ from 'lodash';
|
||||
import * as Api from '@/http/yskApi/Instead.js'
|
||||
import {
|
||||
$table,
|
||||
$choseTable,
|
||||
$returnTableDetail
|
||||
} from '@/http/yskApi/table.js'
|
||||
import {
|
||||
$tbShopCategory
|
||||
@@ -231,10 +211,7 @@
|
||||
type: ''
|
||||
}
|
||||
|
||||
|
||||
const websocket = ref(null);
|
||||
onLoad((opt) => {
|
||||
// console.log(opt)
|
||||
option = opt
|
||||
Object.assign(data.table, opt)
|
||||
if (opt.useType) {
|
||||
@@ -246,12 +223,6 @@
|
||||
if (JSON.stringify(opt) == '{}') {
|
||||
isCreateOrderToDetail.value = true
|
||||
}
|
||||
// if (!opt.tableId) {
|
||||
// infoBox.showErrorToast('暂不支持不选择桌台下载,请从桌台点餐')
|
||||
// return setTimeout(() => {
|
||||
// go.back()
|
||||
// }, 1500)
|
||||
// }
|
||||
init()
|
||||
})
|
||||
watch(() => data.table.id, (newval, oldval) => {
|
||||
@@ -272,16 +243,11 @@
|
||||
getMenuItemTop()
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
if (websocket.value) {
|
||||
// websocket.value.destroy();
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
// 组件卸载时清理WebSocket
|
||||
onUnmounted(() => {
|
||||
if (websocket.value) {
|
||||
websocket.value.destroy();
|
||||
}
|
||||
|
||||
});
|
||||
let $originGoods = []
|
||||
let $category = []
|
||||
@@ -298,43 +264,26 @@
|
||||
await getTableInfo()
|
||||
|
||||
// 获取分类数据
|
||||
const categoryRes = await categoryPage({ page: 1, size: 300 })
|
||||
const category = categoryRes.records;
|
||||
$category = category
|
||||
let categoryRes = await categoryPage({ page: 1, size: 300 })
|
||||
$category = categoryRes.records
|
||||
// 获取商品数据
|
||||
const goodsRes = await getGoods()
|
||||
const goods = goodsRes.records.filter((v) => {
|
||||
let isShow = true;
|
||||
if (v.type !== "sku") {
|
||||
if (v.type != "sku") {
|
||||
isShow = v.skuList.length >= 1;
|
||||
}
|
||||
return isShow;
|
||||
});
|
||||
$originGoods = goods
|
||||
$originGoods = goods;
|
||||
|
||||
if (option.type == 'add') {
|
||||
cars.length = 0
|
||||
setTabBar(category, goods, [])
|
||||
setTabBar($category, goods, [])
|
||||
return
|
||||
}
|
||||
if (!data.table.id) {
|
||||
//无桌台
|
||||
// const cartRes = await getCart()
|
||||
// cars.length = 0
|
||||
// const cartArr = getNowCart(cartRes.records)
|
||||
// for (let i in cartArr) {
|
||||
// cars.push(cartArr[i])
|
||||
// }
|
||||
// setTabBar(category, goods, cars)
|
||||
// return
|
||||
}
|
||||
|
||||
// const cartRes = await getCart()
|
||||
// cars.length = 0
|
||||
// const cartArr = getNowCart(cartRes.records)
|
||||
// for (let i in cartArr) {
|
||||
// cars.push(cartArr[i])
|
||||
// }
|
||||
|
||||
setTabBar(category, goods, cars)
|
||||
setTabBar($category, goods, cars)
|
||||
initCart()
|
||||
}
|
||||
|
||||
@@ -345,7 +294,7 @@
|
||||
websocketUtil.onMessage(res => {
|
||||
let msg = JSON.parse(res);
|
||||
let cartItem;
|
||||
|
||||
console.log(msg)
|
||||
if( msg.msg_id ){
|
||||
// console.log('Received data:', msg);
|
||||
websocketUtil.send(JSON.stringify({
|
||||
@@ -362,28 +311,95 @@
|
||||
cars.length = 0
|
||||
msg.data.map(item=>{
|
||||
cartItem = getNowCart(item,$originGoods)
|
||||
cars.push(cartItem)
|
||||
cartControls(cartItem,'add')
|
||||
})
|
||||
break;
|
||||
case 'onboc_add':
|
||||
console.log("onboc_add")
|
||||
case 'add':
|
||||
cartItem = getNowCart(msg.data,$originGoods)
|
||||
cars.push(cartItem)
|
||||
cartControls(cartItem,'add')
|
||||
break;
|
||||
case 'onboc_edit':
|
||||
case 'edit':
|
||||
cartItem = getNowCart(msg.data,$originGoods)
|
||||
cartControls(cartItem,'edit')
|
||||
break;
|
||||
case 'onboc_del':
|
||||
case 'del':
|
||||
cartItem = getNowCart(msg.data,$originGoods)
|
||||
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
|
||||
}
|
||||
}
|
||||
console.log(data.tabbar)
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* 初始化购物车
|
||||
*/
|
||||
function initCart () {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type:'init',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车添加菜品
|
||||
*/
|
||||
function editCart (par,operate_type) {
|
||||
console.log('购物车添加菜品',par)
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type: operate_type,
|
||||
table_code: data.table.tableCode,
|
||||
product_id: '',
|
||||
sku_id: '', //
|
||||
number: 1, //数量
|
||||
is_temporary: 0, //是否是临时菜
|
||||
}
|
||||
Object.assign(params, par)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除购物车菜品
|
||||
*/
|
||||
function delCart (id) {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
id: id,
|
||||
operate_type:'del',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除购物车
|
||||
*/
|
||||
function cleaCart () {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type:'cleanup',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取商品列表
|
||||
@@ -463,62 +479,6 @@
|
||||
data.table = item
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化购物车
|
||||
*/
|
||||
function initCart () {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type:'init',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车添加菜品
|
||||
*/
|
||||
function editCart (par,operate_type) {
|
||||
console.log('购物车添加菜品',par)
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type: operate_type,
|
||||
table_code: data.table.tableCode,
|
||||
product_id: '',
|
||||
sku_id: '', //
|
||||
number: 1, //数量
|
||||
is_temporary: 0, //是否是临时菜
|
||||
}
|
||||
Object.assign(params, par)
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除购物车菜品
|
||||
*/
|
||||
function delCart (id) {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
id: id,
|
||||
operate_type:'del',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除购物车
|
||||
*/
|
||||
function cleaCart () {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type:'cleanup',
|
||||
table_code: data.table.tableCode,
|
||||
}
|
||||
websocketUtil.send(JSON.stringify(params))
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 菜品操作
|
||||
* @param {Object} foodsindex
|
||||
@@ -533,49 +493,41 @@
|
||||
chooseTable()
|
||||
})
|
||||
}
|
||||
const $goods = data.tabbar[index].foods[foodsindex]
|
||||
let $goods = data.tabbar[index].foods[foodsindex]
|
||||
if ($goods.type !== 'sku') {
|
||||
//单规格
|
||||
console.log($goods)
|
||||
const goodsInCarIndex = cars.findIndex((carsGoods) => {
|
||||
let goodsInCarIndex = cars.findIndex((carsGoods) => {
|
||||
return carsGoods.sku_id == $goods.skuList[0].id && carsGoods.product_id == $goods.id;
|
||||
});
|
||||
const product_id = $goods.id
|
||||
const sku_id = $goods.skuList[0].id
|
||||
let product_id = $goods.id
|
||||
let sku_id = $goods.skuList[0].id
|
||||
let suitNum = $goods.skuList[0].suitNum || 1
|
||||
if (goodsInCarIndex !== -1) {
|
||||
//更新
|
||||
const carGoods = cars[goodsInCarIndex]
|
||||
const cartId = carGoods.id
|
||||
// const step = isAdd ? 1 : -1
|
||||
// $sku = !product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == sku_id)
|
||||
let num = isAdd ? carGoods.number + 1 : + carGoods.number - 1
|
||||
let cartItem = cars[goodsInCarIndex]
|
||||
let number = isAdd ? cartItem.number + 1 : + cartItem.number - 1
|
||||
if( !isAdd ){
|
||||
if (num === 0 || num < suitNum) {
|
||||
if (number === 0 || number < suitNum) {
|
||||
//移除
|
||||
cars.splice(goodsInCarIndex, 1)
|
||||
$goods.chooseNumber = 0
|
||||
setSearchGoods(searchGoodsIndex, 0)
|
||||
delCart(cartId)
|
||||
delCart(cartItem.id)
|
||||
}
|
||||
}
|
||||
|
||||
// 不影响之前的代码 称重num单独处理
|
||||
// 不影响之前的代码 称重number单独处理
|
||||
if ($goods.type == 'weigh' && showCurrentInput) {
|
||||
num = carGoods.number * 1 + Number(showCurrentInput)
|
||||
number = cartItem.number * 1 + Number(showCurrentInput)
|
||||
}
|
||||
|
||||
editCart({
|
||||
id: cartId,
|
||||
number: num,
|
||||
id: cartItem.id,
|
||||
number: number,
|
||||
product_id: product_id,
|
||||
sku_id: sku_id,
|
||||
},'edit')
|
||||
carGoods.number = num
|
||||
$goods.chooseNumber = num
|
||||
setSearchGoods(searchGoodsIndex, num)
|
||||
setSearchGoods(searchGoodsIndex, number)
|
||||
} else {
|
||||
console.log(suitNum)
|
||||
// 不影响之前的代码 称重suit单独处理
|
||||
if ($goods.type == 'weigh' && showCurrentInput) {
|
||||
suitNum = showCurrentInput
|
||||
@@ -587,10 +539,8 @@
|
||||
number: suitNum,
|
||||
product_id: product_id,
|
||||
sku_id: sku_id,
|
||||
discount_sale_amount: $goods.lowPrice
|
||||
},'add')
|
||||
infoBox.showToast('添加成功')
|
||||
$goods.chooseNumber = Number(suitNum)
|
||||
}
|
||||
}
|
||||
return
|
||||
@@ -598,6 +548,86 @@
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* socket通知购物车商品数量修改处理
|
||||
*/
|
||||
function cartControls (cartItem,type) {
|
||||
let cartIndex = 0;
|
||||
let product_id = cartItem.product_id
|
||||
let sku_id = cartItem.sku_id
|
||||
let $goods;
|
||||
cars.map((item,index)=>{
|
||||
if(item.id == cartItem.id) {
|
||||
cartIndex = index;
|
||||
product_id = item.product_id
|
||||
sku_id = item.sku_id
|
||||
}
|
||||
})
|
||||
|
||||
data.tabbar.map(tabbarItem=>{
|
||||
if(tabbarItem.foods.find(v => v.id == product_id)){
|
||||
$goods = !product_id ? undefined : tabbarItem.foods.find(v => v.id == product_id)
|
||||
}
|
||||
})
|
||||
|
||||
let $sku;
|
||||
if( $goods.type != 'package'){
|
||||
//临时菜没有skuList
|
||||
$sku = !product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == sku_id)
|
||||
} else {
|
||||
$sku = !product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == sku_id)
|
||||
}
|
||||
if( type == 'del' ) {
|
||||
cars.splice(cartIndex, 1)
|
||||
$goods.chooseNumber = 0
|
||||
return;
|
||||
}
|
||||
if( type == 'add' ){
|
||||
cars.push(cartItem)
|
||||
$goods.chooseNumber = cartItem.number
|
||||
}
|
||||
if( type == 'edit' ){
|
||||
cars[cartIndex].number = cartItem.number
|
||||
if ($goods) {
|
||||
$goods.chooseNumber = cartItem.number
|
||||
}
|
||||
}
|
||||
|
||||
console.log(cars)
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车商品数量改变处理
|
||||
* @param {Object} e
|
||||
*/
|
||||
async function carsNumberChange(e) {
|
||||
console.log("carsNumberChange===",e)
|
||||
let $sku;
|
||||
let $goods;
|
||||
data.tabbar.map(tabbarItem=>{
|
||||
if(tabbarItem.foods.find(v => v.id == e.goods.product_id)){
|
||||
$goods = !e.goods.product_id ? undefined : tabbarItem.foods.find(v => v.id == e.goods.product_id)
|
||||
}
|
||||
})
|
||||
if( $goods.type != 'package'){
|
||||
//临时菜没有skuList
|
||||
$sku = !e.goods.product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == e.goods.sku_id)
|
||||
} else {
|
||||
$sku = !e.goods.product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == e.goods.sku_id)
|
||||
}
|
||||
if (e.num === 0 || e.num < $sku.suitNum) {
|
||||
//移除
|
||||
delCart(e.goods.id)
|
||||
return
|
||||
}
|
||||
editCart({
|
||||
number: e.num,
|
||||
id: e.goods.id,
|
||||
product_id: e.goods.product_id,
|
||||
sku_id: e.goods.sku_id
|
||||
},'edit')
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加套餐
|
||||
* @param {Object} d
|
||||
@@ -610,7 +640,6 @@
|
||||
product_id: item.id,
|
||||
sku_id: item.skuList[0].id,
|
||||
pro_group_info: JSON.stringify(d),
|
||||
discount_sale_amount: item.lowPrice
|
||||
},'add')
|
||||
}
|
||||
|
||||
@@ -655,17 +684,16 @@
|
||||
/**
|
||||
* 多规格选择
|
||||
* @param {Object} skuList
|
||||
* @param {Object} specSnap
|
||||
*/
|
||||
function returnSelGoodsSkuList(selectSpecInfo) {
|
||||
let specSnap = []
|
||||
let specInfo = []
|
||||
for (var key in selectSpecInfo) {
|
||||
specSnap.push({
|
||||
specInfo.push({
|
||||
name: key,
|
||||
value: selectSpecInfo[key]
|
||||
})
|
||||
}
|
||||
let result = specSnap.map((v, index) => {
|
||||
let result = specInfo.map((v, index) => {
|
||||
return {
|
||||
...v,
|
||||
valueArr: v.value,
|
||||
@@ -686,40 +714,33 @@
|
||||
* @param {Object} sku
|
||||
* @param {Object} num
|
||||
*/
|
||||
async function guigeConfirm(sku, num) {
|
||||
const goods = guigeModelData.chooseGoods.item
|
||||
const skuId = sku.id
|
||||
const productId = goods.id
|
||||
const res = findGoodsInCar(goods, skuId)
|
||||
async function guigeConfirm(sku, suitNum) {
|
||||
console.log(sku)
|
||||
let goods = guigeModelData.chooseGoods.item
|
||||
let sku_id = sku.id
|
||||
let product_id = goods.id
|
||||
let res = findGoodsInCar(goods, sku_id)
|
||||
if (res) {
|
||||
//更新
|
||||
const {
|
||||
index
|
||||
} = res
|
||||
const carGoods = cars[index]
|
||||
const cartId = carGoods.id
|
||||
const newNumber = carGoods.number * 1 + num
|
||||
const {
|
||||
number
|
||||
} = await updateCartGoods({
|
||||
num: newNumber,
|
||||
cartId,
|
||||
productId,
|
||||
skuId
|
||||
})
|
||||
carGoods.number = number
|
||||
let { index } = res
|
||||
let carGoods = cars[index]
|
||||
let cartId = carGoods.id
|
||||
let newNumber = carGoods.number * 1 + suitNum
|
||||
|
||||
editCart({
|
||||
id: cartId,
|
||||
number: newNumber,
|
||||
product_id: product_id,
|
||||
sku_id: sku_id,
|
||||
},'add')
|
||||
} else {
|
||||
//添加
|
||||
const cartGoods = await addCart({
|
||||
num,
|
||||
productId,
|
||||
skuId
|
||||
})
|
||||
editCart({
|
||||
number: suitNum,
|
||||
product_id: product_id,
|
||||
sku_id: sku_id,
|
||||
},'add')
|
||||
infoBox.showToast('添加成功')
|
||||
cars.push({
|
||||
...cartGoods,
|
||||
specSnap: sku.specSnap
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,24 +763,17 @@
|
||||
|
||||
|
||||
//多规格商品弹窗时,找到默认可以下单的规格商品
|
||||
function findGoods(skuList = [], goodsListMap = {}, specList) {
|
||||
const skuMapNumber = skuList.reduce((prve, cur) => {
|
||||
function findGoods(selectSpecInfo = [], goodsListMap = {}, skuList) {
|
||||
let skuMapNumber = selectSpecInfo.reduce((prve, cur) => {
|
||||
for (let i in cur.valueArr) {
|
||||
prve[cur.valueArr[i]] = i;
|
||||
}
|
||||
return prve;
|
||||
}, {});
|
||||
const canBudyGoods = specList
|
||||
.filter((v) => util.isCanBuy(v, guigeModelData.chooseGoods.item))
|
||||
.sort((a, b) => {
|
||||
const aNumber = a.specSnap.split(",").reduce((prve, cur) => {
|
||||
return prve + skuMapNumber[cur];
|
||||
}, 0);
|
||||
const bNumber = b.specSnap.split(",").reduce((prve, cur) => {
|
||||
return prve + skuMapNumber[cur];
|
||||
}, 0);
|
||||
return aNumber - bNumber;
|
||||
});
|
||||
console.log("selectSpecInfo",selectSpecInfo)
|
||||
console.log("skuMapNumber",guigeModelData.chooseGoods.item)
|
||||
let canBudyGoods = skuList.filter((v) => util.isCanBuy(v, guigeModelData.chooseGoods.item))
|
||||
console.log("canBudyGoods",canBudyGoods)
|
||||
return canBudyGoods[0];
|
||||
}
|
||||
|
||||
@@ -768,17 +782,16 @@
|
||||
* @param {Object} goods
|
||||
* @param {Object} selectSpecInfo
|
||||
* @param {Object} skuMap
|
||||
* @param {Object} specList
|
||||
* @param {Object} skuList
|
||||
*/
|
||||
function setSkugoodsDefaultInit(goods, selectSpecInfo, skuMap, specList) {
|
||||
function setSkugoodsDefaultInit(goods, selectSpecInfo, skuMap, skuList) {
|
||||
guigeModelData.chooseGoods.item = goods
|
||||
guigeModelData.chooseGoods.skus = selectSpecInfo
|
||||
guigeModelData.chooseGoods.skuMap = skuMap
|
||||
const skuGoods = findGoods(selectSpecInfo, skuMap, specList);
|
||||
const skuGoods = findGoods(selectSpecInfo, skuMap, skuList);
|
||||
if (skuGoods) {
|
||||
// this.skuGoods.data = skuGoods;
|
||||
// this.skuGoods.number = skuGoods.suit || 1;
|
||||
skuGoods.specSnap.split(",").map((v, index) => {
|
||||
|
||||
skuGoods.specInfo.split(",").map((v, index) => {
|
||||
guigeModelData.chooseGoods.skus[index].sel = v;
|
||||
});
|
||||
}
|
||||
@@ -791,7 +804,7 @@
|
||||
const skuList = guigeModelData.chooseGoods.skus
|
||||
const skuMap = guigeModelData.chooseGoods.skuMap
|
||||
guigeModelData.chooseGoods.skus[skusIndex].sel = skdName
|
||||
const specSnap = guigeModelData.chooseGoods.skus.reduce((prve, cur) => {
|
||||
const specInfo = guigeModelData.chooseGoods.skus.reduce((prve, cur) => {
|
||||
prve.push(cur.sel)
|
||||
return prve
|
||||
}, []).join()
|
||||
@@ -809,13 +822,12 @@
|
||||
return prve;
|
||||
}, []);
|
||||
|
||||
console.log(selArr);
|
||||
let selArrAllGroup = util.generateCombinations(selArr, selArr.length - 1);
|
||||
console.log(selArrAllGroup);
|
||||
const matchArr = [];
|
||||
for (let key in skuMap) {
|
||||
const goods = skuMap[key];
|
||||
const keyArr = key.split(",");
|
||||
let goods = skuMap[key];
|
||||
console.log(key)
|
||||
let keyArr = key.split(",");
|
||||
for (let spe of selArrAllGroup) {
|
||||
if (util.arrayContainsAll(keyArr, spe)) {
|
||||
matchArr.push(goods);
|
||||
@@ -823,6 +835,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(matchArr);
|
||||
//全部规格都已下架
|
||||
if (!matchArr.length) {
|
||||
for (let k in skuList) {
|
||||
@@ -833,11 +846,11 @@
|
||||
return;
|
||||
}
|
||||
const includeSkuMap = matchArr.reduce((prve, cur) => {
|
||||
const speArr = cur.specSnap.split(",");
|
||||
const speArr = cur.specInfo.split(",");
|
||||
for (let i of speArr) {
|
||||
if (!prve.hasOwnProperty("i")) {
|
||||
prve[i] = matchArr
|
||||
.filter((v) => v.specSnap.match(i))
|
||||
.filter((v) => v.specInfo.match(i))
|
||||
.every((v) => {
|
||||
return !util.isCanBuy(v, guigeModelData.chooseGoods.item)
|
||||
});
|
||||
@@ -854,53 +867,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车商品数量改变
|
||||
* @param {Object} e
|
||||
*/
|
||||
async function carsNumberChange(e) {
|
||||
const { num, index, goods } = e
|
||||
const { product_id, categoryId, sku_id } = goods
|
||||
const cartId = goods.id
|
||||
//临时菜没有对应商品数据
|
||||
let $goods;
|
||||
data.tabbar.map(tabbarItem=>{
|
||||
if(tabbarItem.foods.find(v => v.id == product_id)){
|
||||
$goods = !product_id ? undefined : tabbarItem.foods.find(v => v.id == product_id)
|
||||
}
|
||||
})
|
||||
let $sku;
|
||||
if( $goods.type != 'package'){
|
||||
//临时菜没有skuList
|
||||
$sku = !product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == sku_id)
|
||||
} else {
|
||||
$sku = !product_id ? { suitNum: 1 } : $goods.skuList.find(v => v.id == sku_id)
|
||||
}
|
||||
|
||||
console.log(num)
|
||||
console.log($sku.suitNum)
|
||||
if (num === 0 || num < $sku.suitNum) {
|
||||
//移除
|
||||
delCart(cartId)
|
||||
cars.splice(index, 1)
|
||||
$goods.chooseNumber = 0
|
||||
return
|
||||
}
|
||||
editCart({
|
||||
number: num,
|
||||
id: cartId,
|
||||
product_id: product_id,
|
||||
sku_id: sku_id
|
||||
},'edit')
|
||||
cars[index].number = num
|
||||
if ($goods) {
|
||||
$goods.chooseNumber = num
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1292,12 +1259,8 @@
|
||||
|
||||
function watchUpdate() {
|
||||
uni.$off('update:createOrderIndex')
|
||||
uni.$off('get:table')
|
||||
uni.$off('add:cashCai')
|
||||
uni.$on('update:createOrderIndex', () => {
|
||||
// data.table = {
|
||||
// tableId: ""
|
||||
// }
|
||||
cars.length = 0
|
||||
console.log('update:createOrderIndex');
|
||||
init()
|
||||
@@ -1309,20 +1272,7 @@
|
||||
$originGoods.push(data)
|
||||
|
||||
})
|
||||
uni.$on('get:table', () => {
|
||||
console.log('get:table');
|
||||
if (data.table.id) {
|
||||
$table.get({
|
||||
qrcode: data.table.id
|
||||
}).then(res => {
|
||||
if (res.content[0] && res.content[0].status != 'idle') {
|
||||
data.table = {
|
||||
tableId: ''
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//根据店铺信息返回是否是后付款
|
||||
export function $trturnPayAfter(shop) {
|
||||
//munchies 先付 restaurant 后付
|
||||
const payAfter = shop.registerType == "munchies" ? false : true;
|
||||
//before 先付 after 后付
|
||||
const payAfter = shop.registerType == "before" ? false : true;
|
||||
return payAfter
|
||||
}
|
||||
//根据店铺信息返回就餐类型
|
||||
@@ -19,12 +19,12 @@ export function $returnUseType(shop, useType) {
|
||||
}
|
||||
//判断商品是否可以下单
|
||||
export function isCanBuy(skuGoods,goods) {
|
||||
if(goods.typeEnum=='normal'){
|
||||
if(goods.type!='sku'){
|
||||
//单规格
|
||||
return goods.isGrounding&&goods.isPauseSale==0&&(goods.isStock?goods.stockNumber>0:true);
|
||||
return goods.isSale&&goods.isSoldStock==0&&(goods.isStock?goods.stockNumber>0:true);
|
||||
}else{
|
||||
//多规格
|
||||
return goods.isGrounding&&goods.isPauseSale==0&&skuGoods.isGrounding&&skuGoods.isPauseSale==0&&(goods.isStock?goods.stockNumber>0:true);
|
||||
return goods.isSale&&goods.isSoldStock==0&&skuGoods.isGrounding&&skuGoods.isPauseSale==0&&(goods.isStock?goods.stockNumber>0:true);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,7 @@ function arrayContainsAll(arr1, arr2) {
|
||||
//n项 n-1项组合,生成全部结果
|
||||
function generateCombinations(arr, k) {
|
||||
let result = [];
|
||||
|
||||
console.log("current.length === k",arr)
|
||||
function helper(index, current) {
|
||||
if (current.length === k) {
|
||||
result.push(current.slice()); // 使用slice()来避免直接修改原始数组
|
||||
@@ -53,6 +53,7 @@ function generateCombinations(arr, k) {
|
||||
helper(i + 1, current); // 递归调用,索引增加以避免重复选择相同的元素
|
||||
current.pop(); // 回溯,移除当前元素以便尝试其他组合
|
||||
}
|
||||
console.log(current)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,13 @@ export function getNowCart(carItem,goodsList) {
|
||||
if( carItem.is_temporary != 1 ){
|
||||
goodsList.map(goodsItem => {
|
||||
if(carItem.product_id == goodsItem.id){
|
||||
carItem.lowPrice = goodsItem.lowPrice
|
||||
carItem.lowMemberPrice = goodsItem.lowMemberPrice
|
||||
goodsItem.skuList.map(item=>{
|
||||
if(carItem.sku_id == item.id){
|
||||
carItem.lowPrice = item.salePrice
|
||||
carItem.lowMemberPrice = item.memberPrice
|
||||
carItem.specInfo = item.specInfo
|
||||
}
|
||||
})
|
||||
carItem.name = goodsItem.name
|
||||
carItem.coverImg = goodsItem.coverImg
|
||||
carItem.packFee = goodsItem.packFee
|
||||
|
||||
Reference in New Issue
Block a user