浏览代码

Merge branch 'master' of http://git.liuniu946.com/lhl/tlfb

xuhaolan 3 年之前
父节点
当前提交
783bcea9ac

+ 7 - 0
api/index.js

@@ -34,3 +34,10 @@ export function loadIndexs(data) {
 	});
 }
 
+export function storeList(data) {
+	return request({
+		url:'/api/store_list',
+		method: 'get',
+		data
+	})
+}

+ 10 - 1
api/set.js

@@ -26,6 +26,15 @@ export function registerReset(data) {
 	});
 }
 
+//交易密码设置
+export function transaction(data) {
+	return request({
+		url: '/api/transaction',
+		method: 'post',
+		data
+	});
+}
+
 //绑定手机
 export function binding(data) {
 	return request({
@@ -43,4 +52,4 @@ export function applelogin(data) {
 		data
 	});
 }
-// #endif
+// #endif

+ 34 - 7
api/user.js

@@ -103,11 +103,11 @@ export function delcollect(data) {
 
 //用户修改信息
 export function edit(data) {
-        return request({
-                url: '/api/user/edit',
-                method: 'post',
-                data
-        });
+	return request({
+		url: '/api/user/edit',
+		method: 'post',
+		data
+	});
 }
 
 //开通会员
@@ -130,8 +130,35 @@ export function getVip(data) {
 //申请美容院
 export function editStore(data) {
 	return request({
-		url:'/api/store_edit',
-		method:'post',
+		url: '/api/store_edit',
+		method: 'post',
+		data
+	})
+}
+
+//申请美容院
+export function myStore(data) {
+	return request({
+		url: '/api/mystore',
+		method: 'get',
 		data
 	})
+}
+
+//佣金转账
+export function transfer(data) {
+	return request({
+		url: '/api/transfer',
+		method: 'post',
+		data
+	});
+}
+
+// 获取用户名称
+export function nickname(data) {
+	return request({
+		url: '/api/nickname',
+		method: 'get',
+		data
+	});
 }

+ 19 - 0
api/whole.js

@@ -45,6 +45,7 @@ export function getMyPackage(data) {
 	});
 }
 
+
 // 上传评证
 export function upEvaluation(data) {
 	return request({
@@ -54,6 +55,15 @@ export function upEvaluation(data) {
 	});
 }
 
+// 获取审核列表
+export function getMySellout(data) {
+	return request({
+		url: '/api/package/order',
+		method: 'post',
+		data
+	});
+}
+
 // 获取新人礼包
 export function getNewList(data) {
 	return request({
@@ -61,4 +71,13 @@ export function getNewList(data) {
 		method: 'get',
 		data
 	});
+}
+
+// 拒绝
+export function packageAudit(data) {
+	return request({
+		url: '/api/package/audit',
+		method: 'post',
+		data
+	});
 }

+ 6 - 6
pages.json

@@ -108,6 +108,12 @@
 				"navigationBarTitleText": "附近门店"
 			}
 		},
+		{
+			"path": "pages/money/moneyPwd",
+			"style": {
+				"navigationBarTitleText": "支付密码"
+			}
+		},
 		{
 			"path": "pages/category/vip",
 			"style": {
@@ -379,12 +385,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/money/account",
-			"style": {
-				"navigationBarTitleText": "提现账号"
-			}
-		},
 		{
 			"path": "pages/money/withdrawal",
 			"style": {

+ 8 - 3
pages/category/apply.vue

@@ -52,7 +52,9 @@
 				</view>
 				<image src="../../static/icon/i-right.png" mode=""></image>
 			</view>
-			<view class="btn" @click="changeStep">立即申请成为美容院</view>
+			<view class="btn" v-if="userInfo.level == 3" @click="changeStep('/pages/category/fillTable?type=edit')">编辑美容院信息</view>
+			<view class="btn" v-if="userInfo.level != 3" @click="changeStep('/pages/category/fillTable?type=add')">立即申请成为美容院</view>
+			
 	</view>
 </template>
 
@@ -73,10 +75,13 @@ export default {
 			obj.speed_id = obj.userInfo.spread_uid || ''
 		}
 	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
 	methods: {
-		changeStep() {
+		changeStep(url) {
 			uni.navigateTo({
-				url:'/pages/category/fillTable'
+				url
 			})
 		},
 	}

+ 29 - 25
pages/category/fillTable.vue

@@ -5,23 +5,23 @@
 			<input type="text" v-model="store.name" placeholder="请输入店铺名称" />
 		</view>
 		<view class="item">
-					<view class="item-tit">店铺logo</view>
-					<view class="up-wrapper">
-						<image :src="store.image" mode="" v-if="store.image" @click.stop="upImg"></image>
-						<image src="../../static/img/add.png" mode="" v-else @click.stop="upImg"></image>
-					</view>
-				</view>
+			<view class="item-tit">店铺logo</view>
+			<view class="up-wrapper">
+				<image :src="store.image" mode="" v-if="store.image" @click.stop="upImg"></image>
+				<image src="../../static/img/add.png" mode="" v-else @click.stop="upImg"></image>
+			</view>
+		</view>
 		<view class="item">
 			<view class="item-tit">联系电话</view>
 			<input type="number" v-model="store.phone" placeholder="请输入商家电话" />
 		</view>
 		<view class="item">
 			<view class="item-tit">营业时间</view>
-			<picker mode="time" :value="bgtime"  @change="bindBgtimeChange" class="picker">
+			<picker mode="time" :value="bgtime" @change="bindBgtimeChange" class="picker">
 				<view class="uni-input">{{ bgtime }}</view>
 			</picker>
 			<view class="line">至</view>
-			<picker mode="time" :value="edtime"  @change="bindEdtimeChange" class="picker prcker-t">
+			<picker mode="time" :value="edtime" @change="bindEdtimeChange" class="picker prcker-t">
 				<view class="uni-input">{{ edtime }}</view>
 			</picker>
 		</view>
@@ -29,18 +29,18 @@
 			<view class="item-tit">经纬度</view>
 			<input type="text" v-model="store.latlng" placeholder="请选择经纬度" />
 		</view>
-		<view class="item" >
+		<view class="item">
 			<view class="item-tit">详细地址</view>
 			<input type="text" v-model="store.detailed_address" placeholder="请输入详细地址" />
 		</view>
-		
+
 		<view class="sub" @click="sub" v-if="type == 'edit'">确认修改</view>
 		<view class="sub" @click="add" v-if="type == 'add'">提交</view>
 	</view>
 </template>
 
 <script>
-import { editStore } from '@/api/user.js';
+import { myStore, editStore } from '@/api/user.js';
 import { upload } from '@/api/order.js';
 export default {
 	data() {
@@ -58,25 +58,29 @@ export default {
 			bgtime: '请选择时间',
 			edtime: '请选择时间',
 			detailed_address: '',
-			type: 'add',
+			type: 'edit'
 		};
 	},
 	onLoad(opt) {
-		if(opt.type == 'edit') {
-			this.store = JSON.parse(opt.item);
-			console.log(this.store, 'this.store++++++++++++');
-			let time = this.store.day_time.split(' - ');
-			this.bgtime = time[0].substring(0, 5);
-			this.edtime = time[1].substring(0, 5);
+		if (opt.type == 'edit') {
+			this.loadData();
 		}
-		if(opt.type == 'add') {
-			this.type = 'add'
-			this.bgtime = '00:00'
-			this.edtime = '00:00'
+		if (opt.type == 'add') {
+			this.type = 'add';
+			this.bgtime = '00:00';
+			this.edtime = '00:00';
 		}
-		
 	},
 	methods: {
+		loadData() {
+			myStore().then(({ data }) => {
+				this.store = data[0];
+				let time = this.store.day_time.split(' - ');
+				this.bgtime = time[0].substring(0, 5);
+				this.edtime = time[1].substring(0, 5);
+			});
+			
+		},
 		// 选择当前位置
 		getLocation() {
 			console.log('选择当前位置');
@@ -90,7 +94,7 @@ export default {
 					console.log('经度:' + res.longitude);
 					// obj.addressData.latitude = res.latitude;
 					// obj.addressData.longitude = res.longitude;
-					obj.$set(obj.store,'latlng',res.latitude + ',' + res.longitude)
+					obj.$set(obj.store, 'latlng', res.latitude + ',' + res.longitude);
 					// obj.store.latlng = res.latitude + ',' + res.longitude
 				}
 			});
@@ -150,7 +154,7 @@ export default {
 				image: store.image,
 				phone: store.phone,
 				day_time: day_time,
-				latlng: store.latitude + ',' + store.longitude,
+				latlng: store.latitude + ',' + store.longitude
 			})
 				.then(res => {
 					uni.hideLoading();

文件差异内容过多而无法显示
+ 0 - 377
pages/index/index.vue


+ 0 - 236
pages/money/account.vue

@@ -1,236 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<view class="row b-b">
-					<text class="tit">姓名</text>
-					<input class="input" v-model="tabItem.orderList.name" type="text" placeholder="提款人姓名" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b">
-					<text class="tit">{{ tabIndex == 0 ? '账号' : '银行卡号' }}</text>
-					<input class="input" v-model="tabItem.orderList.code" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b" v-if="tabIndex == 1">
-					<text class="tit">所属银行</text>
-					<input class="input" v-model="tabItem.orderList.bankName" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-			</swiper-item>
-		</swiper>
-
-		<button class="add-btn up" @click="confirm">提交申请</button>
-	</view>
-</template>
-
-<script>
-import { aliInfo, bankInfo, setAliInfo, setBankInfo } from '@/api/wallet.js';
-export default {
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '支付宝',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						id:''
-					}
-				},
-				{
-					state: 1,
-					text: '银行卡',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						bankName: '',
-						id:''
-					}
-				}
-			]
-		};
-	},
-
-	onLoad(options) {
-		this.tabCurrentIndex = +options.state || 0;
-		this.loadAli();
-		this.loadBank();
-	},
-
-	methods: {
-		//加载数据
-		loadAli(source) {
-			aliInfo({}).then(({data}) => {
-				let order = this.navList[0].orderList;
-				this.$set(order,'name',data.fullname)
-				this.$set(order,'code',data.alino)
-				this.$set(order,'id',data.id)
-			});
-		},
-		loadBank() {
-			bankInfo({}).then(({data}) => {
-				let order = this.navList[1].orderList;
-				this.$set(order,'name',data.fullname);
-				this.$set(order,'code',data.bankno);
-				this.$set(order,'bankName',data.bank);
-				this.$set(order,'id',data.id)
-			});
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		},
-		// 提交保存
-		confirm() {
-			let obj = this;
-			let arr = obj.navList[obj.tabCurrentIndex].orderList;
-			if (obj.tabCurrentIndex == 1) {
-				obj.setBankInfo({
-					fullname: arr.name,
-					bank: arr.bankName,
-					bankno: arr.code,
-					id:arr.id
-				});
-			}
-			if (obj.tabCurrentIndex == 0) {
-				obj.setAliInfo({
-					fullname: arr.name,
-					alino: arr.code,
-					id:arr.id
-				});
-			}
-		},
-		/* 保存银行卡详细 */
-		setBankInfo(obj) {
-			setBankInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 修改支付宝信息
-		setAliInfo(obj) {
-			setAliInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-	}
-};
-</script>
-
-<style lang="scss">
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.swiper-box {
-	height: 750rpx;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-
-.add-btn {
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-</style>

+ 165 - 0
pages/money/moneyPwd.vue

@@ -0,0 +1,165 @@
+<template>
+	<view class="container">
+		<view class="row b-b" v-if="userInfo.transaction">
+			<text class="tit">原密码</text>
+			<input class="input" v-model="oldPassword" type="text" placeholder="请填写原密码" placeholder-class="placeholder" />
+		</view>
+		<!-- <view class="row b-b">
+			<text class="tit">验证码</text>
+			<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
+			<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+		</view> -->
+		<view class="row b-b">
+			<text class="tit">新密码</text>
+			<input class="input" v-model="password" type="password" placeholder="请填写6位新密码" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">再次输入</text>
+			<input class="input" v-model="yzpassword" type="password" placeholder="请重新填写6位新密码" placeholder-class="placeholder" />
+		</view>
+		<button class="add-btn" :class="{'bg-gray':loding}" @click="loding?'':confirm()">提交</button>
+	</view>
+</template>
+
+<script>
+import { verify } from '@/api/login.js';
+import { mapState } from 'vuex';
+import { transaction } from '@/api/set.js';
+export default {
+	data() {
+		return {
+			time: '', //保存倒计时对象
+			countDown: 0, //倒计时
+			// account: '', //手机号
+			// captcha: '', //验证码
+			oldPassword:'',//老密码
+			password: '' ,//新密码
+			yzpassword:'',//重复输入
+			loding:false,//是否载入中
+		};
+	},
+	computed: {
+		...mapState('user',['userInfo'])
+	},
+	onLoad() {
+		if(this.userInfo.phone == null){
+			this.account = '';
+		}else{
+			this.account = this.userInfo.phone;
+			this.show = false;
+		}
+	},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
+			}
+		}
+	},
+	methods: {
+		confirm(e) {
+			const reg = /^[0-9]{6}$/;
+			console.log(this.yzpassword)
+			if(!reg.test(this.yzpassword)){
+				uni.showModal({
+					title: '错误',
+					content: '请输入6位数字支付密码',
+					showCancel: false,
+				});
+				return false
+			}
+			if(this.yzpassword!=this.password){
+				uni.showModal({
+					title: '错误',
+					content: '密码不一致请重新输入',
+					showCancel: false,
+				});
+				return  false
+			}
+			this.loding = true;
+			transaction({
+				pass: this.password,
+				oldpass: this.oldPassword,
+			})
+				.then(({ data }) => {
+					this.loding = false;
+					uni.showModal({
+						title: '提示',
+						content: '修改成功',
+						showCancel: false,
+						confirmText: '返回个人中心',
+						success: res => {
+							uni.switchTab({
+								url:'/pages/user/user'
+							})
+						}
+					});
+					
+				})
+				.catch(err => {
+					this.loding = false;
+					console.log(err);
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+.container {
+	padding-top: 30rpx;
+}
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	padding: 0 30rpx;
+	height: 110rpx;
+	background: #fff;
+
+	.tit {
+		flex-shrink: 0;
+		width: 120rpx;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.input {
+		flex: 1;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36rpx;
+		color: $font-color-light;
+	}
+}
+.add-btn {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 60rpx auto;
+	font-size: $font-lg;
+	color: #fff;
+	background: #ff4c4c;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.bg-gray{
+	background-color: $color-gray;
+}
+.code {
+	color: #5dbc7c;
+	font-size: 23rpx;
+	border-left: 1px solid #eeeeee;
+	width: 150rpx;
+	flex-shrink: 0;
+	text-align: center;
+}
+</style>

+ 2 - 6
pages/money/pay.vue

@@ -37,6 +37,7 @@
 import { balance } from '@/api/wallet.js';
 import { createOrderkey,computedOrderkey,orderPay } from '@/api/order.js';
 import { mapState } from 'vuex';
+import weixinObj from '@/plugin/jweixin-module/index.js';
 export default {
 	data() {
 		return {
@@ -61,11 +62,6 @@ export default {
 			pinkid: '' //保存拼团商品id
 		};
 	},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
 	onLoad(options) {
 		// 判断是否是金豆商品
 		if (options.is_gold){
@@ -161,7 +157,7 @@ export default {
 						};
 						// #ifdef H5
 						if(obj.payName == 'weixin'){
-						obj.weichatObj.chooseWXPay(data);
+						weichatObj.chooseWXPay(data);
 						}
 						// #endif
 						// #ifdef MP-WEIXIN

+ 2 - 1
pages/money/recharge.vue

@@ -56,6 +56,7 @@ import { rechargeWechat, rechargeRoutine, rechargeIndex } from '@/api/wallet.js'
 // #endif
 import { mapState } from 'vuex';
 import { spreadCommission, userBalance } from '@/api/wallet.js';
+import weixinObj from '@/plugin/jweixin-module/index.js';
 export default {
 	filters: {
 		getMoneyStyle,
@@ -88,7 +89,7 @@ export default {
 	},
 	computed: {
 		// #ifdef H5
-		...mapState(['weichatObj', 'userInfo'])
+		...mapState('user',['userInfo'])
 		// #endif
 		// #ifdef MP
 		...mapState(['userInfo'])

+ 6 - 8
pages/money/withdrawal.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="content" v-if="!sh">
+	<view class="content">
 		<view class="content-money">
 			<view class="buttom">
 				<text class="text">可提现金额</text>
@@ -66,7 +66,7 @@
 			</radio-group>
 		</view>
 		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" @click="navTo('/pages/money/account')">账号管理</button>
+		<button class="add-btn modified" @click="navTo('/pages/set/userinfo')">账号管理</button>
 	</view>
 </template>
 
@@ -74,11 +74,9 @@
 import { getMoneyStyle } from '@/utils/rocessor.js';
 import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
 import { mapState, mapMutations } from 'vuex';
-import { loadIndexs } from '@/api/index.js';
 export default {
 	data() {
 		return {
-			sh: true,
 			type: 'alipay', //提现方式
 			money: '', //可提现金额
 			withdrawal: '', //提现金额
@@ -106,10 +104,10 @@ export default {
 		// 加载提款账号信息
 		this.aliData.fullname = this.userInfo.alipay_name;
 		console.log(this.aliData.fullname);
-		this.aliData.alino = this.userInfo.alipay_code;
-		this.bankData.fullname = this.userInfo.bank_user_name;
-		this.bankData.bank = this.userInfo.bank_name;
-		this.bankData.bankno = this.userInfo.bank_code;
+		this.aliData.alino = this.userInfo.alipay_no;
+		this.bankData.fullname = this.userInfo.bank_name;
+		this.bankData.bank = this.userInfo.account_Bank + '(' + this.userInfo.bank_branch + ')';
+		this.bankData.bankno = this.userInfo.bank_card;
 	},
 	methods: {
 		// 加载余额信息

+ 4 - 0
pages/product/product.vue

@@ -256,6 +256,10 @@ export default {
 			obj.specClass = 'show';
 			obj.type = type;
 		},
+		// 购买数量变化
+		numberChange(e) {
+			this.goodsNumber = e.number;
+		},
 		//规格弹窗开关
 		toggleSpec(str) {
 			if (this.specClass === 'show') {

+ 55 - 6
pages/product/store.vue

@@ -1,20 +1,19 @@
 <template>
 	<view class="store">
 		<view class="list">
-			<view class="item">
-				
+			<view class="item" v-for="(item,index) in list">
 				<view class="left">
 					<view class="img">
-						<image src="@/static/error/errorImage.jpg" mode=""></image>
+						<image :src="item.image" mode=""></image>
 					</view>
 					<view class="middle">
 						<view class="name">
-							<text class="storeName">陀罗台州店</text><br>
-							<text class="address">台州市椒江区市府大道120号</text>
+							<text class="storeName">{{item.name}}</text><br>
+							<text class="address">{{ item.detailed_address }}</text>
 						</view>
 						<view class="distance">
 							<image src="@/static/icon/img01.png" mode=""></image>
-							距离1.5KM
+							距离{{item.range}}KM
 						</view>
 					</view>
 				</view>
@@ -27,6 +26,56 @@
 </template>
 
 <script>
+import { openMap } from '@/utils/rocessor.js';
+import { storeList } from '@/api/index.js'
+export default {
+	data(){
+		return {
+			latitude:'',
+			longitude:'',
+			list:[],
+		}
+	},
+	onLoad() {
+		this.getaddress();
+	},
+	methods:{
+		loadData(){
+			const obj = this;
+			console.log(obj.longitude)
+			storeList({
+				longitude:obj.longitude,//经度
+				latitude:obj.latitude,//纬度
+			}).then(function({ data }) {
+					obj.list = data.list.map(e => {
+						e.show = true;
+						return e;
+					});
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		//获取定位信息
+		getaddress() {
+			let obj = this;
+			uni.getLocation({
+				type: 'gcj02',
+				success: res => {
+					obj.latitude = res.latitude;
+					obj.longitude = res.longitude;
+					this.loadData()
+				},
+				fail: err => {
+					openMap().then(e => {
+						this.getaddress();
+					});
+				}
+			});
+		},
+		
+	}
+}
 </script>
 
 <style lang="scss" scoped>

+ 67 - 3
pages/user/buySellDetail.vue

@@ -80,7 +80,7 @@
 				<view class="info-tit">
 					微信收款码:
 				</view>
-				<image :src="chooseItem.touser.wx_qr" mode="" class="info-img"></image>
+				<image :src="chooseItem.touser.wx_qr" mode="" class="info-img" @click="lookimg(chooseItem.touser.wx_qr)"></image>
 			</view>
 			<view class="info-wrap">
 				<view class="info-tit">
@@ -104,6 +104,16 @@
 				立即支付
 			</view>
 		</view>
+		<uni-popup ref="lookimg" type="center">
+			<view class="pop-wrap" style="position: relative;" >
+				<movable-area class="popup-box">
+					<movable-view class="popup-item" :scale="true" direction="all">
+						<image :src="chooseImg" mode="aspectFit"></image>
+					</movable-view>
+				</movable-area>
+				<image src="../../static/icon/close.png" mode="" class="close" style="width: 80rpx;height: 80rpx;" @click="closePup"></image>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -113,6 +123,7 @@
 	export default {
 		data() {
 			return {
+				chooseImg: '',
 				upimg: '',
 				chooseItem: '',
 				can_addit: false
@@ -180,9 +191,26 @@
 					id: obj.chooseItem.id,
 					pay_evaluation: obj.upimg
 				}).then(res => {
-					console.log(res)
+					obj.$api.prePage().refreshList();
+					uni.showToast({
+						title:'支付成功',
+						duration:2000
+					});
+					setTimeout(function() {
+						uni.navigateBack();
+					}, 800);
 				})
-			}
+			},
+			closePup() {
+				this.chooseImg = ''
+				this.$refs.lookimg.close()
+			},
+			// 查看大图
+			lookimg(src) {
+				console.log(src,'chooseImg++++++')
+				this.chooseImg = src
+				this.$refs.lookimg.open()
+			},
 		}
 	}
 </script>
@@ -347,4 +375,40 @@
 		}
 
 	}
+	.pop-wrap {
+		width: 522rpx;
+		height: 800rpx;
+		// background-color: red;
+	}
+	.popup-box {
+		width: 522rpx;
+		height: 800rpx;
+		border-radius: 20rpx;
+		position: relative;
+		overflow: hidden;
+		background-color: #fff;
+		.popup-item {
+			width: 100%;
+			height: 100%;
+			
+			
+			image {
+				width: 100%;
+				// height: 100%;
+			}
+		}
+		
+	}
+	.close {
+		display: block;
+		width: 40rpx;
+		height: 40rpx;
+		border: 50%;
+		position: absolute;
+		// background-color: red;
+		bottom: -100rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
 </style>

+ 246 - 111
pages/user/integralTransforms.vue

@@ -1,139 +1,274 @@
 <template>
-	<view class="integralTransforms">
-		<view class="header">
-			<text class="title">{{ jifen || '0.00' }}</text><br>
-			<text>可转换积分</text>
+	<view class="content">
+		<view class="content-money">
+			<view class="flex">
+				<view class="buttom">
+					<view class="icon">{{ userInfo.now_money | getMoneyStyle }}</view>
+					<text class="text">可用余额</text>
+				</view>
+			</view>
 		</view>
-		<view class="account">
-			<text class="title">收款人UID</text>
-			<input type="number" placeholder="请输入收款人UID" v-model="account" />
+		<view class="name" v-if="name != ''">用户昵称:{{ name }}</view>
+		<view class="item">
+			<view class="title">用户编号</view>
+			<view class="row"><input class="input" type="text" v-model="card" placeholder="输入转入的用户编号" @blur="userName" placeholder-class="placeholder" /></view>
 		</view>
-		<view class="num">
-			<text class="title">转账数量</text>
-			<view class="">
-				<text class="ti">¥</text>
-				<input type="number" v-model.number="num" placeholder="请输入转账数量" />
-			</view>
+		<view class="item">
+			<view class="title">支付密码</view>
+			<view class="row"><input class="input" type="password" v-model="password" placeholder="输入支付密码" placeholder-class="placeholder" /></view>
 		</view>
-		<view class="button" @click="submit">
-			提交申请
+		<view class="row-box">
+			<view class="title">转账金额</view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="withdrawal" placeholder="转入金额" placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.now_money">全部转账</view>
+			</view>
 		</view>
+
+		<button class="add-btn up" :class="{ action: loding }" @click="!loding ? confirm() : ''">转入</button>
 	</view>
 </template>
 
 <script>
-// import { goPay } from '@/api/finance.js';
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { mapState, mapMutations } from 'vuex';
-	
-	export default {
-		data() {
-			return {
-				password:'',//交易密码
-				jifen:'',//可转积分
-				num: '', //转账数量
-				account: '', //收款人账户
-				type:''
-			}
-		},
-		methods: {
-			
-			submit() {
-				let obj = this
-				if(obj.account == ''){
-					obj.$api.msg('请输入对方账号ID')
-					return
-				}
-				if(obj.num ==''){
-					obj.$api.msg('请输入转账数量')
-					return
-				}
-				if(obj.account == this.userInfo.uid){
-					obj.$api.msg('请勿转账给自己')
-					return
-				}
-				goPay({
-					num: obj.num,
-					uid: obj.account,
-				}).then(data =>{
-					console.log(data,'转账')
-					obj.num = ''
-					obj.account = ''
-					obj.$api.msg('转账成功')
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { getUserInfo, transfer, nickname } from '@/api/user.js';
+import { mapMutations, mapState } from 'vuex';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	data() {
+		return {
+			money: '0.00', //可提现金额
+			withdrawal: '', //提现金额
+			password: '', //支付密码
+			card: '', //转账卡号
+			name: '',
+			// #ifdef H5
+			weichatBsrowser: false,
+			// #endif
+			loding: false
+		};
+	},
+	onLoad(options) {
+		// #ifdef H5
+		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+		// #endif
+		this.dataUp();
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'login']),
+		// 更新数据
+		dataUp() {
+			let obj = this;
+			getUserInfo({})
+				.then(e => {
+					obj.login();
+					// 保存返回用户数据
+					obj.setUserInfo(e.data);
 				})
-				
-				
-			}
+				.catch(e => {
+					console.log(e);
+				});
 		},
-		computed: {
-
-			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e.detail.value;
 		},
-		onLoad(option) {
-		
-			// 获取用户余额
-			userBalance({}).then(({ data }) => {
-				this.jifen = data.now_money;
-			});
+		userName() {
+			if (this.card != '') {
+				nickname({ uid: this.card }).then(data => {
+					this.name = data.msg;
+				});
+			}
+			console.log(this.card);
 		},
-		watch: {
-			num() {
-				if (this.num > this.jifen) {
-					this.num = this.jifen
-				}
+		// 提交
+		confirm() {
+			let obj = this;
+			obj.loding = true;
+			if (obj.withdrawal == 0) {
+				obj.loding = false;
+				uni.showModal({
+					title: '提示',
+					content: '转账金额不要为0'
+				});
+				return;
+			}
+			if (obj.card == obj.userInfo.uid) {
+				obj.loding = false;
+				uni.showModal({
+					title: '提示',
+					content: '不要输入自己的用户编号'
+				});
+			} else {
+				let data = {
+					to_uid: obj.card, //编号
+					pass: obj.password, //交易密码
+					merber: obj.withdrawal //金额
+				};
+				transfer(data)
+					.then(e => {
+						// 允许按钮点击
+						obj.loding = false;
+						// 初始化提现金额
+						obj.withdrawal = '';
+						uni.showToast({
+							title: '提交成功',
+							duration: 2000,
+							position: 'top'
+						});
+						obj.dataUp();
+					})
+					.catch(e => {
+						obj.$api.msg(e.msg);
+						obj.loding = false;
+						console.log();
+					});
 			}
 		}
 	}
+};
 </script>
 
-<style lang="scss" scoped>
-	.integralTransforms {
+<style lang="scss">
+page {
+	height: 100%;
+}
+.content-money {
+	padding: 30rpx 0;
+	background: #ffffff;
+}
 
-		.header,
-		.account,
-		.num {
-			background-color: #fff;
-			margin: 20rpx 0;
-			padding: 30rpx;
+.item {
+	padding: 20rpx $page-row-spacing;
+	background-color: #ffffff;
+}
+.flex {
+	background-color: #ffffff;
+	text-align: center;
+	margin: 0 30rpx;
+	border-radius: $border-radius-sm;
+	justify-content: center;
+	.buttom {
+		font-size: $font-lg;
+		width: 50%;
+	}
+	.interval {
+		width: 2px;
+		height: 60rpx;
+		background-color: #eeeeee;
+	}
+	.icon {
+		background-size: 100%;
+		font-size: 42rpx;
+		color: $font-color-dark;
+		font-weight: bold;
+		background-repeat: no-repeat;
+		background-position: center;
+	}
+	.text {
+		color: $font-color-light;
+	}
+}
 
-			input {
-				margin-top: 10rpx;
-			}
+.row-box {
+	margin-top: 30rpx;
+	padding: 20rpx 30rpx;
+	background: #fff;
+}
+.title {
+	font-size: $font-base + 2rpx;
+	color: $font-color-dark;
+}
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	height: 80rpx;
+	.tit {
+		flex-shrink: 0;
+		width: 40rpx;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.input {
+		flex: 1;
+		font-size: 30rpx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36rpx;
+		color: $font-color-light;
+	}
 
-			.title {
-				font-size: 30rpx;
-				color: #333333;
-				font-family: PingFang-SC-Regular;
+	.buttom {
+		color: $base-color;
+		font-size: $font-base;
+	}
+}
+.add-btn {
+	background: $base-color;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	color: #fff;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+.name {
+	background: #fff;
+	padding: 30rpx;
+}
+.list {
+	padding-left: 30rpx;
+	margin-top: 30rpx;
+	background-color: #ffffff;
+	.box {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		height: 120rpx;
+		border-bottom: 1px solid $border-color-light;
+		.icon {
+			font-size: 48rpx;
+			padding-right: 20rpx;
+			.icon-img {
+				height: 50rpx;
+				width: 50rpx;
 			}
 		}
-
-		.header {
-			text-align: center;
-
-			text:nth-child(1) {
-				font-size: 45rpx;
-			}
-
-			text:nth-child(3) {
-				font-size: 30rpx;
-				color: #666666;
-			}
+		.iconweixin1 {
+			color: #18bf16;
 		}
-
-		.num {
-			.ti {
-				float: left;
-			}
+		.iconzhifubao {
+			color: #08aaec;
 		}
-
-		.button {
-			width: 520rpx;
-			margin: 60rpx auto;
-			padding: 20rpx;
-			text-align: center;
-			border-radius: 10rpx;
-			background: #FF4C4C;
-			color: #fff;
+		.title-box {
+			flex-grow: 1;
+			text-align: left;
+			.title {
+				font-size: $font-base + 2rpx;
+				color: $font-color-base;
+			}
+			.node {
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
 		}
 	}
+}
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
 </style>

+ 339 - 37
pages/user/myWholesale.vue

@@ -6,14 +6,12 @@
 				{{navitem.tit}}
 			</view>
 		</view>
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab"
-			:style="{'height': height}">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex"
-				:style="{'height': height}">
+		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="getMyPackage('tab')"
+			:style="{'height': height}" disable-touch>
+			<swiper-item class="tab-content" :style="{'height': height}">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="getMyPackage">
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-
-					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index"
+					<empty v-if="navList[0].loaded === true && navList[0].orderList.length === 0"></empty>
+					<view @click="goToOrderDetail(item)" v-for="(item, index) in navList[0].orderList" :key="index"
 						class="order-item">
 						<view class="i-top b-b">
 							<text class="time">订单编号:{{ item.order_id }}</text>
@@ -22,14 +20,9 @@
 							<text v-if="item.status === 4" class="del-btn iconfont icondelete"
 								@click="deleteOrder(index)"></text>
 						</view>
-						<!-- <scroll-view v-if="item.whole.length > 1" class="goods-box" scroll-x> -->
-						<!-- <view v-for="(goodsItem, goodsIndex) in item.whole" :key="goodsIndex" class="goods-item">
-								<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-							</view> -->
-						<!-- </scroll-view> -->
-
 						<view class="goods-box-single">
-							<image class="goods-img" :src="item.whole.image" mode="scaleToFill"></image>
+							<image class="goods-img" :src="item.whole.image" mode="scaleToFill"
+								@click="lookimg(item.whole.image)"></image>
 							<view class="right">
 								<view class="flex-start" style="justify-content: space-between;">
 									<text class="title clamp">{{ item.whole.title }}</text>
@@ -45,13 +38,74 @@
 							<button class="action-btn" @click.stop="lookMore(item)">查看详情</button>
 							<button v-if="item.status == 0" class="action-btn recom"
 								@click.stop="payNew(item)">立即支付</button>
+							<button v-if="item.status >= 1" class="action-btn recom"
+								@click.stop="stopItem(item)">提货</button>
 						</view>
 					</view>
-
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+					<uni-load-more :status="navList[0].loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+			<swiper-item class="tab-content" :style="{'height': height}">
+				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="getMyPackage">
+					<empty v-if="navList[1].loaded === true && navList[1].orderList.length === 0"></empty>
+					<view class="out-wrapper" v-for="item in navList[1].orderList" :class="{'outt': item.status == 2}">
+						<view class="out-top flex">
+							<view class="buy-info flex">
+								<view class="fsz">买家:</view>
+								<image :src="item.user.avatar" mode="" class="user-logo fsz"></image>
+								<view class="user-name fsz clamp">{{item.user.real_name}}</view>
+								<view class="user-phone fsz" @click="call(item.user.phone)">
+									{{item.user.phone}}
+								</view>
+							</view>
+							<view class="buy-status">{{item.status | statusTitle}}</view>
+						</view>
+						<view class="item-info">
+							<view class="info-data">
+								<view class="info-tit">编号:</view>
+								<view class="info-val">{{item.order_id}}</view>
+							</view>
+							<view class="info-data">
+								<view class="info-tit">价值:</view>
+								<view class="info-val">{{item.price}}</view>
+							</view>
+						</view>
+						<view class="upimg">
+							<view class="up-tit">
+								打款凭证:
+							</view>
+							<view class="img-wrap" v-if="item.pay_evaluation" @click="lookimg(item.pay_evaluation)">
+								<image :src="item.pay_evaluation" mode=""></image>
+							</view>
+							<view class="" style="color: #0F253A;font-weight: bold;font-size: 26rpx;" v-else>
+								买家未上传支付凭证
+							</view>
+						</view>
+						<template v-if="item.status == 1">
+							<view class="mc-btn pass" @click="passPackage(item)">
+								通过
+							</view>
+							<!-- <view class="mc-btn fail" @click="openrefuse(item)">
+								拒绝
+							</view> -->
+						</template>
+					</view>
+					<uni-load-more :status="navList[1].loadingType"></uni-load-more>
 				</scroll-view>
+				
 			</swiper-item>
 		</swiper>
+		<uni-popup ref="lookimg" type="center">
+			<view class="pop-wrap" style="position: relative;">
+				<movable-area class="popup-box">
+					<movable-view class="popup-item" :scale="true" direction="all">
+						<image :src="chooseImg" mode="aspectFit"></image>
+					</movable-view>
+				</movable-area>
+				<image src="../../static/icon/close.png" mode="" class="close" style="width: 80rpx;height: 80rpx;"
+					@click="closePup"></image>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -60,7 +114,9 @@
 	import empty from '@/components/empty';
 
 	import {
-		getMyPackage
+		getMyPackage,
+		getMySellout,
+		packageAudit
 	} from '@/api/whole.js'
 	export default {
 		components: {
@@ -69,6 +125,7 @@
 		},
 		data() {
 			return {
+				chooseImg: '', //查看大图的图
 				chooseItem: {},
 				height: '',
 				tabCurrentIndex: 0,
@@ -83,14 +140,14 @@
 						status: -4
 					},
 					{
-						tit: '待支付',
+						tit: '转售中',
 						orderList: [],
 						page: 1,
 						limit: 10,
 						loadingType: 'more',
 						loaded: false,
 						day: 'today',
-						status: 1
+						status: 0
 					},
 				],
 			}
@@ -121,7 +178,7 @@
 						str = '支付超时'
 						break;
 					case -1:
-						str = '待支付'
+						str = '拒绝'
 						break;
 					case 0:
 						str = '待支付'
@@ -130,7 +187,7 @@
 						str = '待审核'
 						break;
 					case 2:
-						str = '收款'
+						str = '已通过'
 						break;
 					case 3:
 						str = '重新发放'
@@ -148,6 +205,12 @@
 			}
 		},
 		methods: {
+			// 查看大图
+			lookimg(src) {
+				console.log(src, 'chooseImg++++++')
+				this.chooseImg = src
+				this.$refs.lookimg.open()
+			},
 			// 查看详情
 			lookMore(item) {
 				this.chooseItem = item
@@ -168,6 +231,7 @@
 			},
 			navClick(index) {
 				this.tabCurrentIndex = index
+				// this.getMyPackage('tab')
 			},
 			getMyPackage(tab) {
 				let obj = this
@@ -180,23 +244,80 @@
 					return
 				}
 				navItem.loadingType == 'loading'
-				getMyPackage({
-					page: navItem.page,
-					limit: navItem.limit,
-					data: navItem.day,
-					status: navItem.status
-				}).then(({
-					data
-				}) => {
-					navItem.orderList = navItem.orderList.concat(data.data)
-					navItem.page++
-					if (navItem.limit == data.data.length) {
-						navItem.loadingType = 'more'
-					} else {
-						navItem.loadingType = 'noMore'
-					}
-					navItem.loaded = true
+				if (index == 0) {
+					getMyPackage({
+						page: navItem.page,
+						limit: navItem.limit,
+						data: navItem.day,
+						status: navItem.status
+					}).then(({
+						data
+					}) => {
+						navItem.orderList = navItem.orderList.concat(data.data)
+						navItem.page++
+						if (navItem.limit == data.data.length) {
+							navItem.loadingType = 'more'
+						} else {
+							navItem.loadingType = 'noMore'
+						}
+						navItem.loaded = true
+					})
+				}
+				if (index == 1) {
+					getMySellout({
+						page: navItem.page,
+						limit: navItem.limit,
+					}).then(({
+						data
+					}) => {
+						navItem.orderList = navItem.orderList.concat(data.data)
+						navItem.page++
+						if (navItem.limit == data.data.length) {
+							navItem.loadingType = 'more'
+						} else {
+							navItem.loadingType = 'noMore'
+						}
+						navItem.loaded = true
+					})
+				}
+			},
+			//添加或修改成功之后回调
+			refreshList() {
+				// 重新加载地址
+				let navItem = this.navList[this.tabCurrentIndex]
+				navItem.orderList = []
+				navItem.page = 1,
+					navItem.loadingType = 'more'
+
+				this.loadAddress()
+			},
+			// 同意
+			passPackage(item) {
+				let index = this.navList[1].orderList.indexOf(item)
+				console.log(index, 'index')
+				packageAudit({
+					re: '',
+					id: item.id,
+					status: 2
+				}).then(res => {
+					uni.showToast({
+						title: '审核通过',
+						duration: 2000
+					});
+					console.log(res)
+					this.navList[1].orderList[index].status = 2
+
+					// this.reload()
+
 				})
+			},
+			closePup() {
+				this.chooseImg = ''
+				this.$refs.lookimg.close()
+			},
+			// 提货
+			stopItem(item) {
+
 			}
 		}
 	}
@@ -435,4 +556,185 @@
 			}
 		}
 	}
+
+	.out-wrapper {
+		width: 690rpx;
+		// height: 392rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 0px 17rpx 0px rgba(0, 0, 0, 0.05);
+		border-radius: 20rpx;
+		margin: 0 auto 20rpx;
+		padding: 30rpx;
+		position: relative;
+
+		.outt {
+			height: 392rpx;
+		}
+
+		.out-top {
+			line-height: 46rpx;
+			justify-content: space-between;
+
+			.buy-info {
+				width: 450rpx;
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #0F253A;
+				justify-content: flex-start;
+
+				.fsz {
+					flex-shrink: 0;
+				}
+
+				.user-name {
+					max-width: 180rpx;
+				}
+
+				.user-phone {
+					padding-left: 10rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+
+				.user-logo {
+					display: block;
+					width: 46rpx;
+					height: 46rpx;
+					border-radius: 50%;
+					// background-color: red;
+					// padding-right: 10rpx;
+					margin-right: 10rpx;
+				}
+			}
+
+			.buy-status {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #6D7C88;
+			}
+		}
+
+		.item-info {
+			width: 100%;
+			margin-top: 28rpx;
+			line-height: 50rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			display: flex;
+			flex-wrap: wrap;
+
+			.info-data {
+				width: 100%;
+				display: flex;
+
+				.info-tit {
+
+					font-weight: 500;
+					color: #6D7C88;
+				}
+
+				.info-val {
+					color: #0F253A;
+					font-weight: bold;
+				}
+			}
+		}
+
+		.upimg {
+			padding-top: 10rpx;
+			display: flex;
+
+			.up-tit {
+				display: inline-block;
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #6D7C88;
+			}
+
+			.img-wrap {
+				width: 153rpx;
+				height: 152rpx;
+
+				border-radius: 20rpx;
+
+				image {
+					border-radius: 20rpx;
+					width: 153rpx;
+					height: 152rpx;
+					background-color: #ccc;
+				}
+			}
+		}
+
+		.mc-btn {
+			width: 144rpx;
+			line-height: 50rpx;
+			border-radius: 25px;
+			background: #FFFFFF;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			text-align: center;
+			position: absolute;
+			bottom: 47rpx;
+		}
+
+		.pass {
+			color: #FF4C4C;
+			border: 2px solid #FF4C4C;
+			right: 36rpx;
+		}
+
+		.fail {
+			color: #999999;
+			border: 2px solid #EBEBEB;
+
+			right: 36rpx;
+		}
+	}
+
+	.pop-wrap {
+		width: 522rpx;
+		height: 800rpx;
+		// background-color: red;
+	}
+
+	.popup-box {
+		width: 522rpx;
+		height: 800rpx;
+		border-radius: 20rpx;
+		position: relative;
+		overflow: hidden;
+		background-color: #fff;
+
+		.popup-item {
+			width: 100%;
+			height: 100%;
+
+
+			image {
+				width: 100%;
+				// height: 100%;
+			}
+		}
+
+	}
+
+	.close {
+		display: block;
+		width: 40rpx;
+		height: 40rpx;
+		border: 50%;
+		position: absolute;
+		// background-color: red;
+		bottom: -100rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
 </style>

+ 1 - 0
pages/user/user.vue

@@ -95,6 +95,7 @@
 						<uni-list-item title="分享海报" @click="navTo('/pages/user/shareQrCode')" thumb="/static/user/u4.png"></uni-list-item>
 						<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/user/u5.png"></uni-list-item>
 						<uni-list-item title="收货地址" @click="navTo('/pages/set/address')" thumb="/static/user/u6.png"></uni-list-item>
+						<uni-list-item title="交易密码" @click="navTo('/pages/money/moneyPwd')" thumb="/static/user/u7.png"></uni-list-item>
 					</uni-list>
 				</view>
 			</view>

二进制
static/icon/close.png


二进制
static/icon/i8.png


二进制
static/user/u7.png


部分文件因为文件数量过多而无法显示