hwq 3 лет назад
Родитель
Сommit
b75106b760
42 измененных файлов с 1861 добавлено и 487 удалено
  1. 27 2
      api/user.js
  2. 2 2
      manifest.json
  3. 42 3
      pages.json
  4. 1 1
      pages/index/index.vue
  5. 14 0
      pages/product/product.vue
  6. 417 0
      pages/public/externalRegistered.vue
  7. 3 3
      pages/public/forget.vue
  8. 3 1
      pages/public/login.vue
  9. 1 1
      pages/public/register.vue
  10. 12 6
      pages/story/storyDetail.vue
  11. 649 269
      pages/user/jiedian.vue
  12. 182 0
      pages/user/selectList.vue
  13. 135 97
      pages/user/shareQrCode.vue
  14. 2 2
      pages/user/user.vue
  15. BIN
      static/image/popup01.png
  16. BIN
      static/image/popup02.png
  17. BIN
      static/image/popup03.png
  18. BIN
      static/img/jiedian07.png
  19. BIN
      static/img/zhengyi10.png
  20. BIN
      unpackage/cache/apk/__UNI__A53E8B3_cm.apk
  21. 1 5
      unpackage/cache/apk/apkurl
  22. 0 1
      unpackage/cache/apk/cmManifestCache.json
  23. 1 1
      unpackage/cache/certdata
  24. 0 0
      unpackage/cache/wgt/__UNI__A53E8B3/app-config-service.js
  25. 0 1
      unpackage/cache/wgt/__UNI__A53E8B3/app-service.js
  26. 0 1
      unpackage/cache/wgt/__UNI__A53E8B3/app-view.js
  27. 0 0
      unpackage/cache/wgt/__UNI__A53E8B3/manifest.json
  28. BIN
      unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup01.png
  29. BIN
      unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup02.png
  30. BIN
      unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup03.png
  31. BIN
      unpackage/cache/wgt/__UNI__A53E8B3/static/img/jiedian07.png
  32. BIN
      unpackage/cache/wgt/__UNI__A53E8B3/static/img/zhengyi10.png
  33. 0 0
      unpackage/cache/wgt/__UNI__A53E8B3/view.umd.min.js
  34. 0 0
      unpackage/dist/dev/app-plus/app-config-service.js
  35. 0 0
      unpackage/dist/dev/app-plus/app-service.js
  36. 368 91
      unpackage/dist/dev/app-plus/app-view.js
  37. 0 0
      unpackage/dist/dev/app-plus/manifest.json
  38. BIN
      unpackage/release/apk/__UNI__A53E8B3__20210917165747.apk
  39. BIN
      unpackage/release/apk/__UNI__A53E8B3__20210917174211.apk
  40. BIN
      unpackage/release/apk/__UNI__A53E8B3__20210927105854.apk
  41. BIN
      unpackage/release/apk/__UNI__A53E8B3__20210927121305.apk
  42. 1 0
      utils/upApp.js

+ 27 - 2
api/user.js

@@ -148,7 +148,16 @@ export function getjiedian(data, uid) {
 		method: 'get',
 		data
 	})
-}
+}
+
+//推荐人列表
+// export function getReferralList(data,uid){
+// 	return request({
+// 		url:'api/children/spread/'+uid,
+// 		method:'get',
+// 		data
+// 	})
+// }
 
 //佣金转账
 export function trade(data) {
@@ -184,4 +193,20 @@ export function payRegister(data,id) {
 		method: 'post',
 		data
 	})
-}
+}
+//未设置接点的报单下级
+export function getChooseList(data){
+	return request({
+		url:'/api/spread/order_people',
+		method:'get',
+		data
+	})
+}
+//添加下级接点
+export function addJiedian(data){
+	return request({
+		url:'/api/parent/set',
+		method:'post',
+		data
+	})
+}

+ 2 - 2
manifest.json

@@ -2,8 +2,8 @@
     "name" : "正一健康",
     "appid" : "__UNI__A53E8B3",
     "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
+    "versionName" : "1.0.4",
+    "versionCode" : 104,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */

+ 42 - 3
pages.json

@@ -7,6 +7,7 @@
 				"navigationBarTitleText": "商城首页"
 			}
 		},
+		//会员注册
 		{
 			"path": "pages/public/register",
 			"style": {
@@ -17,7 +18,8 @@
 					}
 				}
 			}
-		}, {
+		}, 
+		{
 			"path": "pages/public/login",
 			"style": {
 				"navigationBarTitleText": "登录",
@@ -28,6 +30,18 @@
 				}
 			}
 		},
