From 5a973af47ad9b659635c54909566bde8226b534e Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Sat, 14 Sep 2024 18:27:22 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E9=83=A8=E5=88=86=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC?=
=?UTF-8?q?=E8=AF=B7=E6=B1=82=E3=80=82=E9=A1=B5=E9=9D=A2=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../confirm-order/confirm-order.vue | 108 ++++++++++++------
pagesCreateOrder/index/index.vue | 67 +++++------
.../order-detail/components/extra.vue | 36 ++++++
.../order-detail/components/list.vue | 97 +++++++++++-----
.../order-detail/components/order.vue | 17 +--
.../order-detail/components/tuicai.vue | 100 ++++++++++++++++
.../order-detail/order-detail.vue | 53 +++++++--
pagesCreateOrder/pay-order/pay-order.vue | 104 +++++++++++------
pagesCreateOrder/util.js | 16 +++
9 files changed, 448 insertions(+), 150 deletions(-)
create mode 100644 pagesCreateOrder/order-detail/components/extra.vue
create mode 100644 pagesCreateOrder/order-detail/components/tuicai.vue
create mode 100644 pagesCreateOrder/util.js
diff --git a/pagesCreateOrder/confirm-order/confirm-order.vue b/pagesCreateOrder/confirm-order/confirm-order.vue
index 515a553..359e9e7 100644
--- a/pagesCreateOrder/confirm-order/confirm-order.vue
+++ b/pagesCreateOrder/confirm-order/confirm-order.vue
@@ -25,7 +25,8 @@
@@ -176,10 +177,10 @@
- 包装费
+ 包装费
桌位费
- ¥0.00
+ ¥{{$seatFee.totalAmount||'0.00'}}
@@ -218,13 +219,15 @@
\ No newline at end of file
diff --git a/pagesCreateOrder/order-detail/components/list.vue b/pagesCreateOrder/order-detail/components/list.vue
index b10cf1c..020ed6b 100644
--- a/pagesCreateOrder/order-detail/components/list.vue
+++ b/pagesCreateOrder/order-detail/components/list.vue
@@ -1,37 +1,48 @@
-
+
共
{{goodsNumber}}
份菜品
-
-
-
-
-
-
-
-
- {{item.name}}
-
- ¥{{item.salePrice}}
- X{{item.number}}
+
+ 第{{ order.placeNum }}次下单
+
+
+
+
+
+
+
+
+
+
+
+
+ 已退
+
+ {{item.name}}
+
+
+ ¥{{item.salePrice}}
+ ¥{{item.salePrice}}
+ X{{item.number}}
+
+
+
+ 退菜
+
-
- 更多操作
- 退菜
-
+
+
+ 备注
+ 无
-
- 备注
- 无
-
@@ -47,11 +58,11 @@
总计¥
- {{allPrice}}
+ {{seatFee*1+allPrice*1}}
- 重新打印
+ 重新打印
@@ -62,25 +73,42 @@
computed
} from 'vue';
import color from '@/commons/color.js'
+ const emits=defineEmits(['tuicai'])
+ function tuicai(item,index){
+ emits('tuicai',item,index)
+ }
const props = defineProps({
data: {
type: Array,
default: () => []
+ },
+ seatFee:{
+ type:[String,Number],
+ default:0
}
})
const allPrice = computed(() => {
return props.data.reduce((prve, cur) => {
- return prve + cur.salePrice * cur.number
+ const curTotal=cur.info.filter(v=>v.isGift !== "true"&& v.status !== "return").reduce((a,b)=>{
+ return a+b.salePrice * b.number
+ },0)
+ return prve + curTotal
}, 0).toFixed(2)
})
-
+
const goodsNumber = computed(() => {
let result = 0
- result = props.data.reduce((prve, cur) => {
- return prve + cur.number
+ result = props.data.reduce((a, b) => {
+ const bTotal = b.info.reduce((prve, cur) => {
+ return prve + cur.number * 1;
+ }, 0);
+ return a + bTotal
}, 0)
return result
})
+ function printOrder(){
+
+ }
\ No newline at end of file
diff --git a/pagesCreateOrder/order-detail/components/order.vue b/pagesCreateOrder/order-detail/components/order.vue
index 734dae5..fb6fc52 100644
--- a/pagesCreateOrder/order-detail/components/order.vue
+++ b/pagesCreateOrder/order-detail/components/order.vue
@@ -14,7 +14,7 @@
就餐人数
- 1
+ {{seatFee.totalNumber}}
支付方式
@@ -26,11 +26,11 @@
下单时间
- 2024-08-31 15:54:40
+
订单编号
- 2024083115544056362
+ {{data.orderNo}}
商家备注
@@ -40,6 +40,7 @@
diff --git a/pagesCreateOrder/order-detail/components/tuicai.vue b/pagesCreateOrder/order-detail/components/tuicai.vue
new file mode 100644
index 0000000..a03d2df
--- /dev/null
+++ b/pagesCreateOrder/order-detail/components/tuicai.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+ {{data.name}}
+
+
+
+
+
+
+ 退菜理由
+ *
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认退菜
+
+ 取消
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pagesCreateOrder/order-detail/order-detail.vue b/pagesCreateOrder/order-detail/order-detail.vue
index ec6b473..b70780a 100644
--- a/pagesCreateOrder/order-detail/order-detail.vue
+++ b/pagesCreateOrder/order-detail/order-detail.vue
@@ -5,8 +5,10 @@
桌位号:
{{options.name}}
-
-
+
+
+
@@ -21,6 +23,8 @@
+
+
@@ -30,6 +34,8 @@
import orderVue from './components/order.vue';
import goodsList from './components/list.vue';
import stepVue from './components/step.vue';
+ import extraVue from './components/extra.vue';
+ import tuicaiVue from './components/tuicai.vue';
import go from '@/commons/utils/go.js'
import {
onLoad,
@@ -40,6 +46,24 @@
reactive
} from 'vue';
import OrderDetail from './page.js'
+ const tuicai = reactive({
+ show: false,
+ selGoods: ''
+ })
+
+ function onTuiCai(goods, index) {
+ tuicai.show = true
+ tuicai.selGoods = goods
+ }
+
+ async function tuicaiConfirm() {
+ const res=await Api.$returnCart({
+ cartId: tuicai.selGoods.id,
+ tableId:options.tableId,
+ })
+ tuicai.selGoods.status='return'
+ tuicai.show = false
+ }
const uiPage = new OrderDetail()
setTimeout(() => {
uiPage.setVal('user', {
@@ -50,22 +74,27 @@
function diancan() {
go.to('PAGES_CREATE_ORDER', {
tableId: options.tableId,
- tableName: options.name
+ tableName: options.name,
+ type: 'add'
})
}
function toPay() {
go.to('PAGES_CRESATE_ORDER_PAY', {
- ...orderDetail.info,
tableId: options.tableId,
tableName: options.name,
masterId: options.masterId,
+ orderId: orderDetail.info.id,
+ discount: 1
})
}
const orderDetail = reactive({
goodsList: [],
- info: {}
+ info: {},
+ seatFee: {
+ totalAmount: 0
+ }
})
const options = reactive({})
async function init() {
@@ -73,14 +102,16 @@
masterId
} = await Api.$getMasterId(options)
console.log(masterId);
- options.masterId=masterId
+ options.masterId = masterId
const {
- records
+ records,
+ seatFee
} = await Api.getCart({
...options,
masterId
})
orderDetail.goodsList = records
+ orderDetail.seatFee = seatFee
const info = await Api.$createOrder({
masterId,
vipUserId: '',
@@ -91,16 +122,16 @@
})
orderDetail.info = info
}
- function watchEmit(){
+
+ function watchEmit() {
uni.$off('orderDetail:update')
- uni.$once('orderDetail:update',(newval)=>{
+ uni.$once('orderDetail:update', (newval) => {
console.log(newval);
init()
})
}
- onShow(()=>{
+ onShow(() => {
watchEmit()
-
})
onLoad((opt) => {
Object.assign(options, opt)
diff --git a/pagesCreateOrder/pay-order/pay-order.vue b/pagesCreateOrder/pay-order/pay-order.vue
index 044ca1f..35f4e27 100644
--- a/pagesCreateOrder/pay-order/pay-order.vue
+++ b/pagesCreateOrder/pay-order/pay-order.vue
@@ -25,32 +25,49 @@
-
-
-
-
-
-
- {{item.payName}}
-
-
-
-
-
+
+
+
+
+
+
+
+ {{item.payName}}
+
+
+
+
+
+
-
+
+ 确认付款
+
+
+
+
+ 请让顾客使用微信扫码
+
+
+
+
+
+
-
-
-
- 确认付款
+
+
+
+
+
+
+
@@ -70,6 +87,7 @@
import editDiscount from '@/pagesCreateOrder/components/edit-discount.vue'
const pays = reactive({
list: ['扫码收款', '二维码收款'],
+ selIndex: 0,
payTypes: {
list: [],
selIndex: 0
@@ -97,54 +115,70 @@
function changePayType(i) {
pays.payTypes.selIndex = i
}
-
+ //支付成功回调
+ function paySuccess(){
+ infoBox.showToast('支付成功')
+ setTimeout(() => {
+ // uni.$emit('orderDetail:update')
+ uni.navigateBack({delta:2})
+ }, 500)
+ }
async function payOrder() {
const payType = pays.payTypes.list[pays.payTypes.selIndex].payType
await Api.$payOrder({
tableId: order.tableId,
masterId: order.masterId,
- orderId: order.id,
+ orderId: order.id||order.orderId,
payType,
vipUserId: order.userId,
discount: 1,
code: ''
})
- infoBox.showToast('支付成功')
- setTimeout(() => {
- uni.$emit('orderDetail:update')
- uni.navigateBack()
- }, 500)
+ paySuccess()
}
+
onMounted(() => {
getPayType()
})
const order = reactive({
amount: 0
})
- function saoma(){
+
+ function saomaPay() {
+ const item = pays.payTypes.list[pays.payTypes.selIndex]
uni.scanCode({
onlyFromCamera: true,
- success: function (res) {
+ success:function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
+ Api.$payOrder({
+ "orderId": order.orderId, // 订单id
+ "payType": item.payType, //
+ "discount": order.discount,
+ "code": res.result
+ }).then(res=>{
+ console.log(res);
+ paySuccess()
+ })
}
});
}
- watch(() => pays.payTypes.selIndex, (index) => {
- const item = pays.payTypes.list[index]
+ watch(() => pays.payTypes.selIndex, (newval) => {
+ const item = pays.payTypes.list[newval]
if (item.payType == "vipPay") {
- return
+ return
}
if (item.payType == "deposit") {
//储值卡支付
- return saoma()
+ return saomaPay('deposit')
}
if (item.payType == "scanCode") {
//扫码支付
- return saoma()
+ return saomaPay('scanCode')
}
})
onLoad((opt) => {
+ console.log(opt);
Object.assign(order, opt)
})
diff --git a/pagesCreateOrder/util.js b/pagesCreateOrder/util.js
new file mode 100644
index 0000000..cf8c381
--- /dev/null
+++ b/pagesCreateOrder/util.js
@@ -0,0 +1,16 @@
+import {
+ returnBoolean
+} from '@/commons/utils/format.js';
+// 返回购物车未下单的数据
+export function getNowCart(records) {
+ const nowCart = records.find(v => v.placeNum == 0)
+ const Cart = nowCart ? nowCart.info : []
+ const result = Cart.map(item => {
+ return {
+ ...item,
+ isPack: returnBoolean(item.isPack),
+ isGift: returnBoolean(item.isGift)
+ }
+ })
+ return result
+}
\ No newline at end of file