11 Commits ebb5db30af ... 473ecd34d0

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