fix: 订单管理页面调整增加退款功能,代客下单调整

This commit is contained in:
2025-03-01 11:36:47 +08:00
parent bad3c20724
commit 1c0887869e
28 changed files with 2002 additions and 150 deletions

View File

@@ -5,10 +5,10 @@
<div class="left u-flex u-col-center">
<span class="title">代客下单</span>
<div class="u-m-l-20 flex">
<div class="choose-user flex">
<el-button type="primary" v-if="!user.id" @click="showChooseUser">选择用户</el-button>
<div class="choose-user flex u-font-14" @click="showChooseUser">
<el-button type="primary" v-if="!user.id">选择用户</el-button>
<div v-else class="flex cur-pointer" @click="refChooseUserOpen">
<div v-else class="flex cur-pointer">
<img
v-if="user.headImg && user.headImg != 'null'"
class="headimg"
@@ -97,19 +97,27 @@
</div>
<a @click="clearCarts" style="color: #1890ff">清空</a>
</div>
<!-- 购物车 -->
<cartsList
@editNote="showNote(true)"
@createOrder="createOrder"
@hideOrder="hideOrder"
:showOrder="showOrder"
:goodsMapisFinish="goodsMapisFinish"
:goodsList="goods.list"
:oldOrder="oldOrder"
:perpole="perpole"
:table="table"
ref="refCart"
></cartsList>
</div>
<div class="center">
<!-- 购物车控制操作按钮 -->
<Controls
@noteClick="showNote"
@packClick="showPack"
@changePriceClick="showChangePrice"
@return="showReturn"
/>
</div>
<div class="right">
@@ -159,7 +167,14 @@
</template>
<!-- 订单信息展示 -->
<Order @discountShow="discountShow" v-else></Order>
<Order
:orderInfo="orderInfo"
@chooseUser="showChooseUser"
@paysuccess="refresh"
:table="table"
v-else
:user="user"
></Order>
</div>
</div>
</div>
@@ -180,15 +195,13 @@
<changeTaocan ref="refAddTaocan" @confirm="taocanConfirm"></changeTaocan>
<!-- 选择用户 -->
<chooseUser ref="refChooseUser" @chooseUser="chooseUserConfirm"></chooseUser>
<!-- 打折 -->
<discount ref="refDiscount" @confirm="discountConfirm"></discount>
<!-- 就餐人数 -->
<dinerNumber ref="refDinerNumber" @confirm="dinerNumberConfirm"></dinerNumber>
</div>
</template>
<script setup>
import Controls from "./components/control.vue";
import discount from "./components/discount.vue";
import dinerNumber from "./components/diner-number.vue";
import note from "./components/note.vue";
import Order from "./components/order.vue";
@@ -206,11 +219,17 @@ import productApi from "@/api/product/index";
import tableApi from "@/api/account/table";
import $status from "@/views/tool/table/status.js";
import orderApi from "@/api/order/order";
import { useCartsStore } from "@/store/modules/carts";
import { useUserStore } from "@/store/modules/user";
const carts = useCartsStore();
const shopUser = useUserStore();
const route = useRoute();
const router = useRouter();
//退菜
function showReturn(cart) {
console.log(cart);
}
//就餐人数
let perpole = ref("");
@@ -222,21 +241,13 @@ function showDinerNumber() {
refDinerNumber.value.open(perpole.value);
}
//打折
const refDiscount = ref();
function discountConfirm(e) {}
function discountShow(e) {
refDiscount.value.open({
amount: 10,
});
}
//用户
let user = ref({});
const refChooseUser = ref();
function chooseUserConfirm(e) {
console.log(e);
user.value = e;
refCart.value.carts.changeUser(e);
}
function showChooseUser() {
refChooseUser.value.open();
@@ -244,14 +255,20 @@ function showChooseUser() {
//订单
const showOrder = ref(false);
async function createOrder() {
function hideOrder() {
showOrder.value = false;
}
const oldOrder = ref({});
const orderInfo = ref({});
async function createOrder(key) {
console.log(refCart.value.carts.table_code);
const res = await orderApi.add({
orderId: "",
shopId: "",
userId: "",
orderId: oldOrder.value.id || "",
shopId: shopUser.userInfo.id,
userId: user.value.userId,
seatNum: 0,
packFee: 0,
packFee: refCart.value.carts.packFee * 1,
originAmount: refCart.value.carts.payMoney * 1,
tableCode: refCart.value.carts.table_code,
dineMode: diners.sel == 0 ? "dine-in" : "take-out",
@@ -259,10 +276,24 @@ async function createOrder() {
seatNum: perpole.value * 1,
placeNum: 1,
waitCall: false,
vipPrice: false,
vipPrice: user.value.id && user.value.isVip,
});
if (res) {
refCart.value.carts.clear();
if (key == "only-create") {
router.replace(route.path);
return;
}
if (key == "to-pay" && oldOrder.value.id) {
// 获取历史订单数据
const res = await orderApi.getHistoryList({
orderId: oldOrder.value.id,
});
oldOrder.value = res;
}
orderInfo.value = res;
showOrder.value = true;
// oldOrder.value = res;
}
}
@@ -274,6 +305,7 @@ function taocanConfirm(goods, pro_group_info) {
product_id: goods.id,
sku_id: goods.skuList[0].id,
pro_group_info: JSON.stringify(pro_group_info),
number: goods.skuList[0].suitNum,
});
}
function taocanShow(item) {
@@ -302,19 +334,19 @@ const tableSearchText = ref("");
const tableList = ref([]);
function getTableList() {
tableApi.getList({ page: 1, size: 999 }).then((res) => {
tableList.value = res.records;
tableList.value = res.records.filter((v) => v.tableCode);
});
}
function getTableDetail(table_code) {
tableApi.get(table_code);
}
function tablesearchInput() {}
//返回桌状态颜色
//返回桌状态颜色
function returnTableColor(key) {
const item = $status[key];
return item ? item.type : "";
}
//返回桌状态
//返回桌状态
function returnTableLabel(key) {
const item = $status[key];
return item ? item.label : "";
@@ -322,6 +354,7 @@ function returnTableLabel(key) {
function tableClick(item) {
console.log(item);
getTableDetail(item.tableCode);
table.value = item;
refCart.value.carts.changeTable(item.tableCode);
refTable.value.hide();
@@ -447,6 +480,13 @@ async function getGoods() {
}
function goodsClick(item) {
if (!goodsMapisFinish.value) {
return ElMessage.error({
message: "添加失败socket未连接成功请刷新再试",
type: "error",
duration: 2000,
});
}
//单规格
if (item.type == "single") {
addCarts({
@@ -472,9 +512,9 @@ function goodsClick(item) {
if (item.groupType == 0) {
const sendmsg = {
goods_type: "package",
sku_id: item.groupSnap[0].goods[0].skuId,
sku_id: item.skuList[0].id || -888,
product_id: item.id,
number: item.groupSnap[0].goods[0].number,
number: item.skuList[0].suitNum || 1,
};
addCarts(sendmsg);
// refCart.value.carts.cartsPush({
@@ -530,12 +570,37 @@ function init() {
onMounted(async () => {
const { id } = route.query;
if (id) {
orderApi.getHistoryList({
// 获取历史订单数据
const res = await orderApi.getHistoryList({
orderId: id,
});
const noPayStatus = {
cancelled: "订单已取消",
done: "订单已关闭",
};
if (noPayStatus[res.status]) {
ElMessage.error(noPayStatus[res.status]);
refresh();
return;
}
if (res.tableCode) {
table.value = { tableCode: res.tableCode };
}
if (res) {
oldOrder.value = res;
orderInfo.value = res;
showOrder.value = true;
}
//获取台桌数据
if (res.tableCode) {
}
}
init();
});
function refresh() {
router.go(0);
}
</script>
<style lang="scss" scoped>
@@ -729,4 +794,11 @@ $pl: 30px;
.choose-user {
margin-right: 10px;
}
.headimg {
width: 34px;
height: 34px;
display: block;
border-radius: 2px;
margin-right: 6px;
}
</style>