代客下单逻辑修改

This commit is contained in:
2025-11-14 18:06:04 +08:00
parent d0cee95145
commit 67ec915181
26 changed files with 5314 additions and 870 deletions

View File

@@ -54,7 +54,10 @@
{{ index + 1 }}
</view>
<view class="">
<view>{{ item.name }}</view>
<view>
<text>{{ item.name }}</text>
<text class="limit" v-if="item.is_time_discount"></text>
</view>
<view class="u-m-t-10 u-font-24 color-666">{{
item.specInfo || ""
}}</view>
@@ -179,7 +182,7 @@
v-if="v.is_time_discount || v.isTimeDiscount"
>
<view class="font-bold red u-m-r-32"
>{{ formatPrice(v.price * (v.num - v.returnNum)) }}</view
>{{ returnLimitPrice({...v,number:v.num,salePrice:v.price}) }}</view
>
<view class="u-m-l-30 u-m-r-30 color-333">
X{{ v.num.toFixed(2) }}
@@ -276,6 +279,8 @@ import { getElRect } from "@/commons/utils/safe-bottom.js";
import * as Api from "@/http/yskApi/Instead.js";
import { computed, ref, onMounted, reactive, watch, inject } from "vue";
import BigNumber from "bignumber.js";
import { limitTimeDiscount } from "../../../http/yskApi/limitTimeDiscount";
import { number } from "uview-plus/libs/function/test";
const yskUtils = inject("yskUtils");
const shopInfo = uni.getStorageSync("shopInfo");
@@ -343,18 +348,19 @@ function returnLimitPrice(data) {
shopInfo: shopInfo,
limitTimeDiscountRes: props.limitTimeDiscount,
shopUserInfo: null,
idKey: "id",
idKey: "product_id",
});
return price
}
function returnLimitTotalPrice(data) {
console.log('returnLimitTotalPrice',data)
const price = yskUtils.limitUtils.returnPrice({
goods: data,
shopInfo: shopInfo,
limitTimeDiscountRes: props.limitTimeDiscount,
shopUserInfo: null,
idKey: "id",
idKey: "product_id",
});
return BigNumber(price).times(data.number).toNumber();
}
@@ -377,16 +383,12 @@ const allPrice = computed(() => {
let price = (cur.is_time_discount? returnLimitPrice(cur) : cur.lowPrice) * cur.number
return BigNumber(prve).plus(price);
}, 0);
console.log('cartPrice',cartPrice)
let historyOrderPrice = allHistoryOrder.value.reduce((prve, cur) => {
const isTimeDiscount=cur.is_time_discount||cur.isTimeDiscount
let price = (isTimeDiscount? returnLimitPrice(cur) : cur.price)* (cur.num - cur.returnNum)
console.log('price',price)
let price = (cur.isTimeDiscount? returnLimitPrice({...cur,salePrice:cur.price}) : cur.price)* (cur.num - cur.returnNum)
return BigNumber(prve).plus(price);
}, 0);
console.log('historyOrderPrice',historyOrderPrice)
return BigNumber(cartPrice).plus(historyOrderPrice);
return BigNumber(cartPrice).plus(historyOrderPrice).decimalPlaces(2, BigNumber.ROUND_UP)
.toNumber();
});
const models = new Map();
const modelData = reactive({
@@ -495,7 +497,7 @@ function getshopsInfo() {
}
function toConfimOrder() {
if (props.data.length <= 0) {
if (props.data.length <= 0&& props.historyOrder.length<=0) {
return infoBox.showToast("还没有选择商品");
}
@@ -687,6 +689,7 @@ $car-top: -16rpx;
right: 0;
top: 0;
bottom: 0;
z-index: 10;
}
.total {
@@ -780,4 +783,17 @@ $car-top: -16rpx;
color: #999;
text-decoration: line-through;
}
.limit{
background-color: #cc5617;
margin-left: 10rpx;
padding: 2rpx 10rpx;
white-space: nowrap;
text-align: center;
position: absolute;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
border-radius: 14rpx;
color: #fff;
}
</style>