+		//外部注册
+		{
+			"path": "pages/public/externalRegistered",
+			"style": {
+				"navigationBarTitleText": "注册",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		}, 
 		{
 			"path": "pages/public/wxLogin",
 			"style": {
@@ -79,6 +93,13 @@
 				"navigationBarTitleText": "商品列表"
 			}
 		},
+		{
+			"path": "pages/user/selectList",
+			"style": {
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "选择列表"
+			}
+		},
 		{
 			"path": "pages/product/search",
 			"style": {
@@ -263,7 +284,7 @@
 		{
 			"path": "pages/index/fugou",
 			"style": {
-				"navigationBarTitleText": "复购"
+				"navigationBarTitleText": "报单"
 			}
 		},
 		{
@@ -397,7 +418,25 @@
 				
 			}
 		}
-	],
+	    ,{
+            "path" : "pages/user/selectList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/public/externalRegistered",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",

+ 1 - 1
pages/index/index.vue

@@ -49,7 +49,7 @@
 								{{price}}
 							</view>
 							<view class="customsprice-right" @click="navTo('/pages/index/fugou')">
-								立即复购
+								立即报单
 							</view>
 						</view>
 					</view>

+ 14 - 0
pages/product/product.vue

@@ -540,6 +540,20 @@
 			buy() {
 				let obj = this;
 				// 创建传值对象
+				if(obj.userInfo) {
+					if(obj.userInfo.store_order == 0) {
+						uni.showModal({
+							title: '提示',
+							content:'您未报单,请前往报单页面',
+							success() {
+								uni.switchTab({
+									url:'/pages/index/index'
+								})
+							}
+						})
+						return 
+					}
+				}
 				let data = {
 					productId: obj.goodsid, //商品编号
 					cartNum: obj.goodsNumber, //商品数量

+ 417 - 0
pages/public/externalRegistered.vue

@@ -0,0 +1,417 @@
+<template>
+	<view class="container">
+		<view class="container_text">
+			<image class="banner-img" src="/static/img/logo.png" mode="scaleToFill"></image>
+		</view>
+		<view class="loginTitle"><text>注册</text></view>
+		<view class="login_text">
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/phone.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="text" v-model="phone" focus
+						placeholder="请输入手机号" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/pread.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="text" v-model="register" focus
+						placeholder="请输入推荐人id" :disabled="isregister" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/psw.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus
+						placeholder="请输入密码" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/psw.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus
+						placeholder="请重复输入密码" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img">
+					<image src="/static/icon/code.png"></image>
+				</view>
+				<view class="login_name flex">
+					<input class="uni-input width" v-model="code" focus placeholder="请输入验证码" />
+					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
+				</view>
+			</view>
+			<!-- <view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/dw.png"></image></view>
+				<picker v-if="!isparent_area" @change="bindParentArea" :value="parent_area" :range="parent_areas" class="uni-input">
+					<view class="placeholder" v-if="parent_area === ''">请选择区域</view>
+					<text>{{ parent_area }}</text>
+				</picker>
+				<view class="login_name" v-else><input class="uni-input" type="text" v-model="parent_area" focus disabled /></view>
+			</view> -->
+			<!-- <view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/dw.png"></image></view>
+				<picker @change="bindPayType" :value="pay_type" :range="pay_types" class="uni-input">
+					<view class="placeholder" v-if="pay_type === ''">请选择支付方式</view>
+					<text>{{ pay_type }}</text>
+				</picker>
+			</view> -->
+			<!-- <view class="login_input flex">
+				<view class="login_img"><image src="/static/icon/jft.png"></image></view>
+				<view class="uni-input" style="color: #999;">
+					是否使用积分抵扣
+					<image src="../../static/icon/noselect.png" mode="" v-if="!isSelsect" @click="jfdk(1)"></image>
+					<image src="../../static/icon/select.png" mode="" v-if="isSelsect" @click="jfdk(0)"></image>
+				</view>
+			</view> -->
+			<view><button type="green" @click="getRegister" class="uni-button uni-button-green">注册账号</button></view>
+		</view>
+	</view>
+</template>
+<script>
+	import {
+		register,
+		getUserInfo,
+		verify
+	} from '@/api/login.js';
+	export default {
+		data() {
+			return {
+				phone: '', //用户
+				password: '', //密码
+				repassword: '',
+
+
+				//这里需要推荐人的id
+				register: '',
+				// invitation: '', //接点人id
+				code: '', //验证码
+				time: '', //保存倒计时对象
+				countDown: 0, //倒计时
+				// parent_area: '',//区域
+				// parent_areas: ['A','B','C'],//区域列表
+				// pay_type: '',
+				// pay_types: ['余额','佣金'],
+				// isSelsect: false,
+				isregister: false
+				// isparent_area: false,
+			};
+		},
+		onLoad(option) {
+			if (option.id) {
+				console.log(option.id,'id')
+				this.register = option.id
+				console.log(this.register,'this')
+				this.register = true;
+			}
+			// this.getRegister()
+			// if(option.area){
+			// 	this.parent_area = option.area
+			// 	this.isparent_area = true
+			// }
+
+
+			// 获取扫码邀请人id
+			// this.invitation = uni.getStorageSync('spread')||'';
+		},
+		watch: {
+			// 监听倒计时
+			countDown(i) {
+				if (i == 0) {
+					clearInterval(this.time);
+				}
+			}
+		},
+		methods: {
+			//选择是否积分抵扣
+			jfdk(index) {
+				if (index == 1) {
+					this.isSelsect = true
+				} else {
+					this.isSelsect = false
+				}
+			},
+			//选择区域
+			bindParentArea(e) {
+				console.log(e.detail.value)
+				this.parent_area = this.parent_areas[e.detail.value]
+			},
+			//选择值支付方式
+			bindPayType(e) {
+				console.log(e)
+				if (e.detail.value) {
+					this.pay_type = this.pay_types[e.detail.value]
+				} else if (e.detail.value == 0) {
+					this.pay_type = this.pay_types[e.detail.value]
+				}
+
+			},
+			// 注册
+			getRegister() {
+				let obj = this;
+				if (obj.phone == '') {
+					obj.$api.msg('请输入手机号');
+					return;
+				}
+				if (obj.password == '') {
+					obj.$api.msg('请输入密码');
+					return;
+				}
+				if (obj.repassword == '') {
+					obj.$api.msg('请再次输入密码');
+					return;
+				}
+				if (obj.repassword != obj.password) {
+					obj.$api.msg('两次密码不正确');
+					return;
+				}
+				if (obj.code == '') {
+					obj.$api.msg('请输入验证吗');
+					return;
+				}
+				// if(obj.parent_area == '') {
+				// 	obj.$api.msg('请选择区域');
+				// 	return;
+				// }
+				// if(obj.pay_type == '') {
+				// 	obj.$api.msg('请选择支付方式');
+				// 	return;
+				// }
+				// let paytype = ''
+				// if(obj.pay_type == '微信') {
+				// 	paytype = 'weixin'
+				// }else if(obj.pay_type == '余额') {
+				// 	paytype = 'yue'
+				// }else if(obj.pay_type == '佣金') {
+				// 	paytype = 'brokerage'
+				// }
+				register({
+					account: obj.phone, //账号
+					captcha: obj.code, //验证码
+					password: obj.password, //密码
+					// parent: obj.invitation,//接点人uid
+					register: obj.register, //推荐人id
+					// parent_area: obj.parent_area,//区域
+					// pay_type: paytype,
+					// use_integral: obj.isSelsect ? '1':'0',
+					from: 'APP'
+				}).then(function(e) {
+					console.log(e, '1111');
+					uni.showToast({
+						title: '注册成功',
+						duration: 2000,
+						position: 'top'
+					});
+					// setTimeout(function () {
+					// 	uni.navigateTo({
+					// 		url: '/pages/user/user'
+					// 	});
+					// },1000)
+					setTimeout(() => {
+						uni.switchTab({
+							url: '/pages/index/index'
+						},1000);
+					})
+				}).catch(err => {
+					console.log(err)
+				})
+			},
+			//发送验证码
+			verification() {
+				let obj = this;
+				if (this.phone == '') {
+					this.$api.msg('请输入电话号码');
+					return;
+				}
+				if (this.phone.length < 11) {
+					this.$api.msg('请输入正确的手机号');
+					return;
+				}
+				// 判断是否在倒计时
+				if (obj.countDown > 0) {
+					return false;
+				} else {
+					obj.countDown = 60;
+					obj.time = setInterval(() => {
+						obj.countDown--;
+					}, 1000);
+					//调用验证码接口
+					verify({
+							phone: obj.phone,
+							type: 'register'
+						})
+						.then(({
+							data
+						}) => {})
+						.catch(err => {
+							console.log(err);
+						});
+				}
+			},
+			login() {
+				//返回登录
+				uni.navigateTo({
+					url: '/pages/public/login'
+				});
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		height: 100%;
+	}
+
+	.container {
+		width: 100%;
+		height: 100%;
+		background-size: 100%;
+		background-color: #fff;
+	}
+
+	.container_text {
+		width: 100%;
+		height: 500rpx;
+		top: 0rpx;
+
+		// background-color: #FF4343;
+		.banner-img {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.login_text {
+		margin: auto 30rpx;
+		position: relative;
+		padding: 100rpx 102rpx;
+		background-color: #ffffff;
+		// margin-top: -180rpx;
+		border-radius: 20rpx;
+
+		.login_input {
+			border-bottom: 1px solid #f0f0f0;
+			margin-bottom: 65rpx;
+
+			.login_img image {
+				height: 35rpx;
+				width: 29rpx;
+				margin-right: 20rpx;
+			}
+
+			.uni-input {
+				text-align: left;
+				width: 470rpx;
+				font-size: 28rpx !important;
+				position: relative;
+
+				image {
+					width: 30rpx;
+					height: 30rpx;
+					position: absolute;
+					right: 0;
+				}
+			}
+
+			.login_name {
+				color: #333333;
+			}
+		}
+
+		.other {
+			margin-top: 60rpx;
+
+			.fenge {
+				width: 30%;
+				height: 2rpx;
+				background-color: #eeeeee;
+			}
+
+			.qita {
+				font-size: 28rpx;
+				color: #999999;
+			}
+		}
+
+		.weixin {
+			width: 75rpx;
+			height: 75rpx;
+			margin: 25rpx auto;
+		}
+
+		.weixin image {
+			width: 100%;
+			height: 100%;
+		}
+
+		.weixin_text {
+			text-align: center;
+			font-size: 28rpx;
+			color: #999999;
+		}
+
+		.forget {
+			font-size: 28rpx;
+			width: 100%;
+			text-align: right;
+			color: #999999;
+		}
+
+		.uni-button-green {
+			color: #ffffff;
+			background-color: $base-color;
+			margin: 40rpx 10rpx;
+			border-radius: 10rpx;
+		}
+
+		.uni-button-green-plain {
+			border: 1px solid $base-color;
+			margin: 40rpx 10rpx;
+			border-radius: 50rpx;
+			color: $base-color;
+			background-color: #ffffff;
+		}
+
+		.uni-button {
+			height: 85rpx;
+			line-height: 85rpx;
+		}
+	}
+
+	.loginTitle {
+		position: absolute;
+		top: 250rpx;
+		width: 100%;
+		text-align: center;
+		color: white;
+		font-size: 40rpx;
+	}
+
+	.forget {
+		width: 100rpx;
+		font-size: 24rpx;
+		color: #ffffff;
+		margin: 0px auto;
+		border-bottom: 1px solid #ffffff;
+	}
+
+	.width {
+		width: 325rpx !important;
+	}
+
+	.code {
+		color: $base-color;
+		font-size: 23rpx;
+		border-left: 1px solid #eeeeee;
+		width: 150rpx;
+		flex-shrink: 0;
+		text-align: center;
+	}
+
+	uni-button {
+		height: 80rpx !important;
+		line-height: 80rpx !important;
+	}
+</style>

+ 3 - 3
pages/public/forget.vue

@@ -131,7 +131,7 @@ page {
 .container_text {
 	width: 100%;
 	height: 500rpx;
-	background-color: #ff4c4c;
+	background-color: #abd56f;
 	top: 0rpx;
 	.banner-img {
 		width: 100%;
@@ -164,7 +164,7 @@ page {
 				width: 325rpx !important;
 			}
 			.code {
-				color: #ff4c4c;
+				color: #abd56f;
 				font-size: 23rpx;
 				border-left: 1px solid #eeeeee;
 				width: 150rpx;
@@ -175,7 +175,7 @@ page {
 	}
 	.uni-button-green {
 		color: #ffffff;
-		background-color: #ff4c4c;
+		background-color: #abd56f;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
 	}

+ 3 - 1
pages/public/login.vue

@@ -20,6 +20,7 @@
 			</view>
 			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
 			<!-- <view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true" hover-class="none" @click="register">注册</button></view> -->
+			<navigator url="./externalRegistered" style="margin-bottom: 18rpx;"><view class="forget">注册</view></navigator>
 			<navigator url="./forget"><view class="forget">忘记密码</view></navigator>
 			<!-- <view class="flex other">
 				<view class="fenge"></view>
@@ -212,7 +213,8 @@ export default {
 						obj.login();
 						// 保存返回用户数据
 						obj.setUserInfo(e.data);
-						let ur = uni.getStorageSync('present') || '/pages/index/index';
+						 // uni.getStorageSync('present') || 
+						let ur ='/pages/index/index';
 						//成功跳转首页
 						uni.switchTab({
 							url: ur,

+ 1 - 1
pages/public/register.vue

@@ -177,7 +177,7 @@ export default {
 				});
 				setTimeout(function () {
 					uni.navigateTo({
-						url: '/pages/user/user'
+						url: '/pages/user/jiedian'
 					});
 				},1000)
 			}).catch( err => {

+ 12 - 6
pages/story/storyDetail.vue

@@ -112,15 +112,21 @@
 				line-height: 48rpx;
 				padding: 37rpx 40rpx;
 				width: 750rpx;
-				
-				// * {
-				// 	max-width: 100%;
-				// }
-				
 			}
 		}
 	}
+	/deep/ .detail-content {
+		img{
+			width: 100%;
+			height: 100%;
+		}
+		table {
+			width: 100%;
+			height: 100%;
+		}
+	}
 	.rich-img {
 		width: 100% !important;
-	}
+	}
+	
 </style>

+ 649 - 269
pages/user/jiedian.vue

@@ -3,7 +3,9 @@
 		<!-- 头部 -->
 
 		<view class="container">
-			<view class="jiedianbackground"><image src="../../static/image/jiedian.png" mode=""></image></view>
+			<view class="jiedianbackground">
+				<image src="../../static/image/jiedian.png" mode=""></image>
+			</view>
 			<view class="number-box">
 				<view class="number">
 					<text>{{ userInfo.A_count + userInfo.B_count + userInfo.C_count }}</text>
@@ -29,234 +31,405 @@
 					<view class="yeji-buttom">¥{{ userInfo.C_achievement }}</view>
 				</view>
 			</view>
+			<view class="back" @click="navBack()" v-if="parentList.length > 0">
+				<image src="../../static/img/zhengyi10.png" mode=""></image>
+				返回
+			</view>
 			<view class="relation-box">
 				<view class="relation">
 					<view class="headbox">
 						<view class="head">
-							<view class="photo"><image :src="avatar || '../../static/error/missing-face.png'"></image></view>
+							<view class="photo">
+								<image v-if="avatar" :src="avatar"></image>
+							</view>
+						</view>
+						<view class="head-title">
+							<image src="../../static/image/jiedian1.png" mode=""></image>
 						</view>
-						<view class="head-title"><image src="../../static/image/jiedian1.png" mode=""></image></view>
 					</view>
 					<view class="information">
 						<view class="name clamp">{{ name }}</view>
 						<view class="cell clamp">{{ phone }}</view>
 					</view>
 				</view>
-				<view class="sanchaji"><image src="../../static/image/sanchaji.png" mode=""></image></view>
+				<view class="sanchaji">
+					<image src="../../static/image/sanchaji.png" mode=""></image>
+				</view>
 				<view class="subordinate">
-					<view class="headbox" v-if="listA != ''" @click="nav('a')">
+					<view class="headbox" v-if="listA" @click="nav('a')">
 						<view class="head">
-							<view class="photo"><image :src="listA.avatar" mode=""></image></view>
+							<view class="photo">
+								<image v-if='listA.avatar' :src="listA.avatar" mode="scaleToFill"></image>
+							</view>
+						</view>
+						<view class="head-title">
+							<image src="../../static/image/jiedian1.png" mode="scaleToFill"></image>
+						</view>
+						<view class="head-name">
+							{{listA.nickname}}
+						</view>
+						<view class="head-phone">
+							{{listA.phone}}
 						</view>
-						<view class="head-title"><image src="../../static/image/jiedian1.png" mode=""></image></view>
 					</view>
-					<view class="zhuce" v-if="listA == ''" @click="navto('a')">注册接点A</view>
-					<view class="headbox" v-if="listB != ''" @click="nav('b')">
+					<view class="zhuce" v-else @click="open('A')">
+						<view class="jia">
+							<view class="jia_photo">
+								+
+								<!-- <image v-if='!listA.avatar' class="imgbox" src="../../static/img/jiedian07.png" mode="scaleToFill"></image> -->
+							</view>
+							<view class="font">
+								点击添加
+							</view>
+						</view>
+					</view>
+					<view class="headbox" v-if="listB" @click="nav('b')">
 						<view class="head">
-							<view class="photo"><image :src="listB.avatar" mode=""></image></view>
+							<view class="photo">
+								<image :key='listB.id' :src="listB.avatar" mode="scaleToFill"></image>
+							</view>
+						</view>
+						<view class="head-title">
+							<image src="../../static/image/jiedian1.png" mode="scaleToFill"></image>
+						</view>
+						<view class="head-name">
+							{{listB.nickname}}
+						</view>
+						<view class="head-phone">
+							{{listB.phone}}
+						</view>
+					</view>
+					<view class="zhuce" v-else @click="open('B')">
+						<view class="jia">
+							<view class="jia_photo">
+								+
+								<!-- <image v-if='!listB.avatar' class="imgbox" src="../../static/img/jiedian07.png" mode="scaleToFill"></image> -->
+							</view>
+							<view class="font">
+								点击添加
+							</view>
 						</view>
-						<view class="head-title"><image src="../../static/image/jiedian1.png" mode=""></image></view>
 					</view>
-					<view class="zhuce" v-if="listB == ''" @click="navto('b')">注册接点B</view>
-					<view class="headbox" v-if="listC != ''" @click="nav('c')">
+
+					<view class="headbox" v-if="listC" @click="nav('c')">
 						<view class="head">
-							<view class="photo"><image :src="listC.avatar" mode=""></image></view>
+							<view class="photo">
+								<image v-if='listC.avatar' :src="listC.avatar" mode="scaleToFill"></image>
+							</view>
+						</view>
+						<view class="head-title">
+							<image src="../../static/image/jiedian1.png" mode="scaleToFill"></image>
+						</view>
+						<view class="head-name">
+							{{listC.nickname}}
+						</view>
+						<view class="head-phone">
+							{{listC.phone}}
+						</view>
+					</view>
+					<view class="zhuce" v-else @click="open('C')">
+						<view class="jia">
+							<view class="jia_photo">
+								+
+								<!-- <image v-if='!listC.avatar' class="imgbox" src="../../static/img/jiedian07.png" mode="scaleToFill"></image> -->
+							</view>
+							<view class="font">
+								点击添加
+							</view>
 						</view>
-						<view class="head-title"><image src="../../static/image/jiedian1.png" mode=""></image></view>
 					</view>
-					<view class="zhuce" v-if="listC == ''" @click="navto('c')">注册接点C</view>
 				</view>
 			</view>
 		</view>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="backgroundimg">
+					<image src="../../static/image/popup01.png" mode=""></image>
+				</view>
+				<view class="text">
+					<view class="text-one">
+						添加类型
+					</view>
+					<view class="text-two">
+						请选择接点人添加类型
+					</view>
+				</view>
+				<view class="box-choose">
+					<view class="choose">
+						<view class="zhuce">
+							<view class="zhuce-img">
+								<image src="../../static/image/popup03.png" mode="scaleToFill"></image>
+							</view>
+							<text>注册接点人</text>
+						</view>
+						<view class="radio">
+							<radio value="2" :checked="bianhao==='3'" @click="radio('3')" color="#6EAB4E"></radio>
+						</view>
+					</view>
+					<view class="choose">
+						<view class="zhuce">
+							<view class="zhuce-img">
+								<image src="../../static/image/popup02.png" mode=""></image>
+							</view>
+							<text>选择接点人</text>
+						</view>
+						<view class="radio">
+							<radio value="1" :checked="bianhao==='1'" color="#6EAB4E" @click="radio('1')">
+							</radio>
+						</view>
+					</view>
+					<view class="button" @click="navJiedian()">
+						确认
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+
 	</view>
 </template>
 
 <script>
-import { getjiedian } from '@/api/user.js';
-import { mapState, mapMutations } from 'vuex';
-export default {
-	data() {
-		return {
-			a: 1,
-			b: 2,
-			c: 3,
-			people: 255,
-			listA: '',
-			listB: '',
-			listC: '',
-			name: '',
-			phone: '',
-			avatar: '',
-			id: ''
-		};
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	onLoad() {
-		this.name = this.userInfo.nickname;
-		this.phone = this.userInfo.phone;
-		this.avatar = this.userInfo.avatar;
-		this.id = this.userInfo.uid;
-		this.loadData();
-	},
-	methods: {
-		loadData() {
-			const obj = this;
-			getjiedian({}, this.id).then(({ data }) => {
-				if (data.list.length != 0) {
-					data.list.forEach(e => {
-						console.log('e', e);
-						if (e.parent_area == 'A') {
-							this.listA = e;
-						} else if (e.parent_area == 'B') {
-							this.listB = e;
-						} else if (e.parent_area == 'C') {
-							this.listC = e;
-						}
-					});
-				} else {
-					return;
-				}
-			});
+	import uniPopup from '@/components/uni-popup/uni-popup.vue'
+	import {
+		getjiedian,
+		getReferralList,
+		addJiedian
+	} from '@/api/user.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		components: {
+			uniPopup
 		},
-		nav(type) {
-			if (type == 'a') {
-				this.name = this.listA.nickname;
-				this.phone = this.listA.phone;
-				this.avatar = this.listA.avatar;
-				this.id = this.listA.uid;
-				this.listA = '';
-				this.listB = '';
-				this.listC = '';
-				this.loadData();
-			} else if (type == 'b') {
-				this.name = this.listB.nickname;
-				this.phone = this.listB.phone;
-				this.avatar = this.listB.avatar;
-				this.id = this.listB.uid;
-				this.listA = '';
-				this.listB = '';
-				this.listC = '';
-				this.loadData();
-			} else if (type == 'c') {
-				this.name = this.listC.nickname;
-				this.phone = this.listC.phone;
-				this.avatar = this.listC.avatar;
-				this.id = this.listC.uid;
-				this.listA = '';
-				this.listB = '';
-				this.listC = '';
-				this.loadData();
-			}
+		data() {
+			return {
+				bianhao: '1',
+				a: 1,
+				b: 2,
+				c: 3,
+				listA: '', //节点A
+				listB: '', //节点B
+				listC: '', //节点C
+				name: '', //当前节点姓名
+				phone: '', //当前节点手机号
+				avatar: '', //当前节点头像
+				id: '',
+				uid: '',
+				jiedianList: [],
+				parentList: [], //保存打开层级用户数据
+				parent_area: ''
+
+			};
+		},
+		computed: {
+			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		},
+		onLoad() {
+			this.name = this.userInfo.nickname;
+			this.phone = this.userInfo.phone;
+			this.avatar = this.userInfo.avatar;
+			this.id = this.userInfo.uid;
+			this.loadData();
+
 		},
-		navto(type) {
-			if (type == 'a') {
-				uni.navigateTo({
-					url: '/pages/public/register?id=' + this.id + '&area=A'
+
+		methods: {
+			navJiedian() {
+				this.$refs.popup.close();
+				console.log(this.bianhao, 'bianhao')
+				if (this.bianhao === '3') {
+					uni.navigateTo({
+						url: '/pages/public/register'
+					})
+				} else if (this.bianhao === '1') {
+					uni.navigateTo({
+						url: '/pages/user/selectList?patent=' + this.id + '&parent_area=' + this.parent_area
+					})
+				}
+			},
+			//切换按钮
+			radio(e) {
+				this.bianhao = e
+			},
+			//打开选择项
+			open(are) {
+				console.log(this.id)
+				console.log('点击出现弹窗')
+				this.$refs.popup.open();
+				this.parent_area = are;
+				console.log(this.parent_area);
+			},
+			//返回
+			navBack() {
+				const obj = this;
+				// 删除
+				let parent = obj.parentList.pop();
+				console.log(parent);
+				console.log(obj.parentList, 'navBack')
+				// 保存回退后数据对象
+				obj.name = parent.name;
+				 
+				obj.avatar = parent.avatar;
+				obj.id = parent.id;
+				obj.listA = obj.listB = obj.listC = '';
+				console.log(parent, '对象');
+				obj.loadData();
+			},
+			loadData() {
+				const obj = this;
+				uni.showLoading({
+					title: '加载中。。。',
+					mask: true
 				});
-			} else if (type == 'b') {
-				uni.navigateTo({
-					url: '/pages/public/register?id=' + this.id + '&area=B'
+				getjiedian({}, this.id).then(({
+					data
+				}) => {
+					uni.hideLoading()
+					if (data.list.length != 0) {
+						data.list.forEach(e => {
+							console.log('e', e);
+							let item = '';
+							if (e.parent_area == 'A') {
+								item = 'listA';
+							} else if (e.parent_area == 'B') {
+								item = 'listB';
+							} else if (e.parent_area == 'C') {
+								item = 'listC';
+							}
+							obj[item] = e;
+							console.log(obj, '当前数据');
+						});
+					} else {
+						return;
+					}
+				}).catch((e) => {
+					uni.hideLoading()
 				});
-			} else if (type == 'c') {
-				if (this.listA == '' || this.listB == '') {
-					this.$api.msg('请先注册完接点A和接点B');
+			},
+			nav(type) {
+				const obj = this;
+				// 保存当前选中的对象
+				let item = '';
+				if (type == 'a') {
+					item = 'listA'
 				} else {
+					if (type == 'b') {
+						item = 'listB'
+					} else if (type == 'c') {
+						item = 'listC'
+					}
+				}
+				obj.parentList.push({
+					name: obj.name,
+					phone: obj.phone,
+					avatar: obj.avatar,
+					id: obj.id,
+				})
+				console.log(obj.parentList, 's');
+				obj.name = obj[item].nickname;
+				obj.phone = obj[item].phone;
+				obj.avatar = '';
+				obj.$nextTick(function() {
+					obj.avatar = obj[item].avatar;
+					obj.id = obj[item].uid;
+					obj.listA = '';
+					obj.listB = '';
+					obj.listC = '';
+					obj.loadData();
+				})
+			},
+			navto(type) {
+				if (type == 'a') {
+					uni.navigateTo({
+						url: '/pages/public/register?id=' + this.id + '&area=A'
+					});
+				} else if (type == 'b') {
 					uni.navigateTo({
-						url: '/pages/public/register?id=' + this.id + '&area=C'
+						url: '/pages/public/register?id=' + this.id + '&area=B'
 					});
+				} else if (type == 'c') {
+					if (this.listA == '' || this.listB == '') {
+						this.$api.msg('请先注册完接点A和接点B');
+					} else {
+						uni.navigateTo({
+							url: '/pages/public/register?id=' + this.id + '&area=C'
+						});
+					}
 				}
 			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	padding: 0;
-	margin: 0;
-	height: 100%;
-	background-color: #ffffff;
-}
-.container {
-	width: 750rpx;
-	height: 400rpx;
-	position: relative;
-
-	.jiedianbackground {
-		position: absolute;
-		width: 750rpx;
-		height: 400rpx;
+	page {
+		padding: 0;
+		margin: 0;
+		height: 100%;
+		background-color: #ffffff;
+	}
+
+	.popup-box {
+		width: 542rpx;
+		height: 575rpx;
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		position: relative;
+		margin: 0 auto;
+
+		.backgroundimg {
+			width: 542rpx;
+			height: 138rpx;
+			position: absolute;
 
-		image {
-			width: 100%;
-			height: 100%;
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
-	}
 
-	.number-box {
-		width: 750rpx;
-		height: 400rpx;
-		position: absolute;
-		display: flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-
-		.number {
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #3f7c1f;
+		.text {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			padding-top: 80rpx;
+			margin-bottom: 50rpx;
 
-			text {
-				font-size: 72rpx;
+			.text-one {
+				font-size: 36rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
-				color: #3f7c1f;
-				line-height: 86rpx;
+				color: #333333;
+				margin-bottom: 10rpx;
 			}
-		}
 
-		.renshu {
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #3f7c1f;
+			.text-two {
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #808080;
+			}
 		}
-	}
-}
 
-.message {
-	padding: 0 30rpx;
+		.box-choose {
+			margin: 0 40rpx;
+			display: flex;
+			flex-direction: column;
 
-	.relation-box {
-		margin-top: 100rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
+			.choose {
+				display: flex;
+				justify-content: space-between;
+				margin: 25rpx 0;
 
-		.relation {
-			position: relative;
-			display: flex;
-			align-items: center;
-			.headbox {
-				position: absolute;
-				width: 154rpx;
-				height: 154rpx;
-				.head {
-					width: 154rpx;
-					height: 154rpx;
-					background: #ef9e20;
-					box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
-					border-radius: 50%;
-					overflow: hidden;
 
-					.photo {
-						width: 154rpx;
-						height: 154rpx;
+				.zhuce {
+					display: flex;
+
+					.zhuce-img {
+						width: 42rpx;
+						height: 43rpx;
 
 						image {
 							width: 100%;
@@ -265,52 +438,43 @@ page {
 					}
 				}
 
-				.head-title {
-					margin: -30rpx 30rpx 0 30rpx;
-					width: 94rpx;
-					height: 32rpx;
-
-					image {
-						width: 100%;
-						height: 100%;
-					}
+				text {
+					margin-left: 10rpx;
+					font-size: 28rpx;
+					font-weight: 500;
+					color: #333333;
 				}
+
+				.radio {}
 			}
 
-			.information {
-				margin-left: 77rpx;
-				display: flex;
-				padding: 20rpx 10rpx;
-				flex-direction: column;
-				width: 297rpx;
-				height: 137rpx;
-				background: #ffffff;
-				border: 4rpx solid #6eab4e;
+			.button {
+				margin-top: 60rpx;
+				width: 460rpx;
+				text-align: center;
+				line-height: 70rpx;
+				height: 70rpx;
+				background: #6EAB4E;
 				border-radius: 10rpx;
-				.name {
-					text-align: left;
-					margin-left: 70rpx;
-					font-size: 32rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #3f7c1f;
-				}
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+
 
-				.cell {
-					text-align: left;
-					margin-left: 70rpx;
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #abd56f;
-				}
 			}
 		}
 
-		.sanchaji {
-			margin: 30rpx 0;
-			width: 530rpx;
-			height: 91rpx;
+	}
+
+	.container {
+		width: 750rpx;
+		height: 400rpx;
+		position: relative;
+
+		.jiedianbackground {
+			position: absolute;
+			width: 750rpx;
+			height: 400rpx;
 
 			image {
 				width: 100%;
@@ -318,93 +482,309 @@ page {
 			}
 		}
 
-		.subordinate {
+
+		.number-box {
 			width: 750rpx;
+			height: 400rpx;
+			position: absolute;
 			display: flex;
-			justify-content: space-around;
-			.zhuce {
-				padding: 10rpx;
-				background: #abd56f;
-				color: #fff;
-				height: 70rpx;
+			justify-content: center;
+			flex-direction: column;
+			align-items: center;
+
+			.number {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #3f7c1f;
+
+				text {
+					font-size: 72rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #3f7c1f;
+					line-height: 86rpx;
+				}
+			}
+
+			.renshu {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #3f7c1f;
+			}
+		}
+	}
+
+	.message {
+		padding: 0 30rpx;
+
+		.relation-box {
+			margin-top: 100rpx;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+
+			.relation {
+				position: relative;
+				display: flex;
+				align-items: center;
+
+				.headbox {
+					position: absolute;
+					// width: 154rpx;
+					// height: 154rpx;
+
+					.head {
+						width: 154rpx;
+						height: 154rpx;
+						background: #ef9e20;
+						box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
+						border-radius: 50%;
+						overflow: hidden;
+
+						.photo {
+							width: 154rpx;
+							height: 154rpx;
+
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+					}
+
+					.head-title {
+						margin: -30rpx 30rpx 0 30rpx;
+						width: 94rpx;
+						height: 32rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					// .head-name{
+					// 	max-width: 100%;
+					// 	font-size: 32rpx;
+					// 	font-weight: bold;
+					// 	color: #333333;
+					// }
+					// .head-phone{
+					// 	font-size: 26rpx;
+					// 	font-weight: 500;
+					// 	color: #999999;
+					// }
+				}
+
+				.information {
+					margin-left: 77rpx;
+					display: flex;
+					padding: 20rpx 10rpx;
+					flex-direction: column;
+					width: 297rpx;
+					height: 137rpx;
+					background: #ffffff;
+					border: 4rpx solid #6eab4e;
+					border-radius: 10rpx;
+
+					.name {
+						text-align: left;
+						margin-left: 70rpx;
+						font-size: 32rpx;
+						font-family: PingFang SC;
+						font-weight: bold;
+						color: #3f7c1f;
+					}
+
+					.cell {
+						text-align: left;
+						margin-left: 70rpx;
+						font-size: 26rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #abd56f;
+					}
+				}
+			}
+
+			.sanchaji {
+				margin: 30rpx 0;
+				width: 530rpx;
+				height: 91rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
 			}
-			.headbox {
-				width: 154rpx;
-				height: 154rpx;
 
-				.head {
+			.subordinate {
+				width: 750rpx;
+				display: flex;
+				justify-content: space-around;
+
+				.zhuce {
+
 					width: 154rpx;
 					height: 154rpx;
-					background: #ef9e20;
-					box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
-					border-radius: 50%;
-					overflow: hidden;
 
-					.photo {
+
+					.jia {
+						width: 154rpx;
+						height: 154rpx;
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
+
+						background: #E8E8E8;
+						box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
+						border-radius: 50%;
+						overflow: hidden;
+
+						.jia_photo {
+							font-size: 80rpx;
+							line-height: 1;
+							color: #a3a3a3;
+						}
+
+						.font {
+							font-size: 22rpx;
+							font-weight: 500;
+							color: #999999;
+						}
+					}
+
+				}
+
+				.headbox {
+					width: 33.3%;
+					// height: 154rpx;
+					display: flex;
+					flex-direction: column;
+					// flex-wrap: nowrap;
+					align-items: center;
+					padding: 0 10rpx;
+
+					.head {
 						width: 154rpx;
 						height: 154rpx;
+						background: #ef9e20;
+						box-shadow: 5rpx 0rpx 5rpx 0rpx rgba(110, 171, 78, 0.26);
+						border-radius: 50%;
+						overflow: hidden;
+
+						.photo {
+							width: 154rpx;
+							height: 154rpx;
+
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+					}
+
+					.head-title {
+						margin: -30rpx 30rpx 0 30rpx;
+						width: 94rpx;
+						height: 32rpx;
 
 						image {
 							width: 100%;
 							height: 100%;
 						}
 					}
-				}
 
-				.head-title {
-					margin: -30rpx 30rpx 0 30rpx;
-					width: 94rpx;
-					height: 32rpx;
+					.head-name {
+						margin-top: 20rpx;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						width: 150rpx;
+						padding-top: 10rpx;
+						text-align: center;
+						// margin: 30rpx 0 0 0;
+						font-size: 32rpx;
+						font-weight: bold;
+						color: #333333;
+					}
 
-					image {
-						width: 100%;
-						height: 100%;
+					.head-phone {
+						margin: 15rpx 0 0 0;
+						font-size: 26rpx;
+						font-weight: 500;
+						color: #999999;
 					}
 				}
 			}
 		}
-	}
 
-	.yeji {
-		position: relative;
-		margin-top: -72rpx;
-		width: 690rpx;
-		height: 143rpx;
-		background: #ffffff;
-		box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
-		border-radius: 10rpx;
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-
-		.yeji-a {
+		.yeji {
+			position: relative;
+			margin-top: -72rpx;
+			width: 690rpx;
+			height: 143rpx;
+			background: #ffffff;
+			box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
+			border-radius: 10rpx;
 			display: flex;
-			flex-direction: column;
 			justify-content: space-around;
 			align-items: center;
 
-			.yeji-top {
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-				line-height: 35px;
+			.yeji-a {
+				display: flex;
+				flex-direction: column;
+				justify-content: space-around;
+				align-items: center;
+
+				.yeji-top {
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #333333;
+					line-height: 35px;
+				}
+
+				.yeji-buttom {
+					font-size: 34rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #333333;
+					line-height: 35px;
+				}
 			}
 
-			.yeji-buttom {
-				font-size: 34rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-				line-height: 35px;
+			.border {
+				width: 1rpx;
+				height: 51rpx;
+				background: #dddddd;
 			}
 		}
 
-		.border {
-			width: 1rpx;
-			height: 51rpx;
-			background: #dddddd;
+		.back {
+			float: right;
+			margin-top: 40rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			image {
+				width: 24rpx;
+				height: 23rpx;
+			}
+
+			width: 104rpx;
+			height: 39rpx;
+			border: 2rpx solid #6EAB4E;
+			border-radius: 7rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #6EAB4E;
+
 		}
 	}
-}
 </style>

+ 182 - 0
pages/user/selectList.vue

@@ -0,0 +1,182 @@
+<template>
+	<view class="page">
+		<view class="content">
+			<view class="checked" v-for="(item,index) in checkList">
+				<view class="checked-box">
+					<view class="checked-img">
+						<image :src="item.img" mode=""></image>
+					</view>
+					<view class="checked-text">
+						<view class="checked-name">{{item.nickname}}</view>
+						<view class="checked-phone">{{item.phone}}</view>
+					</view>
+				</view>
+				<!-- <radio value="1" :checked="xuanze==='1'" @click="checked('1')"></radio> -->
+				<view class="">
+					<radio @click="click(item,index)" :key="index" :checked="isChange == index" color="#6EAB4E">
+					</radio>
+				</view>
+			</view>
+		</view>
+		<view class="button" @click="navJiedian()">
+			确认
+		</view>
+	</view>
+</template>
+<script>
+	// import {
+	// 	getReferralList
+	// } from '@/api/user.js';
+	// import{ getReferralList}
+	// import {
+	// 	getChooseList
+	// } from '@/api/user.js';
+	import {
+		getChooseList,
+		addJiedian
+		
+	} from '@/api/user.js'
+	export default {
+		data() {
+			return {
+				parent_area:'',
+				patent:'',
+				uid: '',
+				wuyue: [],
+				isChange: -1, //单选
+				checkList: [{
+						img: '',
+						name: '',
+						phone: '',
+					}
+				]
+			}
+		},
+		onLoad(option) {
+			// this.getChoosesList()
+			this.getla()
+			console.log(option)
+			this.parent_area = option.parent_area
+			this.patent = option.patent
+			
+			
+		},
+		methods: {
+			getla() {
+				let obj = this
+				getChooseList().then(res => {
+					console.log(res, '11111')
+					obj.checkList = res.data.data
+				})
+			},
+			//判断当前index是否与ischange相等,再次点击取消
+			click(item,index) {
+				console.log(item,'item')
+				this.uid = item.uid
+				this.isChange = index
+			},
+			navJiedian(){
+				if(this.uid == '') {
+					return this.$api.msg('请选择用户')
+				}
+				console.log(this.patent,this.parent_area,'dddddddddddddddddddd')
+				addJiedian({
+					patent:this.patent ,
+					parent_area: this.parent_area,
+					uid: this.uid,
+				}).then(res=>{
+					this.$api.msg(res.msg)
+					console.log(res,'11122344')
+					this.$api.prePage().loadData()
+					setTimeout(()=> {
+						uni.navigateBack({})
+					},1000)
+					
+				})
+			
+			}
+		}
+	}
+</script>
+<style lang="scss">
+	page {
+		padding: 0;
+		margin: 0;
+		height: 100%;
+		background-color: #F8F6F6;
+
+		.page {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+		}
+
+		.button {
+			margin-top: 60rpx;
+			width: 699rpx;
+			height: 90rpx;
+			border-radius: 45px;
+			text-align: center;
+			line-height: 70rpx;
+			height: 70rpx;
+			background: #6EAB4E;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+
+
+		}
+
+		.content {
+			width: 100%;
+			display: flex;
+			flex-wrap: nowrap;
+			flex-direction: column;
+			margin-top: 20rpx;
+			background-color: #FFFFFF;
+
+			.checked {
+				height: 130rpx;
+				margin: 0 30rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.checked-box {
+					display: flex;
+
+					.checked-img {
+						width: 80rpx;
+						height: 80rpx;
+						border-radius: 50%;
+						overflow: hidden;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					.checked-text {
+						margin-left: 20rpx;
+						display: flex;
+						flex-direction: column;
+						justify-content: space-between;
+
+						.checked-name {
+							font-size: 30rpx;
+							font-weight: 500;
+							color: #3F454B;
+						}
+
+						.checked-phone {
+							font-size: 22rpx;
+							font-weight: 400;
+							color: #999999;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 135 - 97
pages/user/shareQrCode.vue

@@ -1,123 +1,161 @@
 <template>
-	<view class="container">
+	<view class="container" v-if="loaded">
 		<image @longtap="bc_code" class="backImg" :src="backImg"></image>
-		<view class="tki-qrcode"><canvas @longtap="bc_code" canvas-id="qrcode" /></view>
+		<!-- <view class="tki-qrcode"><canvas @longtap="bc_code" canvas-id="qrcode" /></view> -->
+		<view class="tki-qrcode">
+			<tki-qrcode :key="'http://shop.zhengyjk1994.com/register?petent=' + userInfo.uid" cid="tki-qrcode-canvas"
+				ref="qrcode"
+				:val="'http://shop.zhengyjk1994.com/register?petent=' + userInfo.uid"
+				:size="300" unit="upx" background="#ffffff" foreground="#333333" pdground="#333333" icon=""
+				:iconSize="40" :lv="3" :onval="true" :loadMake="true" :usingComponents="true" />
+		</view>
 	</view>
 </template>
 
 <script>
-import { spreadBanner } from '@/api/user.js';
-export default {
-	// components: { tkiQrcode },
-	data() {
-		return {
-			url: '',
-			backImg:'',
-			userInfo:''
-		};
-	},
-	onLoad() {
-		this.spread();
-	},
-	computed: {
+	import {
+		spreadBanner
+	} from '@/api/user.js';
+	import tkiQrcode from '@/components/tki-qrcode/tki-qrcode.vue'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		components: {
+			tkiQrcode
+		},
+		data() {
+			return {
+				url: '',
+				backImg: '',
+				loaded: false
+			};
+		},
+		onLoad() {
+			this.spread();
+		},
+		computed: {
+			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
 			cpSize() {
-				if(this.unit == "upx"){
+				if (this.unit == "upx") {
 					return uni.upx2px(this.size)
-				}else{
+				} else {
 					return this.size
 				}
-			}
-	},
-	methods: {
-		spread(){
-			let obj = this;
-			spreadBanner({
-				type:2
-			}).then(({ data }) => {
-				console.log(data)
-				obj.backImg = data[0].wap_poster;
-			});
+			},
 		},
-		bc_code(){
-			let that = this;
-			console.log('保存二维码',this.backImg)
-			uni.downloadFile({           //获得二维码的临时地址
-				url:this.backImg,
-				success:(res)=>{
-					//console.log('获取url',res)
-					if(res.statusCode == 200){
-						uni.saveImageToPhotosAlbum({
-							filePath:res.tempFilePath,//传入临时地址
-							success() {
-								that.$api.msg('保存成功')//封装的提示
-							},
-							fail() {
-								that.$api.msg('保存失败')
-							}
-						})
+		methods: {
+			spread() {
+				let obj = this;
+				uni.showLoading({
+					title: '二维码生成中...'
+				})
+				spreadBanner({
+					type: 2
+				}).then(({
+					data
+				}) => {
+					uni.hideLoading()
+					console.log(data)
+					obj.backImg = data[0].pic;
+					console.log(obj.backImg, 'obj.backImg')
+					this.loaded = true
+					
+				}).catch(err => {
+					console.log(err)
+					uni.hideLoading()
+				});
+			},
+			bc_code() {
+				let that = this;
+				console.log('保存二维码', this.backImg)
+				uni.downloadFile({ //获得二维码的临时地址
+					url: this.backImg,
+					success: (res) => {
+						//console.log('获取url',res)
+						if (res.statusCode == 200) {
+							uni.saveImageToPhotosAlbum({
+								filePath: res.tempFilePath, //传入临时地址
+								success() {
+									that.$api.msg('保存成功') //封装的提示
+								},
+								fail() {
+									that.$api.msg('保存失败')
+								}
+							})
+						}
 					}
-				}
-			})
+				})
+			},
 		},
-	},
-}
+	}
 </script>
 
 <style lang="scss">
-	page{
+	page {
 		width: 100%;
 		min-height: 100%;
-		.container{
+
+		.container {
 			width: 100%;
-			height: 100%;	
+			height: 100%;
 		}
 	}
-	.backImg{
+
+	.backImg {
 		position: absolute;
 		width: 100%;
 		height: 100%;
 	}
-.portrait{
-	width: 100%;
-	text-align: center;
-	padding-top: 80rpx;
-	padding-bottom: 30rpx;
-	image{
-		width: 250rpx;
-		height: 250rpx;
+
+	.portrait {
+		width: 100%;
+		text-align: center;
+		padding-top: 80rpx;
+		padding-bottom: 30rpx;
+
+		image {
+			width: 250rpx;
+			height: 250rpx;
+		}
+	}
+
+	.text {
+		text-align: center;
+		width: 100%;
+		color: #FFFFFF;
+		font-size: 55rpx;
+		letter-spacing: 15rpx;
+	}
+
+	.uid-name {
+		padding: 50rpx 0rpx;
+		text-align: center;
+		width: 100%;
+		color: #FFFFFF;
+	}
+
+	.copy-btn {
+		color: #FFFFFF;
+		background-color: #4BA6ED;
+		border-radius: 50rpx;
+		width: 170rpx;
+		line-height: 70rpx;
+		margin: 0rpx auto;
+		text-align: center;
+	}
+
+	.tki-qrcode {
+		position: fixed;
+		bottom: 10%;
+		left: 30%;
+	}
+
+	canvas {
+		width: 150px;
+		height: 150px;
+		margin: auto;
+
 	}
-}
-.text{
-	text-align: center;
-	width: 100%;
-	color: #FFFFFF;
-	font-size:55rpx;
-	letter-spacing:15rpx;
-}
-.uid-name{
-	padding: 50rpx 0rpx;
-	text-align: center;
-	width: 100%;
-	color: #FFFFFF;
-}
-.copy-btn{
-	color: #FFFFFF;
-	background-color: #4BA6ED;
-	border-radius: 50rpx;
-	width: 170rpx;
-	line-height: 70rpx;
-	margin: 0rpx auto;
-	text-align: center;
-}
-.tki-qrcode{
-	position: fixed;
-	bottom: 10%;
-	left: 30%;
-}
-canvas{
-	width:150px;
-	height: 150px;
-	margin: auto;
-	
-}
-</style>
+</style>

+ 2 - 2
pages/user/user.vue

@@ -75,11 +75,11 @@
 					<view class="text">我的接点</view>
 					<image class="jiantou" src="../../static/img/img32.png" mode="scaleToFill"></image>
 				</view>
-				<!-- <view class="ul-btm" @click="nav('/pages/user/shareQrCode')">
+				<view class="ul-btm" @click="nav('/pages/user/shareQrCode')">
 					<image src="../../static/img/img28.png" mode="scaleToFill"></image>
 					<view class="text">邀请海报</view>
 					<image class="jiantou" src="../../static/img/img32.png" mode="scaleToFill"></image>
-				</view> -->
+				</view>
 				<view class="ul-btm" @click="nav('/pages/public/register')">
 					<image src="../../static/img/img29.png" mode="scaleToFill"></image>
 					<view class="text">会员注册</view>

BIN
static/image/popup01.png


BIN
static/image/popup02.png


BIN
static/image/popup03.png


BIN
static/img/jiedian07.png


BIN
static/img/zhengyi10.png


BIN
unpackage/cache/apk/__UNI__A53E8B3_cm.apk


+ 1 - 5
unpackage/cache/apk/apkurl

@@ -1,5 +1 @@
-<<<<<<< HEAD
-https://service.dcloud.net.cn/build/download/53f918b0-0c95-11ec-a3a5-c7b2e714b016
-=======
-https://service.dcloud.net.cn/build/download/f5d639c0-0ec1-11ec-8166-8f2b921cd992
->>>>>>> 086d0cb5471bedbcddf7cce4882018972b8833c5
+https://service.dcloud.net.cn/build/download/36d50f30-1f49-11ec-8f6e-796fb5877224

Разница между файлами не показана из-за своего большого размера
+ 0 - 1
unpackage/cache/apk/cmManifestCache.json


+ 1 - 1
unpackage/cache/certdata

@@ -1,3 +1,3 @@
-andrCertfile=D:/gsxm/zhengyi/unpackage/res/zy.keystore
+andrCertfile=D:/工作/项目2/正一药业/zhengyi/unpackage/res/zy.keystore
 andrCertAlias=com.zy.inc
 andrCertPass=7IwuiYJfyRjKKTfhI7sjzw==

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/cache/wgt/__UNI__A53E8B3/app-config-service.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 1
unpackage/cache/wgt/__UNI__A53E8B3/app-service.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 1
unpackage/cache/wgt/__UNI__A53E8B3/app-view.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/cache/wgt/__UNI__A53E8B3/manifest.json


BIN
unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup01.png


BIN
unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup02.png


BIN
unpackage/cache/wgt/__UNI__A53E8B3/static/image/popup03.png


BIN
unpackage/cache/wgt/__UNI__A53E8B3/static/img/jiedian07.png


BIN
unpackage/cache/wgt/__UNI__A53E8B3/static/img/zhengyi10.png


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/cache/wgt/__UNI__A53E8B3/view.umd.min.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/dist/dev/app-plus/app-config-service.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/dist/dev/app-plus/app-service.js


Разница между файлами не показана из-за своего большого размера
+ 368 - 91
unpackage/dist/dev/app-plus/app-view.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
unpackage/dist/dev/app-plus/manifest.json


BIN
unpackage/release/apk/__UNI__A53E8B3__20210917165747.apk


BIN
unpackage/release/apk/__UNI__A53E8B3__20210917174211.apk


BIN
unpackage/release/apk/__UNI__A53E8B3__20210927105854.apk


BIN
unpackage/release/apk/__UNI__A53E8B3__20210927121305.apk


+ 1 - 0
utils/upApp.js

@@ -96,6 +96,7 @@ export function downApp (version) {
 	plus.nativeUI.showWaiting('下载升级包...');
 	plus.downloader
 		.createDownload(baseurl + version, {}, (d, status) => {
+			console.log(d,'下载数据',status,'下载状态');
 			if (status == 200) {
 				installApp(d.filename); // 安装app
 			} else {

Некоторые файлы не были показаны из-за большого количества измененных файлов