Pre Merge pull request !26 from Bluemark/vue3_tmp
						commit
						6a8785c323
					
				
							
								
								
									
										20
									
								
								.env
								
								
								
								
							
							
						
						
									
										20
									
								
								.env
								
								
								
								
							|  | @ -1,20 +0,0 @@ | |||
| # 版本号 | ||||
| SHOPRO_VERSION = v1.8.3 | ||||
| 
 | ||||
| # 正式环境接口域名 | ||||
| SHOPRO_BASE_URL = https://api.shopro.sheepjs.com | ||||
| 
 | ||||
| # 开发环境接口域名 | ||||
| SHOPRO_DEV_BASE_URL = https://api.shopro.sheepjs.com | ||||
| 
 | ||||
| # 开发环境运行端口 | ||||
| SHOPRO_DEV_PORT = 3000 | ||||
| 
 | ||||
| # 接口地址前缀 | ||||
| SHOPRO_API_PATH = /shop/api/ | ||||
| 
 | ||||
| # 客户端静态资源地址 空=默认使用服务端指定的CDN资源地址前缀 | local=本地  |  http(s)://xxx.xxx=自定义静态资源地址前缀 | ||||
| SHOPRO_STATIC_URL = https://file.sheepjs.com | ||||
| 
 | ||||
