11 Commits ebb5db30af ... 473ecd34d0

Tác giả SHA1 Thông báo Ngày
  qzy 473ecd34d0 合并 9 tháng trước cách đây
  qzy b4c4e324cd Merge branch 'feature/asyncOrder' into feature/temp 9 tháng trước cách đây
  qzy d30c5c69ec 服务点数 9 tháng trước cách đây
  panlijun e379288d48 修改了服务点充值处理逻辑。 10 tháng trước cách đây
  panlijun 38bf18c643 微信支付调试 10 tháng trước cách đây
  qzy 990f761f59 微信支付appId配置 10 tháng trước cách đây
  qzy ee23cef6bc Merge remote-tracking branch 'origin/feature/wxPay' into feature/temp 10 tháng trước cách đây
  panlijun 2910429098 修改刷新的问题 11 tháng trước cách đây
  panlijun e01c0ea80f 修订了服务点页面的下拉,去掉多余的代码 11 tháng trước cách đây
  panlijun 96803be297 更新提现页面样式 11 tháng trước cách đây
  panlijun b6c4e5c3d2 1、边民个人信息增加服务点数显示; 11 tháng trước cách đây

+ 1 - 1
common/style.scss

@@ -155,7 +155,7 @@
 	border-radius: 8px;
 	overflow: hidden;
 	.s_item {
-		padding: 5px;
+		padding: 2px 5px;
 		background-color: white;
 		color: $font-c;
 		overflow: hidden;

+ 6 - 4
manifest.json

@@ -20,7 +20,9 @@
             "delay" : 0
         },
         /* 模块配置 */
-        "modules" : {},
+        "modules" : {
+            "Payment" : {}
+        },
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -61,8 +63,8 @@
             "sdkConfigs" : {
                 "payment" : {
                     "weixin" : {
-                        "__platform__" : [ "ios", "android" ],
-                        "appid" : "",
+                        "__platform__" : [ "android" ],
+                        "appid" : "wx0daaef365288a0db",
                         "UniversalLinks" : ""
                     }
                 },
@@ -122,7 +124,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wxfdde9c84718dc481",
+        "appid" : "",
         "setting" : {
             "urlCheck" : false
         },

+ 53 - 3
pages.json

@@ -435,7 +435,7 @@
 				}
 			}
 
-		}, 
+		},
 		{
 			"path": "pages/personal/my",
 			"style": {
@@ -450,7 +450,7 @@
 				"navigationBarTitleText": "互助组信息",
 				"enablePullDownRefresh": false
 			}
-		
+
 		},
 		{
 			"path": "pages/market/group/gourpIndex",
@@ -458,7 +458,7 @@
 				"navigationBarTitleText": "组内边民",
 				"enablePullDownRefresh": false
 			}
-		
+
 		},
 		{
 			"path": "pages/personal/setting",
@@ -665,6 +665,56 @@
 				"enablePullDownRefresh": true
 			}
 
+
+		},
+		{
+		    "path" : "pages/wallet/wallet",
+		    "style" :{
+		        "navigationBarTitleText": "服务点数",
+		        "enablePullDownRefresh": true
+		    }
+		},
+		{
+			"path": "pages/wallet/topup/edit",
+			"style": {
+				"navigationBarTitleText": "服务点充值",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/wallet/topdown/edit",
+			"style": {
+				"navigationBarTitleText": "服务点兑现",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/wallet/detail",
+			"style": {
+				"navigationBarTitleText": "服务点扣除详细",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/wallet/topup/detail",
+			"style": {
+				"navigationBarTitleText": "充值详情",
+				"enablePullDownRefresh": false
+			}
+		},	
+		{
+			"path": "pages/wallet/topup/topupSuccess",
+			"style": {
+				"navigationBarTitleText": "充值成功",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/wallet/topdown/detail",
+			"style": {
+				"navigationBarTitleText": "服务点兑现详细",
+				"enablePullDownRefresh": false
+			}
 		}
 	],
 	"tabBar": {

+ 15 - 4
pages/index/index.vue

@@ -157,9 +157,6 @@
 		},
 		onLoad() {
 			uni.hideLoading()
-			this.getBannerList();
-			this.getNewsList();
-			this.getMenu();
 			uni.$on('getMenu', res => {
 				this.getMenu();
 			});
@@ -171,6 +168,9 @@
 			this.checkFace()
 			this.getRead();
 			this.getUpdateInfo();
+			this.getBannerList();
+			this.getNewsList();
+			this.getMenu();
 		},
 		methods: {
 			getUpdateInfo() {
@@ -362,6 +362,18 @@
 					}
 				});
 			},
+			getUserWallet() {
+				if(this.user.userType===1){
+					this.http.request({
+						url: '/level-one-server/app/TbPeople/getById',
+						data: { id: this.user.fkId },
+						success: res => {
+							this.user.wallet = res.data.data.wallet;
+							uni.setStorageSync('info', this.user);
+						}
+					});
+				}
+			},
 			//点击轮播图
 			click(index) {
 				let item = this.bannerList[index];
@@ -393,7 +405,6 @@
 					});
 					return;
 				}
-				console.log(url);
 				uni.navigateTo({
 					url: url,
 					fail: res => {

+ 0 - 3
pages/login/login.vue

@@ -54,9 +54,6 @@ export default {
 					this.item.appVersion = wgtinfo.versionCode;
 				});
 				// #endif
-				// #ifdef H5
-				this.item.appVersion = '1.0.0';
-				// #endif
 			}
 		});
 	},

+ 172 - 130
pages/market/one/leader/handle.vue

@@ -187,150 +187,192 @@
 </template>
 
 <script>
