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 @@ 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 @@ + + + + + \ 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}} - - - - - + + + + - - - - 确认付款 + + + + + + + @@ -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