feat: 增加代课下单商品不在可售时间内判断,增加购物车提示库存不足处理,增加购物车编辑增加参数起售数量
This commit is contained in:
parent
8a9cca4ee2
commit
65c1aef7bf
|
|
@ -279,11 +279,11 @@ export const useCartsStore = defineStore("carts", () => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const newNumber = item.number * 1 + step * 1;
|
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') {
|
if (dinnerType.value == 'take-out') {
|
||||||
pack_number = newNumber
|
pack_number = newNumber
|
||||||
}
|
}
|
||||||
if (item.product_type == 'weight') {
|
if (item.product_type == 'weight' && item.pack_number * 1 >= 1) {
|
||||||
pack_number = 1
|
pack_number = 1
|
||||||
}
|
}
|
||||||
update({ ...item, number: newNumber, pack_number });
|
update({ ...item, number: newNumber, pack_number });
|
||||||
|
|
@ -331,7 +331,8 @@ export const useCartsStore = defineStore("carts", () => {
|
||||||
product_name: "",
|
product_name: "",
|
||||||
remark: "",
|
remark: "",
|
||||||
sku_id: '',
|
sku_id: '',
|
||||||
product_type: ''
|
product_type: '',
|
||||||
|
suitNum: 1
|
||||||
}
|
}
|
||||||
//当前购物车直接添加
|
//当前购物车直接添加
|
||||||
function cartsPush(data: any) {
|
function cartsPush(data: any) {
|
||||||
|
|
@ -388,7 +389,7 @@ export const useCartsStore = defineStore("carts", () => {
|
||||||
return sendMessage('del', data);
|
return sendMessage('del', data);
|
||||||
}
|
}
|
||||||
const pack_number = dinnerType.value == 'take-out' ? data.number : data.pack_number
|
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) {
|
function updateTag(key: string, val: any, cart: CartsState = selCart.value) {
|
||||||
const skuData = cart.skuData || { suitNum: 1 }
|
const skuData = cart.skuData || { suitNum: 1 }
|
||||||
|
|
@ -402,6 +403,7 @@ export const useCartsStore = defineStore("carts", () => {
|
||||||
const msg = { ...cart, [key]: val }
|
const msg = { ...cart, [key]: val }
|
||||||
if (key == 'number' && dinnerType.value == 'take-out') {
|
if (key == 'number' && dinnerType.value == 'take-out') {
|
||||||
msg.pack_number == val
|
msg.pack_number == val
|
||||||
|
msg.suitNum == skuData.suitNum
|
||||||
}
|
}
|
||||||
|
|
||||||
sendMessage('edit', msg);
|
sendMessage('edit', msg);
|
||||||
|
|
@ -587,6 +589,17 @@ export const useCartsStore = defineStore("carts", () => {
|
||||||
WebSocketManager.subscribeToTopic(initParams, (msg) => {
|
WebSocketManager.subscribeToTopic(initParams, (msg) => {
|
||||||
console.log("收到消息:", msg);
|
console.log("收到消息:", msg);
|
||||||
if (msg.hasOwnProperty('status') && msg.status != 1) {
|
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 || '操作失败')
|
return ElMessage.error(msg.message || msg.msg || '操作失败')
|
||||||
}
|
}
|
||||||
if (msg && msg.data) {
|
if (msg && msg.data) {
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ function confirm() {
|
||||||
product_id: goods.value.id,
|
product_id: goods.value.id,
|
||||||
number: number.value,
|
number: number.value,
|
||||||
product_type: goods.value.type,
|
product_type: goods.value.type,
|
||||||
|
suitNum: skuData.value.suitNum || 1,
|
||||||
});
|
});
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,10 @@
|
||||||
size="60"
|
size="60"
|
||||||
></svg-icon>
|
></svg-icon>
|
||||||
<svg-icon
|
<svg-icon
|
||||||
@click="ElMessage.error('该商品不在可售时间内')"
|
@click="
|
||||||
|
ElMessage.error('该商品不在可售时间内') ||
|
||||||
|
isProductAvailable(item.days, item.startTime, item.endTime)
|
||||||
|
"
|
||||||
v-else-if="!item.isSaleTime"
|
v-else-if="!item.isSaleTime"
|
||||||
iconClass="no-sale"
|
iconClass="no-sale"
|
||||||
color="#fff"
|
color="#fff"
|
||||||
|
|
@ -55,6 +58,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import dayjs from "dayjs";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|
@ -68,6 +72,30 @@ const emits = defineEmits(["itemClick"]);
|
||||||
function itemClick() {
|
function itemClick() {
|
||||||
emits("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>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.goods-item {
|
.goods-item {
|
||||||
|
|
|
||||||
|
|
@ -511,6 +511,7 @@ function taocanConfirm(goods, pro_group_info) {
|
||||||
pro_group_info: JSON.stringify(pro_group_info),
|
pro_group_info: JSON.stringify(pro_group_info),
|
||||||
number: goods.skuList[0].suitNum,
|
number: goods.skuList[0].suitNum,
|
||||||
pack_number: diners.sel ? goods.skuList[0].suitNum : 0,
|
pack_number: diners.sel ? goods.skuList[0].suitNum : 0,
|
||||||
|
suitNum: goods.skuList[0].suitNum,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function taocanShow(item) {
|
function taocanShow(item) {
|
||||||
|
|
@ -527,6 +528,7 @@ function changeWeightConfirm(goods, number) {
|
||||||
sku_id: goods.skuList[0].id,
|
sku_id: goods.skuList[0].id,
|
||||||
number,
|
number,
|
||||||
product_type: goods.type,
|
product_type: goods.type,
|
||||||
|
suitNum: goods.skuList[0].suitNum || 1,
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
@ -584,6 +586,7 @@ function addLingShiCaiConfirm(data) {
|
||||||
product_id: "-999",
|
product_id: "-999",
|
||||||
is_temporary: 1,
|
is_temporary: 1,
|
||||||
...data,
|
...data,
|
||||||
|
suitNum: 1,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//单品改价
|
//单品改价
|
||||||
|
|
@ -708,6 +711,7 @@ function goodsClick(item) {
|
||||||
//单规格
|
//单规格
|
||||||
if (item.type == "single") {
|
if (item.type == "single") {
|
||||||
addCarts({
|
addCarts({
|
||||||
|
suitNum: item.suitNum || 1,
|
||||||
product_id: item.id,
|
product_id: item.id,
|
||||||
sku_id: item.skuList[0].id,
|
sku_id: item.skuList[0].id,
|
||||||
number: item.skuList[0].suitNum || 1,
|
number: item.skuList[0].suitNum || 1,
|
||||||
|
|
@ -735,6 +739,7 @@ function goodsClick(item) {
|
||||||
product_id: item.id,
|
product_id: item.id,
|
||||||
number: item.skuList[0].suitNum || 1,
|
number: item.skuList[0].suitNum || 1,
|
||||||
product_type: item.type,
|
product_type: item.type,
|
||||||
|
suitNum: item.skuList[0].suitNum || 1,
|
||||||
};
|
};
|
||||||
addCarts(sendmsg);
|
addCarts(sendmsg);
|
||||||
return;
|
return;
|
||||||
|
|
@ -750,6 +755,7 @@ function goodsClick(item) {
|
||||||
|
|
||||||
// 多规格选择确认
|
// 多规格选择确认
|
||||||
function skuSelConfirm(item) {
|
function skuSelConfirm(item) {
|
||||||
|
console.log("item");
|
||||||
console.log(item);
|
console.log(item);
|
||||||
addCarts(item);
|
addCarts(item);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue