zs 2 năm trước cách đây
mục cha
commit
ab8d5336a9

+ 14 - 4
pages.json

@@ -292,19 +292,29 @@
 					"path": "home/index",
 					"style": {
 						"navigationBarTitleText": "尊荣专区",
-						"enablePullDownRefresh": true
+						"enablePullDownRefresh": true,
+						"navigationBarBackgroundColor": "#6A5ACD"
 					}
 				},
 				{
 					"path": "order/detail",
 					"style": {
-						"navigationBarTitleText": "商品详情"
+						"navigationBarTitleText": "商品详情",
+						"navigationBarBackgroundColor": "#6A5ACD"
 					}
 				},
 				{
 					"path": "order/index",
 					"style": {
-						"navigationBarTitleText": "商品兑换"
+						"navigationBarTitleText": "商品兑换",
+						"navigationBarBackgroundColor": "#6A5ACD"
+					}
+				},
+				{
+					"path": "record/index",
+					"style": {
+						"navigationBarTitleText": "兑换记录",
+						"enablePullDownRefresh": true
 					}
 				}
 			]
@@ -312,7 +322,7 @@
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
-		"navigationBarTitleText": "点到网",
+		"navigationBarTitleText": "天恩活泉",
 		"navigationBarBackgroundColor": "#FB1438",
 		"backgroundColor": "#F8F8F8"
 	},

+ 1 - 1
pagesIntegral/home/index.vue

@@ -213,7 +213,7 @@
 							button {
 								border-radius: 25px;
 								color: var(--fffColor);
-								background-color: var(--ff0Color);
+								background-color: #6A5ACD;
 								font-size: var(--font12Size);
 							}
 						}

+ 83 - 288
pagesIntegral/order/detail.vue

@@ -26,25 +26,21 @@
 								<text>{{info.send_time}}内发货</text>
 							</view>
 						</view>
-						<view class="four">
-							<view class="four_1">
+						<view class="thr">
+							<view class="thr_1">
 								<image class="image" :src="shop.logo&&shop.logo.length>0?shop.logo[0].url:''"></image>
 								<view class="other">
 									<view class="name">{{shop.name}}</view>
 								</view>
 							</view>
-							<view class="four_2">
+							<view class="thr_2">
 								<view class="grade">商品:<text>{{shop.goods_score||5}}</text></view>|
 								<view class="grade">发货:<text>{{shop.send_score||5}}</text></view>|
 								<view class="grade">服务:<text>{{shop.service_score||5}}</text></view>
 							</view>
-							<view class="four_2">
-								<view class="btn" @tap="toShop('pagesHome/shop/index')">进入店铺</view>
-								<view class="btn" @tap="shopCollect">{{shop_collect==true?'已关注':'关注'}}</view>
-							</view>
 						</view>
-						<view class="five">
-							<view class="five_1">
+						<view class="four">
+							<view class="four_1">
 								<rich-text :nodes="info.brief"></rich-text>
 							</view>
 						</view>
@@ -52,7 +48,7 @@
 				</scroll-view>
 			</view>
 			<view class="foot">
-				<uni-goods-nav :options="options" :button-group="buttonGroup" @click="onClick"
+				<uni-goods-nav :options="options" :buttonGroup="buttonGroup" @click="onClick"
 					@buttonClick="buttonClick" />
 			</view>
 		</view>
@@ -71,41 +67,15 @@
 		<uni-popup ref="popup" background-color="#fff" type="bottom">
 			<view class="content">
 				<view class="one">
-					<image class="image" v-if="specsInfo.file&&specsInfo.file.length>0"
-						:src="specsInfo.file&&specsInfo.file.length>0?specsInfo.file[0].url:''"></image>
-					<image class="image" v-else :src="info.file&&info.file.length>0?info.file[0].url:''"></image>
-					<view class="other">
-						<view class="money">
-							<text>¥</text>
-							<text>{{specsInfo.sell_money}}</text>
-						</view>
-						<view class="other_1">
-							已选: <text>{{specsInfo.name}}</text>
-						</view>
-					</view>
-					<view class="button">
-						<text @click="toClose" class="iconfont icon-shanchu"></text>
-					</view>
-				</view>
-				<view class="two">
-					<view class="two_1">规格</view>
-					<view class="two_2">
-						<text v-for="(item,index) in specs" :key="index" @click="toStyle(item,index)"
-							:class="{ 'style': isActive==index}">{{item.name}}
-						</text>
-					</view>
-				</view>
-				<view class="thr">
 					<text>数量</text>
 					<view class="count">
