ruanzb 4 years ago
parent
commit
7f24114fdd
3 changed files with 165 additions and 71 deletions
  1. 2 2
      assets/http/api.js
  2. 63 29
      pages/bill/bill.vue
  3. 100 40
      pages/bill/billDetail.vue

+ 2 - 2
assets/http/api.js

@@ -31,6 +31,7 @@ const shop={
 	submit:(p)=> http.post('cyzh-ldt/shop/submit',p),
 	statistic:p => http.get('cyzh-ldt/app/shop/statistic?shopId='+p),
 	yingshouPage:p => http.get('cyzh-ldt/app/shop/getYingShouPage',{params:p}),
+	remainDetailPage:p => http.get('cyzh-ldt/app/shop/getRemainDetailPage',{params:p}),
 }
 
 const memberCenter={
@@ -67,8 +68,7 @@ const accout={
 	register:p => http.post('cyzh-ldt/appaccount/shop/register',p),
 	login:p => http.post('cyzh-ldt/appaccount/login',p),
 	modifPaw:p => http.post('cyzh-ldt/appaccount/setPassword',p),
-	forgetPaw:p => http.post('/cyzh-ldt/appaccount/forgetPassword',p),
-	forgetPaw:p => http.post('/cyzh-ldt/appaccount/forgetPassword',p)
+	forgetPaw:p => http.post('cyzh-ldt/appaccount/forgetPassword',p),
 }
 
 export const api={

+ 63 - 29
pages/bill/bill.vue

@@ -18,12 +18,12 @@
 		<view class="data">
 			<view class="left">
 				<view @click.stop="showTime = true">
-					<text>2021年7月</text>
+					<text>{{defaultTime}}</text>
 					<text class="cuIcon-unfold padding-left-10"></text>
 				</view>
-				<view>
+				<!-- <view>
 					<text>支出 ¥ 165.00 收入 ¥ 463.00</text>
-				</view>
+				</view> -->
 			</view>
 			<view class="right">
 				<text>统计</text>
@@ -32,7 +32,7 @@
 		</view>
 
 		<view class="card">
-			<view style="display: flex;">
+			<view v-if="current==0" style="display: flex;">
 				<view class="area1 area-padding " style="padding-left: 40rpx;">
 					<text>积分来源</text>
 				</view>
@@ -45,27 +45,43 @@
 			</view>
 			<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption"
 				:up="upOption">
-				<view @click="$jump('/pages/bill/billDetail?billDetail='+JSON.stringify(item))" class="item" hover-class="hoverClass"
+				<view @click="$jump('/pages/bill/billDetail?billDetail='+JSON.stringify(item)+'&current='+current)" class="item" hover-class="hoverClass"
 					v-for="(item,index) in list" :key="index">
-					<view class="area1">
-						<view class="item-padding">
-							<image :src="item.channelLogo" mode="aspectFit"></image>
-							<view class="">
-								<text>{{item.channelName}}</text>
-								<text>{{item.jsTime}}</text>
+					<block v-if="current==0">
+						<view class="area1">
+							<view class="item-padding">
+								<image :src="item.channelLogo" mode="aspectFit"></image>
+								<view class="">
+									<text>{{item.channelName}}</text>
+									<text>{{item.jsTime}}</text>
+								</view>
+							</view>
+						</view>
+						<view class="area2 text-area ">
+							<view class="item-padding">
+								<image style="width: 35rpx;height: 35rpx;margin-bottom: -5rpx;"
+									src="@/static/icon/points-value.png"></image>
+								<text style="font-size: 32rpx;margin-left: 10rpx;color: #F39248;">+{{item.point}}</text>
+							</view>
+						</view>
+						<view class="area3 text-area ">
+							<view class="item-padding" style="font-size: 34rpx;color: #000;">¥{{item.pointValue}}</view>
+						</view>
+					</block>
+					<block v-if="current==1">
+						<view class="area1">
+							<view class="item-padding">
+								<image :src="item.userAvator" mode="aspectFit"></image>
+								<view class="">
+									<text>{{item.userName}}</text>
+									<text>{{item.updateTime}}</text>
+								</view>
 							</view>
 						</view>
-					</view>
-					<view class="area2 text-area ">
-						<view class="item-padding">
-							<image style="width: 35rpx;height: 35rpx;margin-bottom: -5rpx;"
-								src="@/static/icon/points-value.png"></image>
-							<text style="font-size: 32rpx;margin-left: 10rpx;color: #F39248;">+{{item.point}}</text>
+						<view class="area3 text-area u-flex-1" >
+							<view class="item-padding" style="text-align: right;flex:1;font-size: 34rpx;color: #F39248;margin-right: 20rpx;">+¥{{item.realPayAmount}}</view>
 						</view>
-					</view>
-					<view class="area3 text-area ">
-						<view class="item-padding" style="font-size: 34rpx;color: #000;">¥{{item.pointValue}}</view>
-					</view>
+					</block>
 				</view>
 			</mescroll-body>
 			
@@ -118,8 +134,14 @@
 				let res = await this.$api.shop.detail(params)
 				this.shopData = res.data
 			},
+			async shop(){
+				let params = {}
+				
+				let res = await this.$api.shop.remainDetailPage(params)
+			},
 			confirmTime(e){
 				this.defaultTime = e.year + '-' +e.month
+				this.downCallback()
 			},
 			upCallback(mescroll) {
 				if (!this.vuex_shopId) {
@@ -132,13 +154,24 @@
 					monthTime:this.defaultTime
 				}
 				try {
-					this.$api.shop.yingshouPage(params).then(res => {
-						let data = res.data.records
-						let total = res.data.total
-						mescroll.endBySize(data.length, total);
-						if (mescroll.num == 1) this.list = []; //如果是第一页需手动制空列表
-						this.list = this.list.concat(data); //追加新数据
-					})
+					if(this.current==0){
+						this.$api.shop.yingshouPage(params).then(res => {
+							let data = res.data.records
+							let total = res.data.total
+							mescroll.endBySize(data.length, total);
+							if (mescroll.num == 1) this.list = []; //如果是第一页需手动制空列表
+							this.list = this.list.concat(data); //追加新数据
+						})
+					}else if(this.current==1){
+						this.$api.shop.remainDetailPage(params).then(res => {
+							let data = res.data.records
+							let total = res.data.total
+							mescroll.endBySize(data.length, total);
+							if (mescroll.num == 1) this.list = []; //如果是第一页需手动制空列表
+							this.list = this.list.concat(data); //追加新数据
+						})
+					}
+					
 				} catch (e) {
 					this.mescroll.endErr()
 				}
@@ -146,10 +179,11 @@
 			downCallback() {
 				setTimeout(() => {
 					this.mescroll.resetUpScroll();
-				}, 800)
+				}, 10)
 			},
 			change(index) {
 				this.current = index;
+				this.downCallback()
 			}
 		}
 	}

+ 100 - 40
pages/bill/billDetail.vue

@@ -1,49 +1,97 @@
 <template>
 	<view>
-		<view class="top">
-			<image :src="billDetail.channelLogo" mode="aspectFit"></image>
-			<text class="title">{{billDetail.channelName}}</text>
-			<view class="data">
-				<image src="@/static/icon/points-value.png" mode="aspectFit"></image>
-				<view>
-					<text>-{{billDetail.point}}</text>
-					<text>(价值 ¥ {{billDetail.pointValue}})</text>
+		<block v-if="current==0">
+			<view class="top">
+				<image :src="billDetail.channelLogo" mode="aspectFit"></image>
+				<text class="title">{{billDetail.channelName}}</text>
+				<view class="data">
+					<image src="@/static/icon/points-value.png" mode="aspectFit"></image>
+					<view>
+						<text>-{{billDetail.point}}</text>
+						<text>(价值 ¥ {{billDetail.pointValue}})</text>
+					</view>
 				</view>
 			</view>
-		</view>
-	
-		<view class="card">
-			<view class="item">
-				<text>交易状态</text>
-				<text>交易成功</text>
-			</view>
-			<view class="item" v-if="billDetail.jsStatus">
-				<text>结算时间</text>
-				<text>{{billDetail.jsStatus}}</text>
-			</view>
-			<view class="item">
-				<text>账期</text>
-				<text>{{billDetail.paymentDays}}</text>
-			</view>
-			<view class="item">
-				<text>产生时间</text>
-				<text>{{billDetail.updateTime}}</text>
-			</view>
-			<view class="item">
-				<text>交易时间</text>
-				<text>{{billDetail.jsTime}}</text>
+			<view class="card">
+				<view class="item">
+					<text>交易状态</text>
+					<text>交易成功</text>
+				</view>
+				<view class="item" v-if="billDetail.jsStatus">
+					<text>结算时间</text>
+					<text>{{billDetail.jsStatus}}</text>
+				</view>
+				<view class="item">
+					<text>账期</text>
+					<text>{{billDetail.paymentDays}}</text>
+				</view>
+				<view class="item">
+					<text>产生时间</text>
+					<text>{{billDetail.updateTime}}</text>
+				</view>
+				<view class="item">
+					<text>交易时间</text>
+					<text>{{billDetail.jsTime}}</text>
+				</view>
+				<view class="item">
+					<text>交易单号</text>
+					<text>{{billDetail.billRecordId}}</text>
+				</view>
+				<view class="item">
+					<text>商户单号</text>
+					<text>{{billDetail.billRecordId}}</text>
+				</view>
 			</view>
-			
-			<view class="item">
-				<text>交易单号</text>
-				<text>{{billDetail.billRecordId}}</text>
+		</block>
+		<block v-if="current==1">
+			<view class="top">
+				<image :src="billDetail.userAvator" mode="aspectFit"></image>
+				<text class="title">{{billDetail.userName}}</text>
+				<view class="data">
+					<view class="mainColor" style="padding: 0;">
+						+{{billDetail.realPayAmount}}
+					</view>
+				</view>
 			</view>
-			<view class="item">
-				<text>商户单号</text>
-				<text>{{billDetail.billRecordId}}</text>
+			<view class="card">
+				<view class="item">
+					<text>总价</text>
+					<text class="strong">{{billDetail.price}}</text>
+				</view>
+				<view class="item">
+					<text>积分成本</text>
+					<view class="u-flex">
+						<image style="width: 26rpx;height: 26rpx;" src="@/static/icon/points-value.png" mode="aspectFit"></image>
+						<text class="mainColor">+{{billDetail.point}}</text>
+						<text class="strong" style="margin-left: 50rpx;">¥{{billDetail.pointValue}}</text>
+					</view>
+				</view>
+				<view class="item">
+					<text>联营折扣</text>
+					<text style="color: #000;">{{billDetail.subsidy}}%</text>
+				</view>
+				<view class="item">
+					<text>通兑应收</text>
+					<text class="strong">¥{{billDetail.tongduiAccount}}</text>
+				</view>
+				<view class="item">
+					<text>交易状态</text>
+					<text>{{billDetail.payStatus==0?'待付款':billDetail.payStatus==1?'已付款':'已取消'}}</text>
+				</view>
+				<view class="item">
+					<text>交易时间</text>
+					<text>{{billDetail.updateTime}}</text>
+				</view>
+				<view class="item">
+					<text>支付方式</text>
+					<text>{{billDetail.payWay}}</text>
+				</view>
+				<view class="item">
+					<text>交易单号</text>
+					<text>{{billDetail.id}}</text>
+				</view>
 			</view>
-		</view>
-		
+		</block>
 		<view class="question">
 			<text>对订单有疑问</text>
 			<text class="cuIcon-right" style="margin-top: 5rpx;"></text>
@@ -55,13 +103,17 @@
 	export default{
 		data(){
 			return{
-				billDetail:{}
+				billDetail:{},
+				current:0
 			}
 		},
 		onLoad(option) {
 			if(option.billDetail){
 				this.billDetail = JSON.parse(option.billDetail)
 			}
+			if(option.current){
+				this.current = option.current
+			}
 		}
 	}
 </script>
@@ -133,4 +185,12 @@
 		display: flex;
 		justify-content: space-between;
 	}
+	.mainColor{
+		font-weight: bold;
+		color: $color;
+	}
+	.strong{
+		font-weight: bold;
+		color: #000;
+	}
 </style>