|
@@ -13,9 +13,9 @@
|
|
|
<div
|
|
|
class="justify-between items-center flex text-xl font-semibold font-mono"
|
|
|
>
|
|
|
- <span>{{ '桌台:' + data.deskName }}</span>
|
|
|
+ <span>{{ (data.deskId > 0 ? '餐桌号:': '取餐号:') + data.deskName }}</span>
|
|
|
<div class="flex items-center">
|
|
|
- <span>{{ data.currentNum + '/' + data.deskCap }}</span>
|
|
|
+ <span v-if="data.deskId > 0">{{ data.currentNum + '/' + data.deskCap }}</span>
|
|
|
<el-icon class="ml-2 cursor-pointer" @click="refreshdishes">
|
|
|
<Refresh />
|
|
|
</el-icon>
|
|
@@ -287,7 +287,7 @@
|
|
|
class="coupon-item"
|
|
|
:class="{
|
|
|
'is-selected': params.couponId === coupon.ticketRecordId,
|
|
|
- 'is-disabled': orderData.sumPriceSum <= coupon.consumeScore / 100
|
|
|
+ 'is-disabled': orderData.sumPriceSum < (coupon.consumeScore / 100) || orderData.sumPriceSum < (coupon.useThreshold / 100)
|
|
|
}"
|
|
|
@click="handleCouponClick(coupon)"
|
|
|
>
|
|
@@ -298,7 +298,10 @@
|
|
|
<!-- <div class="condition">满{{ coupon.consumeScore / 100 }}可用</div> -->
|
|
|
</div>
|
|
|
<div class="right-part">
|
|
|
- <div class="name">{{ coupon.productName }}</div>
|
|
|
+ <div class="name">
|
|
|
+ {{ coupon.productName }}
|
|
|
+ <el-tag v-if="coupon.useThreshold">满{{coupon.useThreshold / 100}}减</el-tag>
|
|
|
+ </div>
|
|
|
<div class="date">券码:{{ coupon.ticketNo }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -350,20 +353,6 @@
|
|
|
<p class="text-gray-600">正在支付中,请不要关闭或退出界面</p>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
- v-model="takeNumberDialogVisible"
|
|
|
- title="取餐号"
|
|
|
- width="30%"
|
|
|
- :close-on-click-modal="false"
|
|
|
- >
|
|
|
- <el-input v-model="takeNumber" placeholder="请输入取餐号" maxlength="10" show-word-limit />
|
|
|
- <template #footer>
|
|
|
- <span class="dialog-footer">
|
|
|
- <el-button @click="takeNumberDialogVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="confirmSubmit">确认结算</el-button>
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
@@ -405,6 +394,7 @@ const scanCode = ref('')
|
|
|
// 添加支付中对话框的控制变量
|
|
|
const payingDialogVisible = ref(false)
|
|
|
const data = reactive<any>({
|
|
|
+ deskId: null,
|
|
|
deskName: '',
|
|
|
deskCap: 0,
|
|
|
currentNum: 0,
|
|
@@ -427,11 +417,8 @@ const params = reactive({
|
|
|
userId: '', //用户id
|
|
|
couponId: '', //优惠券id
|
|
|
couponAmount: '-',
|
|
|
- diningMethods: 1 // 就餐方式:1店内就餐 2打包外带
|
|
|
+ diningMethods: 1, // 就餐方式:1店内就餐 2打包外带
|
|
|
})
|
|
|
-// 添加取餐号相关的变量
|
|
|
-const takeNumberDialogVisible = ref(false)
|
|
|
-const takeNumber = ref('')
|
|
|
const submit = () => {
|
|
|
//出单
|
|
|
if (data.selectGoods.length == 0) {
|
|
@@ -442,22 +429,12 @@ const submit = () => {
|
|
|
feedback.alert('支付金额需大于0!')
|
|
|
return false
|
|
|
}
|
|
|
- // 显示取餐号输入弹框
|
|
|
- takeNumberDialogVisible.value = true
|
|
|
-}
|
|
|
-// 添加确认提交函数
|
|
|
-const confirmSubmit = () => {
|
|
|
- if (!takeNumber.value) {
|
|
|
- feedback.msgError('请输入取餐号')
|
|
|
- return
|
|
|
- }
|
|
|
- takeNumberDialogVisible.value = false
|
|
|
feedback.loading('正在出单...')
|
|
|
orderSubmit({
|
|
|
...params,
|
|
|
userId: params.userId || null,
|
|
|
couponId: params.couponId || null,
|
|
|
- mealCode: takeNumber.value
|
|
|
+ mealCode: data.deskName || null
|
|
|
})
|
|
|
.then(() => {
|
|
|
// data.selectGoods.length = 0
|
|
@@ -491,11 +468,12 @@ const handleScanInput = (event: KeyboardEvent) => {
|
|
|
|
|
|
console.log("event.key", event.key)
|
|
|
if (event.key === 'Enter') {
|
|
|
- document.removeEventListener('keydown', handleScanInput)
|
|
|
if (!data.canScan) {
|
|
|
feedback.notifyWarning('正在处理支付,请勿重复扫码')
|
|
|
return
|
|
|
}
|
|
|
+ data.canScan = false
|
|
|
+ document.removeEventListener('keydown', handleScanInput)
|
|
|
const code = scanCode.value
|
|
|
console.log('扫码内容:', code)
|
|
|
payingDialogVisible.value = true // 显示支付中对话框
|
|
@@ -529,7 +507,7 @@ const handleScanInput = (event: KeyboardEvent) => {
|
|
|
console.log("=====---", e)
|
|
|
// 支付失败
|
|
|
payingDialogVisible.value = false // 隐藏支付中对话框
|
|
|
- feedback.notifySuccess('支付失败,请重试')
|
|
|
+ feedback.notifySuccess('支付失败,请重试!')
|
|
|
data.canScan = true
|
|
|
scanDialogVisible.value = true
|
|
|
// 添加键盘事件监听
|
|
@@ -630,7 +608,7 @@ const checkout = () => {
|
|
|
}
|
|
|
// 添加优惠券点击处理方法
|
|
|
const handleCouponClick = (coupon: any) => {
|
|
|
- if (orderData.sumPriceSum <= coupon.consumeScore / 100) {
|
|
|
+ if (orderData.sumPriceSum < coupon.consumeScore / 100 || orderData.sumPriceSum < (coupon.useThreshold / 100)) {
|
|
|
return
|
|
|
}
|
|
|
if (params.couponId === coupon.ticketRecordId) {
|
|
@@ -648,15 +626,16 @@ const handleCouponClick = (coupon: any) => {
|
|
|
}
|
|
|
|
|
|
const open = (item: any, num?: number, orderNumber?: any) => {
|
|
|
+ console.log('***open***', item, num, orderNumber)
|
|
|
data.couponList = []
|
|
|
showOrderConsole.value = true
|
|
|
+ data.deskId = item.id
|
|
|
data.deskName = item.name
|
|
|
data.deskCap = item.num
|
|
|
data.currentNum = item.userNum ? item.userNum : num
|
|
|
params.number = item.ordersId ? item.ordersId : orderNumber
|
|
|
params.userId = ''
|
|
|
params.couponId = ''
|
|
|
- takeNumber.value = ''
|
|
|
//查询当前订单下的所有菜品
|
|
|
deskOrderedDishListAll({ id: params.number }).then((res) => {
|
|
|
res.forEach((good: { id: number; ordersDishId: number }) => {
|
|
@@ -671,7 +650,6 @@ const open = (item: any, num?: number, orderNumber?: any) => {
|
|
|
params.userId = res[0].userId || null
|
|
|
params.couponId = res[0].ticketId || null
|
|
|
params.diningMethods = res[0].diningMethods || 1
|
|
|
- takeNumber.value = res[0].mealCode || ''
|
|
|
if (params.couponId && params.userId) {
|
|
|
searchUserCoupons()
|
|
|
}
|
|
@@ -811,7 +789,7 @@ const clickSortButton = (name: any) => {
|
|
|
const toEmpty = () => {
|
|
|
if (data.selectGoods.length != 0) {
|
|
|
orderLoading.value = true
|
|
|
- toEmptyy({ id: params.number }).finally(() => {
|
|
|
+ toEmptyy({ id: params.number }).then(() => {
|
|
|
//清空未出单的餐品-保留出单餐品
|
|
|
data.selectGoods = []
|
|
|
orderData.sumPriceSum = data.selectGoods.reduce(
|
|
@@ -841,7 +819,8 @@ const toEmpty = () => {
|
|
|
orderData.sumPriceSum -
|
|
|
(params.couponAmount === '-' ? 0 : Number(params.couponAmount))
|
|
|
).toFixed(2)
|
|
|
- orderLoading.value = false
|
|
|
+ }).finally(()=>{
|
|
|
+ orderLoading.value = false
|
|
|
})
|
|
|
}
|
|
|
}
|