-						<uni-number-box :min="1" :max="specsInfo.num" :disabled="disabled" v-model="num"
-							@change="toCount">
+						<uni-number-box :min="1" :max="info.num" v-model="num" @change="toCount">
 						</uni-number-box>
 					</view>
-					<text>库存{{specsInfo.num||0}}</text>
+					<text>库存{{info.num||0}}</text>
 				</view>
-				<view class="btn" @click="toBuy">
-					立即兑换
+				<view class="btn">
+					<text @click="toExchange" class="button">立即兑换</text>
 				</view>
 			</view>
 		</uni-popup>
@@ -138,27 +108,12 @@
 						normal: require('@/static/my.png'),
 					},
 				],
-				options: [
-					// {
-					// 	icon: 'shop',
-					// 	text: '店铺',
-					// 	route: 'pagesHome/shop/index',
-					// },
-					// {
-					// 	icon: 'cart',
-					// 	text: '购物车',
-					// 	route: 'pages/market/index',
-					// },
-					// {
-					// 	icon: 'chat',
-					// 	text: '客服',
-					// }
-				],
 				buttonGroup: [{
-					text: '立即兑换',
-					backgroundColor: 'linear-gradient(90deg, #EF1224, #EF1224)',
+					text: '兑换',
+					backgroundColor: 'linear-gradient(90deg, #6A5ACD, #6A5ACD)',
 					color: '#fff',
 				}],
+				options: [],
 				// 商品id
 				id: '',
 				user: {},
@@ -168,28 +123,16 @@
 				info: {},
 				// 商店详情
 				shop: {},
-				// 规格情况
-				specs: [],
-				// 已选
-				specsInfo: {},
 				// 是否显示返回顶部
 				isShow: false,
 				topItem: '',
-				// 商品收藏
-				collection: false,
 				// 店铺收藏
 				shop_collect: false,
 				// 菜单显示
 				menu: false,
 				disabled: true,
-				// 显示文字判断
-				type: '0',
-				// 选择规格
-				isActive: -1,
-				// 计数器
+				// 数量
 				num: 1,
