feat: 增加代课下单商品不在可售时间内判断,增加购物车提示库存不足处理,增加购物车编辑增加参数起售数量
This commit is contained in:
parent
8a9cca4ee2
commit
65c1aef7bf
|
|
@ -279,11 +279,11 @@ export const useCartsStore = defineStore("carts", () => {
|
|||
return;
|
||||
}
|
||||
const newNumber = item.number * 1 + step * 1;
|
||||
let pack_number = newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number;
|
||||
let pack_number = newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number * 1;
|
||||
if (dinnerType.value == 'take-out') {
|
||||
pack_number = newNumber
|
||||
}
|
||||
if (item.product_type == 'weight') {
|
||||
if (item.product_type == 'weight' && item.pack_number * 1 >= 1) {
|
||||
pack_number = 1
|
||||
}
|
||||
update({ ...item, number: newNumber, pack_number });
|
||||
|
|
@ -331,7 +331,8 @@ export const useCartsStore = defineStore("carts", () => {
|
|||
product_name: "",
|
||||
remark: "",
|
||||
sku_id: '',
|
||||
product_type: ''
|
||||
product_type: '',
|
||||
suitNum: 1
|
||||
}
|
||||
//当前购物车直接添加
|
||||
function cartsPush(data: any) {
|
||||
|
|
@ -388,7 +389,7 @@ export const useCartsStore = defineStore("carts", () => {
|
|||
return sendMessage('del', data);
|
||||
}
|
||||
const pack_number = dinnerType.value == 'take-out' ? data.number : data.pack_number
|
||||
sendMessage('edit', { ...data, pack_number });
|
||||
sendMessage('edit', { ...data, suitNum, pack_number });
|
||||
}
|
||||
function updateTag(key: string, val: any, cart: CartsState = selCart.value) {
|
||||
const skuData = cart.skuData || { suitNum: 1 }
|
||||
|
|
@ -402,6 +403,7 @@ export const useCartsStore = defineStore("carts", () => {
|
|||
const msg = { ...cart, [key]: val }
|
||||
if (key == 'number' && dinnerType.value == 'take-out') {
|
||||
msg.pack_number == val
|
||||
msg.suitNum == skuData.suitNum
|
||||
}
|
||||
|
||||
sendMessage('edit', msg);
|
||||
|
|
@ -587,6 +589,17 @@ export const useCartsStore = defineStore("carts", () => {
|
|||
WebSocketManager.subscribeToTopic(initParams, (msg) => {
|
||||
console.log("收到消息:", msg);
|
||||
if (msg.hasOwnProperty('status') && msg.status != 1) {
|
||||
if (msg.type === 'no_suit_num' && selListIndex.value != -1) {
|
||||
return ElMessageBox.confirm(`${list.value[selListIndex.value].name}库存不足`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
||||
callback: (action: string) => {
|
||||
if (action == 'confirm') {
|
||||
list.value.splice(selListIndex.value, 1)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return ElMessage.error(msg.message || msg.msg || '操作失败')
|
||||
}
|
||||
if (msg && msg.data) {
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ function confirm() {
|
|||
product_id: goods.value.id,
|
||||
number: number.value,
|
||||
product_type: goods.value.type,
|
||||
suitNum: skuData.value.suitNum || 1,
|
||||
});
|
||||
close();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,10 @@
|
|||
size="60"
|
||||
></svg-icon>
|
||||
<svg-icon
|
||||
@click="ElMessage.error('该商品不在可售时间内')"
|
||||
@click="
|
||||
ElMessage.error('该商品不在可售时间内') ||
|
||||
isProductAvailable(item.days, item.startTime, item.endTime)
|
||||
"
|
||||
v-else-if="!item.isSaleTime"
|
||||
iconClass="no-sale"
|
||||
color="#fff"
|
||||
|
|
@ -55,6 +58,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
const props = defineProps({
|
||||
item: {
|
||||
type: Object,
|
||||
|
|
@ -68,6 +72,30 @@ const emits = defineEmits(["itemClick"]);
|
|||
function itemClick() {
|
||||
emits("itemClick");
|
||||
}
|
||||
|
||||
// 判断商品是否在可售时间内
|
||||
function isProductAvailable(sellDaysStr, startTimeStr, endTimeStr) {
|
||||
// 将后端返回的字符串转换为数组
|
||||
const sellDays = sellDaysStr.split(",");
|
||||
const now = dayjs();
|
||||
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
||||
const currentDay = days[now.day()]; // console.log('当前日期:', currentDay); // console.log('可售日期列表:', sellDays); // 检查当前周几是否在可售周几列表中
|
||||
|
||||
if (!sellDays.includes(currentDay)) {
|
||||
// console.log('当前日期不在可售日期列表中');
|
||||
return false;
|
||||
}
|
||||
|
||||
const startTime = dayjs(`${now.format("YYYY-MM-DD")} ${startTimeStr}`);
|
||||
let endTime = dayjs(`${now.format("YYYY-MM-DD")} ${endTimeStr}`); // 处理跨天情况
|
||||
|
||||
if (endTime.isBefore(startTime)) {
|
||||
endTime = endTime.add(1, "day");
|
||||
} // console.log('当前时间:', now.format('YYYY-MM-DD HH:mm:ss')); // console.log('开始时间:', startTime.format('YYYY-MM-DD HH:mm:ss')); // console.log('结束时间:', endTime.format('YYYY-MM-DD HH:mm:ss'));
|
||||
|
||||
const isInRange = now.isBetween(startTime, endTime, null, "[)"); // console.log('当前时间是否在可售时间范围内:', isInRange);
|
||||
return isInRange;
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.goods-item {
|
||||
|
|
|
|||
|
|
@ -511,6 +511,7 @@ function taocanConfirm(goods, pro_group_info) {
|
|||
pro_group_info: JSON.stringify(pro_group_info),
|
||||
number: goods.skuList[0].suitNum,
|
||||
pack_number: diners.sel ? goods.skuList[0].suitNum : 0,
|
||||
suitNum: goods.skuList[0].suitNum,
|
||||
});
|
||||
}
|
||||
function taocanShow(item) {
|
||||
|
|
@ -527,6 +528,7 @@ function changeWeightConfirm(goods, number) {
|
|||
sku_id: goods.skuList[0].id,
|
||||
number,
|
||||
product_type: goods.type,
|
||||
suitNum: goods.skuList[0].suitNum || 1,
|
||||
},
|
||||
true
|
||||
);
|
||||
|
|
@ -584,6 +586,7 @@ function addLingShiCaiConfirm(data) {
|
|||
product_id: "-999",
|
||||
is_temporary: 1,
|
||||
...data,
|
||||
suitNum: 1,
|
||||
});
|
||||
}
|
||||
//单品改价
|
||||
|
|
@ -708,6 +711,7 @@ function goodsClick(item) {
|
|||
//单规格
|
||||
if (item.type == "single") {
|
||||
addCarts({
|
||||
suitNum: item.suitNum || 1,
|
||||
product_id: item.id,
|
||||
sku_id: item.skuList[0].id,
|
||||
number: item.skuList[0].suitNum || 1,
|
||||
|
|
@ -735,6 +739,7 @@ function goodsClick(item) {
|
|||
product_id: item.id,
|
||||
number: item.skuList[0].suitNum || 1,
|
||||
product_type: item.type,
|
||||
suitNum: item.skuList[0].suitNum || 1,
|
||||
};
|
||||
addCarts(sendmsg);
|
||||
return;
|
||||
|
|
@ -750,6 +755,7 @@ function goodsClick(item) {
|
|||
|
||||
// 多规格选择确认
|
||||
function skuSelConfirm(item) {
|
||||
console.log("item");
|
||||
console.log(item);
|
||||
addCarts(item);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue