lhl 3 years ago
parent
commit
13468cec26
5 changed files with 308 additions and 1 deletions
  1. 27 0
      api/user.js
  2. 7 0
      pages.json
  3. 0 1
      pages/user/integral.vue
  4. 269 0
      pages/user/registerList.vue
  5. 5 0
      pages/user/user.vue

+ 27 - 0
api/user.js

@@ -157,4 +157,31 @@ export function trade(data) {
 		method: 'post',
 		data
 	})
+}
+
+//报单列表
+export function getRegisterList(data) {
+	return request({
+		url: '/api/register/list',
+		method: 'get',
+		data
+	})
 }
+
+//取消报单register/cancel/14
+export function cancelRegister(data,id) {
+	return request({
+		url: '/api/register/cancel/' + id,
+		method: 'post',
+		data
+	})
+}
+
+//支付报单register/pay/15
+export function payRegister(data,id) {
+	return request({
+		url: '/api/register/pay/' + id,
+		method: 'post',
+		data
+	})
+}

+ 7 - 0
pages.json

@@ -383,6 +383,13 @@
 			"style": {
 				"navigationBarTitleText": "佣金转账"
 				
+			}
+		},
+		{
+			"path": "pages/user/registerList",
+			"style": {
+				"navigationBarTitleText": "报单列表"
+				
 			}
 		}
 	],

+ 0 - 1
pages/user/integral.vue

@@ -4,7 +4,6 @@
 		<view class="header">
 			<image src="../../static/img/img38.png" mode="scaleToFill"></image>
 			<view class="money">{{+integralAll || 0}}</view>
-			<view class="transfer">佣金转账</view>
 		</view>
 		<!-- 收入和支出 -->
 		<view class="navbar">

+ 269 - 0
pages/user/registerList.vue