| # 是否开启直播  1 开启直播 | 0 关闭直播 (小程序官方后台未审核开通直播权限时请勿开启) | ||||
| SHOPRO_MPLIVE_ON = 0 | ||||
|  | @ -148,11 +148,20 @@ | |||
| 		}); | ||||
| 		if (res.code === 0) { | ||||
| 			// 拦截修改数据 | ||||
| 			let obj2 = { | ||||
| 				2: '折扣', | ||||
| 				1: '满减' | ||||
| 			} | ||||
| 			let obj = { | ||||
| 				1: '可用', | ||||
| 				2: '已用', | ||||
| 				3: '过期' | ||||
| 			} | ||||
| 			let obj3 = { | ||||
| 				1: '已领取', | ||||
| 				2: '已使用', | ||||
| 				3: '已过期' | ||||
| 			} | ||||
| 			res.data.list = res.data.list.map(item => { | ||||
| 				return { | ||||
| 					...item, | ||||
|  | @ -160,7 +169,8 @@ | |||
| 					amount: (item.discountPrice / 100).toFixed(2), | ||||
| 					use_start_time: sheep.$helper.timeFormat(item.validStartTime, 'yyyy-mm-dd hh:MM:ss'), | ||||
| 					use_end_time: sheep.$helper.timeFormat(item.validEndTime, 'yyyy-mm-dd hh:MM:ss'), | ||||
| 					status_text: obj[item.status] | ||||
| 					status_text: obj[item.status], | ||||
| 					type_text: obj2[item.discountType] | ||||
| 				} | ||||
| 			}); | ||||
| 			if (page >= 2) { | ||||
|  |  | |||
|  | @ -1,171 +1,165 @@ | |||
| <template> | ||||
|   <su-fixed bottom placeholder bg="bg-white"> | ||||
|     <view class="ui-tabbar-box"> | ||||
|       <view class="ui-tabbar ss-flex ss-col-center ss-row-between"> | ||||
|         <view | ||||
|           v-if="collectIcon" | ||||
|           class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
|           @tap="onFavorite" | ||||
|         > | ||||
|           <block v-if="modelValue.favorite"> | ||||
|             <image | ||||
|               class="item-icon" | ||||
|               :src="sheep.$url.static('/static/img/shop/goods/collect_1.gif')" | ||||
|               mode="aspectFit" | ||||
|             ></image> | ||||
|             <view class="item-title">已收藏</view> | ||||
|           </block> | ||||
|           <block v-else> | ||||
|             <image | ||||
|               class="item-icon" | ||||
|               :src="sheep.$url.static('/static/img/shop/goods/collect_0.png')" | ||||
|               mode="aspectFit" | ||||
|             ></image> | ||||
|             <view class="item-title">收藏</view> | ||||
|           </block> | ||||
|         </view> | ||||
|         <view | ||||
|           v-if="serviceIcon" | ||||
|           class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
|           @tap="onChat" | ||||
|         > | ||||
|           <image | ||||
|             class="item-icon" | ||||
|             :src="sheep.$url.static('/static/img/shop/goods/message.png')" | ||||
|             mode="aspectFit" | ||||
|           ></image> | ||||
|           <view class="item-title">客服</view> | ||||
|         </view> | ||||
|         <view | ||||
|           v-if="shareIcon" | ||||
|           class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
|           @tap="showShareModal" | ||||
|         > | ||||
|           <image | ||||
|             class="item-icon" | ||||
|             :src="sheep.$url.static('/static/img/shop/goods/share.png')" | ||||
|             mode="aspectFit" | ||||
|           ></image> | ||||
|           <view class="item-title">分享</view> | ||||
|         </view> | ||||
|         <slot></slot> | ||||
|       </view> | ||||
|     </view> | ||||
|   </su-fixed> | ||||
| 	<su-fixed bottom placeholder bg="bg-white"> | ||||
| 		<view class="ui-tabbar-box"> | ||||
| 			<view class="ui-tabbar ss-flex ss-col-center ss-row-between"> | ||||
| 				<view v-if="collectIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
| 					@tap="onFavorite"> | ||||
| 					<block v-if="modelValue.favorite"> | ||||
| 						<image class="item-icon" :src="sheep.$url.static('/static/img/shop/goods/collect_1.gif')" | ||||
| 							mode="aspectFit"></image> | ||||
| 						<view class="item-title">已收藏</view> | ||||
| 					</block> | ||||
| 					<block v-else> | ||||
| 						<image class="item-icon" :src="sheep.$url.static('/static/img/shop/goods/collect_0.png')" | ||||
| 							mode="aspectFit"></image> | ||||
| 						<view class="item-title">收藏</view> | ||||
| 					</block> | ||||
| 				</view> | ||||
| 				<view v-if="serviceIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
| 					@tap="onChat"> | ||||
| 					<image class="item-icon" :src="sheep.$url.static('/static/img/shop/goods/message.png')" | ||||
| 						mode="aspectFit"></image> | ||||
| 					<view class="item-title">客服</view> | ||||
| 				</view> | ||||
| 				<view v-if="shareIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center" | ||||
| 					@tap="showShareModal"> | ||||
| 					<image class="item-icon" :src="sheep.$url.static('/static/img/shop/goods/share.png')" | ||||
| 						mode="aspectFit"></image> | ||||
| 					<view class="item-title">分享</view> | ||||
| 				</view> | ||||
| 				<slot></slot> | ||||
| 			</view> | ||||
| 		</view> | ||||
| 	</su-fixed> | ||||
| </template> | ||||
| 
 | ||||
| <script setup> | ||||
|   /** | ||||
|    * | ||||
|    * 底部导航 | ||||
|    * | ||||
|    * @property {String} bg 			 			- 背景颜色Class | ||||
|    * @property {String} ui 			 			- 自定义样式Class | ||||
|    * @property {Boolean} noFixed 		 			- 是否定位 | ||||
|    * @property {Boolean} topRadius 		 		- 上圆角 | ||||
|    * | ||||
|    * | ||||
|    */ | ||||
| 	/** | ||||
| 	 * | ||||
| 	 * 底部导航 | ||||
| 	 * | ||||
| 	 * @property {String} bg 			 			- 背景颜色Class | ||||
| 	 * @property {String} ui 			 			- 自定义样式Class | ||||
| 	 * @property {Boolean} noFixed 		 			- 是否定位 | ||||
| 	 * @property {Boolean} topRadius 		 		- 上圆角 | ||||
| 	 * | ||||
| 	 * | ||||
| 	 */ | ||||
| 
 | ||||
|   import { computed, reactive } from 'vue'; | ||||
|   import sheep from '@/sheep'; | ||||
|   import { showShareModal } from '@/sheep/hooks/useModal'; | ||||
| 	import { | ||||
| 		computed, | ||||
| 		reactive | ||||
| 	} from 'vue'; | ||||
| 	import sheep from '@/sheep'; | ||||
| 	import { | ||||
| 		showShareModal | ||||
| 	} from '@/sheep/hooks/useModal'; | ||||
| 
 | ||||
|   // 数据 | ||||
|   const state = reactive({}); | ||||
| 	// 数据 | ||||
| 	const state = reactive({}); | ||||
| 
 | ||||
|   // 接收参数 | ||||
|   const props = defineProps({ | ||||
|     modelValue: { | ||||
|       type: Object, | ||||
|       default() {}, | ||||
|     }, | ||||
|     bg: { | ||||
|       type: String, | ||||
|       default: 'bg-white', | ||||
|     }, | ||||
|     bgStyles: { | ||||
|       type: Object, | ||||
|       default() {}, | ||||
|     }, | ||||
|     ui: { | ||||
|       type: String, | ||||
|       default: '', | ||||
|     }, | ||||
| 	// 接收参数 | ||||
| 	const props = defineProps({ | ||||
| 		modelValue: { | ||||
| 			type: Object, | ||||
| 			default () {}, | ||||
| 		}, | ||||
| 		bg: { | ||||
| 			type: String, | ||||
| 			default: 'bg-white', | ||||
| 		}, | ||||
| 		bgStyles: { | ||||
| 			type: Object, | ||||
| 			default () {}, | ||||
| 		}, | ||||
| 		ui: { | ||||
| 			type: String, | ||||
| 			default: '', | ||||
| 		}, | ||||
| 
 | ||||
|     noFixed: { | ||||
|       type: Boolean, | ||||
|       default: false, | ||||
|     }, | ||||
|     topRadius: { | ||||
|       type: Number, | ||||
|       default: 0, | ||||
|     }, | ||||
|     collectIcon: { | ||||
|       type: Boolean, | ||||
|       default: true, | ||||
|     }, | ||||
|     serviceIcon: { | ||||
|       type: Boolean, | ||||
|       default: true, | ||||
|     }, | ||||
|     shareIcon: { | ||||
|       type: Boolean, | ||||
|       default: true, | ||||
|     }, | ||||
|   }); | ||||
|   const elStyles = computed(() => { | ||||
|     return { | ||||
|       'border-top-left-radius': props.topRadius + 'rpx', | ||||
|       'border-top-right-radius': props.topRadius + 'rpx', | ||||
|       overflow: 'hidden', | ||||
|     }; | ||||
|   }); | ||||
| 		noFixed: { | ||||
| 			type: Boolean, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		topRadius: { | ||||
| 			type: Number, | ||||
| 			default: 0, | ||||
| 		}, | ||||
| 		collectIcon: { | ||||
| 			type: Boolean, | ||||
| 			default: true, | ||||
| 		}, | ||||
| 		serviceIcon: { | ||||
| 			type: Boolean, | ||||
| 			default: true, | ||||
| 		}, | ||||
| 		shareIcon: { | ||||
| 			type: Boolean, | ||||
| 			default: true, | ||||
| 		}, | ||||
| 	}); | ||||
| 	const elStyles = computed(() => { | ||||
| 		return { | ||||
| 			'border-top-left-radius': props.topRadius + 'rpx', | ||||
| 			'border-top-right-radius': props.topRadius + 'rpx', | ||||
| 			overflow: 'hidden', | ||||
| 		}; | ||||
| 	}); | ||||
| 
 | ||||
|   const tabbarheight = (e) => { | ||||
|     uni.setStorageSync('tabbar', e); | ||||
|   }; | ||||
|   async function onFavorite() { | ||||
|     const { error } = await sheep.$api.user.favorite.do(props.modelValue.id); | ||||
|     if (error === 0) { | ||||
|       if (props.modelValue.favorite) { | ||||
|         props.modelValue.favorite = 0; | ||||
|       } else { | ||||
|         props.modelValue.favorite = 1; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 	const tabbarheight = (e) => { | ||||
| 		uni.setStorageSync('tabbar', e); | ||||
| 	}; | ||||
| 	async function onFavorite() { | ||||
| 		// const { error } = await sheep.$api.user.favorite.do(props.modelValue.id); | ||||
| 		// if (error === 0) { | ||||
| 		//   if (props.modelValue.favorite) { | ||||
| 		//     props.modelValue.favorite = 0; | ||||
| 		//   } else { | ||||
| 		//     props.modelValue.favorite = 1; | ||||
| 		//   } | ||||
| 		// } | ||||
| 		let data; | ||||
| 		if (props.modelValue.favorite) { | ||||
| 			data = await sheep.$api.user.favorite.dos(props.modelValue.id); | ||||
| 		} else { | ||||
| 			data = await sheep.$api.user.favorite.do(props.modelValue.id); | ||||
| 		} | ||||
| 		if (data.data) { | ||||
| 			props.modelValue.favorite = !props.modelValue.favorite; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|   const onChat = () => { | ||||
|     sheep.$router.go('/pages/chat/index', { | ||||
|       id: props.modelValue.id, | ||||
|     }); | ||||
|   }; | ||||
| 	const onChat = () => { | ||||
| 		sheep.$router.go('/pages/chat/index', { | ||||
| 			id: props.modelValue.id, | ||||
| 		}); | ||||
| 	}; | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
|   .ui-tabbar-box { | ||||
|     box-shadow: 0px -6px 10px 0px rgba(51, 51, 51, 0.2); | ||||
|   } | ||||
|   .ui-tabbar { | ||||
|     display: flex; | ||||
|     height: 50px; | ||||
|     background: #fff; | ||||
| 	.ui-tabbar-box { | ||||
| 		box-shadow: 0px -6px 10px 0px rgba(51, 51, 51, 0.2); | ||||
| 	} | ||||
| 
 | ||||
|     .detail-tabbar-item { | ||||
|       width: 100rpx; | ||||
| 	.ui-tabbar { | ||||
| 		display: flex; | ||||
| 		height: 50px; | ||||
| 		background: #fff; | ||||
| 
 | ||||
|       .item-icon { | ||||
|         width: 40rpx; | ||||
|         height: 40rpx; | ||||
|       } | ||||
| 		.detail-tabbar-item { | ||||
| 			width: 100rpx; | ||||
| 
 | ||||
|       .item-title { | ||||
|         font-size: 20rpx; | ||||
|         font-weight: 500; | ||||
|         line-height: 20rpx; | ||||
|         margin-top: 12rpx; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 			.item-icon { | ||||
| 				width: 40rpx; | ||||
| 				height: 40rpx; | ||||
| 			} | ||||
| 
 | ||||
| 			.item-title { | ||||
| 				font-size: 20rpx; | ||||
| 				font-weight: 500; | ||||
| 				line-height: 20rpx; | ||||
| 				margin-top: 12rpx; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| </style> | ||||
|  | @ -12,9 +12,7 @@ | |||
| 			<block v-else> | ||||
| 				<view class="detail-swiper-selector"> | ||||
| 					<!-- 商品轮播图  --> | ||||
| 					<su-swiper class="ss-m-b-14" isPreview :list="formatGoodsSwiper(state.goodsInfo.sliderPicUrls)" | ||||
|                      dotStyle="tag" imageMode="widthFix" dotCur="bg-mask-40" :seizeHeight="750" /> | ||||
| 
 | ||||
| 					<su-swiper class="ss-m-b-14" isPreview :list="formatGoodsSwiper(state.goodsInfo.sliderPicUrls)" dotStyle="tag" imageMode="widthFix" dotCur="bg-mask-40" :seizeHeight="750" /> | ||||
| 					<!-- 价格+标题 --> | ||||
| 					<view class="title-card detail-card ss-p-y-40 ss-p-x-20"> | ||||
| 						<view class="ss-flex ss-row-between ss-col-center ss-m-b-26"> | ||||
|  | @ -31,6 +29,8 @@ | |||
| 							</view> | ||||
| 						</view> | ||||
| 						<view class="discounts-box ss-flex ss-row-between ss-m-b-28"> | ||||
| 							<!-- 满减送/限时折扣活动的提示 TODO 芋艿:promos 未写 --> | ||||
| 							<div class="tag-content"> | ||||
|               <!-- 满减送/限时折扣活动的提示 TODO 芋艿:promos 未写 --> | ||||
|               <div class="tag-content"> | ||||
| 								<view class="tag-box ss-flex"> | ||||
|  | @ -39,8 +39,7 @@ | |||
| 									</view> | ||||
| 								</view> | ||||
| 							</div> | ||||
| 
 | ||||
|               <!-- 优惠劵 --> | ||||
| 							<!-- 优惠劵 --> | ||||
| 							<view class="get-coupon-box ss-flex ss-col-center ss-m-l-20" @tap="state.showModel = true" | ||||
| 								v-if="state.couponInfo.length"> | ||||
| 								<view class="discounts-title ss-m-r-8">领券</view> | ||||
|  | @ -54,8 +53,8 @@ | |||
| 					<!-- 功能卡片 --> | ||||
| 					<view class="detail-cell-card detail-card ss-flex-col"> | ||||
| 						<detail-cell-sku v-model="state.selectedSku.goods_sku_text" :sku="state.selectedSku" | ||||
|                              @tap="state.showSelectSku = true" /> | ||||
|             <!-- TODO 芋艿:可能暂时不考虑使用 --> | ||||
| 							@tap="state.showSelectSku = true" /> | ||||
| 						<!-- TODO 芋艿:可能暂时不考虑使用 --> | ||||
| 						<detail-cell-service v-if="state.goodsInfo.service" v-model="state.goodsInfo.service" /> | ||||
| 						<detail-cell-params v-if="state.goodsInfo.params" v-model="state.goodsInfo.params" /> | ||||
| 					</view> | ||||
|  | @ -87,12 +86,13 @@ | |||
| 						<button class="ss-reset-button disabled-btn" disabled> 已售罄 </button> | ||||
| 					</view> | ||||
| 				</detail-tabbar> | ||||
| 				<!-- 优惠劵弹窗 --> | ||||
| 				<s-coupon-get v-model="state.couponInfo" :show="state.showModel" @close="state.showModel = false" @get="onGet" /> | ||||
| 
 | ||||
|         <!-- 优惠劵弹窗 --> | ||||
| 				<s-coupon-get v-model="state.couponInfo" :show="state.showModel" @close="state.showModel = false" | ||||
|                       @get="onGet" /> | ||||
| 
 | ||||
|         <!-- 满减送/限时折扣活动弹窗 --> | ||||
| 				<!-- 满减送/限时折扣活动弹窗 --> | ||||
|         		<!-- 优惠劵弹窗 --> | ||||
| 				<s-coupon-get v-model="state.couponInfo" :show="state.showModel" @close="state.showModel = false" @get="onGet" /> | ||||
|        			 <!-- 满减送/限时折扣活动弹窗 --> | ||||
| 				<s-activity-pop v-model="state.activityInfo" :show="state.showActivityModel" | ||||
|                         @close="state.showActivityModel = false" /> | ||||
| 			</block> | ||||
|  | @ -104,9 +104,16 @@ | |||
| 	import { reactive, computed } from 'vue'; | ||||
| 	import { onLoad, onPageScroll } from '@dcloudio/uni-app'; | ||||
| 	import sheep from '@/sheep'; | ||||
|   import CouponApi from '@/sheep/api/promotion/coupon'; | ||||
|   import ActivityApi from '@/sheep/api/promotion/activity'; | ||||
|   import { formatSales, formatGoodsSwiper, fen2yuan, } from '@/sheep/hooks/useGoods'; | ||||
| 	import CouponApi from '@/sheep/api/promotion/coupon'; | ||||
| 	import ActivityApi from '@/sheep/api/promotion/activity'; | ||||
| 	import { | ||||
| 		formatSales, | ||||
| 		formatGoodsSwiper, | ||||
| 		fen2yuan, | ||||
| 	} from '@/sheep/hooks/useGoods'; | ||||
|     import CouponApi from '@/sheep/api/promotion/coupon'; | ||||
|     import ActivityApi from '@/sheep/api/promotion/activity'; | ||||
|     import { formatSales, formatGoodsSwiper, fen2yuan, } from '@/sheep/hooks/useGoods'; | ||||
| 	import detailNavbar from './components/detail/detail-navbar.vue'; | ||||
| 	import detailCellSku from './components/detail/detail-cell-sku.vue'; | ||||
| 	import detailCellService from './components/detail/detail-cell-service.vue'; | ||||
|  | @ -130,16 +137,17 @@ | |||
| 		couponInfo: [], // 可领取的 Coupon 优惠劵的列表 | ||||
| 		showActivityModel: false, // 【满减送/限时折扣】是否展示 Activity 营销活动的弹窗 | ||||
| 		activityInfo: [], // 【满减送/限时折扣】可参与的 Activity 营销活动的列表 | ||||
|     activityList: [], // 【秒杀/拼团/砍价】可参与的 Activity 营销活动的列表 | ||||
| 	}); | ||||
| 		activityList: [], // 【秒杀/拼团/砍价】可参与的 Activity 营销活动的列表 | ||||
|  	}); | ||||
| 
 | ||||
| 	// 规格变更 | ||||
| 	function onSkuChange(e) { | ||||
| 		state.selectedSku = e; | ||||
| 	} | ||||
| 
 | ||||
| 	// 添加购物车 | ||||
| 	// 添加购物车  TODO 芋艿:待测试 | ||||
| 	function onAddCart(e) { | ||||
| 		console.log(e, '加入购物车'); | ||||
| 		sheep.$store('cart').add(e); | ||||
| 	} | ||||
| 
 | ||||
|  | @ -166,10 +174,10 @@ | |||
| 	// 立即领取  TODO 芋艿:待测试 | ||||
| 	async function onGet(id) { | ||||
| 		const { | ||||
| 			error, | ||||
| 			code, | ||||
| 			msg | ||||
| 		} = await sheep.$api.coupon.get(id); | ||||
| 		if (error === 0) { | ||||
| 		if (code === 0) { | ||||
| 			uni.showToast({ | ||||
| 				title: msg, | ||||
| 			}); | ||||
|  | @ -180,6 +188,7 @@ | |||
| 	} | ||||
| 
 | ||||
|   //  TODO 芋艿:待测试 | ||||
| 
 | ||||
| 	const shareInfo = computed(() => { | ||||
| 		if (isEmpty(state.goodsInfo)) return {}; | ||||
| 		return sheep.$platform.share.getShareInfo({ | ||||
|  | @ -207,6 +216,75 @@ | |||
| 		} | ||||
| 		state.goodsId = options.id; | ||||
| 		// 1. 加载商品信息 | ||||
| 		sheep.$api.goods.detail(state.goodsId).then(async (res) => { | ||||
| 			// 未找到商品 | ||||
| 			if (res.code !== 0 || !res.data) { | ||||
| 				state.goodsInfo = null; | ||||
| 				return; | ||||
| 			} | ||||
| 			// 加载到商品 | ||||
| 			state.skeletonLoading = false; | ||||
| 			// 获取收藏信息 | ||||
| 			let dasa = await sheep.$api.goods.exits(options.id); | ||||
| 			res.data.favorite = dasa.data; | ||||
| 			state.goodsInfo = res.data; | ||||
| 			console.log(state.goodsInfo, '商品信息'); | ||||
| 
 | ||||
| 			// 此处调试默认弹出可以修改为点击弹出 | ||||
| 			// 2. 加载优惠劵信息 | ||||
| 			CouponApi.getCouponTemplateList({ | ||||
| 				price: state.goodsInfo.price, | ||||
| 				spuIds: [state.goodsInfo.id], | ||||
| 				skuIds: state.goodsInfo.skus.map(item => item.id), | ||||
| 				// 先写死 | ||||
| 				categoryIds: [52] | ||||
| 			}).then((res) => { | ||||
| 				console.log(res, '优惠券信息进行对接') | ||||
| 				if (res.code !== 0) { | ||||
| 					return; | ||||
| 				} | ||||
| 				// 拦截修改数据 | ||||
| 				let obj2 = { | ||||
| 					2: '折扣', | ||||
| 					1: '满减' | ||||
| 				} | ||||
| 				let obj = { | ||||
| 					1: '可用', | ||||
| 					2: '已用', | ||||
| 					3: '过期' | ||||
| 				} | ||||
| 				let obj3 = { | ||||
| 					1: '已领取', | ||||
| 					2: '已使用', | ||||
| 					3: '已过期' | ||||
| 				} | ||||
| 				res.data = res.data.map(item => { | ||||
| 					return { | ||||
| 						...item, | ||||
| 						enough: (item.usePrice / 100).toFixed(2), | ||||
| 						amount: (item.discountPrice / 100).toFixed(2), | ||||
| 						use_start_time: sheep.$helper.timeFormat(item | ||||
| 							.validStartTime, | ||||
| 							'yyyy-mm-dd hh:MM:ss'), | ||||
| 						use_end_time: sheep.$helper.timeFormat(item.validEndTime, | ||||
| 							'yyyy-mm-dd hh:MM:ss'), | ||||
| 						status_text: obj[item.status], | ||||
| 						type_text: obj2[item.discountType], | ||||
| 						get_status_text: obj3[item.status], | ||||
| 						type_text: obj2[item.discountType] | ||||
| 					} | ||||
| 				}); | ||||
| 				state.couponInfo = res.data; | ||||
| 			}); | ||||
| 		}); | ||||
| 		// return; | ||||
| 		// 3. 加载营销活动信息 | ||||
| 		ActivityApi.getActivityListBySpuId(state.goodsId).then((res) => { | ||||
| 			if (res.code !== 0) { | ||||
| 				return; | ||||
| 			} | ||||
| 			state.activityList = res.data; | ||||
| 		}); | ||||
| 		sheep.$api.goods.detail(state.goodsId).then((res) => { | ||||
|       // 未找到商品 | ||||
|       if (res.code !== 0 || !res.data) { | ||||
|  |  | |||
|  | @ -1,41 +1,42 @@ | |||
| <template> | ||||
|   <s-layout | ||||
|     title="我的" | ||||
|     tabbar="/pages/index/user" | ||||
|     navbar="custom" | ||||
|     :bgStyle="template.page" | ||||
|     :navbarStyle="template.style?.navbar" | ||||
|     onShareAppMessage | ||||
|   > | ||||
|     <s-block v-for="(item, index) in template.components" :key="index" :styles="item.property.style"> | ||||
|       <s-block-item :type="item.id" :data="item.property" :styles="item.property.style" /> | ||||
|     </s-block> | ||||
|   </s-layout> | ||||
| 
 | ||||
| 	<s-layout title="我的" tabbar="/pages/index/user" navbar="custom" :bgStyle="template.page" | ||||
| 		:navbarStyle="template.style?.navbar" onShareAppMessage> | ||||
| 		<s-block v-for="(item, index) in template.components" :key="index" :styles="item.property.style"> | ||||
| 			<s-block-item :type="item.id" :data="item.property" :styles="item.property.style" /> | ||||
| 		</s-block> | ||||
| 	</s-layout> | ||||
| </template> | ||||
| 
 | ||||
| <script setup> | ||||
|   import { computed } from 'vue'; | ||||
|   import { onShow, onPageScroll, onPullDownRefresh } from '@dcloudio/uni-app'; | ||||
|   import sheep from '@/sheep'; | ||||
| 	import { | ||||
| 		computed | ||||
| 	} from 'vue'; | ||||
| 	import { | ||||
| 		onShow, | ||||
| 		onPageScroll, | ||||
| 		onPullDownRefresh | ||||
| 	} from '@dcloudio/uni-app'; | ||||
| 	import sheep from '@/sheep'; | ||||
| 
 | ||||
|   // 隐藏原生tabBar | ||||
|   uni.hideTabBar(); | ||||
| 	// 隐藏原生tabBar | ||||
| 	uni.hideTabBar(); | ||||
| 
 | ||||
|   const template = computed(() => sheep.$store('app').template.user); | ||||
|   const isLogin = computed(() => sheep.$store('user').isLogin); | ||||
| 	const template = computed(() => sheep.$store('app').template.user); | ||||
| 	const isLogin = computed(() => sheep.$store('user').isLogin); | ||||
| 
 | ||||
|   onShow(() => { | ||||
|     sheep.$store('user').updateUserData(); | ||||
|   }); | ||||
| 	onShow(() => { | ||||
| 		sheep.$store('user').updateUserData(); | ||||
| 	}); | ||||
| 
 | ||||
|   onPullDownRefresh(() => { | ||||
|     sheep.$store('user').updateUserData(); | ||||
|     setTimeout(function () { | ||||
|       uni.stopPullDownRefresh(); | ||||
|     }, 800); | ||||
|   }); | ||||
| 	onPullDownRefresh(() => { | ||||
| 		sheep.$store('user').updateUserData(); | ||||
| 		setTimeout(function() { | ||||
| 			uni.stopPullDownRefresh(); | ||||
| 		}, 800); | ||||
| 	}); | ||||
| 
 | ||||
|   onPageScroll(() => {}); | ||||
| 	onPageScroll(() => {}); | ||||
| </script> | ||||
| 
 | ||||
| <style></style> | ||||
|  | @ -1,10 +1,9 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
| 	list: (data) => | ||||
| 		request2({ | ||||
| 			url: 'trade/cart/list', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/cart/list', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
|  | @ -13,7 +12,7 @@ export default { | |||
| 		}), | ||||
| 	append: (data) => | ||||
| 		request({ | ||||
| 			url: 'cart', | ||||
| 			url: '/app-api/trade/cart/add', | ||||
| 			method: 'POST', | ||||
|       // TODO 芋艿:这里没提示
 | ||||
| 			custom: { | ||||
|  | @ -22,18 +21,31 @@ export default { | |||
| 			}, | ||||
| 			data: { | ||||
| 				...data, | ||||
| 				type: 'inc', | ||||
| 				// type: 'inc',
 | ||||
| 			}, | ||||
| 		}), | ||||
| 	// append: (data) =>
 | ||||
| 	// 	request({
 | ||||
| 	// 		url: 'cart',
 | ||||
| 	// 		method: 'POST',
 | ||||
| 	// 		custom: {
 | ||||
| 	// 			showSuccess: true,
 | ||||
| 	// 			successMsg: '已添加到购物车~',
 | ||||
| 	// 		},
 | ||||
| 	// 		data: {
 | ||||
| 	// 			...data,
 | ||||
| 	// 			type: 'inc',
 | ||||
| 	// 		},
 | ||||
| 	// 	}),
 | ||||
| 	// 删除购物车
 | ||||
| 	delete: (ids) => | ||||
| 		request2({ | ||||
| 			url: 'trade/cart/delete?ids=' + ids, | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/cart/delete?ids=' + ids, | ||||
| 			method: 'DELETE', | ||||
| 		}), | ||||
| 	update: (data) => | ||||
| 		request2({ | ||||
| 			url: 'trade/cart/update-count', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/cart/update-count', | ||||
| 			method: 'PUT', | ||||
| 			data: { | ||||
| 				...data, | ||||
|  |  | |||
|  | @ -1,10 +1,8 @@ | |||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
|   list: (params) => | ||||
|     request2({ | ||||
|       url: 'product/category/list', | ||||
|       method: 'GET', | ||||
|       params, | ||||
|     }), | ||||
| 	list: (params) => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/category/list', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 		}), | ||||
| }; | ||||
|  | @ -1,5 +1,4 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
| 	// 我的拼团
 | ||||
|  | @ -13,8 +12,8 @@ export default { | |||
| 			}, | ||||
| 		}), | ||||
| 	userCoupon: (params) => | ||||
| 		request2({ | ||||
| 			url: 'promotion/coupon/page', | ||||
| 		request({ | ||||
| 			url: '/app-api/promotion/coupon/page', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 		}), | ||||
|  | @ -34,9 +33,20 @@ export default { | |||
| 		}), | ||||
| 	get: (id) => | ||||
| 		request({ | ||||
| 			url: 'coupon/get/' + id, | ||||
| 			url: '/app-api/promotion/coupon/take', | ||||
| 			method: 'POST', | ||||
| 			data: { | ||||
| 				templateId: id | ||||
| 			}, | ||||
| 			params: { | ||||
| 				templateId: id | ||||
| 			}, | ||||
| 		}), | ||||
| 	// get: (id) =>
 | ||||
| 	// 	request({
 | ||||
| 	// 		url: 'coupon/get/' + id,
 | ||||
| 	// 		method: 'POST',
 | ||||
| 	// 	}),
 | ||||
| 	listByGoods: (id) => | ||||
| 		request({ | ||||
| 			url: 'coupon/listByGoods/' + id, | ||||
|  |  | |||
|  | @ -1,25 +1,24 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
|   area: () => | ||||
|     request2({ | ||||
|       url: 'system/area/tree', | ||||
|       method: 'GET', | ||||
|     }), | ||||
|   // area: () =>
 | ||||
|   //   request({
 | ||||
|   //     url: 'data/area',
 | ||||
|   //     method: 'GET',
 | ||||
|   //   }),
 | ||||
|   faq: () => | ||||
|     request({ | ||||
|       url: 'data/faq', | ||||
|       method: 'GET', | ||||
|     }), | ||||
|   richtext: (id) => | ||||
|     request({ | ||||
|       url: 'data/richtext/' + id, | ||||
|       method: 'GET', | ||||
|     }), | ||||
| 	area: () => | ||||
| 		request({ | ||||
| 			url: '/app-api/system/area/tree', | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| 	// area: () =>
 | ||||
| 	//   request({
 | ||||
| 	//     url: 'data/area',
 | ||||
| 	//     method: 'GET',
 | ||||
| 	//   }),
 | ||||
| 	faq: () => | ||||
| 		request({ | ||||
| 			url: 'data/faq', | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| 	richtext: (id) => | ||||
| 		request({ | ||||
| 			url: 'data/richtext/' + id, | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| }; | ||||
|  | @ -1,80 +1,84 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
|   // 商品详情
 | ||||
|   detail: (id, params = {}) => | ||||
|     request2({ | ||||
|       url: 'product/spu/get-detail?id=' + id, | ||||
|       method: 'GET', | ||||
|       params, | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
| 	// 商品详情
 | ||||
| 	detail: (id, params = {}) => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/spu/get-detail?id=' + id, | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 
 | ||||
|   // 商品列表
 | ||||
|   list: (params) => | ||||
|     request2({ | ||||
|       url: 'product/spu/page', | ||||
|       method: 'GET', | ||||
|       params, | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
| 	// 商品列表
 | ||||
| 	list: (params) => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/spu/page', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 
 | ||||
|   // 商品查询
 | ||||
|   ids: (params = {}) => | ||||
|     request({ | ||||
|       url: 'goods/goods/ids', | ||||
|       method: 'GET', | ||||
|       params, | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
| 
 | ||||
|   // 商品评价列表
 | ||||
|   comment: (id, params = {}) => | ||||
|     request2({ | ||||
|       url: 'product/comment/list?spuId=' + id, | ||||
|       method: 'GET', | ||||
|       params, | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
|   // 商品评价类型
 | ||||
|   getType: (id) => | ||||
|     request({ | ||||
|       url: 'goods/comment/getType/' + id, | ||||
|       method: 'GET', | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
|   // 活动商品查询
 | ||||
|   // 商品查询
 | ||||
|   activity: (params = {}) => | ||||
|     request({ | ||||
|       url: 'goods/goods/activity', | ||||
|       method: 'GET', | ||||
|       params, | ||||
|       custom: { | ||||
|         showLoading: false, | ||||
|         showError: false, | ||||
|       }, | ||||
|     }), | ||||
|   activityList: (params = {}) => | ||||
|     request({ | ||||
|       url: 'goods/goods/activityList', | ||||
|       method: 'GET', | ||||
|       params, | ||||
|     }), | ||||
| 	// 商品查询
 | ||||
| 	ids: (params = {}) => | ||||
| 		request({ | ||||
| 			url: 'goods/goods/ids', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 	// 商品评价列表
 | ||||
| 	comment: (id, params = {}) => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/comment/list?spuId=' + id, | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 	// 商品评价类型
 | ||||
| 	getType: (id) => | ||||
| 		request({ | ||||
| 			url: 'goods/comment/getType/' + id, | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 	// 活动商品查询
 | ||||
| 	// 商品查询
 | ||||
| 	activity: (params = {}) => | ||||
| 		request({ | ||||
| 			url: 'goods/goods/activity', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
| 				showError: false, | ||||
| 			}, | ||||
| 		}), | ||||
| 	activityList: (params = {}) => | ||||
| 		request({ | ||||
| 			url: 'goods/goods/activityList', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 		}), | ||||
| 	// 检查是否收藏商品
 | ||||
| 	exits: (id) => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/favorite/exits?spuId=' + id, | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| }; | ||||
|  | @ -1,14 +1,14 @@ | |||
| import request2 from '@/sheep/request2'; | ||||
| import request from '@/sheep/request'; | ||||
| 
 | ||||
| export default { | ||||
|   decorate: () => | ||||
|     request2({ | ||||
|       url: 'promotion/decorate/list?page=1', | ||||
|       method: 'GET', | ||||
|     }), | ||||
|   spids: () => | ||||
|     request2({ | ||||
|       url: 'product/spu/page?recommendType=best&pageNo=1&pageSize=10', | ||||
|       method: 'GET', | ||||
|     }), | ||||
| 	decorate: () => | ||||
| 		request({ | ||||
| 			url: '/app-api/promotion/decorate/list?page=1', | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| 	spids: () => | ||||
| 		request({ | ||||
| 			url: '/app-api/product/spu/page?recommendType=best&pageNo=1&pageSize=10', | ||||
| 			method: 'GET', | ||||
| 		}), | ||||
| }; | ||||
|  | @ -1,11 +1,10 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| 
 | ||||
| export default { | ||||
| 	// 订单详情
 | ||||
| 	detail: (id, params) => | ||||
| 		request2({ | ||||
| 			url: 'trade/order/get-detail?id=' + id, | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/order/get-detail?id=' + id, | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 		}), | ||||
|  | @ -40,8 +39,8 @@ export default { | |||
| 		}), | ||||
| 	// 订单列表
 | ||||
| 	list: (params) => | ||||
| 		request2({ | ||||
| 			url: 'trade/order/page', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/order/page', | ||||
| 			method: 'GET', | ||||
| 			params, | ||||
| 			custom: { | ||||
|  | @ -65,16 +64,25 @@ export default { | |||
| 		// 解决 SpringMVC 接受 List<Item> 参数的问题
 | ||||
| 		delete data2.items | ||||
| 		for (let i = 0; i < data.items.length; i++) { | ||||
| 			// 此处转码问题,待解决方案
 | ||||
| 			data2[encodeURIComponent('items[' + i + '' + '].skuId')] = data.items[i].skuId + ''; | ||||
| 			data2[encodeURIComponent('items[' + i + '' + '].count')] = data.items[i].count + ''; | ||||
|       if (data.items[i].cartId) { | ||||
|         data2[encodeURIComponent('items[' + i + '' + '].cartId')] = data.items[i].cartId + ''; | ||||
|       } | ||||
| 			data2[encodeURIComponent('items[' + i + '' + '].cartId')] = data.items[i].cartId + ''; | ||||
| 
 | ||||
| 			// data2['items' + `[${i}]` + '.skuId'] = data.items[i].skuId + '';
 | ||||
| 			// data2['items' + `[${i}]` + '.count'] = data.items[i].count + '';
 | ||||
| 			// data2['items' + `[${i}]` + '.cartId'] = data.items[i].cartId + '';
 | ||||
| 
 | ||||
| 			// data2['items' + `%5B${i}%5D` + '.skuId'] = data.items[i].skuId + '';
 | ||||
| 			// data2['items' + `%5B${i}%5D` + '.count'] = data.items[i].count + '';
 | ||||
| 			// data2['items' + `%5B${i}%5D` + '.cartId'] = data.items[i].cartId + '';
 | ||||
| 		} | ||||
|     const queryString= Object.keys(data2).map(key => key + '=' + data2[key]).join('&') | ||||
| 		return request2({ | ||||
| 			url: `trade/order/settlement?${queryString}`, | ||||
| 			method: 'GET' | ||||
| 		console.log(data2, '手动转码的参数') | ||||
| 		return request({ | ||||
| 			url: '/app-api/trade/order/settlement', | ||||
| 			method: 'GET', | ||||
| 			// data: data2,
 | ||||
| 			params: data2 | ||||
| 		}) | ||||
| 	}, | ||||
| 	// 创建订单
 | ||||
|  | @ -99,8 +107,8 @@ export default { | |||
| 		}), | ||||
| 	// 评价订单
 | ||||
| 	comment: (data) => | ||||
| 		request2({ | ||||
| 			url: 'trade/order/item/create-comment', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/order/item/create-comment', | ||||
| 			method: 'POST', | ||||
| 			data, | ||||
| 		}), | ||||
|  | @ -138,8 +146,8 @@ export default { | |||
| 				data, | ||||
| 			}), | ||||
| 		list: (params) => | ||||
| 			request2({ | ||||
| 				url: 'trade/after-sale/page', | ||||
| 			request({ | ||||
| 				url: '/app-api/trade/after-sale/page', | ||||
| 				method: 'GET', | ||||
| 				params, | ||||
| 				custom: { | ||||
|  | @ -169,8 +177,8 @@ export default { | |||
| 			}), | ||||
| 		// 售后详情
 | ||||
| 		detail: (id) => | ||||
| 			request2({ | ||||
| 				url: 'trade/after-sale/get?id=' + id, | ||||
| 			request({ | ||||
| 				url: '/app-api/trade/after-sale/get?id=' + id, | ||||
| 				method: 'GET', | ||||
| 			}), | ||||
| 	}, | ||||
|  |  | |||
|  | @ -1,18 +1,19 @@ | |||
| import request from '@/sheep/request'; | ||||
| 
 | ||||
| const CommentApi = { | ||||
|   // 获得商品评价分页
 | ||||
|   getCommentPage: (spuId, pageNo, pageSize, type) => { | ||||
|     return request({ | ||||
|       url: '/app-api/product/comment/page', | ||||
|       method: 'GET', | ||||
|       params: { | ||||
|         spuId, | ||||
|         pageNo, | ||||
|         pageSize, | ||||
|         type | ||||
|       }, | ||||
|     }); | ||||
|   }, | ||||
| 
 | ||||
| 	// 获得商品评价分页
 | ||||
| 	getCommentPage: (spuId, pageNo, pageSize, type) => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/product/comment/page', | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				spuId, | ||||
| 				pageNo, | ||||
| 				pageSize, | ||||
| 				type | ||||
| 			}, | ||||
| 		}); | ||||
| 	}, | ||||
| }; | ||||
| export default CommentApi; | ||||
|  | @ -1,16 +1,16 @@ | |||
| import request2 from '@/sheep/request2'; | ||||
| import request from '@/sheep/request'; | ||||
| 
 | ||||
| const ActivityApi = { | ||||
|   // 获得单个商品,近期参与的每个活动
 | ||||
|   getActivityListBySpuId: (spuId) => { | ||||
|     return request2({ | ||||
|       url: '/app-api/promotion/activity/list-by-spu-id', | ||||
|       method: 'GET', | ||||
|       params: { | ||||
|         spuId, | ||||
|       }, | ||||
|     }); | ||||
|   }, | ||||
| 	// 获得单个商品,近期参与的每个活动
 | ||||
| 	getActivityListBySpuId: (spuId) => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/promotion/activity/list-by-spu-id', | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				spuId, | ||||
| 			}, | ||||
| 		}); | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| export default ActivityApi; | ||||
|  |  | |||
|  | @ -1,67 +1,69 @@ | |||
| import request2 from "@/sheep/request2"; | ||||
| import request from "@/sheep/request"; | ||||
| 
 | ||||
| // 拼团 API
 | ||||
| const CombinationApi = { | ||||
|     // 获得拼团活动列表
 | ||||
|     getCombinationActivityList: (count) => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-activity/list", | ||||
|             method: 'GET', | ||||
|             params: {count} | ||||
|         }); | ||||
|     }, | ||||
| 	// 获得拼团活动列表
 | ||||
| 	getCombinationActivityList: (count) => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-activity/list", | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				count | ||||
| 			} | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|     // 获得拼团活动分页
 | ||||
|     getCombinationActivityPage: (params) => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-activity/page", | ||||
|             method: 'GET', | ||||
|             params | ||||
|         }); | ||||
|     }, | ||||
| 	// 获得拼团活动分页
 | ||||
| 	getCombinationActivityPage: (params) => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-activity/page", | ||||
| 			method: 'GET', | ||||
| 			params | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|     // 获得拼团活动明细
 | ||||
|     getCombinationActivity: (id) => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-activity/get-detail", | ||||
|             method: 'GET', | ||||
|             params: { | ||||
|                 id | ||||
|             } | ||||
|         }); | ||||
|     }, | ||||
| 	// 获得拼团活动明细
 | ||||
| 	getCombinationActivity: (id) => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-activity/get-detail", | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				id | ||||
| 			} | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|     // 获得最近 n 条拼团记录(团长发起的)
 | ||||
|     getHeadCombinationRecordList: (activityId, status, count) => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-record/get-head-list", | ||||
|             method: 'GET', | ||||
|             params: { | ||||
|                 activityId, | ||||
|                 status, | ||||
|                 count | ||||
|             } | ||||
|         }); | ||||
|     }, | ||||
| 	// 获得最近 n 条拼团记录(团长发起的)
 | ||||
| 	getHeadCombinationRecordList: (activityId, status, count) => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-record/get-head-list", | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				activityId, | ||||
| 				status, | ||||
| 				count | ||||
| 			} | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|     // 获得拼团记录明细
 | ||||
|     getCombinationRecordDetail: (id) => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-record/get-detail", | ||||
|             method: 'GET', | ||||
|             params: { | ||||
|                 id | ||||
|             } | ||||
|         }); | ||||
|     }, | ||||
| 	// 获得拼团记录明细
 | ||||
| 	getCombinationRecordDetail: (id) => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-record/get-detail", | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				id | ||||
| 			} | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|     // 获得拼团记录的概要信息
 | ||||
|     getCombinationRecordSummary: () => { | ||||
|         return request2({ | ||||
|             url: "promotion/combination-record/get-summary", | ||||
|             method: 'GET', | ||||
|         }); | ||||
|     } | ||||
| 	// 获得拼团记录的概要信息
 | ||||
| 	getCombinationRecordSummary: () => { | ||||
| 		return request({ | ||||
| 			url: "/app-api/promotion/combination-record/get-summary", | ||||
| 			method: 'GET', | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export default CombinationApi | ||||
|  | @ -1,33 +1,44 @@ | |||
| import request2 from "@/sheep/request2"; | ||||
| import request from "@/sheep/request"; | ||||
| 
 | ||||
| const SeckillApi = { | ||||
|   // 获得秒杀时间段列表
 | ||||
|   getSeckillConfigList: () => { | ||||
|     return request2({ url: 'promotion/seckill-config/list', method: 'GET' }); | ||||
|   }, | ||||
| 	// 获得秒杀时间段列表
 | ||||
| 	getSeckillConfigList: () => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/promotion/seckill-config/list', | ||||
| 			method: 'GET' | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|   // 获得当前秒杀活动
 | ||||
|   getNowSeckillActivity: () => { | ||||
|     return request2({ url: 'promotion/seckill-activity/get-now', method: 'GET' }); | ||||
|   }, | ||||
| 	// 获得当前秒杀活动
 | ||||
| 	getNowSeckillActivity: () => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/promotion/seckill-activity/get-now', | ||||
| 			method: 'GET' | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|   // 获得秒杀活动分页
 | ||||
|   getSeckillActivityPage: () => { | ||||
|     return request2({ url: 'promotion/seckill-activity/page', method: 'GET' }); | ||||
|   }, | ||||
| 	// 获得秒杀活动分页
 | ||||
| 	getSeckillActivityPage: () => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/promotion/seckill-activity/page', | ||||
| 			method: 'GET' | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
|   /** | ||||
|    * 获得秒杀活动明细 | ||||
|    * @param {number} id 秒杀活动编号 | ||||
|    * @return {*} | ||||
|    */ | ||||
|   getSeckillActivity: (id) => { | ||||
|     return request2({ | ||||
|       url: 'promotion/seckill-activity/get-detail', | ||||
|       method: 'GET', | ||||
|       params: { id } | ||||
|     }); | ||||
|   } | ||||
| 	/** | ||||
| 	 * 获得秒杀活动明细 | ||||
| 	 * @param {number} id 秒杀活动编号 | ||||
| 	 * @return {*} | ||||
| 	 */ | ||||
| 	getSeckillActivity: (id) => { | ||||
| 		return request({ | ||||
| 			url: '/app-api/promotion/seckill-activity/get-detail', | ||||
| 			method: 'GET', | ||||
| 			params: { | ||||
| 				id | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export default SeckillApi; | ||||
|  | @ -1,11 +1,10 @@ | |||
| import request from '@/sheep/request'; | ||||
| import request2 from '@/sheep/request2'; | ||||
| import $platform from '@/sheep/platform'; | ||||
| 
 | ||||
| export default { | ||||
| 	getUnused: () => | ||||
| 		request2({ | ||||
| 			url: 'promotion/coupon/get-unused-count', | ||||
| 		request({ | ||||
| 			url: '/app-api/promotion/coupon/get-unused-count', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
|  | @ -13,8 +12,8 @@ export default { | |||
| 			}, | ||||
| 		}), | ||||
| 	profile: () => | ||||
| 		request2({ | ||||
| 			url: 'member/user/get', | ||||
| 		request({ | ||||
| 			url: '/app-api/member/user/get', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
|  | @ -22,7 +21,7 @@ export default { | |||
| 			}, | ||||
| 		}), | ||||
| 	balance: () => | ||||
| 		request2({ | ||||
| 		request({ | ||||
| 			url: '/app-api/pay/wallet/get', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
|  | @ -30,28 +29,9 @@ export default { | |||
| 				auth: true, | ||||
| 			}, | ||||
| 		}), | ||||
| 	// profile: () =>
 | ||||
| 	//   request({
 | ||||
| 	//     url: '/user/api/user/profile',
 | ||||
| 	//     method: 'GET',
 | ||||
| 	//     custom: {
 | ||||
| 	//       showLoading: false,
 | ||||
| 	//       auth: true,
 | ||||
| 	//     },
 | ||||
| 	//   }),
 | ||||
| 	// update: (data) =>
 | ||||
| 	//   request({
 | ||||
| 	//     url: '/user/api/user/update',
 | ||||
| 	//     method: 'POST',
 | ||||
| 	//     custom: {
 | ||||
| 	//       showSuccess: true,
 | ||||
| 	//       auth: true,
 | ||||
| 	//     },
 | ||||
| 	//     data,
 | ||||
| 	//   }),
 | ||||
| 	update: (data) => | ||||
| 		request2({ | ||||
| 			url: 'member/user/update', | ||||
| 		request({ | ||||
| 			url: '/app-api/member/user/update', | ||||
| 			method: 'PUT', | ||||
| 			custom: { | ||||
| 				showSuccess: true, | ||||
|  | @ -196,90 +176,48 @@ export default { | |||
| 		}), | ||||
| 
 | ||||
| 	address: { | ||||
| 		// default: () =>
 | ||||
| 		// 	request({
 | ||||
| 		// 		url: 'user/address/default',
 | ||||
| 		// 		method: 'GET',
 | ||||
| 		// 		custom: {
 | ||||
| 		// 			showError: false,
 | ||||
| 		// 		},
 | ||||
| 		// 	}),
 | ||||
| 		default: () => | ||||
| 			request2({ | ||||
| 				url: 'member/address/get-default', | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/get-default', | ||||
| 				method: 'GET', | ||||
| 				custom: { | ||||
| 					showError: false, | ||||
| 				}, | ||||
| 			}), | ||||
| 		list: () => | ||||
| 			request2({ | ||||
| 				url: 'member/address/list', | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/list', | ||||
| 				method: 'GET', | ||||
| 				custom: {}, | ||||
| 			}), | ||||
| 		// list: () =>
 | ||||
| 		//   request({
 | ||||
| 		//     url: 'user/address',
 | ||||
| 		//     method: 'GET',
 | ||||
| 		//     custom: {},
 | ||||
| 		//   }),
 | ||||
| 		create: (data) => | ||||
| 			request2({ | ||||
| 				url: 'member/address/create', | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/create', | ||||
| 				method: 'POST', | ||||
| 				data, | ||||
| 				custom: { | ||||
| 					showSuccess: true, | ||||
| 				}, | ||||
| 			}), | ||||
| 		// create: (data) =>
 | ||||
| 		//   request({
 | ||||
| 		//     url: 'user/address',
 | ||||
| 		//     method: 'POST',
 | ||||
| 		//     data,
 | ||||
| 		//     custom: {
 | ||||
| 		//       showSuccess: true,
 | ||||
| 		//     },
 | ||||
| 		//   }),
 | ||||
| 		update: (data) => | ||||
| 			request2({ | ||||
| 				url: 'member/address/update', | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/update', | ||||
| 				method: 'PUT', | ||||
| 				data, | ||||
| 				custom: { | ||||
| 					showSuccess: true, | ||||
| 				}, | ||||
| 			}), | ||||
| 		// update: (id, data) =>
 | ||||
| 		// 	request({
 | ||||
| 		// 		url: 'user/address/' + id,
 | ||||
| 		// 		method: 'PUT',
 | ||||
| 		// 		data,
 | ||||
| 		// 		custom: {
 | ||||
| 		// 			showSuccess: true,
 | ||||
| 		// 		},
 | ||||
| 		// 	}),
 | ||||
| 		detail: (id) => | ||||
| 			request2({ | ||||
| 				url: 'member/address/get?id=' + id, | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/get?id=' + id, | ||||
| 				method: 'GET', | ||||
| 			}), | ||||
| 		// detail: (id) =>
 | ||||
| 		//   request({
 | ||||
| 		//     url: 'user/address/' + id,
 | ||||
| 		//     method: 'GET',
 | ||||
| 		//   }),
 | ||||
| 		delete: (id) => | ||||
| 			request2({ | ||||
| 				url: 'member/address/delete?id=' + id, | ||||
| 			request({ | ||||
| 				url: '/app-api/member/address/delete?id=' + id, | ||||
| 				method: 'DELETE', | ||||
| 			}), | ||||
| 		// delete: (id) =>
 | ||||
| 		// 	request({
 | ||||
| 		// 		url: 'user/address/' + id,
 | ||||
| 		// 		method: 'DELETE',
 | ||||
| 		// 	}),
 | ||||
| 	}, | ||||
| 	invoice: { | ||||
| 		list: () => | ||||
|  | @ -319,17 +257,29 @@ export default { | |||
| 	}, | ||||
| 	favorite: { | ||||
| 		list: (params) => | ||||
| 			request2({ | ||||
| 				url: 'product/favorite/page', | ||||
| 			request({ | ||||
| 				url: '/app-api/product/favorite/page', | ||||
| 				method: 'GET', | ||||
| 				params, | ||||
| 			}), | ||||
| 		do: (id) => | ||||
| 			request({ | ||||
| 				url: 'user/goodsLog/favorite', | ||||
| 				url: '/app-api/product/favorite/create', | ||||
| 				method: 'POST', | ||||
| 				data: { | ||||
| 					goods_id: id, | ||||
| 					spuId: id, | ||||
| 				}, | ||||
| 				custom: { | ||||
| 					showSuccess: true, | ||||
| 					auth: true, | ||||
| 				}, | ||||
| 			}), | ||||
| 		dos: (id) => | ||||
| 			request({ | ||||
| 				url: '/app-api/product/favorite/delete', | ||||
| 				method: 'DELETE', | ||||
| 				data: { | ||||
| 					spuId: id, | ||||
| 				}, | ||||
| 				custom: { | ||||
| 					showSuccess: true, | ||||
|  | @ -338,8 +288,8 @@ export default { | |||
| 			}), | ||||
| 		// 取消收藏
 | ||||
| 		cancel: (id) => | ||||
| 			request2({ | ||||
| 				url: 'product/favorite/delete-list', | ||||
| 			request({ | ||||
| 				url: '/app-api/product/favorite/delete-list', | ||||
| 				method: 'DELETE', | ||||
| 				data: { | ||||
| 					spuIds: id.split(',').map(item => item * 1), | ||||
|  | @ -350,18 +300,6 @@ export default { | |||
| 					auth: true, | ||||
| 				}, | ||||
| 			}), | ||||
| 		// cancel: (id) =>
 | ||||
| 		//   request({
 | ||||
| 		//     url: 'user/goodsLog/favorite',
 | ||||
| 		//     method: 'POST',
 | ||||
| 		//     data: {
 | ||||
| 		//       goods_ids: id,
 | ||||
| 		//     },
 | ||||
| 		//     custom: {
 | ||||
| 		//       showSuccess: true,
 | ||||
| 		//       auth: true,
 | ||||
| 		//     },
 | ||||
| 		//   }),
 | ||||
| 	}, | ||||
| 	view: { | ||||
| 		list: (params) => | ||||
|  | @ -383,28 +321,21 @@ export default { | |||
| 	}, | ||||
| 	wallet: { | ||||
| 		log: (params) => | ||||
| 			request2({ | ||||
| 			request({ | ||||
| 				// url: 'member/point/record/page',
 | ||||
| 				url: 'pay/wallet-transaction/page', | ||||
| 				url: '/app-api/pay/wallet-transaction/page', | ||||
| 				method: 'GET', | ||||
| 				params, | ||||
| 				custom: {}, | ||||
| 			}), | ||||
| 		log2: (params) => | ||||
| 			request2({ | ||||
| 				url: 'member/point/record/page', | ||||
| 			request({ | ||||
| 				url: '/app-api/member/point/record/page', | ||||
| 				// url: 'pay/wallet-transaction/page',
 | ||||
| 				method: 'GET', | ||||
| 				params, | ||||
| 				custom: {}, | ||||
| 			}), | ||||
| 		// log: (params) =>
 | ||||
| 		// request({
 | ||||
| 		// 	url: '/user/api/walletLog',
 | ||||
| 		// 	method: 'GET',
 | ||||
| 		// 	params,
 | ||||
| 		// 	custom: {},
 | ||||
| 		// }),
 | ||||
| 	}, | ||||
| 	account: { | ||||
| 		info: (params) => | ||||
|  | @ -429,18 +360,9 @@ export default { | |||
| 			}), | ||||
| 	}, | ||||
| 	//数量接口
 | ||||
| 	// data: () =>
 | ||||
| 	//   request({
 | ||||
| 	//     url: 'user/user/data',
 | ||||
| 	//     method: 'GET',
 | ||||
| 	//     custom: {
 | ||||
| 	//       showLoading: false,
 | ||||
| 	//       auth: true,
 | ||||
| 	//     },
 | ||||
| 	//   }),
 | ||||
| 	data: () => | ||||
| 		request2({ | ||||
| 			url: 'trade/order/get-count', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/order/get-count', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
|  | @ -448,8 +370,8 @@ export default { | |||
| 			}, | ||||
| 		}), | ||||
| 	data2: () => | ||||
| 		request2({ | ||||
| 			url: 'trade/after-sale/get-applying-count', | ||||
| 		request({ | ||||
| 			url: '/app-api/trade/after-sale/get-applying-count', | ||||
| 			method: 'GET', | ||||
| 			custom: { | ||||
| 				showLoading: false, | ||||
|  |  | |||
|  | @ -1,108 +1,104 @@ | |||
| <template> | ||||
|   <su-popup | ||||
|     :show="show" | ||||
|     type="bottom" | ||||
|     round="20" | ||||
|     @close="emits('close')" | ||||
|     showClose | ||||
|     backgroundColor="#f2f2f2" | ||||
|   > | ||||
|     <view class="model-box"> | ||||
|       <view class="title ss-m-t-16 ss-m-l-20 ss-flex">优惠券</view> | ||||
|       <scroll-view | ||||
|         class="model-content" | ||||
|         scroll-y | ||||
|         :scroll-with-animation="false" | ||||
|         :enable-back-to-top="true" | ||||
|       > | ||||
|         <view class="subtitle ss-m-l-20">可使用优惠券</view> | ||||
|         <view v-for="item in state.couponInfo" :key="item.id"> | ||||
|           <s-coupon-list :data="item"> | ||||
|             <template #default> | ||||
|               <button | ||||
|                 class="ss-reset-button card-btn ss-flex ss-row-center ss-col-center" | ||||
|                 :class=" | ||||
| 	<su-popup :show="show" type="bottom" round="20" @close="emits('close')" showClose backgroundColor="#f2f2f2"> | ||||
| 		<view class="model-box"> | ||||
| 			<view class="title ss-m-t-16 ss-m-l-20 ss-flex">优惠券</view> | ||||
| 			<scroll-view class="model-content" scroll-y :scroll-with-animation="false" :enable-back-to-top="true"> | ||||
| 				<view class="subtitle ss-m-l-20">可使用优惠券</view> | ||||
| 				<view v-for="item in state.couponInfo" :key="item.id"> | ||||
| 					<s-coupon-list :data="item"> | ||||
| 						<template #default> | ||||
| 							<button class="ss-reset-button card-btn ss-flex ss-row-center ss-col-center" :class=" | ||||
|                   item.get_status != 'can_get' && item.get_status != 'can_use' ? 'boder-btn' : '' | ||||
|                 " | ||||
|                 @click.stop="getBuy(item.id)" | ||||
|                 :disabled="item.get_status != 'can_get' && item.get_status != 'can_use'" | ||||
|               > | ||||
|                 {{ item.get_status_text }} | ||||
|               </button> | ||||
|             </template> | ||||
|           </s-coupon-list> | ||||
|         </view> | ||||
|       </scroll-view> | ||||
|     </view> | ||||
|   </su-popup> | ||||
|                 " @click.stop="getBuy(item.id)"> | ||||
| 								<!-- 此处对接领取优惠券先将限制解除 --> | ||||
| 								<!-- :disabled="item.get_status != 'can_get' && item.get_status != 'can_use'" --> | ||||
| 								{{ item.get_status_text }} | ||||
| 							</button> | ||||
| 						</template> | ||||
| 					</s-coupon-list> | ||||
| 				</view> | ||||
| 			</scroll-view> | ||||
| 		</view> | ||||
| 	</su-popup> | ||||
| </template> | ||||
| <script setup> | ||||
|   import { computed, reactive } from 'vue'; | ||||
|   const props = defineProps({ | ||||
|     modelValue: { | ||||
|       type: Object, | ||||
|       default() {}, | ||||
|     }, | ||||
|     show: { | ||||
|       type: Boolean, | ||||
|       default: false, | ||||
|     }, | ||||
|   }); | ||||
|   const emits = defineEmits(['get', 'close']); | ||||
|   const state = reactive({ | ||||
|     couponInfo: computed(() => props.modelValue), | ||||
|     currentValue: -1, | ||||
|     couponId: '', | ||||
|   }); | ||||
|   const getBuy = (id) => { | ||||
|     emits('get', id); | ||||
|   }; | ||||
|   //立即领取 | ||||
| 	import { | ||||
| 		computed, | ||||
| 		reactive | ||||
| 	} from 'vue'; | ||||
| 	const props = defineProps({ | ||||
| 		modelValue: { | ||||
| 			type: Object, | ||||
| 			default () {}, | ||||
| 		}, | ||||
| 		show: { | ||||
| 			type: Boolean, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 	}); | ||||
| 	const emits = defineEmits(['get', 'close']); | ||||
| 	const state = reactive({ | ||||
| 		couponInfo: computed(() => props.modelValue), | ||||
| 		currentValue: -1, | ||||
| 		couponId: '', | ||||
| 	}); | ||||
| 	const getBuy = (id) => { | ||||
| 		console.log('应该是详情页领取优惠券') | ||||
| 		emits('get', id); | ||||
| 	}; | ||||
| 	//立即领取 | ||||
| </script> | ||||
| <style lang="scss" scoped> | ||||
|   .model-box { | ||||
|     height: 60vh; | ||||
|     .title { | ||||
|       font-size: 36rpx; | ||||
|       height: 80rpx; | ||||
|       font-weight: bold; | ||||
|       color: #333333; | ||||
|     } | ||||
|     .subtitle { | ||||
|       font-size: 26rpx; | ||||
|       font-weight: 500; | ||||
|       color: #333333; | ||||
|     } | ||||
|   } | ||||
|   .model-content { | ||||
|     height: 54vh; | ||||
|   } | ||||
|   .modal-footer { | ||||
|     width: 100%; | ||||
|     height: 120rpx; | ||||
|     background: #fff; | ||||
|   } | ||||
|   .confirm-btn { | ||||
|     width: 710rpx; | ||||
|     margin-left: 20rpx; | ||||
|     height: 80rpx; | ||||
|     background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); | ||||
|     border-radius: 40rpx; | ||||
|     color: #fff; | ||||
|   } | ||||
|   // 优惠券按钮 | ||||
|   .card-btn { | ||||
|     // width: 144rpx; | ||||
|     padding: 0 16rpx; | ||||
|     height: 50rpx; | ||||
|     border-radius: 40rpx; | ||||
|     background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); | ||||
|     color: #ffffff; | ||||
|     font-size: 24rpx; | ||||
|     font-weight: 400; | ||||
|   } | ||||
|   .boder-btn { | ||||
|     background: linear-gradient(90deg, var(--ui-BG-Main-opacity-4), var(--ui-BG-Main-light)); | ||||
|     color: #fff !important; | ||||
|   } | ||||
| 	.model-box { | ||||
| 		height: 60vh; | ||||
| 
 | ||||
| 		.title { | ||||
| 			font-size: 36rpx; | ||||
| 			height: 80rpx; | ||||
| 			font-weight: bold; | ||||
| 			color: #333333; | ||||
| 		} | ||||
| 
 | ||||
| 		.subtitle { | ||||
| 			font-size: 26rpx; | ||||
| 			font-weight: 500; | ||||
| 			color: #333333; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	.model-content { | ||||
| 		height: 54vh; | ||||
| 	} | ||||
| 
 | ||||
| 	.modal-footer { | ||||
| 		width: 100%; | ||||
| 		height: 120rpx; | ||||
| 		background: #fff; | ||||
| 	} | ||||
| 
 | ||||
| 	.confirm-btn { | ||||
| 		width: 710rpx; | ||||
| 		margin-left: 20rpx; | ||||
| 		height: 80rpx; | ||||
| 		background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); | ||||
| 		border-radius: 40rpx; | ||||
| 		color: #fff; | ||||
| 	} | ||||
| 
 | ||||
| 	// 优惠券按钮 | ||||
| 	.card-btn { | ||||
| 		// width: 144rpx; | ||||
| 		padding: 0 16rpx; | ||||
| 		height: 50rpx; | ||||
| 		border-radius: 40rpx; | ||||
| 		background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); | ||||
| 		color: #ffffff; | ||||
| 		font-size: 24rpx; | ||||
| 		font-weight: 400; | ||||
| 	} | ||||
| 
 | ||||
| 	.boder-btn { | ||||
| 		background: linear-gradient(90deg, var(--ui-BG-Main-opacity-4), var(--ui-BG-Main-light)); | ||||
| 		color: #fff !important; | ||||
| 	} | ||||
| </style> | ||||
|  | @ -1,13 +1,9 @@ | |||
| <template> | ||||
| 	<view class="ss-m-20" :style="{ opacity: disabled ? '0.5' : '1' }"> | ||||
| 		<view class="content"> | ||||
| 			<!--      <view | ||||
|         class="tag ss-flex ss-row-center" | ||||
|         :class=" | ||||
| 			<view class="tag ss-flex ss-row-center" :class=" | ||||
|           data.status == 'expired' || data.status == 'used' ? 'disabled-bg-color' : 'info-bg-color' | ||||
|         " | ||||
|         >{{ data.type_text }}</view | ||||
|       > --> | ||||
|         ">{{ data.type_text }}</view> | ||||
| 			<view class="title ss-m-x-30 ss-p-t-18"> | ||||
| 				<view class="ss-flex ss-row-between"> | ||||
| 					<view class="value-text ss-flex-1 ss-m-r-10" :class=" | ||||
|  |  | |||
|  | @ -55,7 +55,8 @@ const http = new Request({ | |||
| 	method: 'GET', | ||||
| 	header: { | ||||
| 		Accept: 'text/json', | ||||
| 		'Content-Type': 'application/json;charset=UTF-8', | ||||
| 		'Content-Type': 'application/json', | ||||
| 		// ;charset=UTF-8
 | ||||
| 		platform: $platform.name, | ||||
| 	}, | ||||
| 	// #ifdef APP-PLUS
 | ||||
|  | @ -97,6 +98,7 @@ http.interceptors.request.use( | |||
| 			config.header['tenant-id'] = '1'; | ||||
| 			config.header['Authorization'] = 'Bearer test247'; | ||||
| 		} | ||||
| 		// console.log(config, '看参数')
 | ||||
| 		return config; | ||||
| 	}, | ||||
| 	(error) => { | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,4 +1,6 @@ | |||
| import { loadEnv } from 'vite'; | ||||
| import { | ||||
| 	loadEnv | ||||
| } from 'vite'; | ||||
| import uni from '@dcloudio/vite-plugin-uni'; | ||||
| import path from 'path'; | ||||
| // import viteCompression from 'vite-plugin-compression';
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Bluemark
						Bluemark