This commit is contained in:
gyq
2024-07-12 16:36:28 +08:00
parent bb554a28d2
commit 8c1e1d3fbc
12 changed files with 304 additions and 342 deletions

View File

@@ -1,162 +1,91 @@
<template>
<div class="orderbox">
<div class="orderbox_left">
<el-tabs
v-model="ordereData.status"
class="demo-tabs"
@tab-click="handleClick"
>
<el-tabs v-model="ordereData.status" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="全部" name="">
<div class="demo_tabs_div">
<el-input
v-model="ordereData.orderNo"
placeholder="请输入订单号查询"
@input="inputChange"
clearable
@focus="global.updateData(false)"
@blur="global.updateData(true)"
/>
<el-input v-model="ordereData.orderNo" placeholder="请输入订单号查询" @input="inputChange" clearable
@focus="global.updateData(false)" @blur="global.updateData(true)" />
<!-- <el-button style="margin-left: 10px;" type="primary" @click="onSubmit">搜索</el-button> -->
</div>
<add
:loading="loadingboxshow"
:ordereData="ordereData"
@emititemboxshow="emititemboxshow"
v-if="ordereData.list.length"
>
<add :loading="loadingboxshow" :ordereData="ordereData" @emititemboxshow="emititemboxshow"
v-if="ordereData.list.length">
</add>
<div v-else style="width: 100%; text-align: center; margin: 30px 0">
暂无数据
</div>
<el-pagination
v-if="ordereData.list.length"
layout="prev, pager, next, jumper"
style="margin-top: 20px"
:total="Number(ordereData.total)"
@current-change="handleCurrentChange"
/>
<el-pagination v-if="ordereData.list.length" layout="prev, pager, next, jumper" style="margin-top: 20px"
:total="Number(ordereData.total)" @current-change="handleCurrentChange" />
</el-tab-pane>
<el-tab-pane label="销售" name="closed">
<add
:ordereData="ordereData"
@emititemboxshow="emititemboxshow"
v-if="ordereData.list.length"
>
<add :ordereData="ordereData" @emititemboxshow="emititemboxshow" v-if="ordereData.list.length">
</add>
<div v-else style="width: 100%; text-align: center; margin: 30px 0">
暂无数据
</div>
<el-pagination
v-if="ordereData.list.length"
layout="prev, pager, next, jumper"
style="margin-top: 20px"
:total="Number(ordereData.total)"
@current-change="handleCurrentChange"
/>
<el-pagination v-if="ordereData.list.length" layout="prev, pager, next, jumper" style="margin-top: 20px"
:total="Number(ordereData.total)" @current-change="handleCurrentChange" />
</el-tab-pane>
<el-tab-pane label="退单" name="refund">
<add
:ordereData="ordereData"
@emititemboxshow="emititemboxshow"
v-if="ordereData.list.length"
>
<add :ordereData="ordereData" @emititemboxshow="emititemboxshow" v-if="ordereData.list.length">
</add>
<div v-else style="width: 100%; text-align: center; margin: 30px 0">
暂无数据
</div>
<el-pagination
v-if="ordereData.list.length"
layout="prev, pager, next, jumper"
style="margin-top: 20px"
:total="Number(ordereData.total)"
@current-change="handleCurrentChange"
/>
<el-pagination v-if="ordereData.list.length" layout="prev, pager, next, jumper" style="margin-top: 20px"
:total="Number(ordereData.total)" @current-change="handleCurrentChange" />
</el-tab-pane>
<el-tab-pane label="快捷收银" name="cash">
<cashTable />
</el-tab-pane>
</el-tabs>
</div>
<div
class="orderbox_right"
v-if="itemboxshow"
v-loading="orderDetaildata.loading"
:loading="loadingboxshow"
>
<div class="orderbox_right" v-if="itemboxshow" v-loading="orderDetaildata.loading" :loading="loadingboxshow">
<div class="orderbox_right_top">
<span>堂食订单</span>
<el-icon
:size="32"
style="color: var(--primary-color)"
@click="itemboxshow = false"
>
<el-icon :size="32" style="color: var(--primary-color)" @click="itemboxshow = false">
<CircleCloseFilled />
</el-icon>
</div>
<div class="tableDataclass">
<div class="orderbox_right_item">
<span class="span">订单号</span
><span class="nunber">{{ orderDetaildata.orderNo }}</span>
<span class="span">订单号</span><span class="nunber">{{ orderDetaildata.orderNo }}</span>
</div>
<div class="orderbox_right_item">
<span class="span">收银员</span
><span class="nunber">{{ orderDetaildata.userName }}</span>
<span class="span">收银员</span><span class="nunber">{{ orderDetaildata.userName }}</span>
</div>
<div class="orderbox_right_item">
<span class="span">创建时间</span
><span class="nunber">{{
<span class="span">创建时间</span><span class="nunber">{{
dayjs(orderDetaildata.createdAt).format("YYYY-MM-DD HH:mm:ss")
}}</span>
</div>
<div class="orderbox_right_item">
<span class="span">终端</span
><span class="nunber">{{ orderDetaildata.zdNo }}</span>
<span class="span">终端</span><span class="nunber">{{ orderDetaildata.zdNo }}</span>
</div>
<div class="orderbox_right_item">
<span class="span">会员</span
><span class="nunber">{{ orderDetaildata.memberName }}</span>
<span class="span">会员</span><span class="nunber">{{ orderDetaildata.memberName }}</span>
</div>
<div class="orderbox_right_item">
<span class="span">台桌</span
><span class="nunber">{{ orderDetaildata.tableId }}</span>
<span class="span">台桌</span><span class="nunber">{{ orderDetaildata.tableId }}</span>
</div>
<div class="orderbox_right_item">
<span class="span">流水号</span
><span class="nunber">{{ orderDetaildata.masterId }}</span>
<span class="span">流水号</span><span class="nunber">{{ orderDetaildata.masterId }}</span>
</div>
<div
class="orderbox_right_top"
style="margin-top: 20px; border-bottom: 2px solid #ccc"
>
<div class="orderbox_right_top" style="margin-top: 20px; border-bottom: 2px solid #ccc">
<span>合计</span>
<span>{{ orderDetaildata.orderAmount }}</span>
</div>
<div
class="orderbox_right_top"
style="margin-top: 20px; border-bottom: 2px solid #ccc"
>
<span
style="font-size: 16px"
v-if="orderDetaildata.status == 'pending'"
>挂单</span
>
<span
style="font-size: 16px; color: red"
v-if="
orderDetaildata.status == 'refund' &&
orderDetaildata.orderType == 'return'
"
>退单</span
>
<span
style="font-size: 16px; color: #21c36b"
v-if="
orderDetaildata.orderType != 'return' &&
(orderDetaildata.status == 'refund' ||
orderDetaildata.status == 'closed')
"
>订单完成</span
>
<div class="orderbox_right_top" style="margin-top: 20px; border-bottom: 2px solid #ccc">
<span style="font-size: 16px" v-if="orderDetaildata.status == 'pending'">挂单</span>
<span style="font-size: 16px; color: red" v-if="
orderDetaildata.status == 'refund' &&
orderDetaildata.orderType == 'return'
">退单</span>
<span style="font-size: 16px; color: #21c36b" v-if="
orderDetaildata.orderType != 'return' &&
(orderDetaildata.status == 'refund' ||
orderDetaildata.status == 'closed')
">订单完成</span>
</div>
<div class="orderbox_right_top" style="margin-top: 20px">
<span>商品明细</span>
@@ -168,19 +97,13 @@
<div>单价</div>
<div>小计</div>
</div>
<div
class="orderbox_right_list_item"
style="margin-top: 20px"
v-for="(item, index) in orderDetaildata.detailList"
:key="index"
>
<div class="orderbox_right_list_item" style="margin-top: 20px"
v-for="(item, index) in orderDetaildata.detailList" :key="index">
<div>{{ item.productName }} {{ item.productSkuName }}</div>
<div style="text-align: center">{{ item.num }}</div>
<div style="text-align: center">{{ item.price }}</div>
<div v-if="item.status == 'refund'">
<span style="border: 2px solid red; color: red; padding: 4px 2px"
>已退</span
>
<span style="border: 2px solid red; color: red; padding: 4px 2px">已退</span>
</div>
<div v-else>{{ item.priceAmount }}</div>
</div>
@@ -189,42 +112,26 @@
<div class="orderbox_right_button" ref="reforderboxrightbutton">
<div class="orderbox_right_buttonbutton">
<el-button
style="width: 100%"
type="warning"
:loading="callLoading"
@click="callNumberHandle"
>
<el-button style="width: 100%" type="warning" :loading="callLoading" @click="callNumberHandle">
叫号
</el-button>
</div>
<div class="orderbox_right_buttonbutton">
<el-button
style="width: 100%"
v-if="
orderDetaildata.orderType != 'return' &&
(orderDetaildata.status == 'refund' ||
orderDetaildata.status == 'closed')
"
type="primary"
@click="recharge = true"
>退单</el-button
>
<el-button style="width: 100%" v-if="
orderDetaildata.orderType != 'return' &&
(orderDetaildata.status == 'refund' ||
orderDetaildata.status == 'closed')
" type="primary" @click="recharge = true">退单</el-button>
</div>
<div class="orderbox_right_buttonbutton">
<el-button @click="print('normal')" style="flex: 1"
>重打收银打票</el-button
>
<el-button @click="print('label')" style="flex: 1"
>重打标签小票</el-button
>
<el-button @click="print('normal')" style="flex: 1">重打收银打票</el-button>
<el-button @click="print('label')" style="flex: 1">重打标签小票</el-button>
</div>
</div>
</div>
<div class="orderbox_rightbox" v-else>
<div class="orderbox_rightbox_top">
<div
style="
<div style="
padding: 6px;
background: #187ead;
border-radius: 50%;
@@ -233,8 +140,7 @@
display: flex;
align-items: center;
justify-content: center;
"
>
">
<el-icon :size="30" color="#fff">
<Document />
</el-icon>
@@ -269,23 +175,11 @@
</div>
</div> -->
</div>
<el-dialog
v-model="recharge"
title="退单"
width="800"
:before-close="handlerecharge"
>
<el-dialog v-model="recharge" title="退单" width="800" :before-close="handlerecharge">
<div class="recharge_footer">
<div class="recharge_footer_item">
<el-input
v-model="remark"
style="width: 100%"
:rows="2"
type="textarea"
placeholder="请输入退单原因"
@focus="global.updateData(false)"
@blur="global.updateData(true)"
/>
<el-input v-model="remark" style="width: 100%" :rows="2" type="textarea" placeholder="请输入退单原因"
@focus="global.updateData(false)" @blur="global.updateData(true)" />
<div class="recharge_footer_items" @click="remark = '顾客取消'">
<div>顾客取消</div>
</div>
@@ -322,41 +216,22 @@
</div>
<div class="recharge_footer_itemright_botton">
<div class="recharge_footer_itemright_botton_top">
<el-checkbox
@change="changezong"
v-model="changechecked"
size="large"
/><span style="margin-left: 10px">全选,共项目</span>
<el-checkbox @change="changezong" v-model="changechecked" size="large" /><span
style="margin-left: 10px">全选,共项目</span>
</div>
<div
class="recharge_footer_itemright_botton_item"
v-for="(item, index) in orderDetaildata.detailList"
:key="index"
>
<div class="recharge_footer_itemright_botton_item" v-for="(item, index) in orderDetaildata.detailList"
:key="index">
<div class="recharge_footer_itemright_botton_itemone">
<el-checkbox
@change="changezong(item, index, 1, 'quan')"
:disabled="item.status == 'refund' ? true : false"
v-model="item.checked"
size="large"
/>
<el-checkbox @change="changezong(item, index, 1, 'quan')"
:disabled="item.status == 'refund' ? true : false" v-model="item.checked" size="large" />
<span style="margin-left: 10px">{{ item.productName }}</span>
</div>
<div class="recharge_footer_itemright_botton_itemtow">
<!-- {{ item.num }} -->
<el-input-number
v-model="item.num"
:min="1"
size="small"
:disabled="item.status == 'refund' ? true : false"
:max="item.maxnum"
@change="
(currentValue, oldValue) =>
changezong(item, index, 1, 'num', currentValue, oldValue)
"
@focus="global.updateData(false)"
@blur="global.updateData(true)"
/>
<el-input-number v-model="item.num" :min="1" size="small"
:disabled="item.status == 'refund' ? true : false" :max="item.maxnum" @change="(currentValue, oldValue) =>
changezong(item, index, 1, 'num', currentValue, oldValue)
" @focus="global.updateData(false)" @blur="global.updateData(true)" />
<!-- @change="changezong(item, index, 1, 'num')" -->
</div>
<div class="recharge_footer_itemright_botton_itemthere">
@@ -374,12 +249,8 @@
</div>
</div>
<div class="recharge_footer_itemright_botton_boxtow">
<el-button
type="primary"
style="width: 100%; height: 100%"
:loading="buttonloading"
@click="payreturnOrderclick"
>
<el-button type="primary" style="width: 100%; height: 100%" :loading="buttonloading"
@click="payreturnOrderclick">
<span v-if="!buttonloading">支付退回</span>
<span v-else>支付退回...</span>
</el-button>
@@ -389,13 +260,7 @@
</div>
</el-dialog>
</div>
<takeFoodCode
ref="takeFoodCodeRef"
title="支付密码"
type="password"
placeholder="请输入支付密码"
@success="passwordSuccess"
/>
<takeFoodCode ref="takeFoodCodeRef" title="支付密码" type="password" placeholder="请输入支付密码" @success="passwordSuccess" />
</template>
<script setup>
@@ -467,7 +332,8 @@ async function passwordSuccess(pwd) {
return item && item;
});
if (arr.length != 0) {
await payreturnOrder(arr, md5(pwd));
// await payreturnOrder(arr, md5(pwd));
await payreturnOrder(arr, '');
changechecked.value = false;
recharge.value = false;
itemboxshow.value = false;
@@ -492,7 +358,8 @@ const payreturnOrderclick = lodash.debounce(
ElMessage.error("退款金额不能为0");
return false;
}
takeFoodCodeRef.value.show();
// takeFoodCodeRef.value.show();
passwordSuccess()
},
500,
{ leading: true, trailing: false }