-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{ fen2yuan(state.settlementSku.promotionPrice) }}
+
+
+ 直降¥
+ {{ fen2yuan(state.settlementSku.price - state.settlementSku.promotionPrice) }}
+
+
+
+ 限时折扣
+
+
+ 会员折扣
+
+
+
+
+ 价格:¥{{ fen2yuan(state.settlementSku.price) }} 丨 剩余:
+ {{ state.settlementSku.stock }}
+
+
+ 距结束仅剩
+
+
+
+
+
+
+
+
+
+
+
+ {{ fen2yuan(state.selectedSku.price || state.goodsInfo.price) }}
+
+
+ {{ fen2yuan(state.selectedSku.marketPrice || state.goodsInfo.marketPrice) }}
+
+
+
+ {{ formatSales('exact', state.goodsInfo.salesCount) }}
+
+
+
+
+
+
+
-
- 领券
-
-
-
- {{ state.goodsInfo.name }}
- {{ state.goodsInfo.introduction }}
-
+ 222
+ -->
+
+ 券
+ {{(state.rewardActivity.ruleDescriptions[0])[1]}}
+
+
+
+
+
+ 领券
+
+
+
+ {{ state.goodsInfo.name }}
+ {{ state.goodsInfo.introduction }}
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+ .disContB2 {
+ width: 300rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ display: flex;
+ justify-content: flex-end;
+ }
+
\ No newline at end of file
diff --git a/sheep/components/s-activity-pop/s-activity-pop.vue b/sheep/components/s-activity-pop/s-activity-pop.vue
index 460ccf76..25cf3b94 100644
--- a/sheep/components/s-activity-pop/s-activity-pop.vue
+++ b/sheep/components/s-activity-pop/s-activity-pop.vue
@@ -1,244 +1,259 @@
-
-
- 优惠
-
- 促销
-
-
-
- 满减
-
-
- {{ item }}
-
-
- {{ sheep.$helper.timeFormat(state.rewardActivity.startTime, 'yyyy.mm.dd') }}
- -
- {{ sheep.$helper.timeFormat(state.rewardActivity.endTime, 'yyyy.mm.dd') }}
-
-
-
-
-
-
-
- 可领优惠券
-
-
-
-
- ¥{{ fen2yuan(item.discountPrice) }}
- 满¥{{ fen2yuan(item.usePrice) }}可用
-
-
-
- {{ item.name }}
-
-
- {{
- item.validityType == 1
- ? sheep.$helper.timeFormat(item.validStartTime, 'yyyy.mm.dd') -
- sheep.$helper.timeFormat(item.validEndTime, 'yyyy.mm.dd')
- : '领取后' + item.fixedStartTerm + '-' + item.fixedEndTerm + '天可用'
- }}
-
-
- 立即领取
- 已领取
-
-
-
-
-
+
+
+ 优惠
+
+ 促销
+
+
+
+ {{item.name}}
+
+
+ {{ items }};
+
+
+ {{ sheep.$helper.timeFormat(state.rewardActivity.startTime, 'yyyy.mm.dd') }}
+ -
+ {{ sheep.$helper.timeFormat(state.rewardActivity.endTime, 'yyyy.mm.dd') }}
+
+
+
+
+
+
+
+ 可领优惠券
+
+
+
+
+ ¥{{ fen2yuan(item.discountPrice) }}
+ 满¥{{ fen2yuan(item.usePrice) }}可用
+
+
+
+ {{ item.name }}
+
+
+ {{
+ item.validityType == 1
+ ? sheep.$helper.timeFormat(item.validStartTime, 'yyyy.mm.dd') -
+ sheep.$helper.timeFormat(item.validEndTime, 'yyyy.mm.dd')
+ : '领取后' + item.fixedStartTerm + '-' + item.fixedEndTerm + '天可用'
+ }}
+
+
+ 立即领取
+ 已领取
+
+
+
+
+ 暂无可领优惠券
+
+
+
+ .coupon2 {
+ width: 150rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ background-color: rgb(203, 192, 191);
+ color: white;
+ border-radius: 30rpx;
+ text-align: center;
+ font-size: 25rpx;
+ }
+ .nullBox{
+ width: 100%;
+ height: 300rpx;
+ font-size: 25rpx;
+ line-height: 300rpx;
+ text-align: center;
+ color: #999999;
+ }
+
\ No newline at end of file
diff --git a/sheep/components/s-goods-column/s-goods-column.vue b/sheep/components/s-goods-column/s-goods-column.vue
index a4fc3247..6dce5b1a 100644
--- a/sheep/components/s-goods-column/s-goods-column.vue
+++ b/sheep/components/s-goods-column/s-goods-column.vue
@@ -1,859 +1,809 @@
-
-
-
-
-
-
-
-
-
- {{ data.title || data.name }}
-
-
-
- {{ discountText }}
-
- {{ data.rewardActivity.ruleDescriptions[0] }}
-
-
-
- {{ priceUnit }}
-
- {{ fen2yuan(data.promotionPrice) }}
-
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ data.title || data.name }}
+
+
+
+ {{ discountText }}
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[1] }}
+
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[3] }}
+
+
+
+ {{ priceUnit }}
+
+ {{ fen2yuan(data.promotionPrice) }}
+
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
- {{ data.title || data.name }}
-
-
-
- {{ discountText }}
-
- {{ data.rewardActivity.ruleDescriptions[0] }}
-
-
-
- {{ priceUnit }}
-
- {{ fen2yuan(data.promotionPrice) }}
-
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
-
-
+
+
+ {{ data.title || data.name }}
+
+
+
+ {{ discountText }}
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[1] }}
+
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[3] }}
+
+
+
+ {{ priceUnit }}
+
+ {{ fen2yuan(data.promotionPrice) }}
+
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
+
+
-
-
-
-
-
-
-
-
- {{ data.title || data.name }}
-
-
- {{ data.subtitle || data.introduction }}
-
-
-
-
- {{ item.title }}
-
-
-
-
-
- {{ discountText }}
-
- {{ data.rewardActivity.ruleDescriptions[0] }}
-
-
-
-
- {{ priceUnit }}
-
- {{ fen2yuan(data.promotionPrice) }}
-
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
-
+
+
+
+
+
+
+ {{ data.title || data.name }}
+
+
+ {{ data.subtitle || data.introduction }}
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+ {{ discountText }}
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[1] }}
+
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[3] }}
+
+
+
+
+ {{ priceUnit }}
+
+ {{ fen2yuan(data.promotionPrice) }}
+
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
+
- {{ priceUnit }}
- {{ fen2yuan(data.marketPrice) }}
-
-
+ " class="goods-origin-price ss-m-t-16 font-OPPOSANS ss-flex" :style="[{ color: originPriceColor }]">
+ {{ priceUnit }}
+ {{ fen2yuan(data.marketPrice) }}
+
+
-
- {{ salesAndStock }}
-
-
+
+ {{ salesAndStock }}
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
- 秒杀
-
- 拼团
-
-
-
-
-
- {{ data.title || data.name }}
-
-
- {{ data.subtitle || data.introduction }}
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
- {{ discountText }}
-
- {{ data.rewardActivity.ruleDescriptions[0] }}
-
-
-
-
- {{ priceUnit }}
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
+
+
+
+ 秒杀
+
+ 拼团
+
+
+
+
+
+ {{ data.title || data.name }}
+
+
+ {{ data.subtitle || data.introduction }}
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+ {{ discountText }}
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[1] }}
+
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[3] }}
+
+
+
+
+ {{ priceUnit }}
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
- {{ priceUnit }}
-
- {{ fen2yuan(data.promotionPrice) }}
-
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
-
-
- {{ salesAndStock }}
-
-
-
+ " class="goods-origin-price ss-flex ss-col-bottom font-OPPOSANS" :style="[{ color: originPriceColor }]">
+ {{ priceUnit }}
+
+ {{ fen2yuan(data.promotionPrice) }}
+
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
+
+
+ {{ salesAndStock }}
+
+
+
-
- 去购买
-
-
+
+ 去购买
+
+
-
-
-
-
-
-
-
-
-
- {{ data.title || data.name }}
-
-
- {{ data.subtitle || data.introduction }}
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
- {{ discountText }}
-
- {{ data.rewardActivity.ruleDescriptions[0] }}
-
-
-
-
- {{ priceUnit }}
-
- {{ fen2yuan(data.promotionPrice) }}
-
- {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
-
-
-
+
+
+
+
+
+
+
+ {{ data.title || data.name }}
+
+
+ {{ data.subtitle || data.introduction }}
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+ {{ discountText }}
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[1] }}
+
+
+ {{ (data.rewardActivity.ruleDescriptions[0])[3] }}
+
+
+
+
+ {{ priceUnit }}
+
+ {{ fen2yuan(data.promotionPrice) }}
+
+ {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
+
+
+
- {{ priceUnit }}
- {{ fen2yuan(data.marketPrice) }}
-
-
-
- {{ salesAndStock }}
-
-
-
+ " class="goods-origin-price ss-m-t-16 font-OPPOSANS ss-flex" :style="[{ color: originPriceColor }]">
+ {{ priceUnit }}
+ {{ fen2yuan(data.marketPrice) }}
+
+
+
+ {{ salesAndStock }}
+
+
+
-
- 去购买
-
-
-
+
+ 去购买
+
+
+
+ .iconBox {
+ width: 100%;
+ height: fit-content;
+ margin-top: 10rpx;
+ display: flex;
+ justify-content: flex-start;
+ flex-wrap: wrap;
+ }
+
\ No newline at end of file
diff --git a/sheep/hooks/useGoods.js b/sheep/hooks/useGoods.js
index 41402704..5c12f26a 100644
--- a/sheep/hooks/useGoods.js
+++ b/sheep/hooks/useGoods.js
@@ -1,7 +1,11 @@
-import { ref } from 'vue';
+import {
+ ref
+} from 'vue';
import dayjs from 'dayjs';
import $url from '@/sheep/url';
-import { formatDate } from '@/sheep/util';
+import {
+ formatDate
+} from '@/sheep/util';
/**
* 格式化销量
@@ -10,8 +14,8 @@ import { formatDate } from '@/sheep/util';
* @return {string} 格式化后的销量字符串
*/
export function formatSales(type, num) {
- let prefix = type !== 'exact' && num < 10 ? '销量' : '已售';
- return formatNum(prefix, type, num);
+ let prefix = type !== 'exact' && num < 10 ? '销量' : '已售';
+ return formatNum(prefix, type, num);
}
/**
@@ -21,7 +25,7 @@ export function formatSales(type, num) {
* @return {string} 格式化后的销量字符串
*/
export function formatExchange(type, num) {
- return formatNum('已兑换', type, num);
+ return formatNum('已兑换', type, num);
}
/**
@@ -31,7 +35,7 @@ export function formatExchange(type, num) {
* @return {string} 格式化后的销量字符串
*/
export function formatStock(type, num) {
- return formatNum('库存', type, num);
+ return formatNum('库存', type, num);
}
/**
@@ -42,27 +46,27 @@ export function formatStock(type, num) {
* @return {string} 格式化后的销量字符串
*/
export function formatNum(prefix, type, num) {
- num = num || 0;
- // 情况一:精确数值
- if (type === 'exact') {
- return prefix + num;
- }
- // 情况二:小于等于 10
- if (num < 10) {
- return `${prefix}≤10`;
- }
- // 情况三:大于 10,除第一位外,其它位都显示为0
- // 例如:100 - 199 显示为 100+
- // 9000 - 9999 显示为 9000+
- const numStr = num.toString();
- const first = numStr[0];
- const other = '0'.repeat(numStr.length - 1);
- return `${prefix}${first}${other}+`;
+ num = num || 0;
+ // 情况一:精确数值
+ if (type === 'exact') {
+ return prefix + num;
+ }
+ // 情况二:小于等于 10
+ if (num < 10) {
+ return `${prefix}≤10`;
+ }
+ // 情况三:大于 10,除第一位外,其它位都显示为0
+ // 例如:100 - 199 显示为 100+
+ // 9000 - 9999 显示为 9000+
+ const numStr = num.toString();
+ const first = numStr[0];
+ const other = '0'.repeat(numStr.length - 1);
+ return `${prefix}${first}${other}+`;
}
// 格式化价格
export function formatPrice(e) {
- return e.length === 1 ? e[0] : e.join('~');
+ return e.length === 1 ? e[0] : e.join('~');
}
// 视频格式后缀列表
@@ -75,19 +79,19 @@ const VIDEO_SUFFIX_LIST = ['.avi', '.mp4'];
* @return {{src: string, type: 'video' | 'image' }[]} 转换后的链接列表
*/
export function formatGoodsSwiper(urlList) {
- return (
- urlList
- ?.filter((url) => url)
- .map((url, key) => {
- const isVideo = VIDEO_SUFFIX_LIST.some((suffix) => url.includes(suffix));
- const type = isVideo ? 'video' : 'image';
- const src = $url.cdn(url);
- return {
- type,
- src,
- };
- }) || []
- );
+ return (
+ urlList
+ ?.filter((url) => url)
+ .map((url, key) => {
+ const isVideo = VIDEO_SUFFIX_LIST.some((suffix) => url.includes(suffix));
+ const type = isVideo ? 'video' : 'image';
+ const src = $url.cdn(url);
+ return {
+ type,
+ src,
+ };
+ }) || []
+ );
}
/**
@@ -97,16 +101,16 @@ export function formatGoodsSwiper(urlList) {
* @return {string} 颜色的 class 名称
*/
export function formatOrderColor(order) {
- if (order.status === 0) {
- return 'info-color';
- }
- if (order.status === 10 || order.status === 20 || (order.status === 30 && !order.commentStatus)) {
- return 'warning-color';
- }
- if (order.status === 30 && order.commentStatus) {
- return 'success-color';
- }
- return 'danger-color';
+ if (order.status === 0) {
+ return 'info-color';
+ }
+ if (order.status === 10 || order.status === 20 || (order.status === 30 && !order.commentStatus)) {
+ return 'warning-color';
+ }
+ if (order.status === 30 && order.commentStatus) {
+ return 'success-color';
+ }
+ return 'danger-color';
}
/**
@@ -115,25 +119,25 @@ export function formatOrderColor(order) {
* @param order 订单
*/
export function formatOrderStatus(order) {
- if (order.status === 0) {
- return '待付款';
- }
- if (order.status === 10 && order.deliveryType === 1) {
- return '待发货';
- }
- if (order.status === 10 && order.deliveryType === 2) {
- return '待核销';
- }
- if (order.status === 20) {
- return '待收货';
- }
- if (order.status === 30 && !order.commentStatus) {
- return '待评价';
- }
- if (order.status === 30 && order.commentStatus) {
- return '已完成';
- }
- return '已关闭';
+ if (order.status === 0) {
+ return '待付款';
+ }
+ if (order.status === 10 && order.deliveryType === 1) {
+ return '待发货';
+ }
+ if (order.status === 10 && order.deliveryType === 2) {
+ return '待核销';
+ }
+ if (order.status === 20) {
+ return '待收货';
+ }
+ if (order.status === 30 && !order.commentStatus) {
+ return '待评价';
+ }
+ if (order.status === 30 && order.commentStatus) {
+ return '已完成';
+ }
+ return '已关闭';
}
/**
@@ -142,22 +146,22 @@ export function formatOrderStatus(order) {
* @param order 订单
*/
export function formatOrderStatusDescription(order) {
- if (order.status === 0) {
- return `请在 ${formatDate(order.payExpireTime)} 前完成支付`;
- }
- if (order.status === 10) {
- return '商家未发货,请耐心等待';
- }
- if (order.status === 20) {
- return '商家已发货,请耐心等待';
- }
- if (order.status === 30 && !order.commentStatus) {
- return '已收货,快去评价一下吧';
- }
- if (order.status === 30 && order.commentStatus) {
- return '交易完成,感谢您的支持';
- }
- return '交易关闭';
+ if (order.status === 0) {
+ return `请在 ${formatDate(order.payExpireTime)} 前完成支付`;
+ }
+ if (order.status === 10) {
+ return '商家未发货,请耐心等待';
+ }
+ if (order.status === 20) {
+ return '商家已发货,请耐心等待';
+ }
+ if (order.status === 30 && !order.commentStatus) {
+ return '已收货,快去评价一下吧';
+ }
+ if (order.status === 30 && order.commentStatus) {
+ return '交易完成,感谢您的支持';
+ }
+ return '交易关闭';
}
/**
@@ -166,32 +170,32 @@ export function formatOrderStatusDescription(order) {
* @param order 订单
*/
export function handleOrderButtons(order) {
- order.buttons = [];
- if (order.type === 3) {
- // 查看拼团
- order.buttons.push('combination');
- }
- if (order.status === 20) {
- // 确认收货
- order.buttons.push('confirm');
- }
- if (order.logisticsId > 0) {
- // 查看物流
- order.buttons.push('express');
- }
- if (order.status === 0) {
- // 取消订单 / 发起支付
- order.buttons.push('cancel');
- order.buttons.push('pay');
- }
- if (order.status === 30 && !order.commentStatus) {
- // 发起评价
- order.buttons.push('comment');
- }
- if (order.status === 40) {
- // 删除订单
- order.buttons.push('delete');
- }
+ order.buttons = [];
+ if (order.type === 3) {
+ // 查看拼团
+ order.buttons.push('combination');
+ }
+ if (order.status === 20) {
+ // 确认收货
+ order.buttons.push('confirm');
+ }
+ if (order.logisticsId > 0) {
+ // 查看物流
+ order.buttons.push('express');
+ }
+ if (order.status === 0) {
+ // 取消订单 / 发起支付
+ order.buttons.push('cancel');
+ order.buttons.push('pay');
+ }
+ if (order.status === 30 && !order.commentStatus) {
+ // 发起评价
+ order.buttons.push('comment');
+ }
+ if (order.status === 40) {
+ // 删除订单
+ order.buttons.push('delete');
+ }
}
/**
@@ -200,31 +204,31 @@ export function handleOrderButtons(order) {
* @param afterSale 售后
*/
export function formatAfterSaleStatus(afterSale) {
- if (afterSale.status === 10) {
- return '申请售后';
- }
- if (afterSale.status === 20) {
- return '商品待退货';
- }
- if (afterSale.status === 30) {
- return '商家待收货';
- }
- if (afterSale.status === 40) {
- return '等待退款';
- }
- if (afterSale.status === 50) {
- return '退款成功';
- }
- if (afterSale.status === 61) {
- return '买家取消';
- }
- if (afterSale.status === 62) {
- return '商家拒绝';
- }
- if (afterSale.status === 63) {
- return '商家拒收货';
- }
- return '未知状态';
+ if (afterSale.status === 10) {
+ return '申请售后';
+ }
+ if (afterSale.status === 20) {
+ return '商品待退货';
+ }
+ if (afterSale.status === 30) {
+ return '商家待收货';
+ }
+ if (afterSale.status === 40) {
+ return '等待退款';
+ }
+ if (afterSale.status === 50) {
+ return '退款成功';
+ }
+ if (afterSale.status === 61) {
+ return '买家取消';
+ }
+ if (afterSale.status === 62) {
+ return '商家拒绝';
+ }
+ if (afterSale.status === 63) {
+ return '商家拒收货';
+ }
+ return '未知状态';
}
/**
@@ -233,31 +237,31 @@ export function formatAfterSaleStatus(afterSale) {
* @param afterSale 售后
*/
export function formatAfterSaleStatusDescription(afterSale) {
- if (afterSale.status === 10) {
- return '退款申请待商家处理';
- }
- if (afterSale.status === 20) {
- return '请退货并填写物流信息';
- }
- if (afterSale.status === 30) {
- return '退货退款申请待商家处理';
- }
- if (afterSale.status === 40) {
- return '等待退款';
- }
- if (afterSale.status === 50) {
- return '退款成功';
- }
- if (afterSale.status === 61) {
- return '退款关闭';
- }
- if (afterSale.status === 62) {
- return `商家不同意退款申请,拒绝原因:${afterSale.auditReason}`;
- }
- if (afterSale.status === 63) {
- return `商家拒绝收货,不同意退款,拒绝原因:${afterSale.auditReason}`;
- }
- return '未知状态';
+ if (afterSale.status === 10) {
+ return '退款申请待商家处理';
+ }
+ if (afterSale.status === 20) {
+ return '请退货并填写物流信息';
+ }
+ if (afterSale.status === 30) {
+ return '退货退款申请待商家处理';
+ }
+ if (afterSale.status === 40) {
+ return '等待退款';
+ }
+ if (afterSale.status === 50) {
+ return '退款成功';
+ }
+ if (afterSale.status === 61) {
+ return '退款关闭';
+ }
+ if (afterSale.status === 62) {
+ return `商家不同意退款申请,拒绝原因:${afterSale.auditReason}`;
+ }
+ if (afterSale.status === 63) {
+ return `商家拒绝收货,不同意退款,拒绝原因:${afterSale.auditReason}`;
+ }
+ return '未知状态';
}
/**
@@ -266,15 +270,15 @@ export function formatAfterSaleStatusDescription(afterSale) {
* @param afterSale 售后
*/
export function handleAfterSaleButtons(afterSale) {
- afterSale.buttons = [];
- if ([10, 20, 30].includes(afterSale.status)) {
- // 取消订单
- afterSale.buttons.push('cancel');
- }
- if (afterSale.status === 20) {
- // 退货信息
- afterSale.buttons.push('delivery');
- }
+ afterSale.buttons = [];
+ if ([10, 20, 30].includes(afterSale.status)) {
+ // 取消订单
+ afterSale.buttons.push('cancel');
+ }
+ if (afterSale.status === 20) {
+ // 退货信息
+ afterSale.buttons.push('delivery');
+ }
}
/**
@@ -284,28 +288,28 @@ export function handleAfterSaleButtons(afterSale) {
* @return {{s: string, ms: number, h: string, m: string}} 持续时间
*/
export function useDurationTime(toTime, fromTime = '') {
- toTime = getDayjsTime(toTime);
- if (fromTime === '') {
- fromTime = dayjs();
- }
- let duration = ref(toTime - fromTime);
- if (duration.value > 0) {
- setTimeout(() => {
- if (duration.value > 0) {
- duration.value -= 1000;
- }
- }, 1000);
- }
+ toTime = getDayjsTime(toTime);
+ if (fromTime === '') {
+ fromTime = dayjs();
+ }
+ let duration = ref(toTime - fromTime);
+ if (duration.value > 0) {
+ setTimeout(() => {
+ if (duration.value > 0) {
+ duration.value -= 1000;
+ }
+ }, 1000);
+ }
- let durationTime = dayjs.duration(duration.value);
- return {
- h: (durationTime.months() * 30 * 24 + durationTime.days() * 24 + durationTime.hours())
- .toString()
- .padStart(2, '0'),
- m: durationTime.minutes().toString().padStart(2, '0'),
- s: durationTime.seconds().toString().padStart(2, '0'),
- ms: durationTime.$ms,
- };
+ let durationTime = dayjs.duration(duration.value);
+ return {
+ h: (durationTime.months() * 30 * 24 + durationTime.days() * 24 + durationTime.hours())
+ .toString()
+ .padStart(2, '0'),
+ m: durationTime.minutes().toString().padStart(2, '0'),
+ s: durationTime.seconds().toString().padStart(2, '0'),
+ ms: durationTime.$ms,
+ };
}
/**
@@ -314,19 +318,19 @@ export function useDurationTime(toTime, fromTime = '') {
* @return {dayjs.Dayjs}
*/
function getDayjsTime(time) {
- time = time.toString();
- if (time.indexOf('-') > 0) {
- // 'date'
- return dayjs(time);
- }
- if (time.length > 10) {
- // 'timestamp'
- return dayjs(parseInt(time));
- }
- if (time.length === 10) {
- // 'unixTime'
- return dayjs.unix(parseInt(time));
- }
+ time = time.toString();
+ if (time.indexOf('-') > 0) {
+ // 'date'
+ return dayjs(time);
+ }
+ if (time.length > 10) {
+ // 'timestamp'
+ return dayjs(parseInt(time));
+ }
+ if (time.length === 10) {
+ // 'unixTime'
+ return dayjs.unix(parseInt(time));
+ }
}
/**
@@ -336,7 +340,7 @@ function getDayjsTime(time) {
* @returns {string} 元,例如说 1.00 元
*/
export function fen2yuan(price) {
- return (price / 100.0).toFixed(2);
+ return (price / 100.0).toFixed(2);
}
/**
@@ -354,55 +358,99 @@ export function fen2yuan(price) {
* @param skus 商品 SKU 数组
*/
export function convertProductPropertyList(skus) {
- let result = [];
- for (const sku of skus) {
- if (!sku.properties) {
- continue;
- }
- for (const property of sku.properties) {
- // ① 先处理属性
- let resultProperty = result.find((item) => item.id === property.propertyId);
- if (!resultProperty) {
- resultProperty = {
- id: property.propertyId,
- name: property.propertyName,
- values: [],
- };
- result.push(resultProperty);
- }
- // ② 再处理属性值
- let resultValue = resultProperty.values.find((item) => item.id === property.valueId);
- if (!resultValue) {
- resultProperty.values.push({
- id: property.valueId,
- name: property.valueName,
- });
- }
- }
- }
- return result;
+ let result = [];
+ for (const sku of skus) {
+ if (!sku.properties) {
+ continue;
+ }
+ for (const property of sku.properties) {
+ // ① 先处理属性
+ let resultProperty = result.find((item) => item.id === property.propertyId);
+ if (!resultProperty) {
+ resultProperty = {
+ id: property.propertyId,
+ name: property.propertyName,
+ values: [],
+ };
+ result.push(resultProperty);
+ }
+ // ② 再处理属性值
+ let resultValue = resultProperty.values.find((item) => item.id === property.valueId);
+ if (!resultValue) {
+ resultProperty.values.push({
+ id: property.valueId,
+ name: property.valueName,
+ });
+ }
+ }
+ }
+ return result;
}
export function appendSettlementProduct(spus, settlementInfos) {
- if (!settlementInfos || settlementInfos.length === 0) {
- return;
- }
- for (const spu of spus) {
- const settlementInfo = settlementInfos.find((info) => info.spuId === spu.id);
- if (!settlementInfo) {
- return;
- }
- // 选择价格最小的 SKU 设置到 SPU 上
- const settlementSku = settlementInfo.skus
- .filter((sku) => sku.promotionPrice > 0)
- .reduce((prev, curr) => (prev.promotionPrice < curr.promotionPrice ? prev : curr));
- if (settlementSku) {
- spu.promotionType = settlementSku.promotionType;
- spu.promotionPrice = settlementSku.promotionPrice;
- }
- // 设置【满减送】活动
- if (settlementInfo.rewardActivity) {
- spu.rewardActivity = settlementInfo.rewardActivity;
- }
- }
+ if (!settlementInfos || settlementInfos.length === 0) {
+ return;
+ }
+ for (const spu of spus) {
+ const settlementInfo = settlementInfos.find((info) => info.spuId === spu.id);
+ if (!settlementInfo) {
+ return;
+ }
+ // 选择价格最小的 SKU 设置到 SPU 上
+ const settlementSku = settlementInfo.skus
+ .filter((sku) => sku.promotionPrice > 0)
+ .reduce((prev, curr) => (prev.promotionPrice < curr.promotionPrice ? prev : curr));
+ if (settlementSku) {
+ spu.promotionType = settlementSku.promotionType;
+ spu.promotionPrice = settlementSku.promotionPrice;
+ }
+ // 设置【满减送】活动
+ if (settlementInfo.rewardActivity) {
+ spu.rewardActivity = settlementInfo.rewardActivity;
+ }
+ }
}
+
+//处理促销信息
+export function handeleData(array) {
+ const array2 = ref([{
+ name: '满减',
+ value: []
+ },
+ {
+ name: '满送',
+ value: []
+ },
+ {
+ name: '包邮',
+ value: []
+ },
+ {
+ name: '赠品',
+ value: []
+ }
+ ]);
+
+ array.forEach(item => {
+ Object.entries(item).forEach(([key, value]) => {
+ const type = parseInt(key);
+ switch (type) {
+ case 1:
+ array2.value[0].value.push(value); // 满减
+ break;
+ case 2:
+ array2.value[1].value.push(value); // 满送
+ break;
+ case 3:
+ array2.value[2].value.push(value); // 包邮
+ break;
+ case 4:
+ array2.value[3].value.push(value); // 赠品
+ break;
+ default:
+ break;
+ }
+ });
+ });
+ return array2
+}
\ No newline at end of file
From ab709267be58bcd142a031e3882591d9053e071e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=97=B4=E8=B4=A7?= <252048765@qq.com>
Date: Wed, 18 Sep 2024 18:11:54 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E6=BB=A1=E5=87=8F=E6=98=BE=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/goods/index.vue | 5 +++++
sheep/hooks/useGoods.js | 9 +--------
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/pages/goods/index.vue b/pages/goods/index.vue
index c78ae242..c6031b1d 100644
--- a/pages/goods/index.vue
+++ b/pages/goods/index.vue
@@ -83,6 +83,11 @@
券
{{(state.rewardActivity.ruleDescriptions[0])[1]}}
+
+
+ {{(state.rewardActivity.ruleDescriptions[0])[1]}}
+
diff --git a/sheep/hooks/useGoods.js b/sheep/hooks/useGoods.js
index 5c12f26a..a8bf1b26 100644
--- a/sheep/hooks/useGoods.js
+++ b/sheep/hooks/useGoods.js
@@ -418,16 +418,12 @@ export function handeleData(array) {
value: []
},
{
- name: '满送',
+ name: '赠品',
value: []
},
{
name: '包邮',
value: []
- },
- {
- name: '赠品',
- value: []
}
]);
@@ -444,9 +440,6 @@ export function handeleData(array) {
case 3:
array2.value[2].value.push(value); // 包邮
break;
- case 4:
- array2.value[3].value.push(value); // 赠品
- break;
default:
break;
}