gcz 2 년 전
부모
커밋
c640d4d8d1

+ 3 - 2
center/addrForm.vue

@@ -115,6 +115,7 @@
 				this.getAddrById(this.id)
 			}
 			this.fromPage = page.from;
+			this.backUrl = page.backUrl;
 		},
 		onReady() {
 			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
@@ -156,8 +157,8 @@
 			addAddr(){
 				this.$u.api.addAddr(this.model).then(res=>{
 					// console.log('res',res);
-					if(this.fromPage=='cart'){
-						uni.$u.route('/shopping/cart', {
+					if(this.backUrl){
+						uni.$u.route(this.backUrl, {
 							// type: 'redirectTo'
 						});
 					}else{

+ 3 - 2
center/addrlist.vue

@@ -50,6 +50,7 @@
 					}
 				],
 				fromPage:'',
+				backUrl:'',
 			}
 		},
 		onShow() {	
@@ -58,14 +59,14 @@
 		onLoad(page) {
 			console.log('page',page);
 			this.fromPage = page.from;
-
+			this.backUrl = page.backUrl;
 		},
 		methods: {
 			leftClick(e){
 				console.log('leftClick',e);
 			},
 			newAddr(){
-				uni.$u.route('/center/addrForm', {type: 'add',from:this.fromPage});
+				uni.$u.route('/center/addrForm', {type: 'add',backUrl:this.backUrl});
 			},
 			editAddr(item){
 				uni.$u.route('/center/addrForm', {type: 'edit',id:item.id});

+ 1 - 0
center/center.vue

@@ -119,6 +119,7 @@
 				this.$u.api.memberInfo({id:this.vuex_member_info.id}).then(res=>{
 					this.memberInfo = res.data;
 					this.avatar =  res.data.avatar;
+					this.$u.vuex('vuex_member_info', res.data);
 					// console.log('memberInfo',this.memberInfo);
 					}).catch(err=>{
 					console.log('memberInfo',err.data);

+ 24 - 2
center/memberinfo.vue

@@ -28,7 +28,7 @@
 					</view>
 				</view>
 				<u-cell title="昵称" @click="nameShow=true" :value="memberInfo.name"></u-cell>
-				<u-cell title="性别" :value="memberInfo.sex|filterSex"></u-cell>
+				<u-cell title="性别" @click="showSex=true" :value="memberInfo.sex|filterSex"></u-cell>
 				<u-cell title="生日" :value="memberInfo.birthdayTime||'未设置'" @click="timeShow = true" :isLink="true"></u-cell>
 				<u-cell title="会员等级" :value="memberInfo.levelName"></u-cell>
 			</u-cell-group>
@@ -55,6 +55,14 @@
 				</u--input>
 			</view>
 		</u-modal>
+		<u-action-sheet
+				:show="showSex"
+				:actions="actions"
+				title="请选择性别"
+				@close="showSex = false"
+				@select="sexSelect"
+		>
+		</u-action-sheet>
 	</view>
 </template>
 
@@ -66,6 +74,8 @@
 		},
 		data() {
 			return {
+				showSex:false,
+				sex:'',
 				nameShow:false,
 				tempName:'',
 				uploadFileUrl:this.$commonConfig.uploadFileUrl,
@@ -74,11 +84,16 @@
 				memberInfo:{},
 				fileList:[],
 				avatarUrl:'',
+				actions: [
+					{name: '男',val:1},
+					{name: '女',val:2},
+					{name: '保密',val:0},
+				],
 			}
 		},
 		onShow() {	
 			this.getMemberInfo();
-			console.log('1111',this.uploadFileUrl);
+			// console.log('1111',this.uploadFileUrl);
 		},
 		onLoad() {
 
@@ -139,6 +154,8 @@
 						return
 					}
 					params.name = this.tempName;
+				}else if(type == 'sex'){
+					params.sex = this.sex;
 				}
 				this.$u.api.updateMemberInfo(params).then(res=>{
 					this.getMemberInfo();
@@ -150,6 +167,11 @@
 			changeName(){
 				this.updateMemberInfo('name');
 				console.log('memberInfo',this.memberInfo);
+			},
+			sexSelect(e){
+				this.sex = e.val;
+				this.updateMemberInfo('sex')
+				console.log('sexSelect',e);
 			}
 		}
 	}

+ 20 - 1
common/apiurl.js

@@ -184,6 +184,11 @@ const apiurl = {
 		url: '/order/getSettlement',
 		type: 'post'
 	},
+	// 提交积分订单
+	submitCreditOrder: {
+		url: '/order/submitCreditOrder',
+		type: 'post'
+	},
 	// 订单退款提交
 	refundSubmit: {
 		url: '/order/refundSubmit',
@@ -224,7 +229,21 @@ const apiurl = {
 		url: '/payment/payQuery',
 		type: 'post'
 	},
-	
+	// 积分规则
+	memberCreditDesc: {
+		url: '/memberCreditDesc/getByName',
+		type: 'get'
+	},
+	// 查询登录用户积分
+	memberCredit: {
+		url: '/memberCreditLog/getMemberCredit',
+		type: 'get'
+	},
+	// 查询积分明细列表
+	creditList: {
+		url: '/memberCreditLog/pageList',
+		type: 'get'
+	},
 }
 
 

+ 76 - 22
credits/credits.vue

@@ -3,7 +3,7 @@
 		<u-navbar
 			title="积分商城"
 			:autoBack="true"
-			 :safeAreaInsetTop="true"
+			:safeAreaInsetTop="true"
 		>
 		</u-navbar>
 		<view class="header">
@@ -16,7 +16,7 @@
 						<text>规则</text>
 					</view>
 				</view>
-				<view class="num">64565</view>
+				<view class="num">{{credit}}</view>
 				<view class="bottom">
 					<text  @click="$u.route('/credits/creditslist')">积分明细</text>
 				</view>
@@ -33,17 +33,21 @@
 		<view class="">
 			<mescroll-body class="" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
 				<view class="credit-product u-flex u-flex-wrap">
-					<view class="credit-product-item" v-for="(item,index) in dataList" :key="item.id">
+					<view class="credit-product-item" @click="goDetails(item.id)" v-for="(item,index) in dataList" :key="item.id">
 						<view class="pic">
 							<u--image class="image" :src="item.mainImg" width="100%" height="340rpx"></u--image>
 						</view>
 						<view class="text">
 							<view class="til ellipsis-2">
-								{{item.title||'测试标题测试标题测试标题测试标题测试标题测试标题'}}
+								{{item.goodsName}}
 							</view>
-							<view class="price">¥54.00</view>
+							<view class="price" v-if="vuex_member_info.priceType>1">
+								¥{{item.salePrice}}
+								<text class="vip-icon">VIP</text>
+							</view>
+							<view class="price" v-else>¥{{item.salePrice}}</view>
 							<view class="bottom u-flex u-row-between">
-								<text>+20000积分</text>
+								<text>+{{item.exchangeCredit}}积分</text>
 								<text class="btn">兑换</text>
 							</view>
 						</view>
@@ -61,23 +65,21 @@
 		mixins: [MescrollMixin], // 使用mixin
 		data() {
 			return {
+				hasAddr:false,
 				staticUrl:this.$commonConfig.staticUrl,
-				tabsList:[
-					{name:'全部'},
-					{name:'推荐'},
-					{name:'美食'},
-					{name:'饮料'},
-					{name:'住行'},
-					{name:'其他'}
-				],
+				tabsList:[],
+				credit:'',
+				hasTypeId:false,
 				typeId:'',
-				dataList:[{id:1},{id:2},{id:3}],
+				dataList:[],
 			}
 		},
 		onShow() {	
+			this.getCredit();//积分
+			this.getAddrList();
 		},
 		onLoad() {
-
+			this.getTypeList();
 		},
 		methods: {
 			/*下拉刷新的回调, 重置列表为第一页 (此处可删,mixins已默认)
@@ -92,10 +94,10 @@
 				// }
 			
 				// 如果希望先请求其他接口,再触发upCallback,可参考以下写法
-				// if(!this.hasTypeId){
-				// 	this.shopNewsType();
-				// 	return // 此处return,先获取xx
-				// }
+				if(!this.hasTypeId){
+					this.getTypeList();
+					return // 此处return,先获取xx
+				}
 			
 				let pageNum = page.num; // 页码, 默认从1开始
 				let pageSize = page.size; // 页长, 默认每页10条
@@ -103,10 +105,11 @@
 				let params = {
 					pageNum : page.num,
 					pageSize :  page.size,
-					type : this.typeId,
+					parentTypeId : this.typeId,
+					isCredit:1
 				}
 				// console.log('this.params',params);
-				this.$u.api.shopNewsList(params).then(data => {
+				this.$u.api.memberGoodList(params).then(data => {
 					console.log('data',JSON.parse(JSON.stringify(data)));
 					// 接口返回的当前页数据列表 (数组)
 					let curPageData = data.data.rows;
@@ -138,11 +141,62 @@
 			reloadList() {
 				this.mescroll.resetUpScroll();
 			},
+			getTypeList(){
+				this.$u.api.goodsTypeList({parentId:0}).then(res=>{
+					console.log('getTypeList',res.data);
+					this.hasTypeId = true;
+					this.tabsList = res.data;
+					this.typeId =res.data[0].id;
+					this.mescroll.resetUpScroll()
+				}).catch(err=>{
+					console.log('goodsTypeList',err);
+				})
+			},
 			tabsClick(item){
 				this.typeId = item.id;
 				this.reloadList()
 				// console.log('item',item);
 			},
+			getCredit(){
+				this.$u.api.memberCredit().then(res=>{
+					this.credit = res.data.credit;
+					console.log('memberCredit',res.data);
+				}).catch(err=>{
+					console.log('memberCredit',err);
+				})
+			},
+			goDetails(id){
+				if(!this.hasAddr){
+					uni.showModal({
+						title: '温馨提示',
+						content: '请先设置地址!',
+						success: res => {
+							if (res.confirm) {
+								uni.$u.route('/center/addrlist', {
+									from: 'cart',
+									backUrl:'/credits/credits'
+								});
+							}
+						}
+					})
+					return
+				}
+				uni.$u.route('/shopping/productdetails', {
+					id: id
+				});
+			},
+			getAddrList(){
+				this.$u.api.addrList().then(res=>{
+					// this.dataList = res.data.rows;
+					if( res.data.total>0){
+						this.hasAddr = true;
+					}else{
+						this.hasAddr = false;
+					}
+				}).catch(err=>{
+					console.log('getAddrList',err.data);
+				})
+			},
 		}
 	}
 </script>

+ 32 - 9
credits/creditslist.vue

@@ -14,16 +14,19 @@
 			 :inactiveStyle="{color:'#999'}"
 			@click="tabsClick"></u-tabs>
 		</view>
+		<view class="credit">
+			剩余积分:{{credit}}
+		</view>
 		<mescroll-body class="" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
-			<view class="page-wrap" >
+			<view class="page-wrap" v-if="dataList.length>0" >
 				<view class="list">
-					<view class="item u-flex u-row-between" v-for="item in 20" :key="item">
+					<view class="item u-flex u-row-between" v-for="item in dataList" :key="item.id">
 						<view class="left">
-							<view class="name">兑换商品</view>
-							<view class="time">2023/04/14</view>
+							<view class="name">{{item.recordContent}}</view>
+							<view class="time">{{item.createTime}}</view>
 						</view>
-						<text class="num" v-if="1==1">-10.00</text>
-						<text class="num plus" v-else>+10.00</text>
+						<text class="num" v-if="item.recordType==3">-{{item.integral}}</text>
+						<text class="num plus" v-else>+{{item.integral}}</text>
 					</view>
 				</view>
 			</view>
@@ -38,6 +41,7 @@
 		mixins: [MescrollMixin], // 使用mixin
 		data() {
 			return {
+				credit:'',
 				downOption: {},
 				// 上拉加载的配置(可选, 绝大部分情况无需配置)
 				upOption: {
@@ -49,14 +53,16 @@
 						tip: '暂无相关数据'
 					}
 				},
-				tabsList:[{name:'全部'},{name:'获得'},{name:'消耗'}],
+				tabsList:[{name:'全部',recordType:''},{name:'获得',recordType:1},{name:'消耗',recordType:3}],
 				params:{
+					recordType:''
 				},
 				activeIndex:0,
 				dataList: []
 			}
 		},
 		onShow() {	
+			this.getCredit();
 		},
 		onLoad() {
 
@@ -83,7 +89,7 @@
 				let pageSize = page.size; // 页长, 默认每页10条isAsc:0//时间排序 0:降序 1:升序 (默认星级降序排序)
 
 				this.params = Object.assign(this.params,{pageNum:pageNum,pageSize:pageSize});
-				this.$u.api.commentList(this.params).then(data => {
+				this.$u.api.creditList(this.params).then(data => {
 					console.log('data',JSON.parse(JSON.stringify(data)));
 					// 接口返回的当前页数据列表 (数组)
 					let curPageData = data.data.rows;
@@ -116,10 +122,18 @@
 				this.mescroll.resetUpScroll();
 			},
 			tabsClick(item){
-				this.params.name = item.name;
+				this.params.recordType = item.recordType;
 				this.reloadList()
 				// console.log('item',item);
 			},
+			getCredit(){
+				this.$u.api.memberCredit().then(res=>{
+					this.credit = res.data.credit;
+					console.log('memberCredit',res.data);
+				}).catch(err=>{
+					console.log('memberCredit',err);
+				})
+			},
 		}
 	}
 </script>
@@ -129,6 +143,15 @@ page{
 }
 </style>
 <style lang="scss" scoped>
+.credit{
+	padding: 20rpx;
+	background-color: #fff;
+	border-radius: 8rpx;
+	margin: 0 20rpx 20rpx;
+	font-size: 36rpx;
+	font-weight: 600;
+	color: #00A447;
+}
 .tabs-wrap{
 	background-color: #fff;
 	margin-bottom: 10rpx;

+ 15 - 3
credits/regulation.vue

@@ -6,8 +6,11 @@
 			 :safeAreaInsetTop="true"
 		>
 		</u-navbar>
-		<view class="title">积分规则</view>
-		<u-parse :content="content"></u-parse>
+		<!-- <view class="title">积分规则</view> -->
+		<view class="page-wrap">
+			<u-parse :content="content"></u-parse>
+		</view>
+		
 	</view>
 </template>
 
@@ -19,11 +22,20 @@
 			}
 		},
 		onShow() {	
+			this.getPageData()
 		},
 		onLoad() {
-
+			
 		},
 		methods: {
+			getPageData(){
+				this.$u.api.memberCreditDesc({type:1,name:'积分规则'}).then(res=>{
+					this.content = res.data.content
+					console.log('res',res.data);
+				}).catch(err=>{
+					console.log('memberCreditDesc',err);
+				})
+			}
 
 		}
 	}

+ 2 - 1
manifest.json

@@ -62,7 +62,8 @@
                 "desc" : "你的位置信息将用于小程序位置接口的效果展示"
             }
         },
-        "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ]
+        "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ],
+		"lazyCodeLoading": "requiredComponents"
     },
     "mp-alipay" : {
         "usingComponents" : true

+ 1 - 2
pages.json

@@ -278,6 +278,5 @@
 		"navigationBarBackgroundColor": "#F8F8F8",
 		"backgroundColor": "#F8F8F8"
 	},
-	"uniIdRouter": {},
-	"lazyCodeLoading": "requiredComponents"
+	"uniIdRouter": {}
 }

+ 2 - 2
pages/index/index.vue

@@ -85,7 +85,7 @@
 						<view class="u-flex u-row-between">
 							<view class="left">
 								<view class="up">
-									<view class="" v-if="vuex_member_info.levelType>1">
+									<view class="" v-if="vuex_member_info.priceType>1">
 										<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 										<text class="vip-icon">VIP</text>
 									</view>
@@ -95,7 +95,7 @@
 								</view>
 								<view class="down">
 									<!-- <text class="discount">8.8折</text> -->
-									<text v-if="vuex_member_info.levelType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
+									<text v-if="vuex_member_info.priceType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
 									<!-- <text class="sales gray">销量 {{item.salePrice}}</text> -->
 								</view>
 							</view>

+ 5 - 4
shopping/cart.vue

@@ -28,7 +28,7 @@
 						<view class="u-flex u-row-between">
 							<view class="left">
 								<view class="up">
-									<view class="" v-if="vuex_member_info.levelType>1">
+									<view class="" v-if="vuex_member_info.priceType>1">
 										<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 										<text class="vip-icon">VIP</text>
 									</view>
@@ -38,7 +38,7 @@
 								</view>
 								<view class="down">
 									<!-- <text class="discount">8.8折</text> -->
-									<text v-if="vuex_member_info.levelType>1" class="original-price gray line-through">¥ 133333</text>
+									<text v-if="vuex_member_info.priceType>1" class="original-price gray line-through">¥ 133333</text>
 									<!-- <text class="sales gray">销量999+</text> -->
 								</view>
 							</view>
@@ -147,7 +147,7 @@
 			  return this.dataList.reduce((total, item) => {
 				if (item.checked) {
 					let price = null;
-					if(that.vuex_member_info.levelType>1){
+					if(that.vuex_member_info.priceType>1){
 						price = item.vipPrice
 					}else{
 						price = item.salePrice
@@ -309,7 +309,8 @@
 						success: res => {
 							if (res.confirm) {
 								uni.$u.route('/center/addrlist', {
-									from: 'cart'
+									from: 'cart',
+									backUrl:'/shopping/cart'
 								});
 							}
 						}

+ 1 - 1
shopping/order.vue

@@ -84,7 +84,7 @@
 					{name:'退款/售后',status:'7'}
 				],
 				status:'',
-				dataList:[{status:0},{status:1},{status:2},{status:3},{status:4}],
+				dataList:[],
 				statusBtn:{
 					0:[{name:'取消订单',fun:'cancelOrder',class:''},{name:'去支付',fun:'pay',class:'red'}],
 					1:[{name:'申请退款',fun:'refund',class:''}],

+ 27 - 14
shopping/pay.vue

@@ -10,14 +10,22 @@
 		<view class="page-wrap">
 			<view class="pay-way page-wrap">
 				  <u-radio-group  v-model="params.paymentMode" placement="column" @change="groupChange">
-				    <view class="pay-way-item u-flex u-row-between">
+				   <!-- <view class="pay-way-item u-flex u-row-between">
 				    	<view class="left">微信支付</view>
 				    	<u-radio :name="1" activeColor="#00A447" size="36rpx"></u-radio>
-				    </view>
+				    </view> -->
 					<view :class="{disabled:customBalance<params.payAmount}" class="pay-way-item u-flex u-row-between">
 						<view class="left">旭烁余额支付(¥ {{customBalance}})</view>
 						<u-radio :name="2" :disabled="customBalance<params.payAmount" activeColor="#00A447" size="36rpx"></u-radio>
 					</view>
+					<view :class="{disabled:customBalance<params.payAmount}" class="pay-way-item u-flex u-row-between">
+						<view class="left">积分支付(¥ {{customBalance}})</view>
+						<u-radio :name="3" :disabled="customBalance<params.payAmount" activeColor="#00A447" size="36rpx"></u-radio>
+					</view>
+					<view class="pay-way-item u-flex u-row-between">
+						<view class="left">农商行支付</view>
+						<u-radio :name="4" activeColor="#00A447" size="36rpx"></u-radio>
+					</view>
 				  </u-radio-group>
 			</view>
 			<view class="full-btn" @click="gotoPay">去支付<text>¥ {{params.payAmount}}</text></view>
@@ -31,10 +39,11 @@
 			return {
 				customBalance:'',
 				params:{
-					paymentMode:'',
+					paymentMode:null,
 					orderId:'',
 					openid:'',
 					payAmount:'',
+					payResult:{},
 				}
 				
 			}
@@ -46,7 +55,7 @@
 			this.params.orderId = page.orderId;
 			this.params.openid = this.vuex_wechatOpenid;
 			this.params.payAmount = page.payAmount;
-			this.params.paymentMode = page.paymentMode || 1;
+			this.params.paymentMode = page.paymentMode || 4;
 		},
 		methods: {
 			leftClick(){
@@ -62,30 +71,34 @@
 			gotoPay(){
 				console.log('gotoPay',this.params);
 				this.$u.api.gotoPay(this.params).then(res=>{
-					if(this.params.paymentMode==1){
+					this.payResult = res.data.payResult;
+					if(this.params.paymentMode==1||this.params.paymentMode==4){
 						this.wxPay()
 					}else{
 						uni.$u.route('/shopping/paysuccess');
 					}
-					console.log('res',res.data);
+					console.log('gotoPayres',res.data);
 				}).catch(err=>{
 					console.log('gotoPay',err);
 				})				
 			},
 			wxPay(){
 				uni.requestPayment({
+					... this.payResult,
 				    "provider": "wxpay", 
 				    "orderInfo": {
-				        "appid": "wx499********7c70e",  // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
-				        "noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
-				        "package": "Sign=WXPay",        // 固定值
-				        "partnerid": "148*****52",      // 微信支付商户号
-				        "prepayid": "wx202254********************fbe90000", // 统一下单订单号 
-				        "timestamp": 1597935292,        // 时间戳(单位:秒)
-				        "sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5/RSA 签名
+				        // "appid": "wx499********7c70e",  // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
+				        // "noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
+				        // "package": "Sign=WXPay",        // 固定值
+				        // "partnerid": "148*****52",      // 微信支付商户号
+				        // "prepayid": "wx202254********************fbe90000", // 统一下单订单号 
+				        // "timestamp": 1597935292,        // 时间戳(单位:秒)
+				        // "sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5/RSA 签名
 				    },
 				    success(res) {},
-				    fail(e) {}
+				    fail(e) {
+						console.log('wxPayfail',e);
+					}
 				})				
 			},
 			groupChange(e){

+ 2 - 2
shopping/producTypetList.vue

@@ -65,7 +65,7 @@
 									<view class="u-flex u-row-between">
 										<view class="left">
 											<view class="up">
-												<view class="" v-if="vuex_member_info.levelType>1">
+												<view class="" v-if="vuex_member_info.priceType>1">
 													<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 													<text class="vip-icon">VIP</text>
 												</view>
@@ -75,7 +75,7 @@
 											</view>
 											<view class="down">
 												<!-- <text class="discount">8.8折</text> -->
-												<text v-if="vuex_member_info.levelType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
+												<text v-if="vuex_member_info.priceType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
 												<text class="sales gray">销量 {{item.saleCount}}</text>
 											</view>
 										</view>

+ 2 - 2
shopping/productList.vue

@@ -26,7 +26,7 @@
 							<view class="u-flex u-row-between">
 								<view class="left">
 									<view class="up">
-										<view class="" v-if="vuex_member_info.levelType>1">
+										<view class="" v-if="vuex_member_info.priceType>1">
 											<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 											<text class="vip-icon">VIP</text>
 										</view>
@@ -36,7 +36,7 @@
 									</view>
 									<view class="down">
 										<!-- <text class="discount">8.8折</text> -->
-										<text v-if="vuex_member_info.levelType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
+										<text v-if="vuex_member_info.priceType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
 										<text class="sales gray">销量 {{item.saleCount}}</text>
 									</view>
 								</view>

+ 19 - 4
shopping/productdetails.vue

@@ -22,16 +22,18 @@
 		</u-swiper>
 		<view class="product-info view-wrap">
 			<view class="red">
-				<view class="" v-if="vuex_member_info.levelType>1">
+				<view class="" v-if="vuex_member_info.priceType>1">
 					<text class="price">¥ <text class="price-num">{{details.vipPrice}}</text></text>
 					<text class="vip-icon">VIP</text>
+					<text class="exchangeCredit" v-if="details.isCredit==1">{{details.exchangeCredit}}</text>
 				</view>
 				<view class="" v-else>
 					<text class="price">¥ <text class="price-num">{{details.salePrice}}</text></text>
+					<text class="exchangeCredit" v-if="details.isCredit==1">+{{details.exchangeCredit}}积分</text>
 				</view>
 			</view>
 			<view class="u-flex u-row-between gray">
-				<text v-if="vuex_member_info.levelType>1" class="line-through">¥ <text class="">{{details.salePrice}}</text></text>
+				<text v-if="vuex_member_info.priceType>1" class="line-through">¥ <text class="">{{details.salePrice}}</text></text>
 				<text class="">库存 {{details.stock}}</text>
 			</view>
 			<view class="name">{{details.goodsName}}</view>
@@ -80,13 +82,16 @@
 							分享
 						</button>
 					</view>
-					<view class="icon-wrap"  @click="$u.route('/shopping/cart')">
+					<view class="icon-wrap" v-if="details.isCredit!=1"  @click="$u.route('/shopping/cart')">
 						<u-icon name="shopping-cart" color="#676767" size="30"></u-icon>
 						购物车
 						<u-badge class="badge" numberType="overflow" type="error " max="99" :value="cartTotal" :absolute="true" :offset="[0,0]"></u-badge>
 					</view>
 				</view>
-				<view class="right u-flex">
+				<view class="right u-flex" v-if="details.isCredit==1">
+					<view class="btn add-btn" @click="addCreditOrder(details.id)">立即兑换</view>
+				</view>
+				<view class="right u-flex" v-else>
 					<view class="btn add-btn" @click="addCart(details.id)">加入购物车</view>
 					<view class="btn buy-btn" @click="buyNow(details.id)">立即购买</view>
 				</view>
@@ -170,6 +175,13 @@
 			buyNow(id){
 				this.addCart(id,'buyNow')
 			},
+			addCreditOrder(id){
+				let creditGoods = [];
+				creditGoods.push({id:this.details.id,quantity:1})
+				console.log('creditGoods',creditGoods);
+				this.$u.vuex('creditGoods',creditGoods);
+				uni.$u.route('/shopping/submitorder', {fromPage:'creditOrder'});
+			},
 			onShareAppMessage: function( options ){
 			  var that = this;
 			  // 设置菜单中的转发按钮触发转发事件时的转发内容
@@ -226,6 +238,9 @@
 	.price-num{
 		font-size: 60rpx;
 	}
+	.exchangeCredit{
+		font-size: 60rpx;
+	}
 	.name{
 		margin-top: 30rpx;
 		font-size: 36rpx;

+ 2 - 2
shopping/productsearch.vue

@@ -41,7 +41,7 @@
 							<view class="u-flex u-row-between">
 								<view class="left">
 									<view class="up">
-										<view class="" v-if="vuex_member_info.levelType>1">
+										<view class="" v-if="vuex_member_info.priceType>1">
 											<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 											<text class="vip-icon">VIP</text>
 										</view>
@@ -51,7 +51,7 @@
 									</view>
 									<view class="down">
 										<!-- <text class="discount">8.8折</text> -->
-										<text v-if="vuex_member_info.levelType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
+										<text v-if="vuex_member_info.priceType>1" class="original-price gray line-through">¥ {{item.salePrice}}</text>
 										<text class="sales gray">销量 {{item.saleCount}}</text>
 									</view>
 								</view>

+ 31 - 22
shopping/submitorder.vue

@@ -37,7 +37,7 @@
 					</view>
 					<view class="down u-flex u-row-between">
 						<view class="left">
-							<view class="" v-if="vuex_member_info.levelType>1">
+							<view class="" v-if="vuex_member_info.priceType>1">
 								<text class="price">¥ <text class="price-num">{{item.vipPrice}}</text></text>
 								<text class="vip-icon">VIP</text>
 								<text class="original-price gray line-through">¥ {{item.salePrice}}</text>
@@ -46,13 +46,13 @@
 								<text class="price">¥ <text class="price-num">{{item.salePrice}}</text></text>
 							</view>
 						</view>
-						<u-number-box v-model="item.quantity" @change="changeQuantity(index, $event)" integer></u-number-box>
+						<u-number-box v-if="fromPage!='creditOrder'" v-model="item.quantity" @change="changeQuantity(index, $event)" integer></u-number-box>
 					</view>
 				</view>
 			</view>
 		</view>
-<!-- 		<view class="page-wrap order-reduced">
-			<view class="reduced-item u-flex u-row-between u-border-bottom">
+		<view class="page-wrap order-reduced">
+			<!-- <view class="reduced-item u-flex u-row-between u-border-bottom">
 				<view class="left">
 					<text>优惠券</text>
 					<text class="label">已选一张</text>
@@ -61,21 +61,21 @@
 					<text class="price red">-¥ <text class="price-num">1000</text></text>
 					<u-icon name="arrow-right" color="#676767" size="20"></u-icon>
 				</view>
-			</view>
-			<view class="reduced-item integral u-flex u-row-between">
+			</view> -->
+			<view class="reduced-item integral u-flex u-row-between" v-if="orderTotalCredit">
 				<view class="left">
 					<text>积分</text>
-					<text class="num">3676</text>
-					<text class="tip">满1000可用</text>
+					<!-- <text class="num">3676</text> -->
+					<!-- <text class="tip">满1000可用</text> -->
 				</view>
 				<view class="right u-flex">
-					<text class="price red" v-if="useIntegral">-¥ <text class="price-num">1000</text></text>
-					<u-checkbox-group @change="integralCheckboxChange">
+					<text class="price red" >- <text class="price-num">{{orderTotalCredit}}</text></text>
+					<!-- <u-checkbox-group @change="integralCheckboxChange">
 						<u-checkbox shape="circle" activeColor="#02AB35" name="integral" ></u-checkbox>
-					</u-checkbox-group>
+					</u-checkbox-group> -->
 				</view>
 			</view>
-		</view> -->
+		</view>
 		<view class="page-wrap total">
 			<view class="total-item u-flex u-row-between u-border-bottom">
 				<view class="left">
@@ -91,7 +91,8 @@
 					<text class="gray">总重:{{totalWeight}}</text>
 				</view>
 				<view class="right red">
-					<text>+ ¥ {{distribution.distributionPrice}}</text>
+					<text v-if="distribution.distributionPrice">+ ¥ {{distribution.distributionPrice}}</text>
+					<text v-else>免运费</text>
 				</view>
 			</view>
 		</view>
@@ -102,7 +103,8 @@
 						待支付:<text class="red">¥ {{payAmount + distribution.distributionPrice}}</text>
 					</view>
 				</view>
-				<view class="btn" @click="submitOrder">去结算</view>
+				<view class="btn gray" v-if="orderTotalCredit&&userTotalCredit<orderTotalCredit">积分不够</view>
+				<view class="btn" v-else @click="submitOrder">去结算</view>
 			</view>
 		</view>
     </view>
@@ -127,14 +129,16 @@
             }
         },
 		onLoad(page) {
-			// this.setData(page.selectGoods)
-			console.log('this.cartGoods',this.cartGoods);
-			if(this.cartGoods){
-				console.log('this',this);
+			// console.log('page',page);
+			// console.log('this.creditGoods',this.creditGoods);
+			this.fromPage = page.fromPage;
+			if(this.cartGoods>0&&this.fromPage!='creditOrder'){
 				this.orderInfo.goodsList = this.cartGoods;
-				this.settlement();
-				// this.getSettlement();
 			}
+			if(this.creditGoods.length>0&&this.fromPage=='creditOrder'){
+				this.orderInfo.goodsList = this.creditGoods;
+			}
+			this.settlement();
 		},
 		onShow() {
 			if(this.fromPage=='addrlist'){
@@ -228,6 +232,7 @@
 					userTotalBalance, 
 					userTotalCredit, 
 					orderTotalCredit } = jsonData || {};
+				console.log('orderTotalCredit',orderTotalCredit);
 				this.orderInfo = jsonData;
 				this.receive = receive;
 				this.distribution = distribution;//物流信息
@@ -307,9 +312,9 @@
 }
 .order-reduced{
 	.reduced-item{
-		padding-bottom: 30rpx;
 		&:not(:last-child){
 			margin-bottom: 30rpx;
+			padding-bottom: 30rpx;
 		}
 		.label{
 			border-radius: 2px;
@@ -339,9 +344,9 @@
 }
 .total{
 	.total-item{
-		padding-bottom: 30rpx;
 		&:not(:last-child){
 			margin-bottom: 30rpx;
+			padding-bottom: 30rpx;
 		}
 		.right{
 			font-weight: 600;
@@ -376,6 +381,10 @@
 			background-color: #FF3C3F;
 			color: #fff;
 			text-align: center;
+			&.gray{
+				background-color: #ddd;
+				color: #999;
+			}
 		}
 	}
 }

+ 1 - 0
store/index.js

@@ -36,6 +36,7 @@ const store = new Vuex.Store({
 		vuex_user_info: lifeData.vuex_user_info ? lifeData.vuex_user_info : {},
 		vuex_wechatOpenid:lifeData.vuex_wechatOpenid ? lifeData.vuex_wechatOpenid : '',
 		cartGoods:[],//购物车商品
+		creditGoods:[],//积分商品
 		// vuex_version: '1.0.1',
 	},
 	mutations: {

+ 2 - 2
utils/filter.js

@@ -5,9 +5,9 @@ import Vue from 'vue'
 
 // 性别
 Vue.filter("filterSex", function(val) {	
-	if(val == 0){
+	if(val == 1){
 		return '男';
-	}else if(val == 1){
+	}else if(val == 2){
 		return '女';
 	}else {
 	  return '未知';