-				// 评论数
-				comment: 0,
 			};
 		},
 		onLoad: async function(e) {
@@ -198,61 +141,12 @@
 		},
 		onShow: async function() {
 			const that = this;
+			// 监听用户是否登录
+			await that.watchLogin();
 			await that.search();
-			await that.searchOther();
 			await that.configShare();
 		},
 		methods: {
-			// //店铺,
-			// // 购物车,客服跳转
-			// onClick(e) {
-			// 	const that = this;
-			// 	if (e.index == '0' && e.content.route) {
-			// 		// 进入店铺
-			// 		that.toShop();
-			// 	} else {
-			// 		uni.reLaunch({
-			// 			url: `/${e.content.route}`
-			// 		})
-			// 	}
-			// },
-			// 进入店铺
-			toShop() {
-				const that = this;
-				uni.navigateTo({
-					url: `/pagesHome/shop/index?id=${that.shop._id}`
-				})
-			},
-			// 商品评价
-			toAppraise(e) {
-				const that = this;
-				uni.navigateTo({
-					url: `/pagesHome/order/appraise?id=${that.id}`
-				})
-			},
-			// 关注商铺
-			async shopCollect() {
-				const that = this;
-				let user = that.user;
-				if (user && user._id) {
-					let res = await that.$api(`/storeShop`, `POST`, {
-						customer: user._id,
-						shop: that.shop._id
-					});
-					if (res.errcode == '0') {
-						uni.showToast({
-							title: res.data.msg,
-							icon: 'none'
-						})
-						that.$set(that, `shop_collect`, res.data.result)
-					}
-				} else {
-					uni.showToast({
-						title: '无用户登录无法关注商铺',
-						icon: 'none'
-					})
-				}
-			},
 			//主菜单跳转
 			toPath(e) {
 				if (e && e.route) uni.reLaunch({
@@ -276,119 +170,76 @@
 				const that = this;
 				that.topItem = 'top'
 			},
-			//立即兑换弹窗
+			//立即兑换
 			buttonClick(e) {
 				const that = this;
 				that.$refs.popup.open();
 			},
-			// 修改样式
-			toStyle(e, index) {
-				const that = this;
-				that.$set(that, `isActive`, index)
-				that.$set(that, `specsInfo`, e)
-				that.disabled = false;
-			},
 			// 计数器
 			toCount(e) {
 				const that = this;
 				that.num = e;
 			},
 			// 立即兑换
-			toBuy(e) {
+			async toExchange() {
 				const that = this;
-				uni.getStorage({
-					key: 'token',
-					success: async function(res) {
-						let user = that.$jwt(res.data);
-						that.$set(that, `user`, user)
-						if (that.specsInfo._id) {
-							let specs_id = that.specsInfo._id
-							let data = {
-								customer: user._id,
-								shop: that.shop._id,
-								goods: that.info._id,
-								goodsSpec: specs_id,
-								num: that.num
-							}
-							let arr = await that.$api(`/util/checkCanBuy`, 'POST', data)
-							if (arr.errcode == '0') {
-								if (arr.data.result == true) {
-									uni.navigateTo({
-										url: `/pagesIntegral/order/index?key=${arr.data.key}`
-									})
-								} else {
-									uni.showToast({
-										title: arr.data.msg,
-										icon: 'none'
-									})
-								}
-							} else {
-								uni.showToast({
-									title: arr.errmsg,
-									icon: 'none'
-								})
-							}
+				let user = that.user;
+				if (user._id) {
+					let data = {
+						shop: that.shop._id,
+						goods: that.id,
+						num: that.num
+					};
+					let arr = await that.$api(`/zrOrder/checkCanBuy`, `POST`, data, `integral`)
+					if (arr.errcode == '0') {
+						if (arr.data.result == true) {
+							uni.navigateTo({
+								url: `/pagesIntegral/order/index?key=${arr.data.key}`
+							})
 						} else {
-							uni.showModal({
-								title: '提示',
-								content: '请选择规格',
-								confirmColor: '#ff0000',
-								showCancel: false,
-								success: function(res) {}
-							});
+							uni.showToast({
+								title: arr.data.msg,
+								icon: 'none'
+							})
 						}
-					},
-					fail: function(err) {
-						uni.navigateTo({
-							url: `/pages/login/index`
+					} else {
+						uni.showToast({
+							title: arr.errmsg,
+							icon: 'none'
 						})
 					}
-				});
-			},
-			// 关闭弹框
-			toClose() {
-				const that = this;
-				that.$refs.popup.close()
+				} else {
+					uni.navigateTo({
+						url: `/pages/login/index`
+					})
+				}
+
 			},
-			// 详情数据
-			async search() {
+			// 监听用户是否登录
+			watchLogin() {
 				const that = this;
 				uni.getStorage({
 					key: 'token',
-					success: async function(res) {
+					success: function(res) {
 						let user = that.$jwt(res.data);
 						if (user) that.$set(that, `user`, user);
-						let arr = await that.$api(`/zrGoods/${that.id}`, `POST`, {}, `integral`)
-						if (arr.errcode == '0') {
-							if (arr.data.brief) arr.data.brief = arr.data.brief.replace(/\<img/gi,
-								'<img class="rich-img"');
-							that.$set(that, `info`, arr.data)
-							that.$set(that, `bannerList`, arr.data.file)
-							let shop = await that.$api(`/shop/${arr.data.shop}`, `GET`)
-							if (shop.errcode == '0') {
-								that.$set(that, `shop`, shop.data)
-							}
-							let con = await that.$api(`/goodsRate`, `GET`, {
-								goods: arr.data._id
-							})
-							if (con.errcode == '0') {
-								that.$set(that, `comment`, con.total)
-							}
-						}
 					},
 					fail: function(err) {}
 				});
 			},
-			async searchOther() {
+			// 详情数据
+			async search() {
 				const that = this;
-				let user = that.user;
-				// 商铺是否收藏
-				let arr = await that.$api(`/storeShop/check`, `GET`, {
-					customer: user._id,
-					shop: that.shop._id
-				});
+				let arr = await that.$api(`/zrGoods/${that.id}`, `POST`, {}, `integral`)
 				if (arr.errcode == '0') {
-					that.$set(that, `shop_collect`, arr.data)
+					if (arr.data.brief) arr.data.brief = arr.data.brief.replace(/\<img/gi,
+						'<img class="rich-img"');
+					that.$set(that, `info`, arr.data)
+					that.$set(that, `bannerList`, arr.data.file)
+					let shop = await that.$api(`/shop/${arr.data.shop}`, `GET`)
+					if (shop.errcode == '0') {
+						that.$set(that, `shop`, shop.data)
+					}
 				}
 			},
 			// 配置分享内容
@@ -498,14 +349,16 @@
 					}
 				}
 			}
-			.four {
+
+			.thr {
 				margin: 2vw 0 0 0;
 				padding: 2vw;
 				background-color: var(--mainColor);
 
-				.four_1 {
+				.thr_1 {
 					display: flex;
 					justify-content: space-between;
+					align-items: center;
 
 					.image {
 						width: 15vw;
@@ -532,7 +385,7 @@
 					}
 				}
 
-				.four_2 {
+				.thr_2 {
 					display: flex;
 					flex-direction: row;
 					justify-content: space-evenly;
@@ -561,10 +414,10 @@
 				}
 			}
 
-			.five {
+			.four {
 				margin: 2vw 0 0 0;
 
-				.five_1 {
+				.four_1 {
 					background-color: var(--mainColor);
 					padding: 2vw;
 
@@ -643,79 +496,21 @@
 		}
 	}
 
+	.uni-tab__cart-sub-left {
+		padding: 0 !important;
+	}
+
 	uni-popup {
 		z-index: 999999 !important;
 	}
 
 	.content {
-		height: 100vw;
+		height: 60vw;
 
 		.one {
-			display: flex;
-			flex-direction: row;
-			justify-content: space-between;
-			margin: 2vw;
-			padding: 2vw 0;
-			border-bottom: 1px solid var(--f9Color);
-
-			.image {
-				width: 25vw;
-				height: 25vw;
-				margin: 0 2vw 0 0;
-			}
-
-			.other {
-				display: flex;
-				flex-direction: column;
-				flex-grow: 1;
-				margin: 0 0 0 2vw;
-
-				.money {
-					color: var(--fFB1Color);
-					font-size: var(--font20Szie);
-					padding: 2vw 0;
-				}
-
-				.other_1 {
-					font-size: var(--font14Size);
-
-					text {
-						padding: 0 2vw;
-						color: var(--f85Color);
-					}
-				}
-			}
-		}
-
-		.two {
-			margin: 0 2vw;
-			padding: 2vw 0;
-			font-size: var(--font12Size);
-			border-bottom: 1px solid var(--f9Color);
-
-			.two_2 {
-				display: flex;
-				flex-wrap: wrap;
-				padding: 1vw;
-				margin: 1vw 0 0 0;
-
-				text {
-					margin: 1vw 2vw 0 0;
-					padding: 1vw;
-					border-radius: 1vw;
-					background-color: var(--f9Color);
-				}
-
-				.style {
-					color: var(--mainColor);
-					background-color: var(--ff0Color);
-				}
-			}
-		}
-
-		.thr {
 			display: flex;
 			justify-content: flex-start;
+			align-items: center;
 			margin: 0 2vw;
 			padding: 2vw 0;
 
@@ -731,19 +526,19 @@
 		}
 
 		.btn {
+			display: flex;
+			justify-content: space-between;
 			position: fixed;
 			bottom: 0;
-			width: 100vw;
-			padding: 4vw 0;
-			background-color: var(--fFB1Color);
-			text-align: center;
-			font-size: var(--font18Szie);
-			color: var(--mainColor);
-		}
 
-	}
-
-	.uni-tab__cart-sub-left {
-		padding: 0 !important;
+			.button {
+				width: 100vw;
+				padding: 4vw 0;
+				background-color: #6A5ACD;
+				text-align: center;
+				font-size: var(--font18Szie);
+				color: var(--mainColor);
+			}
+		}
 	}
 </style>

+ 46 - 164
pagesIntegral/order/index.vue

@@ -19,35 +19,30 @@
 							<text class="iconfont icon-jiantouyou"></text>
 						</view>
 						<view class="one_2">
-							<view class="list" v-for="(item,index) in orderList" :key="index">
+							<view class="list">
 								<view class="list_1">
 									<view class="l">
 										<text class="iconfont icon-shangdian"></text>
-										<text>{{item.shop_name}}</text>
+										<text>{{shopInfo.name}}</text>
 									</view>
 								</view>
-								<view class="list_2" v-for="(tag,index) in item.goods" :key="index">
+								<view class="list_2">
 									<view class="l">
-										<image class="image" :src="tag.file&&tag.file.length>0?tag.file[0].url:''"
+										<image class="image"
+											:src="orderInfo.file&&orderInfo.file.length>0?orderInfo.file[0].url:''"
 											mode=""></image>
 									</view>
 									<view class="c">
 										<view class="name">
-											{{tag.goods_name}}
-										</view>
-										<view class="Spec">
-											规格:{{tag.goodsSpec_name}}
+											{{orderInfo.name}}
 										</view>
 									</view>
 									<view class="r">
-										<view class="price" v-if="type=='0'">
-											¥{{tag.money}}
-										</view>
-										<view v-else class="price">
-											¥{{tag.group_sell_money}}
+										<view class="price">
+											¥{{orderInfo.cost}}
 										</view>
 										<view class="num">
-											×{{tag.num}}
+											×{{buy_num}}
 										</view>
 									</view>
 								</view>
@@ -58,25 +53,16 @@
 									</view>
 									<view class="other">
 										<view class="other_1">运费</view>
-										<view class="other_2" v-if="!item.freight_total==0">¥{{item.freight_total}}
-										</view>
-										<view class="other_2" v-else>包邮</view>
+										<view class="other_2">包邮</view>
 									</view>
 									<view class="other">
 										<view class="other_1">订单备注</view>
 										<view class="other_3">
-											<input type="text" v-model="item.remarks" placeholder="选填,可填写您与卖家达成一致的要求" />
+											<input type="text" v-model="remarks" placeholder="选填,可填写您与卖家达成一致的要求" />
 										</view>
 									</view>
 								</view>
 							</view>
-							<view class="other" v-if="type=='0'">
-								<view class="other_1">积分</view>
-								<view class="other_2" @click="toCoupon" v-if="couponList.length">
-									{{coupon_name||'请选择积分'}}
-								</view>
-								<view class="other_2" v-else>暂无积分使用</view>
-							</view>
 						</view>
 					</view>
 				</scroll-view>
@@ -84,15 +70,15 @@
 			<view class="two">
 				<view class="two_1">
 					<view>实付金额:</view>
-					<view>¥{{goods_total}}</view>
+					<view>¥{{costTotal}}</view>
 				</view>
 				<view class="two_2">
-					<text @click="toSubmit">提交订单</text>
+					<text @click="toSubmit">尊荣支付</text>
 				</view>
 			</view>
 		</view>
 		<uni-popup ref="popup" background-color="#fff" type="bottom">
-			<view class="popup" v-if="popup.type=='1'">
+			<view class="popup">
 				<scroll-view scroll-y="true" class="scroll-view">
 					<view class="list" v-for="(item,index) in addressList" :key="index">
 						<view class="one">
@@ -125,70 +111,44 @@
 					</view>
 				</scroll-view>
 			</view>
-			<view class="popup" v-else-if="popup.type=='2'">
-				<scroll-view scroll-y="true" class="scroll-view">
-					<discount :Style="Style" :couponList="couponList" @toDiscount="toDiscount"></discount>
-				</scroll-view>
-			</view>
 		</uni-popup>
 	</mobile-frame>
 </template>
 
 <script>
-	import discount from '@/components/discount/index.vue';
 	export default {
-		components: {
-			discount
-		},
 		data() {
 			return {
-				popup: {
-					type: '1'
-				},
 				Style: {
 					btn: true
 				},
 				user: {},
 				key: '',
 				address: {},
-				orderList: [],
-				shop: [],
-				goods_total: 0,
-				// 金额明细
-				total_detail: {},
+				// 商品详情
+				orderInfo: {},
+				// 店铺详情
+				shopInfo: {},
+				// 总尊荣
+				costTotal: 0,
+				// 购买数量
+				buy_num: 0,
 				// 收货地址
 				addressList: [],
-				// 优惠劵
-				couponList: [],
-				coupon: [],
-				// 优惠劵名称
-				coupon_name: '',
-				// 是否开团
-				type: '0',
-				// 团id
-				group_id: '',
+				// 备注
+				remarks: '',
 			};
 		},
 		onLoad: async function(e) {
 			const that = this;
 			that.$set(that, `key`, e.key || '');
-			that.$set(that, `group_id`, e.group_id || '');
 			that.watchLogin()
 		},
 		methods: {
-			// 使用优惠劵
-			toDiscount(e) {
-				const that = this;
-				that.$set(that, 'coupon_name', e.name)
-				that.coupon.push(e._id)
-				that.$refs.popup.close();
-				this.computedTotal();
-			},
 			// 选择收货地址
 			toChoose() {
 				const that = this;
 				if (that.addressList.length > 0) {
-					that.$set(that.popup, 'type', '1')
 					that.$refs.popup.open();
 				} else {
 					uni.showToast({
@@ -197,13 +157,6 @@
 					})
 				}
 			},
-			// 选择优惠劵
-			toCoupon() {
-				const that = this;
-				that.$set(that.popup, 'type', '2')
-				that.$set(that, 'coupon', [])
-				that.$refs.popup.open();
-			},
 			// 是否选中
 			toCheckbox(e) {
 				const that = this;
@@ -250,91 +203,25 @@
 				const that = this;
 				if (that.address) {
 					let data = {
-						address: that.address,
-						goods: that.orderList,
-						total_detail: that.total_detail,
-						coupon: that.coupon,
-						type: that.type,
-					}
-					if (that.group_id) {
-						data.group = that.group_id
+						address: that.address._id,
+						shop: that.shopInfo._id,
+						goods: that.orderInfo._id,
+						buy_num: that.buy_num,
+						remarks: that.remarks
 					}
-					const arr = await that.$api(`/order`, 'POST', data)
+					const arr = await that.$api(`/zrOrder`, `POST`, data, `integral`)
 					if (arr.errcode == '0') {
-						uni.getStorage({
-							key: 'system',
-							success: async function(res) {
-								// 微信小程序支付
-								if (res.data.uniPlatform == "mp-weixin") {
-									uni.showLoading({
-										title: '加载中'
-									})
-									const res = await that.$api('/pay/toPayOrder', 'POST', {
-										order_id: arr.data,
-										type: '0'
-									})
-									uni.requestPayment({
-										"provider": "wxpay",
-										...res.data,
-										async success(res) {
-											const group = await that.$api('/group/getGroup',
-												'GET', {
-													order_id: arr.data,
-												})
-											if (group.errcode == '0') {
-												if (group.data) {
-													uni.hideLoading();
-													uni.reLaunch({
-														url: `/pagesHome/group/share?id=${group.data}`
-													})
-												} else {
-													uni.hideLoading();
-													uni.reLaunch({
-														url: `/pagesMy/order/index?status=${'1'}`
-													})
-												}
-											} else {
-												uni.showToast({
-													title: group.errmsg,
-													icon: 'none'
-												})
-											}
-										},
-										fail(e) {
-											uni.showToast({
-												title: `支付失败`,
-												icon: 'none'
-											})
-											uni.hideLoading();
-											uni.reLaunch({
-												url: `/pagesMy/order/index?status=${'0'}`
-											})
-										}
-									})
-								} else if (res.data.uniPlatform == "app") {
-									// app支付
-									uni.requestPayment({
-										provider: 'alipay',
-										orderInfo: 'orderInfo', //微信、支付宝订单数据 【注意微信的订单信息,键值应该全部是小写,不能采用驼峰命名】
-										success: function(res) {
-											console.log('success:' + JSON.stringify(res));
-										},
-										fail: function(err) {
-											console.log('fail:' + JSON.stringify(err));
-										}
-									});
-								} else {
-									uni.showToast({
-										title: `平台不支持支付`,
-										icon: 'none'
-									})
-								}
-							},
-							fail: function(err) {}
+						uni.hideLoading();
+						uni.showToast({
+							title: arr.data.errmsg || '兑换成功',
+							icon: 'none'
+						})
+						uni.reLaunch({
+							url: `/pagesIntegral/record/index`
 						})
 					} else {
 						uni.showToast({
-							title: arr.data.errmsg || '下单失败!',
+							title: arr.data.errmsg || '兑换失败!',
 							icon: 'none'
 						})
 					}
@@ -372,16 +259,16 @@
 				if (res.errcode == '0') {
 					that.$set(that, `addressList`, res.data.reverse());
 				}
-				const arr = await that.$api(`/order/toMakeOrder`, 'POST', {
+				const arr = await that.$api(`/zrOrder/toMakeOrder`, 'POST', {
 					key: that.key
-				})
+				}, `integral`)
 				if (arr.errcode == '0') {
 					that.$set(that, `address`, arr.data.address);
-					that.$set(that, `orderList`, arr.data.goodsData);
-					that.$set(that, `total_detail`, arr.data.orderTotal);
-					that.$set(that, `type`, arr.data.type);
-					this.computedTotal();
-					that.$set(that, `couponList`, arr.data.couponList);
+					that.$set(that, `orderInfo`, arr.data.goods);
+					that.$set(that, `costTotal`, arr.data.costTotal);
+					that.$set(that, `shopInfo`, arr.data.shop);
+					that.$set(that, `buy_num`, arr.data.buy_num);
+					// this.computedTotal();
 				}
 			},
 			async computedTotal() {
@@ -513,11 +400,6 @@
 						.c {
 							width: 60vw;
 							padding: 0 2vw;
-
-							.Spec {
-								font-size: var(--font12Size);
-								color: var(--f85Color);
-							}
 						}
 
 						.r {
@@ -607,7 +489,7 @@
 				padding: 3vw 4vw;
 				color: var(--mainColor);
 				font-size: var(--font16Size);
-				background-color: var(--ff0Color);
+				background-color: #6A5ACD;
 			}
 		}
 	}

+ 305 - 0
pagesIntegral/record/index.vue

@@ -0,0 +1,305 @@
+<template>
+	<mobile-frame>
+		<view class="main">
+			<view class="one">
+				<input type="text" v-model="searchInfo.goods" @blur="toInput" placeholder="搜索商品">
+			</view>
+			<view class="two">
+				<scroll-view scroll-y="true" class="scroll-view" @scrolltolower="toPage" @scroll="toScroll">
+					<view class="list-scroll-view">
+						<view class="list" v-for="(item,index) in list" :key="index">
+							<view class="list_1">
+								<view class="shopname">
+									<text class="iconfont icon-shangdian"></text>
+									<text>{{item.shop.name}}</text>
+								</view>
+							</view>
+							<view class="list_2">
+								<view class="market">
+									<view class="url">
+										<image class="image"
+											:src="item.goods.file&&item.goods.file.length>0?item.goods.file[0].url:''"
+											mode=""></image>
+									</view>
+									<view class="name">
+										{{item.goods.name}}
+										<view class="specs">
+											{{item.zhStatus}}
+										</view>
+										<view class="specs">
+											购买时间:{{item.buy_time}}
+										</view>
+										<view class="specs">
+											备注:{{item.remarks||'暂无'}}
+										</view>
+									</view>
+									<view class="other">
+										<view class="price">
+											¥{{item.goods.cost}}
+										</view>
+										<view class="num">
+											×{{item.buy_num}}
+										</view>
+									</view>
+								</view>
+							</view>
+						</view>
+						<view class="is_bottom" v-if="is_bottom">
+							<text>{{config.bottom_title}}</text>
+						</view>
+					</view>
+				</scroll-view>
+			</view>
+		</view>
+	</mobile-frame>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				// 系统设置
+				config: {},
+				searchInfo:{},
+				user: {},
+				list: [],
+				total: 0,
+				skip: 0,
+				limit: 6,
+				page: 0,
+				// 状态
+				statusList: [],
+				// 数据是否触底
+				is_bottom: false,
+				scrollTop: 0,
+			};
+		},
+		onShow: async function() {
+			const that = this;
+			that.searchConfig();
+			await that.searchOther();
+			await that.watchLogin();
+		},
+		onHide: function() {
+			const that = this;
+			that.clearPage();
+		},
+		methods: {
+			// 查询基本设置
+			searchConfig() {
+				const that = this;
+				uni.getStorage({
+					key: 'config',
+					success: function(res) {
+						if (res.data) that.$set(that, `config`, res.data)
+					},
+					fail: function(err) {
+						console.log(err);
+					}
+				})
+			},
+			watchLogin() {
+				const that = this;
+				uni.getStorage({
+					key: 'token',
+					success: function(res) {
+						let user = that.$jwt(res.data);
+						that.$set(that, `user`, user)
+						that.search()
+					}
+				})
+			},
+			// 输入框
+			toInput(e) {
+				const that = this;
+				if (e.detail.value) that.$set(that.searchInfo, `goods`, e.detail.value);
+				that.clearPage();
+				that.search();
+			},
+			// 查询列表
+			async search() {
+				const that = this;
+				let user = that.user;
+				if (user._id) {
+					let info = {
+						skip: that.skip,
+						limit: that.limit,
+						customer: user._id,
+					}
+					let res = await that.$api(`/zrOrder`, 'GET', {
+						...info,
+						...that.searchInfo
+					}, `integral`)
+					if (res.errcode == '0') {
+						let list = [...that.list, ...res.data];
+						for (let val of list) {
+							let status = that.statusList.find(i => i.value == val.status)
+							if (status) val.zhStatus = status.label;
+						}
+						that.$set(that, `list`, list);
+						that.$set(that, `total`, res.total)
+					}
+				}
+			},
+			// 查询其他信息
+			async searchOther() {
+				const that = this;
+				let res;
+				res = await that.$api(`/dictData`, 'GET', {
+					code: "order_process"
+				});
+				if (res.errcode == '0') {
+					that.$set(that, `statusList`, res.data)
+				}
+			},
+			// 分页
+			toPage(e) {
+				const that = this;
+				let list = that.list;
+				let limit = that.limit;
+				if (that.total > list.length) {
+					uni.showLoading({
+						title: '加载中',
+						mask: true
+					})
+					let page = that.page + 1;
+					that.$set(that, `page`, page)
+					let skip = page * limit;
+					that.$set(that, `skip`, skip)
+					that.search();
+					uni.hideLoading();
+				} else that.$set(that, `is_bottom`, true)
+			},
+			toScroll(e) {
+				const that = this;
+				let up = that.scrollTop;
+				that.$set(that, `scrollTop`, e.detail.scrollTop);
+				let num = Math.sign(up - e.detail.scrollTop);
+				if (num == 1) that.$set(that, `is_bottom`, false);
+			},
+			// 清空列表
+			clearPage() {
+				const that = this;
+				that.$set(that, `list`, [])
+				that.$set(that, `skip`, 0)
+				that.$set(that, `limit`, 6)
+				that.$set(that, `page`, 0)
+			}
+		},
+		onPullDownRefresh: async function() {
+			const that = this;
+			that.$set(that, `list`, [])
+			that.$set(that, `skip`, 0)
+			that.$set(that, `limit`, 6)
+			that.$set(that, `page`, 0)
+			await that.search();
+			uni.stopPullDownRefresh();
+		}
+	}
+</script>
+
+<style lang="scss">
+	.main {
+		display: flex;
+		flex-direction: column;
+		width: 100vw;
+		height: 100vh;
+
+		.one {
+			border-bottom: 1px solid var(--f85Color);
+			padding: 2vw;
+
+			input {
+				padding: 2vw;
+				background-color: var(--f1Color);
+				font-size: var(--font14Size);
+				border-radius: 5px;
+			}
+		}
+
+		.two {
+			position: relative;
+			flex-grow: 1;
+			padding: 2vw 0 0 0;
+
+			.list {
+				margin: 0 0 1vw 0;
+				padding: 2vw;
+				border-bottom: 1px solid #f5f5f5;
+
+				.list_1 {
+					margin: 0 0 2vw 0;
+
+					.shopname {
+						text:last-child {
+							padding: 0 0 0 2vw;
+						}
+					}
+				}
+
+				.list_2 {
+					margin: 0 0 1vw 0;
+
+					.market {
+						display: flex;
+
+						.url {
+							width: 20vw;
+
+							.image {
+								width: 100%;
+								height: 20vw;
+								border-radius: 5px;
+
+							}
+						}
+
+						.name {
+							display: flex;
+							flex-direction: column;
+							width: 60vw;
+							padding: 0 2vw;
+
+							.specs {
+								margin: 1vw 0 0 0;
+								color: var(--f85Color);
+								font-size: var(--font12Size);
+							}
+						}
+
+
+
+						.other {
+							width: 15vw;
+							text-align: right;
+						}
+					}
+				}
+			}
+		}
+	}
+
+	.scroll-view {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+
+		.list-scroll-view {
+			display: flex;
+			flex-direction: column;
+		}
+	}
+
+	.is_bottom {
+		text-align: center;
+
+		text {
+			padding: 2vw 0;
+			display: inline-block;
+			color: #858585;
+			font-size: 14px;
+		}
+	}
+</style>

+ 8 - 2
pagesMy/integral/index.vue

@@ -5,7 +5,7 @@
 				<view class="one_1">
 					<text>{{integral||0}}</text><text>分</text>
 				</view>
-				<view class="one_2" style="display: none;">
+				<view class="one_2" @click="toRecord">
 					<button type="default" size="mini">礼品兑换记录</button>
 				</view>
 			</view>
@@ -57,13 +57,19 @@
 			that.searchConfig();
 			await that.searchOther();
 			await that.watchLogin();
-			
+
 		},
 		onHide: function() {
 			const that = this;
 			that.clearPage();
 		},
 		methods: {
+			// 兑换记录
+			toRecord() {
+				uni.navigateTo({
+					url: `/pagesIntegral/record/index`
+				})
+			},
 			// 查询基本设置
 			searchConfig() {
 				const that = this;