-export default {
-	data() {
-		return {
-			ip: this.http.ip,
-			imgList: [],
-			expand: false, //展开
-			current: 0,
-			item: {},
-			item2: {},
-			orderId: '',
-			peopleConfirmStatus: '',
-			cooperEntrustStatus: '',
-			applyConfirmStatus: '',
-			cooper_entrust: 2
-		};
-	},
-	onLoad(e) {
-		if (e.orderId && e.peopleConfirmStatus && e.applyConfirmStatus) {
-			this.orderId = e.orderId;
-			this.peopleConfirmStatus = e.peopleConfirmStatus;
-			this.cooperEntrustStatus = e.cooperEntrustStatus;
-			this.applyConfirmStatus = e.applyConfirmStatus;
-			if(this.peopleConfirmStatus == 0) {
-				this.current = 0;
-				this.getData1();
-			} else if(this.peopleConfirmStatus == 1  && this.applyConfirmStatus == 0) {
-				this.current = 1;
-				this.getData2();
+	export default {
+		data() {
+			return {
+				ip: this.http.ip,
+				imgList: [],
+				expand: false, //展开
+				current: 0,
+				item: {},
+				item2: {},
+				orderId: '',
+				peopleConfirmStatus: '',
+				cooperEntrustStatus: '',
+				applyConfirmStatus: '',
+				cooper_entrust: 2
+			};
+		},
+		onLoad(e) {
+			if (e.orderId && e.peopleConfirmStatus && e.applyConfirmStatus) {
+				this.orderId = e.orderId;
+				this.peopleConfirmStatus = e.peopleConfirmStatus;
+				this.cooperEntrustStatus = e.cooperEntrustStatus;
+				this.applyConfirmStatus = e.applyConfirmStatus;
+				if (this.peopleConfirmStatus == 0) {
+					this.current = 0;
+					this.getData1();
+				} else if (this.peopleConfirmStatus == 1 && this.applyConfirmStatus == 0) {
+					this.current = 1;
+					this.getData2();
+				}
 			}
-		}
 
-		//人脸认证回调
-		uni.$on('face',res=>{
-			if(res){
-				this.confirmFn()
-			}
-		})
-	},
-	methods: {
-		confirmFn(){
-			if (this.current == 0){
-				 this.http.request({
-					url: '/level-one-server/app/TbOrder/confirmOrder',
-					method: 'POST',
-					data: { orderId: this.item.id },
-					success: res => {
-						uni.showToast({ title: '订单确认成功' });
-						this.current = 1;
-						uni.setNavigationBarTitle({ title: '互助委托确认' });
-						this.getData2();
-					}
-				});
-			}
-			if (this.current == 1){
-				 this.http.request({
-				 	url: '/level-one-server/app/TbOrder/applyOrder',
-				 	method: 'POST',
-				 	data: { orderId: this.orderId },
-				 	success: res => {
-				 		uni.showToast({ title: '进口申报确认成功' });
-				 		setTimeout(() => {
-				 			uni.switchTab({ url: '/pages/index/index' });
-				 		}, 1000);
-				 	}
-				 });
-			}
-		},
-		getData1() {
-			this.http.request({
-				url: '/level-one-server/app/TbOrder/orderDetail',
-				data: { orderId: this.orderId },
-				success: res => {
-					this.item = res.data.data;
+			//人脸认证回调
+			uni.$on('face', res => {
+				if (res) {
+					this.confirmFn()
 				}
-			});
+			})
 		},
-		getData2() {
-			this.http.request({
-				url: '/level-one-server/app/TbImportOrder/importOrderDetail',
-				data: { orderId: this.orderId },
-				success: res => {
-					this.item2 = res.data.data;
-					JSON.parse(this.item2.cooperEntrustImg).map(item => this.imgList.push(item))
-					console.log("-----5-----"+this.imgList)
+		methods: {
+			confirmFn() {
+			
+
+				if (this.current == 0) {
+					this.http.request({
+						url: '/level-one-server/app/TbOrder/confirmOrder',
+						method: 'POST',
+						data: {
+							orderId: this.item.id
+						},
+						success: res => {
+							uni.showToast({
+								title: '订单确认成功'
+							});
+							this.current = 1;
+							uni.setNavigationBarTitle({
+								title: '互助委托确认'
+							});
+							this.getData2();
+						}
+					});
 				}
-			});
-		},
-		ok() {
-			//根据不同的步骤提交不同的url或者状态参数
-			if (this.current == 0) {
-				uni.showModal({
-					title: '提示',
-					content: '我已核对信息无误',
-					success: res => {
-						if (res.confirm) {
-							//return;
-							//跳转到人脸认证
-							uni.navigateTo({url:'/pages/face/faceRegister?type=2'})
+				if (this.current == 1) {
+					this.http.request({
+						url: '/level-one-server/app/TbOrder/applyOrder',
+						method: 'POST',
+						data: {
+							orderId: this.orderId
+						},
+						success: res => {
+							uni.showToast({
+								title: '进口申报确认成功'
+							});
+							setTimeout(() => {
+								uni.switchTab({
+									url: '/pages/index/index'
+								});
+							}, 1000);
 						}
+					});
+				}
+			},
+			getData1() {
+				this.http.request({
+					url: '/level-one-server/app/TbOrder/orderDetail',
+					data: {
+						orderId: this.orderId
+					},
+					success: res => {
+						this.item = res.data.data;
 					}
 				});
-			}
-			if (this.current == 1) {
-				//进口确认不用刷脸
-				uni.showModal({
-					title: '提示',
-					content: '我已核对信息无误',
+			},
+			getData2() {
+				this.http.request({
+					url: '/level-one-server/app/TbImportOrder/importOrderDetail',
+					data: {
+						orderId: this.orderId
+					},
 					success: res => {
-						if (res.confirm) {
-							//return;
-							//跳转到人脸认证
-							this.confirmFn();
-							//uni.navigateTo({url:'/pages/face/faceRegister?type=2'})
-						}
+						this.item2 = res.data.data;
+						JSON.parse(this.item2.cooperEntrustImg).map(item => this.imgList.push(item))
+						console.log("-----5-----" + this.imgList)
 					}
 				});
+			},
+			ok() {
+				let user = this.getUser();
+				if (user.wallet <= 0) {
+					uni.showModal({
+						title: '提示',
+						content: '剩余服务点数不足,请先充值!',
+						success: function(res) {
+							if (res.confirm) {
+								uni.navigateTo({
+									url:'/pages/wallet/wallet'
+								})
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					})
+					return;
+				}
+				//根据不同的步骤提交不同的url或者状态参数
+				if (this.current == 0) {
+					uni.showModal({
+						title: '提示',
+						content: '我已核对信息无误',
+						success: res => {
+							if (res.confirm) {
+								//return;
+								//跳转到人脸认证
+								uni.navigateTo({
+									url: '/pages/face/faceRegister?type=2'
+								})
+							}
+						}
+					});
+				}
+				if (this.current == 1) {
+					//进口确认不用刷脸
+					uni.showModal({
+						title: '提示',
+						content: '我已核对信息无误',
+						success: res => {
+							if (res.confirm) {
+								//return;
+								//跳转到人脸认证
+								this.confirmFn();
+								//uni.navigateTo({url:'/pages/face/faceRegister?type=2'})
+							}
+						}
+					});
+				}
 			}
+		},
+		destroyed() {
+			uni.$off('face');
 		}
-	},
-	destroyed() {
-		uni.$off('face');
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	background-color: $pg;
-}
-.cmain{
-	padding-bottom: 100px;
-}
-.expand {
-	overflow: hidden;
-}
-.more {
-	text-align: center;
-	padding: 10px 10px 15px 10px;
-	.icon {
-		padding-right: 3px;
+	page {
+		background-color: $pg;
+	}
+
+	.cmain {
+		padding-bottom: 100px;
+	}
+
+	.expand {
+		overflow: hidden;
+	}
+
+	.more {
+		text-align: center;
+		padding: 10px 10px 15px 10px;
+
+		.icon {
+			padding-right: 3px;
+		}
+	}
+
+	.ctt {
+		text-align: center;
+		font-weight: bold;
 	}
-}
-.ctt {
-	text-align: center;
-	font-weight: bold;
-}
-</style>
+</style>

+ 18 - 0
pages/market/one/leader/handleThree.vue

@@ -249,6 +249,7 @@ export default {
 	},
 	methods: {
 		confirmFn(){
+		
 			if (this.current == 0){
 				 this.http.request({
 					url: '/level-one-server/app/TbOrder/confirmOrder',
@@ -358,6 +359,23 @@ export default {
 			});
 		},
 		ok() {
+			let user = this.getUser();
+			if (user.wallet <= 0) {
+				uni.showModal({
+					title: '提示',
+					content: '剩余可用点数不足,请先充值!',
+					success: function(res) {
+						if (res.confirm) {
+							uni.navigateTo({
+								url:'/pages/wallet/wallet'
+							})
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				})
+				return;
+			}
 			//根据不同的步骤提交不同的url或者状态参数
 			if (this.current == 0) {
 				uni.showModal({

+ 0 - 2
pages/market/order/order.vue

@@ -161,8 +161,6 @@
 						this.loadMore = parseInt(res.data.pageCount) > this.param.pageNo;
 						if (res.data.data) {
 							this.list = res.data.data;
-							console.log("---1---=" + this.list[0].finishStatus)
-							console.log("---2---=" + this.list[0].resaleStatus)
 						}
 					}
 				});

+ 108 - 103
pages/market/two/leader/resale.vue

@@ -34,38 +34,19 @@
 					<text class="label">预上架金额</text>
 					<text class="desc">¥ {{ item.totalPrice }}</text>
 				</view>
-				<!-- <view class="item">
-					<text class="label">利润</text>
-					<text class="desc">50元</text>
-				</view> -->
-				<!-- <view class="item">
-					<text class="label">上架金额</text>
-					<text class="desc">¥ {{ resalePrice }}</text>
-				</view> -->
-				<view  style="font-size: 12px;padding: 5px;height: 30px;line-height: 30px;">注:本次上架需扣除服务1点数</view>
+
+				<view style="font-size: 16px;padding: 5px;height: 80px;line-height: 30px;">注:本次上架需扣除服务1点数,
+					<view>剩余服务点数:<text style="font-weight: bold;">{{user.wallet}}</text><text
+							style="margin-left: 10px;color: blue" @click="toCharge">前往充值</text></view>
+				</view>
 			</view>
-		<!-- 	<u-divider text="服务费明细"></u-divider>
-			<view v-if="fee.totalFee>0">{{fee.title}}:{{fee.totalFee}}<span style="color: coral;margin-left: 5px;font-size: 16px;">元</span></view>
-			<view class="box">
-				<u-collapse v-for="(item,index) in fee.feeList" :key="index" :value="['1']">
-					<u-collapse-item :title="item.name" class="cell_title" name="1">
-						<view class="itm">1、系统服务费:{{ item.name }}</view>
-						<view class="itm" v-if="item.feeType ==1">2、收费类型:按交易额收取</view>
-						<view class="itm" v-if="item.feeType ==2">2、收费类型:按次收取</view>
-						<view class="itm" v-if="item.feeType ==3">2、收费类型:按吨收取</view>
-						<view class="itm" v-if="item.feeType ==1">3、收费%(按交易额收):<span style="color: coral;">{{ item.percent }} %</span></view>
-						<view class="itm" v-if="item.feeType ==2">3、收费金额(按次收):<span style="color: coral;">{{ item.feeMoney }} 元</span></view>
-						<view class="itm" v-if="item.feeType ==3">3、收费%(按吨收):<span style="color: coral;">{{ item.percent }} %</span></view>
-						<view class="itm">4、当前订单收取金额:<span style="color: coral;">{{ item.feeMoney }} 元</span></view>
 
-					</u-collapse-item>
-				</u-collapse>
-			</view> -->
 		</view>
 		<view class="mfooter" v-if="item.upStatus != 2">
 			<view class="flex">
 				<view class="f">
-					<button class="btn" @click="ok()">确定上架</button>
+					<button class="btn" @click="ok()" v-if="user.wallet>0">确定上架</button>
+					<button class="btn" style="color: firebrick;" @click="toCharge" v-else>前往充值</button>
 				</view>
 			</view>
 		</view>
@@ -73,91 +54,115 @@
 </template>
 
 <script>
-export default {
-	data() {
-		return {
-			item: {},
-			resalePrice: '',
-			weight: '',
-			price: '',
-			newRuleList: [],
-			fee:{
-				totalFee:0,
-				feeList:[]
-			}
-		};
-	},
-	onLoad(e) {
-		if (e.item) {
-			this.item = JSON.parse(e.item);
-			this.price = this.item.totalPrice;
-			this.weight = this.item.totalWeight;
-			//this.countPrice();
-		}
-	},
-	methods: {
-		fetchItemList(){
-			this.http.request({
-				url: '/level-two-server/app/TbOrders/fetchItemList',
-				data: {id: this.item.id},
-				success: res => {
-					this.resalePrice = (res.data.data.sumPrice + 50).toFixed(2)
-					this.newRuleList = res.data.data.newRuleList
+	export default {
+		data() {
+			return {
+				item: {},
+				resalePrice: '',
+				weight: '',
+				price: '',
+				user: {},
+				newRuleList: [],
+				fee: {
+					totalFee: 0,
+					feeList: []
 				}
-			});
+			};
 		},
-		//费项合计
-		countPrice(){
-			this.http.request({
-				url: '/level-two-server/app/TbOrders/countPrice',
-				data: {id: this.item.id},
-				success: res => {
-					// this.resalePrice = (res.data.data.sumPrice + 50).toFixed(2)
-					// this.newRuleList = res.data.data.newRuleList
-					this.fee=res.data.data;
-					this.resalePrice = (this.fee.totalFee + this.item.totalPrice).toFixed(2);
-				}
-			});
-		},
-		ok() {
-			let resalePrice=this.resalePrice;
-			/* if(!resalePrice){
-					uni.showToast({title: '请填写上架金额',icon:'error'});
-				return;
+		onLoad(e) {
+			if (e.item) {
+				this.item = JSON.parse(e.item);
+				this.price = this.item.totalPrice;
+				this.weight = this.item.totalWeight;
+				this.user = this.getUser();
+				//this.countPrice();
 			}
-			if(resalePrice<this.item.totalPrice){
-				uni.showToast({title: '上架金额不能小于订单金额',icon:'error'});
-				return;
-			} */
-			uni.showModal({
-				title: '提示',
-				content: '确定上架?',
-				success: res => {
-					if (res.confirm) {
-						this.http.request({
-							url: '/level-one-server/app/TbOrder/up',
-							data: {id: this.item.id, upPrice: this.item.totalPrice},
-							success: res => {
-								uni.showToast({title: '提交成功'});
-								uni.navigateBack();
-							}
-						});
+		},
+		methods: {
+			toCharge() {
+				uni.navigateTo({
+					url: '/pages/wallet/topup/edit'
+				});
+			},
+			fetchItemList() {
+				this.http.request({
+					url: '/level-two-server/app/TbOrders/fetchItemList',
+					data: {
+						id: this.item.id
+					},
+					success: res => {
+						this.resalePrice = (res.data.data.sumPrice + 50).toFixed(2)
+						this.newRuleList = res.data.data.newRuleList
+					}
+				});
+			},
+			//费项合计
+			countPrice() {
+				this.http.request({
+					url: '/level-two-server/app/TbOrders/countPrice',
+					data: {
+						id: this.item.id
+					},
+					success: res => {
+						// this.resalePrice = (res.data.data.sumPrice + 50).toFixed(2)
+						// this.newRuleList = res.data.data.newRuleList
+						this.fee = res.data.data;
+						this.resalePrice = (this.fee.totalFee + this.item.totalPrice).toFixed(2);
 					}
+				});
+			},
+			ok() {
+				let resalePrice = this.resalePrice;
+				/* if(!resalePrice){
+						uni.showToast({title: '请填写上架金额',icon:'error'});
+					return;
 				}
-			});
+				if(resalePrice<this.item.totalPrice){
+					uni.showToast({title: '上架金额不能小于订单金额',icon:'error'});
+					return;
+				} */
+				uni.showModal({
+					title: '提示',
+					content: '确定上架?',
+					success: res => {
+						if (res.confirm) {
+							let that = this;
+							this.http.request({
+								url: '/level-one-server/app/TbOrder/up',
+								data: {
+									id: this.item.id,
+									upPrice: this.item.totalPrice
+								},
+								success: res => {
+									let resp = res.data;
+									uni.showToast({
+										title: resp.data
+									});
+									if (resp.code == 200) {
+										let user = that.user;
+										user.wallet = user.wallet - resp.data;
+										uni.setStorageSync('info', user);
+										uni.navigateBack();
+									}
+
+								}
+							});
+						}
+					}
+				});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	background-color: $pg;
-}
-.item {
-	input{
-		margin-top: 0px!important;
-	}
+	page {
+		background-color: $pg;
 	}
 
-</style>
+	.item {
+		input {
+			margin-top: 0px !important;
+		}
+	}
+</style>

+ 24 - 1
pages/personal/personal.vue

@@ -40,6 +40,8 @@
 					<view class="tag" v-if="user.userType == 4">司机</view>
 					<view class="tag" v-if="user.userType == 5">商户</view>
 					<view class="tag" v-if="user.userType == 6">合作社</view>
+					<view class="tag" style="margin-left: 0.5rem;" v-if="user.userType == 1||user.userType == 2"
+						@click="go('/pages/wallet/wallet')">服务点数: {{ user.wallet }}</view>
 				</view>
 				<view class="clear"></view>
 			</view>
@@ -133,6 +135,18 @@
 					uni.setStorageSync('info', this.user);
 				}
 			});
+			if (this.user.userType === 1) {
+				this.http.request({
+					url: '/level-one-server/app/TbPeople/getById',
+					data: {
+						id: this.user.fkId
+					},
+					success: res => {
+						this.user.wallet = res.data.data.wallet;
+						uni.setStorageSync('info', this.user);
+					}
+				});
+			}
 		},
 		methods: {
 			authAgain(){
@@ -171,6 +185,15 @@
 					});
 				}
 			},
+
+			wallet() {
+				if (!this.hasAuth() && this.user.userType == 1) {
+					uni.navigateTo({
+						url: '/pages/wallet/wallet'
+					});
+					return;
+				}
+			},
 			go(url) {
 				if (!this.hasAuth() && this.user.userType == 5) {
 					uni.navigateTo({
@@ -238,7 +261,7 @@
 					}
 				});
 			}
-		}
+	},
 	};
 </script>
 

+ 70 - 0
pages/wallet/detail.vue

@@ -0,0 +1,70 @@
+<template>
+	<view>
+		<view class="cmain">
+			<view class="box order_detail" style="margin-top: 0px">
+				<u-divider text="服务点扣除信息"></u-divider>
+				<view class="item" style="padding-top: 0px">
+					<text class="label">扣除用途</text>
+					<text class="desc">商品上架</text>
+				</view>
+				<view class="item">
+					<text class="label">订单号</text>
+					<text class="desc omit">{{ item.tradeNo }}</text>
+				</view>
+				<view class="item">
+					<text class="label">商品名称</text>
+					<text class="desc">{{ item.goodsNames }}</text>
+				</view>
+				<view class="item">
+					<text class="label">车牌号</text>
+					<text class="desc">{{ item.veNo }}</text>
+				</view>
+				<view class="item">
+					<text class="label">交易扣除点数</text>
+					<text class="desc">-{{ item.amount }}</text>
+				</view>
+				<view class="item">
+					<text class="label">扣除时间</text>
+					<text class="desc">{{ item.recordTime }}</text>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			item: {},
+			param: {},
+		};
+	},
+	onLoad(e) {
+		if (e.id) {
+			this.param.id = e.id
+			this.http.request({
+				url: '/level-one-server/app/WalletManage/getWalletRecordById',
+				data: this.param,
+				success: res => {
+					this.item = res.data.data;
+				}
+			});
+		}
+	},
+	methods: {
+		//查看边民
+		members(id) {
+			uni.navigateTo({
+				url: '/pages/market/one/leader/members?id=' + id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background-color: $pg;
+}
+</style>

+ 65 - 0
pages/wallet/topdown/detail.vue

@@ -0,0 +1,65 @@
+<template>
+	<view>
+		<view class="cmain">
+			<view class="box order_detail" style="margin-top: 0px">
+				<u-divider text="服务点提现信息"></u-divider>
+				<view class="item" style="padding-top: 0px">
+					<text class="label">提现方式</text>
+					<text class="desc">电子银联</text>
+				</view>
+				<view class="item">
+					<text class="label">商户号</text>
+					<text class="desc omit">{{ item.mchid }}</text>
+				</view>
+				<view class="item">
+					<text class="label">商户系统内部订单号</text>
+					<text class="desc omit">{{ item.outTradeNo }}</text>
+				</view>
+				<view class="item">
+					<text class="label">平台系统生成的订单号</text>
+					<text class="desc omit">{{ item.transactionId }}</text>
+				</view>
+				<view class="item">
+					<text class="label">服务点数量(金额)</text>
+					<text class="desc">-{{ item.amount }}</text>
+				</view>
+				<view class="item">
+					<text class="label">提现时间</text>
+					<text class="desc">{{ item.topdownTime }}</text>
+				</view>	
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			item: {},
+			param: {},
+		};
+	},
+	onLoad(e) {
+		if (e.id) {
+			this.param.id = e.id
+			this.http.request({
+				url: '/level-one-server/app/WalletManage/getTopDownById',
+				data: this.param,
+				success: res => {
+					this.item = res.data.data;
+				}
+			});
+		}
+	},
+	methods: {
+		
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background-color: $pg;
+}
+</style>

+ 175 - 0
pages/wallet/topdown/edit.vue

@@ -0,0 +1,175 @@
+<template>
+  <view class="withdrawal-container">
+    <view class="balance-info">
+      <text class="balance-label">可用服务点数:</text>
+      <text class="balance-amount">{{ user.wallet }}</text>
+    </view>
+
+    <view class="input-section">
+      <text class="input-label">兑现数量(1个兑现1元人民币):</text>
+      <input 
+        v-model.number="total_fee" 
+        type="number" 
+        class="amount-input"
+        placeholder="请输入兑现数量"
+      />
+    </view>
+
+    <button 
+      class="submit-btn" 
+      :class="{ 'submit-btn-disabled': !isValidAmount }"
+      :disabled="!isValidAmount" 
+      @click="createOrder('wxpay')"
+    >
+      发起兑现
+    </button>
+
+    <text v-if="errorMessage" class="error-message">{{ errorMessage }}</text>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      user: {},
+      total_fee: null,
+      errorMessage: ''
+    }
+  },
+  computed: {
+    isValidAmount() {
+      return this.total_fee && this.total_fee > 0 && this.total_fee <= this.user.wallet
+    }
+  },
+  onLoad() {
+    this.user = this.getUser()
+  },
+  methods: {
+    createOrder(provider) {
+		uni.showModal({
+			content: '功能正在开发中...',
+			showCancel: false
+		});
+		return;
+      if (!this.isValidAmount) {
+        this.errorMessage = '请输入有效的兑现数量'
+        return
+      }
+
+      this.errorMessage = ''
+      uni.showLoading({ title: '处理中...' })
+
+      this.http.request({
+        url: '/level-one-server/app/WalletManage/topdownSave',
+        data: {
+          amount: this.total_fee * 100, // Convert to cents
+          goodsName: '服务点兑现'
+        },
+        success: res => {
+          uni.hideLoading()
+          this.user.wallet -= this.total_fee
+          uni.setStorageSync('info', this.user)
+          uni.showToast({
+            title: '兑现成功!',
+            icon: 'success'
+          })
+          setTimeout(() => {
+            uni.navigateBack({ delta: 1 })
+          }, 1500)
+        },
+        fail: err => {
+          uni.hideLoading()
+          this.errorMessage = '兑现失败,请稍后重试'
+          console.error('Withdrawal failed:', err)
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+.withdrawal-container {
+  padding: 30px;
+  background-color: #f8f8f8;
+  min-height: 100vh;
+}
+
+.balance-info {
+  background-color: #007AFF;
+  padding: 20px;
+  border-radius: 10px;
+  margin-bottom: 20px;
+}
+
+.balance-label {
+  font-size: 16px;
+  color: rgba(255, 255, 255, 0.8);
+}
+
+.balance-amount {
+  font-size: 24px;
+  font-weight: bold;
+  color: #fff;
+}
+
+.input-section {
+  background-color: #fff;
+  padding: 15px;
+  border-radius: 10px;
+  margin-bottom: 20px;
+}
+
+.input-label {
+  font-size: 16px;
+  color: #333;
+  margin-bottom: 10px;
+}
+
+.amount-input {
+  border: 1px solid #ddd;
+  border-radius: 5px;
+  padding: 10px;
+  font-size: 16px;
+  width: 100%;
+  box-sizing: border-box;
+  height: 40px;
+}
+
+.submit-btn {
+  background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
+  color: #fff;
+  padding: 15px;
+  border-radius: 25px;
+  font-size: 18px;
+  font-weight: bold;
+  width: 100%;
+  border: none;
+  margin-top: 20px;
+  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+  transition: all 0.3s ease;
+
+  &:active {
+    transform: translateY(2px);
+    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+  }
+
+  &:disabled {
+    background: #ccc;
+    box-shadow: none;
+  }
+}
+
+.submit-btn-disabled {
+  opacity: 0.7;
+  cursor: not-allowed;
+}
+
+.error-message {
+  color: #ff4d4f;
+  font-size: 14px;
+  margin-top: 10px;
+  text-align: center;
+}
+</style>

+ 196 - 0
pages/wallet/topup/detail.vue

@@ -0,0 +1,196 @@
+<template>
+	<view class="recharge-details">
+		<u-divider text="服务点充值信息"></u-divider>
+		<view class="content">
+			<view class="card">
+				<view class="card-item">
+					<text class="label">充值时间</text>
+					<text class="value">{{ detail.topupTime }}</text>
+				</view>
+				<view class="card-item highlight">
+					<text class="label">充值点数</text>
+					<text class="value">{{ detail.amount }}</text>
+				</view>
+				<view class="card-item">
+					<text class="label">充值前点数</text>
+					<text class="value">{{ detail.beforeAmount }}</text>
+				</view>
+				<view class="card-item">
+					<text class="label">充值后点数</text>
+					<text class="value">{{ detail.afterAmount }}</text>
+				</view>
+			</view>
+
+			<view class="card">
+				<view class="card-item">
+					<text class="label">微信订单号</text>
+					<text class="value">{{ detail.transactionId }}</text>
+				</view>
+				<view class="card-item">
+					<text class="label">系统订单号</text>
+					<text class="value">{{ detail.outTradeNo }}</text>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<button class="return-button" @tap="goBack">返回</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				detail: {
+
+				},
+				rechargeTime: '2024-10-28 17:18:58',
+				beforePoints: 100,
+				afterPoints: 200,
+				rechargePoints: 100,
+				wxOrderNo: 'WX20241028171858001',
+				systemOrderNo: 'SYS20241028171858001'
+			}
+		},
+		onLoad(option) {
+			// 从路由参数中获取充值金额
+			this.geDetail(option.id);
+		},
+		methods: {
+			geDetail(id) {
+				this.http.request({
+					url: '/level-one-server/app/TbWalletTopup/getById',
+					data: {
+						id: id
+					},
+					success: resp => {
+						this.detail = resp.data.data;
+					}
+				})
+			},
+			goBack() {
+				uni.navigateBack()
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	.recharge-details {
+		min-height: 80vh;
+		background-color: #f5f7fa;
+		display: flex;
+		flex-direction: column;
+	}
+
+	.header {
+		background-color: #007AFF;
+		padding: 40rpx 30rpx;
+		display: flex;
+		align-items: center;
+		position: relative;
+
+		.back-button {
+			position: absolute;
+			left: 30rpx;
+
+			.icon-back {
+				font-size: 40rpx;
+				color: #ffffff;
+			}
+		}
+
+		.title {
+			flex: 1;
+			text-align: center;
+			color: #ffffff;
+			font-size: 36rpx;
+			font-weight: bold;
+		}
+	}
+
+	.content {
+		flex: 1;
+		padding: 30rpx;
+	}
+
+	.card {
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		padding: 30rpx;
+		margin-bottom: 30rpx;
+		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
+	}
+
+	.card-item {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 20rpx 0;
+		border-bottom: 1rpx solid #f0f0f0;
+
+		&:last-child {
+			border-bottom: none;
+		}
+
+		.label {
+			color: #666666;
+			font-size: 28rpx;
+		}
+
+		.value {
+			color: #333333;
+			font-size: 28rpx;
+			font-weight: 500;
+		}
+
+		&.highlight {
+
+			.label,
+			.value {
+				color: #007AFF;
+				font-weight: bold;
+			}
+		}
+	}
+
+	.footer {
+		padding: 30rpx;
+	}
+
+	.return-button {
+		background-color: #007AFF;
+		color: #ffffff;
+		border: none;
+		border-radius: 50rpx;
+		padding: 20rpx 0;
+		font-size: 32rpx;
+		font-weight: bold;
+		box-shadow: 0 4rpx 12rpx rgba(0, 123, 255, 0.3);
+		transition: all 0.3s ease;
+
+		&:active {
+			transform: translateY(2rpx);
+			box-shadow: 0 2rpx 6rpx rgba(0, 123, 255, 0.3);
+		}
+	}
+
+	// 添加一个简单的图标字体,用于返回按钮
+	@font-face {
+		font-family: 'iconfont';
+		src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKcAAsAAAAABlAAAAJPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApsgQ0BNgIkAwgLBgAEIAWEbQc2G7oFyK4wbuGJaCVsrXwzCN5Xzef9nLtvzMwHRJIoiAlKQqKQIlGah3TvpF7pzvL/udLXgDhQy0QkqtWuZ87sJvSGnCqkQh6Q0/+cXm0CDnx+oEvNg9oATlsDjLMosgIpIG8Yu8AlPCbQaVYjcVhZ3wIlhTEvEE8MoYBSllQpDW1DvWJjEW9Aazo9Th+BN//9+JeKUkmaMvPi/nHFBco/a3+Wg/9BdAQIEEFwvY2MNSARJ5WZQ1IwLqmTn2WwBdVq8bP2/ycysFXkv7wiyGrIbmAKs+RnrRQEP2vVIPEOXTqx3wTEY7A3cDgFx0vS1d0GlBSIyG5/3Nvde7h69Xrn6Qvd9auDZyuHV3fXL1+ygbZuHT6+Vgm7eAFOx84eX3/Rde7MwZHo9trZ3UtHR3fvHt1dO9c9gu7t3e2jI+jcNbJ/dHvvLrq1tn9y7eDZ9aNn+4/uQNf2T+/t3L3qcPzm9E3H/wdxWPy0z7z9fKs5bK+8mQ+TJfCt/OnGX+Vgp+Dj/0j4N1/8Gx/yEXxrBqXzrWGAn7WfYMFEo2HLlKYGOxSC3KBTJxCtxlHSbgp9Gu3zO3XqhEqLSiVkncYwGbWGRpc1qNVpC52u2F3dZUQpRjpYMQ+h3wVJr0/I+n1hMuoTGqO+odYfJnS6j5hL7LIaZuVYDFGhGPsPnYeKJOlGzTvyNZSLOhPlC49oCnOy4Pk5Z0SKsUNu4SJcFxmGiSAXLuA8dF0Jznmm6FNRqLgxjOp4iEIhDLP/QMdDCimlNjjz/XwNygo1J1Qgki+kUjBOLEGnHycJIdXKdqhbqpZwusAwGEkgXOACctEpCeQ4Ty/RR4lCCo3JFKqOK4r1+TXSD+5AJ+NRpMhRokIdGvQcY6YZk0o6lZRTq5kRAAA=') format('woff2');
+	}
+
+	.iconfont {
+		font-family: "iconfont" !important;
+		font-style: normal;
+		-webkit-font-smoothing: antialiased;
+		-moz-osx-font-smoothing: grayscale;
+	}
+
+	.icon-back:before {
+		content: "\e697";
+	}
+</style>

+ 211 - 0
pages/wallet/topup/edit.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="recharge-container">
+		<view class="amount-options">
+			<view v-for="amount in amounts" :key="amount"
+				:class="['amount-option', { selected: selectedAmount === amount }]" @tap="selectAmount(amount)">
+				{{ amount }}元
+			</view>
+		</view>
+		<view class="custom-amount">
+			<input type="number" v-model="customAmount" placeholder="自定义金额" @input="onCustomAmountInput"
+				@blur="validateCustomAmount" />
+			<text>元</text>
+		</view>
+		<button class="submit-btn" @tap="submitRecharge">确认充值</button>
+		<view style="padding: 15px;line-height: 30px;font-size: 16px;">
+			<h3>充值说明:</h3>
+			<view>1、充值的金额和服务点数相对应,充值一元=一服务点数;</view>
+			<view>2、充值的服务点数仅用于商品上架二级市场的技术服务费。</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				amounts: [5, 10, 20, 30, 50, 100],
+				selectedAmount: 5,
+				customAmount: '',
+			}
+		},
+
+		methods: {
+
+			selectAmount(amount) {
+				this.selectedAmount = amount
+				this.customAmount = ''
+			},
+			onCustomAmountInput() {
+				this.selectedAmount = null;
+				this.customAmount = Math.floor(Number(this.customAmount));
+			},
+			validateCustomAmount() {
+				if (this.customAmount < 1) {
+					this.customAmount = '';
+					uni.showToast({
+						title: '充值金额必须大于等于1元',
+						icon: 'none'
+					});
+				}
+			},
+			submitRecharge() {
+				const amount = this.selectedAmount || Number(this.customAmount)
+				if (amount && Number.isInteger(amount) && amount > 0) {
+					let that = this;
+					uni.showModal({
+						title: '充值确认',
+						content: `您选择充值金额:${amount}点数`,
+						success: (res) => {
+							if (res.confirm) {
+								that.createOrder(amount);
+								// 这里可以添加实际的充值逻辑
+							}
+						}
+					})
+				} else {
+					uni.showToast({
+						title: '请选择或输入有效的整数充值点数',
+						icon: 'none'
+					})
+				}
+			},
+
+			/**
+			 * 发起支付(不唤起收银台,手动指定支付方式)
+			 * 在调用此api前,你应该先创建自己的业务系统订单,并获得订单号 order_no,把order_no当参数传给此api,而示例中为了简化跟支付插件无关的代码,这里直接已时间戳生成了order_no
+			 */
+			createOrder(fee) {
+				this.http.request({
+					url: '/level-one-server/app/WalletManage/topupSave',
+					data: {
+						amount: fee, // 支付金额,单位分 100 = 1元
+						goodsName: '服务点充值'
+					},
+					success: res => {
+						console.log('WxPayAppOrderResult:', res)
+						// 调起支付
+						this.orderPayment(res.data.data);
+						this.transaction_id = res.data.data.prepayid;
+					}
+				});
+			},
+
+			// 调起支付
+			orderPayment(data) {
+				uni.requestPayment({
+					"provider": "wxpay",
+					"orderInfo": data,
+					success: (res) => {
+						console.log(res);
+						uni.navigateTo({
+							url: '/pages/wallet/topup/topupSuccess?prePayId=' + data.prepayid
+						})
+					},
+					complete: (resp) => {
+						
+						console.log(resp);
+					},
+					fail: (err) => {
+						console.log(err);
+						// 发起支付失败
+						// uni.showToast({
+						// 	title: '发起支付失败!' + err.errMsg,
+						// });
+					}
+				});
+			},
+
+
+			// 查询支付状态
+			async getOrder() {
+				this.getOrderRes = {};
+				let res = await this.$refs.pay.getOrder({
+					//out_trade_no: this.out_trade_no, // 插件支付单号 两者传1个即可
+					transaction_id: this.transaction_id, // 第三方单号 两者传1个即可
+					await_notify: true
+				});
+				if (res) {
+					this.getOrderRes = res.pay_order;
+					let obj = {
+						"-1": "已关闭",
+						"1": "已支付",
+						"0": "未支付",
+						"2": "已部分退款",
+						"3": "已全额退款"
+					};
+					uni.showToast({
+						title: obj[res.status] || res.errMsg,
+						icon: "none"
+					});
+				}
+			},
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.recharge-container {
+		margin-top: 30px;
+		padding: 20px;
+		background-color: #ffffff;
+	}
+
+	.title {
+		font-size: 20px;
+		font-weight: bold;
+		text-align: center;
+		margin-bottom: 20px;
+	}
+
+	.amount-options {
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: space-between;
+		margin-bottom: 20px;
+	}
+
+	.amount-option {
+		width: 30%;
+		height: 40px;
+		line-height: 40px;
+		text-align: center;
+		border: 1px solid #007aff;
+		border-radius: 4px;
+		margin-bottom: 10px;
+	}
+
+	.amount-option.selected {
+		background-color: #007aff;
+		color: #ffffff;
+	}
+
+	.custom-amount {
+		display: flex;
+		align-items: center;
+		margin-bottom: 20px;
+	}
+
+	.custom-amount input {
+		flex: 1;
+		height: 40px;
+		border: 1px solid #007aff;
+		border-radius: 4px;
+		padding: 0 10px;
+	}
+
+	.custom-amount text {
+		margin-left: 5px;
+	}
+
+	.submit-btn {
+		width: 100%;
+		height: 44px;
+		line-height: 44px;
+		background-color: #007aff;
+		color: #ffffff;
+		border-radius: 4px;
+		text-align: center;
+	}
+</style>

+ 225 - 0
pages/wallet/wallet.vue

@@ -0,0 +1,225 @@
+<template>
+	<view>
+		<view class="my_top">
+			<image src="../../static/images/top-bg.png" class="bg"></image>
+		</view>
+		<view class="list animated fadeInDown">
+			<view class="uni-flex uni-row center">
+				<view class="wallet">
+					<h1 style="color: blue;">{{ user.wallet }}</h1>
+				</view>
+			</view>
+		</view>
+		<view class="uni-flex uni-row" style="padding:1rem; ">
+			<button type="primary" style="-webkit-flex: 1;flex: 1;"
+				@click="goto('/pages/wallet/topup/edit')">充值</button>
+			<view class="text" style="width: 15rpx;"></view>
+			<button type="default" style="-webkit-flex: 1;flex: 1;"
+				@click="goto('/pages/wallet/topdown/edit')">兑现</button>
+		</view>
+		<view class="tab">
+			<u-tabs :list="tab" @click="click" :lineHeight="5"></u-tabs>
+		</view>
+		<view class="goodsList">
+			<view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)">
+				<view class="title">{{ item.tagTypeName }}
+					<view class="state" v-if="item.tagType == 1 ">
+						<text class="icon" style="color:#13ce66">&#xe830;</text>
+						<text>+{{ item.amount }}</text>
+					</view>
+					<view class="state" v-if="item.tagType == 2 ">
+						<text class="icon" style="color:#FF2222">&#xe830;</text>
+						<text>-{{ item.amount }}</text>
+					</view>
+					<view class="state" v-if="item.tagType == 3 ">
+						<text class="icon" style="color:#CC8855">&#xe830;</text>
+						<text>-{{ item.amount }}</text>
+					</view>
+				</view>
+				<view class="op">
+					<view class="date">{{ item.recordTime }}</view>
+				</view>
+			</view>
+			<view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
+			<u-empty v-if="!loadMore && list.length == 0"></u-empty>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				user: {},
+				tab: [{
+						name: '全部',
+						tagType: ''
+					},
+					{
+						name: '充值',
+						tagType: '1'
+					},
+					{
+						name: '兑现',
+						tagType: '2'
+					},
+					{
+						name: '扣除',
+						tagType: '3'
+					}
+				],
+				param: {
+					pageNo: 1,
+					pageSize: 10,
+					status:2,
+					tagType: ''
+				},
+				list: [],
+				loadMore: true,
+			};
+		},
+		onLoad() {
+			this.user = this.getUser()
+		},
+		onShow() {
+			this.user = this.getUser();
+			this.getData();
+		},
+		methods: {
+			getData() {
+				this.param.peopleId = this.user.fkId;
+				this.http.request({
+					url: '/level-one-server/app/WalletManage/getList',
+					loading: 'false',
+					data: this.param,
+					success: res => {
+						this.loadMore = parseInt(res.data.pageCount) > this.param.pageNo;
+						if (res.data.data) {
+							this.list = res.data.data;
+						}
+					}
+				});
+			},
+			// 点击tab切换
+			click(e) {
+				this.param.tagType = e.tagType;
+				this.refresh()
+			},
+			detail(item) {
+				let urlStr = ''
+				if (item.tagType == 1) {
+					urlStr = '/pages/wallet/topup/detail?id='
+				}
+				if (item.tagType == 2) {
+					urlStr = '/pages/wallet/topdown/detail?id='
+				}
+				if (item.tagType == 3) {
+					urlStr = '/pages/wallet/detail?id='
+				}
+				uni.navigateTo({
+					url: urlStr + item.id
+				});
+			},
+			goto(url) {
+				uni.navigateTo({
+					url: url
+				});
+			},
+			// 刷新数据
+			refresh() {
+				this.loadMore = true;
+				this.param.pageNo = 1;
+				this.list = [];
+				this.getData();
+			}
+		},
+		//下拉刷新
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.refresh();
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		//上拉加载
+		onReachBottom() {
+			if (this.loadMore) {
+				this.param.pageNo++;
+				this.getData();
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
+	.my_top {
+		position: relative;
+		overflow: hidden;
+
+		image {
+			width: 100%;
+		}
+	}
+
+	.uni-flex {
+		display: flex;
+		flex-direction: row;
+	}
+
+	.uni-flex-item {
+		flex: 1;
+	}
+
+	.uni-row {
+		flex-direction: row;
+	}
+
+	.list {
+		position: relative;
+		padding: 0px 20px 10px 20px;
+		margin-top: -226px;
+
+		.center {
+			-webkit-justify-content: center;
+			justify-content: center;
+			text-align: center;
+
+			.wallet {
+				display: flex;
+				flex-direction: column;
+				background-color: white;
+				width: 5rem;
+				height: 5rem;
+				line-height: 5rem;
+				border-radius: 50%;
+
+				.num {
+					color: #0000CC;
+					font-size: 43px;
+				}
+			}
+
+			.rbtn {
+				padding-left: 15px;
+				width: 60%;
+			}
+		}
+	}
+
+	.state {
+		margin-right: -70px;
+	}
+
+	.down_btn {
+		color: #f0f4f7;
+		width: 100px;
+		background: #f9ae3d;
+		text-align: center;
+		border-radius: 10px;
+		font-size: 12px;
+		padding: 2px 5px;
+	}
+</style>