@@ -0,0 +1,269 @@
+<template>
+	<view class="content">
+		<view class="jg"></view>
+		<view class="navbar">
+			<view class="nav-item" v-for="(item, index) in registerList" :key="index"
+				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.title }}</view>
+		</view>
+		<swiper :interval="3000" :duration="200" :style="{'height': height}" class="swiper-wrapper"
+			:current="tabCurrentIndex" @change="changeTab">
+			<swiper-item v-for="(item, index) in registerList">
+				<scroll-view scroll-y="true" :style="{'height': height}">
+					<view v-for="(itemt,index) in item.list" class="list">
+						<view class="" v-if="itemt.rebuy == 0">
+							<view class="order-id">账号{{itemt.account}}</view>
+							<view class="time">
+								<view class="">父接点:{{itemt.account}}</view>
+								<view class="">接点区域:{{itemt.parent_area}}</view>
+							</view>
+							<view class="zfqx" v-if="tabCurrentIndex == 0">
+								<view class="btn" @click="payRegister(itemt)">
+									支付
+								</view>
+								<view class="btn qx" @click="cancelRegister(itemt)">
+									取消
+								</view>
+							</view>
+						</view>
+						<view class="" v-if="itemt.rebuy == 1">
+							<view class="order-id">
+								报单编号{{itemt.order_id}}
+							</view>
+							<view class="zfqx" v-if="tabCurrentIndex == 0">
+								<view class="btn"  @click="payRegister(itemt)">
+									支付
+								</view>
+								<view class="btn qx" @click="cancelRegister(itemt)">
+									取消
+								</view>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	import {
+		getRegisterList,
+		cancelRegister,
+		payRegister
+	} from '@/api/user.js'
+	export default {
+		data() {
+			return {
+				paytype: 'yue',
+				height: '',
+				tabCurrentIndex: 0,
+				registerList: [{
+						status: 0,
+						title: '未支付',
+						loadingType: 'more',
+						list: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+
+						status: 1,
+						title: '已支付',
+						loadingType: 'more',
+						list: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				]
+			}
+		},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-wrapper').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		onLoad() {
+			this.getRegisterList()
+		},
+		methods: {
+			getRegisterList(type) {
+				let obj = this;
+				let index = obj.tabCurrentIndex;
+				let navItem = obj.registerList[index];
+				if (navItem.loadingType == 'loading' || navItem.loadingType == 'noMore') {
+					return;
+				}
+				if (type == 'tabChange' && navItem.loaded == 'loaded') {
+					return;
+				}
+				navItem.loadingType == 'loading';
+				getRegisterList({
+					page: navItem.page,
+					limit: navItem.limit,
+					type: navItem.status
+				}).then(res => {
+					console.log(res, 'ddd')
+					navItem.list = navItem.list.concat(res.data);
+					if (navItem.limit == res.data.length) {
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				});
+			},
+			//顶部tab点击
+			tabClick(index) {
+				this.tabCurrentIndex = index;
+			},
+			//swiper 切换
+			changeTab(e) {
+				this.tabCurrentIndex = e.target.current;
+				this.getRegisterList('tabChange');
+			},
+			//取消订单
+			cancelRegister(item) {
+				let obj = this
+				cancelRegister({},item.id).then( res => {
+					uni.showToast({
+						title:'取消成功',
+						duration:2000
+					});
+					let s = obj.registerList[obj.tabCurrentIndex].list.indexOf(item);
+					obj.registerList[obj.tabCurrentIndex].list.splice(s, 1);
+				}).catch( err => {
+					console.log(err)
+				})
+			},
+			//支付报单
+			payRegister(item) {
+				let obj = this
+				payRegister({
+					paytype: obj.paytype,
+					// #ifdef MP
+					form: 'MP',
+					// #endif
+					// #ifdef H5
+					form: 'H5',
+					// #endif
+					// #ifdef APP-PLUS
+					form: 'APP',
+					// #endif
+				},item.id).then( res => {
+					uni.showToast({
+						title:'支付成功',
+						duration:2000
+					});
+					let s = obj.registerList[obj.tabCurrentIndex].list.indexOf(item);
+					obj.registerList[obj.tabCurrentIndex].list.splice(s, 1);
+				}).catch( err => {
+					console.log(err)
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+		background-color: #fff;
+	}
+
+	.content {
+		height: 100%;
+
+		.jg {
+			height: 20rpx;
+			background-color: #eee;
+		}
+
+		.navbar {
+			display: flex;
+			height: 100rpx;
+			padding: 0 5rpx;
+			background: #fff;
+			box-shadow: 0 1rpx 5rpx rgba(0, 0, 0, 0.06);
+			position: relative;
+			z-index: 10;
+			margin-top: 25rpx;
+
+			.nav-item {
+				flex: 1;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				height: 100%;
+				font-size: 15px;
+				color: #999999;
+				position: relative;
+
+				&.current {
+					color: #333333;
+
+					&:after {
+						content: '';
+						position: absolute;
+						left: 50%;
+						bottom: 0;
+						transform: translateX(-50%);
+						width: 44px;
+						height: 0;
+						border-bottom: 2px solid #3f7c1f;
+					}
+				}
+			}
+		}
+
+		.swiper-wrapper {}
+	}
+
+	.list {
+		padding: 5rpx 10rpx 5rpx 10rpx;
+
+		.order-id {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #666666;
+		}
+		.time {
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #AEAEAE;
+			display: flex;
+			view {
+				margin-right: 20rpx;
+			}
+		}
+		.zfqx {
+			display: flex;
+			justify-content: space-around;
+
+			.btn {
+				width: 150rpx;
+				// height: 50rpx;
+				background-color: #d7eeb6;
+				border-radius: 10rpx;
+				text-align: center;
+				line-height: 50rpx;
+				color: #FF0000;
+			}
+			.qx {
+				color: #999;
+			}
+		}
+	}
+</style>

+ 5 - 0
pages/user/user.vue

@@ -85,6 +85,11 @@
 					<view class="text">会员注册</view>
 					<image class="jiantou" src="../../static/img/img32.png" mode="scaleToFill"></image>
 				</view>
+				<view class="ul-btm" @click="nav('/pages/user/registerList')">
+					<image src="../../static/img/img29.png" mode="scaleToFill"></image>
+					<view class="text">报单列表</view>
+					<image class="jiantou" src="../../static/img/img32.png" mode="scaleToFill"></image>
+				</view>
 				<view class="ul-btm" @click="nav('/pages/set/address')">
 					<image src="../../static/img/img30.png" mode="scaleToFill"></image>
 					<view class="text">收货地址</view>