浏览代码

修改优化

zhengjinyi 5 年之前
父节点
当前提交
2ee36be477

+ 1 - 1
components/cm-module/listTemplate/commodityList.vue

@@ -111,7 +111,7 @@
 			toLoginPage() {
 			toLoginPage() {
 				const {lastPageType, lastPageVal} = this.$parent;
 				const {lastPageType, lastPageVal} = this.$parent;
 				uni.navigateTo({
 				uni.navigateTo({
-					url:`/pages/login/login-accont?listType=${lastPageType}&listVal=${lastPageVal}`
+					url:`/pages/login/login?listType=${lastPageType}&listVal=${lastPageVal}`
 				})
 				})
 			},
 			},
 			toLower() {
 			toLower() {

+ 3 - 3
components/cm-module/noLogin/nologin.vue

@@ -64,13 +64,13 @@
 				let self = this
 				let self = this
 				let url;
 				let url;
 				if(self.alertType =='3'){
 				if(self.alertType =='3'){
-					url =`/pages/login/login-accont?type=1`
+					url =`/pages/login/login?type=1`
 					this.$parent.isShowNoLogin=false;
 					this.$parent.isShowNoLogin=false;
 				}else if(self.alertType =='4'){
 				}else if(self.alertType =='4'){
-					url =`/pages/login/login-accont?type=2`
+					url =`/pages/login/login?type=2`
 					this.$parent.isShowNoLogin=true;
 					this.$parent.isShowNoLogin=true;
 				}else{
 				}else{
-					url=`/pages/login/login-accont?type=detilType&id=${self.productids}`
+					url=`/pages/login/login?type=detilType&id=${self.productids}`
 					this.$parent.isShowNoLogin=false;
 					this.$parent.isShowNoLogin=false;
 				}
 				}
 				uni.navigateTo ({
 				uni.navigateTo ({

+ 1 - 1
pages.json

@@ -180,7 +180,7 @@
 				"navigationBarTitleText": "授权登录"
 				"navigationBarTitleText": "授权登录"
 			}
 			}
 		},{
 		},{
-			"path": "pages/login/login-accont",
+			"path": "pages/login/login",
 			"style": {
 			"style": {
 				"navigationBarTitleText": "登录"
 				"navigationBarTitleText": "登录"
 			}
 			}

+ 3 - 3
pages/goods/product.vue

@@ -355,7 +355,7 @@
 						if(this.hasLogin){
 						if(this.hasLogin){
 							this.$api.switchTabTo('/pages/tabBar/cart/cart')
 							this.$api.switchTabTo('/pages/tabBar/cart/cart')
 						}else{					
 						}else{					
-							this.$api.navigateTo('/pages/login/login-accont?type=1')
+							this.$api.navigateTo('/pages/login/login?type=1')
 						}
 						}
 					}else{
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization')
 						this.$api.navigateTo('/pages/authorization/authorization')
@@ -368,7 +368,7 @@
 						if(this.hasLogin){
 						if(this.hasLogin){
 							this.showSpec(type);
 							this.showSpec(type);
 						}else{
 						}else{
-							this.$api.navigateTo('/pages/login/login-accont?type=1')
+							this.$api.navigateTo('/pages/login/login?type=1')
 						}
 						}
 					}else{
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization')
 						this.$api.navigateTo('/pages/authorization/authorization')
@@ -459,7 +459,7 @@
 			navToLogin(){
 			navToLogin(){
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 					if(wxResponse == 1){
 					if(wxResponse == 1){
-						this.$api.navigateTo(`/pages/login/login-accont?type=detilType&id=${this.productID}`)
+						this.$api.navigateTo(`/pages/login/login?type=detilType&id=${this.productID}`)
 					}else{
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization')
 						this.$api.navigateTo('/pages/authorization/authorization')
 					}
 					}

+ 0 - 254
pages/login/login-accont.vue

@@ -1,254 +0,0 @@
-<template>
-	<view class="container login" v-if="isWxAuthorize">
-		<view class="login-main">
-			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
-			<text class="logo-text">生美/医美采购服务平台</text>
-		</view>
-		<view class="login-form">
-			<view class="login-input">
-				<input type="text" 
-					   v-model="accountNumber"  
-					   maxlength="30" 
-					   class="input" 
-					   placeholder="请输入邮箱/手机号"
-				/>
-			</view>
-			<view class="login-input">
-				<input v-show="isShowEye" type="text" v-model="password"  maxlength="18" class="input" placeholder="请输入密码" autocomplete="new-password"/>
-				<input v-show="!isShowEye" type="password" v-model="password"  :password="true" maxlength="18" class="input" placeholder="请输入密码" autocomplete="new-password"/>
-				<view class="iconfont" :class="isShowEye ? iconEyen : iconEyes"  @click="passwordClick"></view>
-			</view>
-			<view class="login-input link">
-				<view class="login-reg" @click.stop="this.$api.navigateTo('/pages/login/register')">免费注册</view>
-				<view class="login-pwd" @click.stop="this.$api.navigateTo('/pages/login/password')">忘记密码?</view>
-			</view>
-		</view>
-		<view class="login-btn"  @click="confirmLogin">登录</view>
-		<view class="login-btn-last" @click.stop="this.$api.navigateTo(`/pages/login/login?data=${getOption}`)">邀请码登录</view>
-		<view class="login-tel">客服热线:0755-22907771</view>
-	</view>
-</template>
-
-<script>
-	import { mapState,mapMutations } from 'vuex';
-	import authorize from '@/common/config/authorize.js' 
-	import wxLogin from "@/common/config/wxLogin.js"
-	import { organizationLogin } from '@/api/use.js' 
-	export default{
-		data() {
-			return{
-				isShowEye:false,
-				iconEyes:'icon-yanjing_yincang_o',
-				iconEyen:'icon-yanjing_xianshi_o',
-				accountNumber:'',  //用户登录账号
-				password:'',	   //用户登录密码	
-				toestText:'',
-				telPhone:'',
-				loginType:'',		//跳转类型
-				alertText:'',
-				listType: '',
-				listVal: '',
-				detilType:'',
-				id:'',			//商品ID
-				getOption:''	//页面传递参数
-			}
-		},
-		onLoad(option) {
-			this.getOption = JSON.stringify(option)
-		},
-		computed: {
-			...mapState(['hasLogin','userInfo','isWxAuthorize'])
-		},
-		methods:{
-			...mapMutations(['login']),
-			confirmLogin(){
-				if( this.accountNumber == ''){
-					this.$util.msg('请输入账户名',2000)
-					return
-				}
-				if( this.password == ''){
-					this.$util.msg('请输入密码',2000)
-					return
-				}
-				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
-					if(wxResponse == 1){
-						this.OrganizationLogin()
-					}else{
-						this.$api.navigateTo('/pages/authorization/authorization?type=0')
-					}
-				})
-			},
-			OrganizationLogin(){
-				organizationLogin({mobileOrEmail:this.accountNumber,password:this.password,source:'www'}).then(response =>{
-					this.storeUpdataeStatus(response.data)
-					this.$api.navigateTo(`/pages/login/bindwechat?data=${JSON.stringify(this.getOption)}&codeType=${response.code}`)
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000);
-				})
-			},
-			storeUpdataeStatus(data){
-				uni.setStorageSync('token',data.token)
-				this.$store.commit('updateStatus',data)
-				this.login(data);
-			},
-			passwordClick() { //密码显隐操作
-				this.isShowEye = !this.isShowEye;
-			},
-		},
-		onShow() {
-			authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
-				if(wxResponse == 1){
-					wxLogin.wxLoginAuthorize()
-				}else{
-					this.$api.navigateTo('/pages/authorization/authorization?type=0')
-				}	
-			})
-		}
-	}
-</script>
-
-<style lang="scss">
-	.login{
-		width: 100%;
-		height: auto;
-		.model-warp.none{
-			display: none;			
-		}
-		.model-warp.show{
-			display: block;
-		}
-		.login-main{
-			width: 100%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			height: 198rpx;
-			padding: 140rpx 0 60rpx 0;
-			.logo{
-				width: 138rpx;
-				height: 118rpx;
-				display: block;
-			}
-			.logo-text{
-				font-size: 30rpx;
-				line-height: 44rpx;
-				color: $color-system;
-				font-weight: 600;
-				margin-top: 20rpx;
-			}
-		}
-		.login-input{
-			width: 654rpx;
-			height: 40rpx;
-			padding: 24rpx;
-			margin: 0 auto;
-			margin-bottom: 20rpx;
-			background: #F7F7F7;
-			border-radius: 14rpx;
-			position: relative;
-			.input{
-				width: 100%;
-				height: 100%;
-				background: #F7F7F7;
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: #333333;
-				border-radius: 14rpx;
-			}
-			.iconfont{
-				position: absolute;
-				right: 0;
-				top: 0;
-				font-size: 44rpx;
-				color: #999999;
-				font-weight: bold;
-				z-index: 99;
-				width: 96rpx;
-				height: 96rpx;
-				line-height: 96rpx;
-				text-align: center;
-			}
-			&.link{
-				background: #FFFFFF;
-				margin-bottom: 40rpx;
-				padding: 0 24rpx;
-				line-height: 40rpx;
-				font-size: $font-size-28;
-				.login-reg{
-					float: left;
-					color: $color-system;
-				}
-				.login-pwd{
-					float: right;
-					color: $text-color;
-				}
-			}
-		}
-		.login-btn{
-			width: 702rpx;
-			height: 88rpx;
-			border-radius: 14rpx;
-			font-size: $font-size-28;
-			line-height: 88rpx;
-			color: #FFFFFF;
-			margin: 0 auto;
-			text-align: center;
-			background: $btn-confirm;
-		}
-		.login-btn-last{
-			width: 702rpx;
-			height: 86rpx;
-			border-radius: 14rpx;
-			font-size: $font-size-28;
-			line-height: 88rpx;
-			color: $color-system;
-			margin: 0 auto;
-			text-align: center;
-			border: 1px solid $color-system;
-			margin-top: 20rpx;
-		}
-		.login-tel{
-			width: 702rpx;
-			font-size: $font-size-28;
-			line-height: 80rpx;
-			margin: 0 auto;
-			color: $text-color;
-			text-align: center;
-			margin-top: 150rpx;
-		}
-		.model-authorization{
-			width: 100%;
-			height: 100%;
-			position: fixed;
-			top: 0;
-			left: 0;
-			z-index: 999;
-			.authorization{
-				width: 518rpx;
-				height: 320rpx;
-				position: absolute;
-				background: rgba(255,255,255,.7);
-				left: 0;
-				right: 0;
-				bottom: 0;
-				top: 0;
-				margin: auto;
-				.to-btn{
-					position: absolute;
-					top: 0;
-					left: 0;
-					right: 0;
-					bottom: 0;
-					margin: auto;
-					width: 70%;
-					height: 88rpx;
-					font-size: $font-size-28;
-					line-height: 88rpx;
-					color: #FFFFFF;
-					text-align: center;
-					border-radius: 44rpx;
-				}
-			}
-		}
-	}
-</style>

+ 127 - 64
pages/login/login.vue

@@ -1,95 +1,108 @@
-
 <template>
 <template>
-	<view class="container login">
+	<view class="container login" v-if="isWxAuthorize">
 		<view class="login-main">
 		<view class="login-main">
 			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
 			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
 			<text class="logo-text">生美/医美采购服务平台</text>
 			<text class="logo-text">生美/医美采购服务平台</text>
 		</view>
 		</view>
-		<view class="login-input">
-			<input type="number" 
-				   v-model="invitationCode"  
-				   maxlength="6" 
-				   class="input" 
-				   placeholder="请输入邀请码"
-			/>
+		<view class="login-form">
+			<view class="login-input">
+				<input type="text" 
+					   v-model="accountNumber"  
+					   maxlength="30" 
+					   class="input" 
+					   placeholder="请输入邮箱/手机号"
+				/>
+			</view>
+			<view class="login-input">
+				<input v-show="isShowEye" type="text" v-model="password"  maxlength="18" class="input" placeholder="请输入密码" autocomplete="new-password"/>
+				<input v-show="!isShowEye" type="password" v-model="password"  :password="true" maxlength="18" class="input" placeholder="请输入密码" autocomplete="new-password"/>
+				<view class="iconfont" :class="isShowEye ? iconEyen : iconEyes"  @click="passwordClick"></view>
+			</view>
+			<view class="login-input link">
+				<view class="login-reg" @click.stop="this.$api.navigateTo('/pages/login/register')">免费注册</view>
+				<view class="login-pwd" @click.stop="this.$api.navigateTo('/pages/login/password')">忘记密码?</view>
+			</view>
 		</view>
 		</view>
-		<view class="login-btn"  @click="goLogin">登录</view>
+		<view class="login-btn"  @click="confirmLogin">登录</view>
+		<view class="login-btn-last" @click.stop="this.$api.navigateTo(`/pages/login/logincode?data=${getOption}`)">邀请码登录</view>
+		<view class="login-tel">客服热线:0755-22907771</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
-	import {mapState,mapMutations } from 'vuex';
+	import { mapState,mapMutations } from 'vuex';
 	import authorize from '@/common/config/authorize.js' 
 	import authorize from '@/common/config/authorize.js' 
-	import { invitationCodeLogin  } from '@/api/use.js'
+	import wxLogin from "@/common/config/wxLogin.js"
+	import { organizationLogin } from '@/api/use.js' 
 	export default{
 	export default{
 		data() {
 		data() {
 			return{
 			return{
-				invitationCode:'',  //获取用户登录的邀请码
+				isShowEye:false,
+				iconEyes:'icon-yanjing_yincang_o',
+				iconEyen:'icon-yanjing_xianshi_o',
+				accountNumber:'',  //用户登录账号
+				password:'',	   //用户登录密码	
+				toestText:'',
+				telPhone:'',
 				loginType:'',		//跳转类型
 				loginType:'',		//跳转类型
 				alertText:'',
 				alertText:'',
 				listType: '',
 				listType: '',
 				listVal: '',
 				listVal: '',
 				detilType:'',
 				detilType:'',
-				id:''//商品ID
+				id:'',			//商品ID
+				getOption:''	//页面传递参数
 			}
 			}
 		},
 		},
 		onLoad(option) {
 		onLoad(option) {
-			let data = JSON.parse(option.data);
-			this.getOption = data
-			this.loginType = option.type;
-			this.id = option.id
-			if(option.listType) {
-				this.listType = option.listType;
-				this.listVal = option.listVal;
-			}
+			this.getOption = JSON.stringify(option)
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','isWxAuthorize'])
 		},
 		},
 		methods:{
 		methods:{
 			...mapMutations(['login']),
 			...mapMutations(['login']),
-			goLogin() {
-				if( this.invitationCode == ''){
-					this.$util.msg('请输入邀请码',2000)
+			confirmLogin(){
+				if( this.accountNumber == ''){
+					this.$util.msg('请输入账户名',2000)
+					return
+				}
+				if( this.password == ''){
+					this.$util.msg('请输入密码',2000)
 					return
 					return
 				}
 				}
-				wx.getUserInfo({
-					success: res => {
-						this.isUserInfo = false
-						this.userInfo = res.userInfo;
-						let params ={
-								invitationCode:this.invitationCode,
-								nickName:res.userInfo.nickName,
-								headimgurl:res.userInfo.avatarUrl,
-						}							
-						invitationCodeLogin(params).then(response =>{
-							this.login(response.data)
-							this.$api.switchTabTo('/pages/tabBar/home/home')
-						}).catch(error =>{
-							this.$util.msg(error.msg,2000)
-							this.isUserInfo = false
-						})
+				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+					if(wxResponse == 1){
+						this.OrganizationLogin()
+					}else{
+						this.$api.navigateTo('/pages/authorization/authorization?type=0')
 					}
 					}
 				})
 				})
 			},
 			},
-			goUserLogininit(){
-				let url;
-				if(this.loginType) {
-					if(this.loginType=='detilType'){
-						this.$api.redirectTo(`/pages/goods/product?id=${this.id}&page=2`);
-					}else if(this.loginType=='search'){
-						this.$api.redirectTo('/pages/search/search');
-					}else if(this.loginType == 1){
-						url ='/pages/tabBar/cart/cart'
-					}else if(this.loginType == 4){
-						url ='/pages/tabBar/user/user'
-					}else {
-						url ='/pages/tabBar/home/home'
-					}
-					uni.switchTab({
-						url
-					})
-				} else if(this.listType) {
-					this.$api.navToListPage({type:this.listType,value:this.listVal,lType:'4'});
-				}
-			}
+			OrganizationLogin(){
+				organizationLogin({mobileOrEmail:this.accountNumber,password:this.password,source:'www'}).then(response =>{
+					this.storeUpdataeStatus(response.data)
+					this.$api.navigateTo(`/pages/login/bindwechat?data=${JSON.stringify(this.getOption)}&codeType=${response.code}`)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			storeUpdataeStatus(data){
+				uni.setStorageSync('token',data.token)
+				this.$store.commit('updateStatus',data)
+				this.login(data);
+			},
+			passwordClick() { //密码显隐操作
+				this.isShowEye = !this.isShowEye;
+			},
+		},
+		onShow() {
+			authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
+				if(wxResponse == 1){
+					wxLogin.wxLoginAuthorize()
+				}else{
+					this.$api.navigateTo('/pages/authorization/authorization?type=0')
+				}	
+			})
 		}
 		}
 	}
 	}
 </script>
 </script>
@@ -110,7 +123,7 @@
 			flex-direction: column;
 			flex-direction: column;
 			align-items: center;
 			align-items: center;
 			height: 198rpx;
 			height: 198rpx;
-			padding: 170rpx 0 60rpx 0;
+			padding: 140rpx 0 60rpx 0;
 			.logo{
 			.logo{
 				width: 138rpx;
 				width: 138rpx;
 				height: 118rpx;
 				height: 118rpx;
@@ -129,9 +142,10 @@
 			height: 40rpx;
 			height: 40rpx;
 			padding: 24rpx;
 			padding: 24rpx;
 			margin: 0 auto;
 			margin: 0 auto;
-			margin-bottom: 60rpx;
+			margin-bottom: 20rpx;
 			background: #F7F7F7;
 			background: #F7F7F7;
 			border-radius: 14rpx;
 			border-radius: 14rpx;
+			position: relative;
 			.input{
 			.input{
 				width: 100%;
 				width: 100%;
 				height: 100%;
 				height: 100%;
@@ -141,6 +155,34 @@
 				color: #333333;
 				color: #333333;
 				border-radius: 14rpx;
 				border-radius: 14rpx;
 			}
 			}
+			.iconfont{
+				position: absolute;
+				right: 0;
+				top: 0;
+				font-size: 44rpx;
+				color: #999999;
+				font-weight: bold;
+				z-index: 99;
+				width: 96rpx;
+				height: 96rpx;
+				line-height: 96rpx;
+				text-align: center;
+			}
+			&.link{
+				background: #FFFFFF;
+				margin-bottom: 40rpx;
+				padding: 0 24rpx;
+				line-height: 40rpx;
+				font-size: $font-size-28;
+				.login-reg{
+					float: left;
+					color: $color-system;
+				}
+				.login-pwd{
+					float: right;
+					color: $text-color;
+				}
+			}
 		}
 		}
 		.login-btn{
 		.login-btn{
 			width: 702rpx;
 			width: 702rpx;
@@ -153,6 +195,27 @@
 			text-align: center;
 			text-align: center;
 			background: $btn-confirm;
 			background: $btn-confirm;
 		}
 		}
+		.login-btn-last{
+			width: 702rpx;
+			height: 86rpx;
+			border-radius: 14rpx;
+			font-size: $font-size-28;
+			line-height: 88rpx;
+			color: $color-system;
+			margin: 0 auto;
+			text-align: center;
+			border: 1px solid $color-system;
+			margin-top: 20rpx;
+		}
+		.login-tel{
+			width: 702rpx;
+			font-size: $font-size-28;
+			line-height: 80rpx;
+			margin: 0 auto;
+			color: $text-color;
+			text-align: center;
+			margin-top: 150rpx;
+		}
 		.model-authorization{
 		.model-authorization{
 			width: 100%;
 			width: 100%;
 			height: 100%;
 			height: 100%;

+ 191 - 0
pages/login/logincode.vue

@@ -0,0 +1,191 @@
+
+<template>
+	<view class="container login">
+		<view class="login-main">
+			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
+			<text class="logo-text">生美/医美采购服务平台</text>
+		</view>
+		<view class="login-input">
+			<input type="number" 
+				   v-model="invitationCode"  
+				   maxlength="6" 
+				   class="input" 
+				   placeholder="请输入邀请码"
+			/>
+		</view>
+		<view class="login-btn"  @click="goLogin">登录</view>
+	</view>
+</template>
+
+<script>
+	import {mapState,mapMutations } from 'vuex';
+	import authorize from '@/common/config/authorize.js' 
+	import { invitationCodeLogin  } from '@/api/use.js'
+	export default{
+		data() {
+			return{
+				invitationCode:'',  //获取用户登录的邀请码
+				loginType:'',		//跳转类型
+				alertText:'',
+				listType: '',
+				listVal: '',
+				detilType:'',
+				id:''//商品ID
+			}
+		},
+		onLoad(option) {
+			let data = JSON.parse(option.data);
+			this.getOption = data
+			this.loginType = option.type;
+			this.id = option.id
+			if(option.listType) {
+				this.listType = option.listType;
+				this.listVal = option.listVal;
+			}
+		},
+		methods:{
+			...mapMutations(['login']),
+			goLogin() {
+				if( this.invitationCode == ''){
+					this.$util.msg('请输入邀请码',2000)
+					return
+				}
+				wx.getUserInfo({
+					success: res => {
+						this.isUserInfo = false
+						this.userInfo = res.userInfo;
+						let params ={
+								invitationCode:this.invitationCode,
+								nickName:res.userInfo.nickName,
+								headimgurl:res.userInfo.avatarUrl,
+						}							
+						invitationCodeLogin(params).then(response =>{
+							this.login(response.data)
+							this.$api.switchTabTo('/pages/tabBar/home/home')
+						}).catch(error =>{
+							this.$util.msg(error.msg,2000)
+							this.isUserInfo = false
+						})
+					}
+				})
+			},
+			goUserLogininit(){
+				let url;
+				if(this.loginType) {
+					if(this.loginType=='detilType'){
+						this.$api.redirectTo(`/pages/goods/product?id=${this.id}&page=2`);
+					}else if(this.loginType=='search'){
+						this.$api.redirectTo('/pages/search/search');
+					}else if(this.loginType == 1){
+						url ='/pages/tabBar/cart/cart'
+					}else if(this.loginType == 4){
+						url ='/pages/tabBar/user/user'
+					}else {
+						url ='/pages/tabBar/home/home'
+					}
+					uni.switchTab({
+						url
+					})
+				} else if(this.listType) {
+					this.$api.navToListPage({type:this.listType,value:this.listVal,lType:'4'});
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login{
+		width: 100%;
+		height: auto;
+		.model-warp.none{
+			display: none;			
+		}
+		.model-warp.show{
+			display: block;
+		}
+		.login-main{
+			width: 100%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			height: 198rpx;
+			padding: 170rpx 0 60rpx 0;
+			.logo{
+				width: 138rpx;
+				height: 118rpx;
+				display: block;
+			}
+			.logo-text{
+				font-size: 30rpx;
+				line-height: 44rpx;
+				color: $color-system;
+				font-weight: 600;
+				margin-top: 20rpx;
+			}
+		}
+		.login-input{
+			width: 654rpx;
+			height: 40rpx;
+			padding: 24rpx;
+			margin: 0 auto;
+			margin-bottom: 60rpx;
+			background: #F7F7F7;
+			border-radius: 14rpx;
+			.input{
+				width: 100%;
+				height: 100%;
+				background: #F7F7F7;
+				font-size: $font-size-28;
+				line-height: 40rpx;
+				color: #333333;
+				border-radius: 14rpx;
+			}
+		}
+		.login-btn{
+			width: 702rpx;
+			height: 88rpx;
+			border-radius: 14rpx;
+			font-size: $font-size-28;
+			line-height: 88rpx;
+			color: #FFFFFF;
+			margin: 0 auto;
+			text-align: center;
+			background: $btn-confirm;
+		}
+		.model-authorization{
+			width: 100%;
+			height: 100%;
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 999;
+			.authorization{
+				width: 518rpx;
+				height: 320rpx;
+				position: absolute;
+				background: rgba(255,255,255,.7);
+				left: 0;
+				right: 0;
+				bottom: 0;
+				top: 0;
+				margin: auto;
+				.to-btn{
+					position: absolute;
+					top: 0;
+					left: 0;
+					right: 0;
+					bottom: 0;
+					margin: auto;
+					width: 70%;
+					height: 88rpx;
+					font-size: $font-size-28;
+					line-height: 88rpx;
+					color: #FFFFFF;
+					text-align: center;
+					border-radius: 44rpx;
+				}
+			}
+		}
+	}
+</style>

+ 1173 - 0
pages/login/registers.vue

@@ -0,0 +1,1173 @@
+<template>
+	<view class="container register" :style="{paddingTop:CustomBar+'px'}">
+		<cu-custom :navbar-data='nvabarData'  @navigateBack="hanldNavigateBack"></cu-custom>
+		<view class="register-tab">
+			<view class="nav-item" :class="{ current: tabCurrentIndex === 1 }" >
+				  账户信息<view class="line"></view>
+			</view>					
+			<view class="nav-item" :class="{ current: tabCurrentIndex === 2 }" >
+				  基本信息<view class="line"></view>
+			</view>
+			<view class="nav-item" :class="{ current: tabCurrentIndex === 3 }" >
+				  详细信息
+			</view>
+		</view>
+		<view class="register-main clearfix" v-if="tabCurrentIndex === 1">
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">邮箱:</view>
+					<input class="row-input" type="text" name="input" v-model="registerEmail" placeholder="请输入您的常用邮箱" maxlength="30"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from code">
+					<view class="label">邮箱验证码:</view>
+					<input class="row-input" type="text"  name="input" v-model="regEmailCode" placeholder="请输入邮箱验证码" maxlength="4"/>
+				</view>
+				<view class="register-from btn" :class="[isEmialDisabled ? 'disabled' : '']">
+					<button class="row-input"  
+							type="button"  
+							@click.stop="getEmailCodeFn"  
+							:disabled="isEmialDisabled">
+							{{ emailCodeText }}
+					</button>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">登录密码:</view>
+					<input class="row-input" type="password" name="input" v-model="password" placeholder="密码必须为8-16位字母数字组合" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">确认密码:</view>
+					<input class="row-input" type="password" name="input" v-model="passwordCheck" placeholder="请确认密码" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-btn"  @click="registerStepsfirst">下一步</view>
+			</view>
+			<view class="register-row">
+				<view class="register-text">
+					<text class="txt">注:</text>
+					<text>邮件可能存在1-2分钟的延迟,同时请留意垃圾箱邮件!</text>
+				</view>
+			</view>
+		</view>
+		<view class="register-main clearfix" v-if="tabCurrentIndex === 2">
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构名称:</view>
+					<input class="row-input" type="text" name="input" v-model="clubName" placeholder="请输入您的机构名称" maxlength="30"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">联系人:</view>
+					<input class="row-input" type="text" name="input" v-model="clubContact" placeholder="请输入联系姓名" maxlength="6"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">手机号:</view>
+					<input class="row-input" type="number" name="input" v-model="registerMobile" placeholder="请输入手机号" maxlength="11"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from imgcode">
+					<view class="label">图形验证码:</view>
+					<input class="row-input" type="text" name="input" v-model="imageCode" placeholder="请输入图形验证码" maxlength="4"/>
+				</view>
+				<view class="register-from img-btn">
+					<view class="vscodeimg">
+						<image :src="imageCodeUrl" mode=""></image>
+					</view>
+					<view class="vscod-refresh" @click.stop="getVerificationCode">
+						<text class="iconfont icon-shuaxin"></text>
+						<text class="ref-text">刷新</text>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from code">
+					<view class="label">短信验证码:</view>
+					<input class="row-input" type="text" v-model="mobileCode" placeholder="请输入短信验证码" maxlength="6"/>
+				</view>
+				<view class="register-from btn" :class="[isMobileDisabled  ? 'disabled' : '']" >
+					<button class="row-input"  
+							type="button" 
+							@click.stop="getMobileCodeFn" 
+							:disabled="isMobileDisabled">
+							{{ mobileCodeText }}
+					</button>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-btn"  @click="registerStepsTwo">下一步</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-btn none"  @click="steps(1)">上一步</view>
+			</view>
+		</view>
+		<view class="register-main detailed clearfix" v-if="tabCurrentIndex === 3">
+			<view class="register-tips"><text class="iconfont icon-gantanhao-yuankuang">详细信息请尽量填写,有利于快速审核通过</text></view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构简称:</view>
+					<input class="row-input" type="text" v-model="abbreviation" placeholder="请输入您的机构简称" maxlength="10"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from"  @click="showMulLinkageThreePicker">
+					<view class="label">机构地址:</view>
+					<text class="row-input" :class="addressData.address === '请选择机构所在地区' ? 'none' : ''">
+						{{addressData.address}}
+					</text>		
+					<text class="iconfont icon-xiayibu"></text>
+				</view>
+			</view>
+			<view class="register-row text-textarea clearfix">
+				<view class="textarea show" v-if="isShowInput">{{addressData.addressDetail ? addressData.addressDetail :'详细地址:如道路、门牌号、小区等'}}</view>
+				<textarea 	v-else
+							class="textarea" 
+							type="text" 
+							v-model="addressData.addressDetail" 
+							placeholder="详细地址:如道路、门牌号、小区等" 
+							placeholder-class="placeholder"
+							maxlength="25"
+							@input="onTextareaInput"
+							:class="isShowInput ? '':''"
+				/>
+			</view>
+			<view class="register-row clearfix" >
+				<view class="register-from">
+					<view class="label">营业执照编号:</view>
+					<input class="row-input" type="text" v-model="socialCreditCode" placeholder="请填写社会统一信用代码" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">营业执照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadBusinessImage === ''"  @click="chooseBusinessImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadBusinessImage" mode="" @click="viewBusinessImage"></image>
+							<view class="upload-del" @click="delBusinessImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">门头照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMentuzImage === ''" @click="chooseMentuzImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMentuzImage" mode=""  @click="viewMentuzImage"></image>
+							<view class="upload-del" @click="delMentuzImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from picker">
+					<view class="label">机构类型:</view>
+						<view class="row-input picker" @click="bindPickerChange">{{ organizationTypeText }}</view>
+					<text class="iconfont icon-xiayibu"></text>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1" >
+				<view class="register-from radio">
+					<radio-group @change="radioChange">
+						<label class="row-input" v-for="(item, index) in beautyList" :key="item.value">
+							<radio class="row-radio" :value="item.value" :checked="index === current" color="#E15616"/>
+							<view class="row-text">{{item.name}}</view>
+						</label>
+					</radio-group>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isDepartment" >
+				<view class="register-from">
+					<view class="label">科室:</view>
+					<input class="row-input keshi" type="text" v-model="department" placeholder="请填写经营的科室,至少三个,用逗号隔开" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-picture">
+					<view class="label zz">医疗执业许可证:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMedicalImage === ''" @click="chooseMedicalImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMedicalImage" mode=""  @click="viewMedicalImage"></image>
+							<view class="upload-del" @click="delMedicalImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLike" >
+						<label class="item" v-for="(item, index) in mentuzCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input other" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn other" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 2">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLikes">
+						<label class="item" v-for="(item, index) in medicaCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input other" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-fiexd clearfix">
+				<view class="register-agree">
+					<view class="agree-text"  @tap.stop="agreeCheck()">
+						<button class="checkbox iconfont" :class="[isCheck?'icon-gouxuan':'icon-weigouxuan']"></button> 
+						我已阅读并同意
+						<text @click.stop="this.$api.navigateTo('/pages/service/organagree')">《机构协议》</text>
+						<text @click.stop="this.$api.navigateTo('/pages/service/useragree')">《用户协议》</text>及
+						<text @click.stop="this.$api.navigateTo('/pages/service/privacyagree')">《隐私权政策》</text>
+					</view>
+				</view>
+				<view class="register-row ">
+					<view class="register-btn sub" @click.stop="registerStepsSub">提交审核</view>
+				</view>
+				<view class="register-row clearfix">
+					<view class="register-btn none"  @click="steps(2)">上一步</view>
+				</view>
+			</view>
+			<mpvue-city-picker :themeColor="themeColor"
+								ref="mpvueCityPicker" 
+							    :pickerValueDefault="cityPickerValueDefault"
+								@onCancel="onCancel" 
+								@onConfirm="onConfirm">
+			</mpvue-city-picker>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapMutations } from 'vuex';
+	import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'
+	import authorize from '@/common/config/authorize.js' 
+	import { organizationRegister , organizationVerifyRegisterFirst ,organizationVerifyRegisterTwo } from "@/api/use.js"
+	import { getImageCode, getEmailCode, getMobileCode, uploadFileImage } from "@/api/utils.js"
+	export default{
+		components:{
+			mpvueCityPicker
+		},
+		data() {
+			return{
+				nvabarData: {		//顶部自定义导航
+					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+					showSearch: 0,
+					title: '注册', // 导航栏 中间的标题
+				},
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				tabCurrentIndex:1,			//显示step
+				isPreviewImage:false,   	//预览图片开关
+				isEmialDisabled: false,		//验证码按钮控制
+				isMobileDisabled: false,	//手机验证码按钮控制
+			    count: '',					//倒计时
+			    mobilCount: '',					//倒计时
+			    emailCodeText: '获取验证码',
+			    mobileCodeText: '获取验证码',
+			    codeTime: null,
+			    mobilTime: null,
+				registerEmail:'', 		//注册邮箱
+				regEmailCode:'',  		//邮箱验证码
+				password:'',			//密码
+				passwordCheck:'',		//校验密码
+				clubName:'',	 		//机构名称
+				abbreviation:'',	 	//机构简称
+				clubContact:'',	 		//联系人
+				registerMobile:'',		//联系人手机号
+				mobileCode:'',			//手机验证码
+				imageCode:'',			//图形验证码
+				imageCodeUrl:'',		//图形验证码图片
+				imageCodetoken:'',		//图形验证校验
+				socialCreditCode:'',	//统一社会信用代码
+				isAgreed:0,				//是否勾选协议
+				isDisabled:true,
+				isShowInput:false,
+				isCheck:false,			//是否勾选协议
+				uploadBusinessImage:'',	//营业执照图片
+				uploadMentuzImage:'',  	//门头照图片
+				uploadMedicalImage:'', 	//资质照图片
+				department:'',			//科室
+				isDepartment:false,     //是否显示科室
+				secondClubType:'',		//机构类型二级分类
+				mainpro:'',				//主营内容
+				isOrganizationType:0,
+				organizationTypeText:'请选择机构类型',
+				beautyList:[{value:'1',name:'诊所'},{value:'2',name:'门诊'},{value:'3',name:'医院'}],
+				mentuzCampList:[{value:'1',name:'整形'},{value:'2',name:'轻医美'},{value:'3',name:'皮肤科'}],
+				medicaCampList:[
+					{value:'1',name:'美容'},
+					{value:'2',name:'美体'},
+					{value:'3',name:'美发'},
+					{value:'4',name:'皮肤管理'},
+					{value:'5',name:'光电'},
+					{value:'6',name:'综合类'},
+					{value:'7',name:'中医养生'},
+					{value:'8',name:'spa'}
+				],
+				typtIndex:0,
+				organizationType:3,
+				current:0,
+				isShowAustomItem:false, //是否显示其他添加
+				customItemValue:'', 	//自定义项目
+				addressData:{
+					address:'请选择机构所在地区',
+					townID:'',			//区ID
+					cityID:'',			//区ID
+					provinceID:'',		//区ID
+					addressDetail: '',	//地址
+				},
+			}
+		},
+		onLoad(option) {
+		},
+		methods:{
+			hanldNavigateBack(){
+				this.$util.modal('','注册尚未完成,确定放弃注册吗?','确定','取消',true,() =>{
+					uni.navigateBack({
+						delta: 1
+					});
+				})
+			},
+			registerStepsfirst(){
+				let params ={
+						email:this.registerEmail,
+						mailboxCode:this.regEmailCode,
+						password:this.password,
+						passWordConfirm:this.passwordCheck,
+						whichStep:1,
+				}
+				organizationVerifyRegisterFirst(params).then(res =>{
+					this.tabCurrentIndex = 2
+					this.getVerificationCode()
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			registerStepsTwo(){
+				let params ={
+						name:this.clubName,
+						linkMan1:this.clubContact,
+						bindMobile:this.registerMobile,
+						activationCode:this.mobileCode,
+						whichStep:2,
+				}
+				organizationVerifyRegisterTwo(params).then(res =>{
+					this.tabCurrentIndex = 3
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			registerStepsSub(){
+				if(!this.isCheck){
+					this.$util.msg('请勾选同意协议',2000);
+					return
+				}
+				let params ={
+						email:this.registerEmail,
+						mailboxCode:this.regEmailCode,
+						password:this.password,
+						passWordConfirm:this.passwordCheck,
+						name:this.clubName,
+						linkMan1:this.clubContact,
+						bindMobile:this.registerMobile,
+						activationCode:this.mobileCode,
+						sname:this.abbreviation,
+						provinceID:this.addressData.provinceID,
+						cityID:this.addressData.cityID,
+						townID:this.addressData.townID,
+						address:this.addressData.addressDetail,
+						socialCreditCode:this.socialCreditCode,
+						businessLicenseImage:this.uploadBusinessImage,
+						headpic:this.uploadMentuzImage,
+						firstClubType:this.isOrganizationType, //机构类型分类 医美:0和生美:1
+						secondClubType:this.secondClubType,	//机构类型二级分类 诊所:1,门诊:2,医院:3
+						department:this.department,			//科室
+						medicalPracticeLicenseImg:this.uploadMedicalImage,//资质图片
+						isAgreed:this.isAgreed,				//是否勾选协议	
+						mainpro:this.mainpro,
+						whichStep:3
+				}
+				organizationRegister(params).then(res =>{
+					this.$util.msg('您的机构账号已提交审核',2000);
+					setTimeout(()=>{
+						this.$api.switchTabTo('/pages/tabBar/home/home')
+					},2000)
+				}).catch(error =>{
+					this.$util.msg(error.msg,2000);
+				})
+			},
+			getEmailCodeFn(){
+				if( this.registerEmail == ''){
+					this.$util.msg('请输入邮箱地址',2000);
+					return
+				}
+				if(!this.$reg.isEmail(this.registerEmail)){
+					this.$util.msg('请输入正确的邮箱地址',2000);
+					return
+				}
+				this.isEmialDisabled = true;
+				getEmailCode({email:this.registerEmail,status:2}).then(res =>{
+					this.$util.msg('邮箱验证码已发送',2000);
+					const TIME_COUNT = 60;
+			     	if (!this.codeTime) {
+			       		this.count = TIME_COUNT;
+						this.isEmialDisabled = true;
+			       		this.codeTime = setInterval(() => {
+			       			if (this.count > 1 && this.count <= TIME_COUNT) {
+			         			this.count--
+			         			this.emailCodeText = this.count +'s重新发送'
+			        		} else {
+				         		clearInterval(this.codeTime)
+				         		this.codeTime = null
+								this.emailCodeText = '获取验证码'
+								this.isEmialDisabled = false;
+			        		}
+			       		},1000)
+			      	}
+				}).catch( error =>{
+					this.$util.msg(error.msg,2000);
+					this.isEmialDisabled = false;
+				})
+			},
+			getMobileCodeFn(){
+				if( this.registerMobile == ''){
+					this.$util.msg('请输入手机号',2000);
+					return
+				}
+				if(!this.$reg.isMobile(this.registerMobile)){
+					this.$util.msg('请输入正确的手机号',2000);
+					return
+				}
+				if( this.imageCode == ''){
+					this.$util.msg('请输入图形验证码',2000);
+					return
+				}
+				let params = {
+						mobile:this.registerMobile,
+						activateCodeType:2,
+						platformType:2,
+						imgCode:this.imageCode,
+						token:this.imageCodetoken,
+					}
+				this.isMobileDisabled = true;
+				getMobileCode(params).then(response =>{
+					this.$util.msg('验证短信已发送',2000);
+					const TIME_COUNT = 60;
+			     	if (!this.mobilTime) {
+			       		this.mobilCount = TIME_COUNT;
+			       		this.isMobileDisabled = true;
+			       		this.mobilTime = setInterval(() => {
+			       			if (this.mobilCount > 1 && this.mobilCount <= TIME_COUNT) {
+			         			this.mobilCount--
+			         			this.mobileCodeText = this.mobilCount +'s重新发送'
+			        		} else {
+				         		this.isMobileDisabled = false;
+				         		clearInterval(this.mobilTime)
+				         		this.mobilTime = null
+								this.mobileCodeText = '获取验证码'
+			        		}
+			       		},1000)
+			      	}
+				}).catch( error =>{
+					this.$util.msg(error.msg,2000);
+					this.isMobileDisabled = false;
+				})
+			},
+			getVerificationCode(){//获取图形验证
+				getImageCode().then(res => {
+					this.imageCodeUrl = res.data.baseImage
+					this.imageCodetoken = res.data.token
+				})
+			},
+			showMulLinkageThreePicker() {//三级地址联动
+				this.isShowInput = true
+				this.$refs.mpvueCityPicker.show()
+			},
+			onConfirm(e) {//获取选择的地址信息
+				this.addressData.address = e.name;
+				this.addressData.townID = e.townCode;
+				this.addressData.cityID = e.cityCode;
+				this.addressData.provinceID = e.provinceCode;
+			},	
+			onTextareaInput(e){//地址详细信息
+			   this.addressData.addressDetail = e.detail.value;
+			},
+			chooseBusinessImage() {//营业执照图片上传
+				uploadFileImage().then(res =>{
+					this.uploadBusinessImage = JSON.parse(res.data).data
+				})
+			},
+			chooseMentuzImage() {//门头照图片上传
+				uploadFileImage().then(res =>{
+					this.uploadMentuzImage = JSON.parse(res.data).data
+				})
+			},
+			chooseMedicalImage() {//资质照图片上传
+				uploadFileImage().then(res =>{
+					this.uploadMedicalImage = JSON.parse(res.data).data
+				})
+			},
+			viewBusinessImage(e) {//预览营业执照图片
+				this.myPreviewImageFn(this.uploadBusinessImage)
+			},
+			viewMentuzImage(e) {//预览门头照图片
+				this.myPreviewImageFn(this.uploadMentuzImage)
+			},
+			viewMedicalImage(e) {//预览资质照图片
+				this.myPreviewImageFn(this.uploadMedicalImage)
+			},
+			myPreviewImageFn(url){//预览图片公共方法
+				this.isPreviewImage = true
+				let mentuzArray = []
+				mentuzArray.push(url)
+				uni.previewImage({
+					urls: mentuzArray,
+					current: 0
+				});
+			},
+			delBusinessImage(){//删除营业执照图片
+				this.$util.modal('','确定删除营业执照图片吗?','确定','取消',true,() =>{
+					 this.uploadBusinessImage = ''
+				})
+			},
+			delMentuzImage(){//删除门头照图片
+				this.$util.modal('','确定删除门头照图片吗?','确定','取消',true,() =>{
+					this.uploadMentuzImage = ''
+				})
+			},			
+			delMedicalImage(){//删除资质图片
+				this.$util.modal('','确定删除资质图片吗?','确定','取消',true,() =>{
+					this.uploadMedicalImage = ''
+				})
+			},
+			bindPickerChange() {//机构类型选择
+				let self = this
+				uni.showActionSheet({
+					title:'标题',
+					itemList: ['医美', '生美'],
+					success: (e) => {
+						self.isOrganizationType = e.tapIndex+1
+						switch(e.tapIndex){
+							case 0:
+								this.organizationTypeText = '医美'
+								break;
+							case 1:
+								this.organizationTypeText = '生美'
+								break;
+						}
+					}
+				})
+			
+			},
+			bindPickerChange2(e) {
+				this.typtIndex = e.target.value
+				this.isOrganizationType = e.target.value
+			},
+			radioChange(e) {
+				this.secondClubType = e.target.value;
+				if( this.secondClubType == '2' || this.secondClubType == '3'){
+					this.isDepartment = true
+				}else{
+					this.isDepartment = false
+				}
+				for (let i = 0; i < this.beautyList.length; i++) {
+					if (this.beautyList[i].value === this.secondClubType) {
+						this.current = i;
+						break;
+					}
+				}
+			},
+			chooseMaleLike(e){
+				this.mainpro = this.checkLikes(e,this.mentuzCampList)
+			},
+			chooseMaleLikes(e){
+				this.mainpro = this.checkLikes(e,this.medicaCampList)
+			},
+			checkLikes(e,list){
+				let items = list
+				let	values = e.detail.value
+				let arr = []
+				for (let i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					if(values.indexOf(item.value) >= 0){
+						this.$set(item,'checked',true)
+						arr.push(item.name)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+				return arr.join('/')
+			},
+			agreeCheck() {
+				this.isCheck = !this.isCheck
+				if(this.isCheck){
+					this.isAgreed = 1
+				}else{
+					this.isAgreed = 0
+				}
+			},
+			onBlurInput(e){//
+				if(e.detail.value ===''){
+					this.isDisabled = true
+				}else{
+					this.isDisabled = false
+				}
+			},
+			showAustomItem() {
+				this.isShowAustomItem = !this.isShowAustomItem
+			},
+			addCustomItem(){
+				if(this.isOrganizationType == 1){
+					let item = {value:`${this.mentuzCampList.length+1}`,name:this.customItemValue}
+					this.mentuzCampList.push(item)
+				}else{
+					let item = {value:`${this.medicaCampList.length+1}`,name:this.customItemValue}
+					this.medicaCampList.push(item)
+				}
+			},
+			steps(index) {//$attrstab切换
+				this.tabCurrentIndex = index;
+			}
+		},
+		onShow() {
+			if(this.isPreviewImage){
+				this.isPreviewImage = false
+				return
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.register{
+		width: 100%;
+		height: auto;
+		.model-warp.none{
+			display: none;			
+		}
+		.model-warp.show{
+			display: block;
+		}
+		.register-tab{
+			width: 570rpx;
+			height: 60rpx;
+			padding: 60rpx 90rpx;
+			position: relative;
+			.nav-item{
+				width: 142rpx;
+				background: #FFFFFF;
+				line-height: 60rpx;
+				border-radius: 30rpx;
+				text-align: center;
+				color: #999999;
+				font-size:$font-size-26;
+				float: left;
+				margin-right: 72rpx;
+				position: relative;
+				.line{
+					height: 3rpx;
+					width: 50rpx;
+					background: #999999;
+					position: absolute;
+					right: -58rpx;
+					top: 32rpx;
+				}
+				&:last-child{
+					margin-right: 0;
+				}
+				&.current{
+					color:#FFFFFF;
+					background: $btn-confirm;
+					
+				}
+			}
+		}
+		.register-main{
+			width: 100%;
+			height: auto;
+			&.detailed{
+				padding-bottom: 330rpx;
+			}
+			.register-tips{
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				line-height: 44rpx;
+				font-size: $font-size-24;
+				color: #FF0000;
+				margin-bottom: 40rpx;
+				.iconfont{
+					font-size: $font-size-24;
+				}
+			}
+			.register-row{
+				width: 702rpx;
+				height: auto;
+				padding: 0 24rpx;
+				margin-bottom: 20rpx;
+				.register-text{
+					line-height: 44rpx;
+					margin-top: 100rpx;
+					font-size: $font-size-24;
+					color: #999999;
+					text-align: justify;
+					.txt{
+						margin-right: 15rpx;
+					}
+				}
+				.register-from{
+					width: 654rpx;
+					height: 40rpx;
+					padding: 24rpx;
+					background: $sub-bg-color;
+					border-radius: 14rpx;
+					position: relative;
+					.label{
+						text-align: left;
+						font-size: $font-size-28;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+					}
+					.row-input{
+						width: 440rpx;
+						padding-left:10rpx;
+						font-size: $font-size-28;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+						height: 40rpx;
+						&.none{
+							color: #999999;
+						}
+						&.picker{
+							text-align: left;
+							color: #999999;
+						}
+						&.keshi{
+							width: 550rpx;
+						}
+					}
+					&.img-btn{
+						width: 220rpx;
+						height: 88rpx;
+						padding: 0;
+						float: left;
+						background: #FFFFFF;
+						display: block;
+						.vscodeimg{
+							width: 150rpx;
+							height: 88rpx;
+							float: left;
+							display: flex;
+							flex-direction: column;
+							align-items: center;
+							border-radius: 14rpx;
+							image{
+								width: 150rpx;
+								height: 88rpx;
+								border-radius: 14rpx;
+							}
+						}
+						.vscod-refresh{
+							width: 70rpx;
+							float: right;
+							text-align: right;
+							display: flex;
+							flex-direction: column;
+							align-items: center;
+							line-height: 44rpx;
+							.icon-shuaxin{
+								font-size: 48rpx;
+								color: #333333;
+							}
+							.ref-text{
+								font-size: 24rpx;
+								color: #333333;
+							}
+						}
+					}
+					&.imgcode{
+						width: 410rpx;
+						float: left;
+						margin-right: 20rpx;
+						.row-input{
+							width: 230rpx;
+						}
+					}
+					&.code{
+						width: 410rpx;
+						float: left;
+						margin-right: 20rpx;
+						.row-input{
+							width: 230rpx;
+						}
+					}
+					&.btn{
+						width: 224rpx;
+						height: 88rpx;
+						float: left;
+						background: $btn-confirm;
+						padding: 0;
+						.row-input{
+							width: 224rpx;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding: 0;
+							color: #FFFFFF;
+							background: $btn-confirm;
+							text-align: center;
+							border-radius: 14rpx;
+							&.other{
+								width: 224rpx;
+								background: #F7F7F7;
+								margin-right: 20rpx;
+							}
+							&.none{
+								background: #F7F7F7;
+							}
+						}
+						&.disabled{
+							background: #F7F7F7;
+							.row-input{
+								background: #F7F7F7;
+								color: #999999;
+							}
+						}
+					}
+					&.picker{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 88rpx;
+						line-height: 88rpx;
+						.label{
+							line-height: 88rpx;
+						}
+						.row-input{
+							width: 470rpx;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 30rpx;
+						}
+					}
+					&.radio{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 288rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+							transform: scale(0.8);
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.group{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: auto;
+						background: #FFFFFF;
+						margin-top: 30rpx;
+						.label{
+							line-height: 76rpx;
+						}
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.btn{
+						margin-top: 0;
+					}
+					.content-class {
+						margin: 20rpx auto;
+						display: flex;
+						flex-flow: row wrap;
+						justify-content: space-between;
+						align-items: center;
+						&.btn{
+							margin: 0 auto;
+							margin-left: 126rpx;
+						}
+						.row-input{
+							display: flex;
+							width: 220rpx;
+							height: 40rpx;
+							padding: 24rpx;
+							text-align: left;
+							border-radius: 10rpx;
+							font-size: $font-size-28;
+							color: $text-color;
+						}
+						.confirm-btn{
+							width: 200rpx;
+							height: 88rpx;
+							border-radius: 10rpx;
+							line-height: 88rpx;
+							text-align: center;
+							&.other{
+								width: 213rpx;
+							}
+							&.none{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+							&.disabled{
+								color: #999999;
+							}
+						}
+						.item {
+						  width: 155rpx;
+						  height: 60rpx;
+						  font-size:$font-size-28;
+						  line-height: 60rpx;
+						  border-radius:10rpx;
+						  margin: 10rpx;
+						  text-align: center;
+						  box-sizing: border-box;
+						  border: 1rpx solid #EFEFEF;
+						  checkbox {
+							display: none;
+						  }
+						}
+						.on {
+						  border-color: $color-system;
+						  color:$color-system;
+						}
+					}
+				}
+				.icon-xiayibu{
+					width: 88rpx;
+					height: 88rpx;
+					position: absolute;
+					right: 0;
+					top: 0;
+					line-height: 88rpx;
+					text-align: center;
+				}
+				&.text-textarea{
+					background: #FFFFFF;
+					.textarea{
+						width: 654rpx;
+						height: 180rpx;
+						background: #F7F7F7;
+						padding: 24rpx;
+						font-size: $font-size-28;
+						color: $text-color;
+						z-index: 1;
+						border-radius: 14rpx;
+					}
+					.textarea.hide{
+						opacity: 0;
+					}
+					.textarea.show{
+						color: #999999;
+					}
+				}
+			}
+			.register-picture{
+				height: 102rpx;
+				margin: 40rpx 0 0 0;
+				.label{
+					float: left;
+					font-size: $font-size-28;
+					color: $text-color;
+					line-height: 102rpx;
+					width: 150rpx;
+					text-align: right;
+					&.zz{
+						width: 230rpx;
+					}
+				}
+				.upload-picture{
+					float: left;
+					height: 100rpx;
+					.upload-none{
+						width: 100rpx;
+						height: 100rpx;
+						text-align: center;
+						line-height: 100rpx;
+						color: #999999;
+						border: 1px solid #999999;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						.iconfont{
+							font-size: $font-size-28;
+						}
+					}
+					.upload-image{
+						width: 100rpx;
+						height: 100rpx;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						position: relative;
+						image{
+							width: 100rpx;
+							height: 100rpx;
+							border-radius: 10rpx;
+						}
+						.upload-del{
+							width: 40rpx;
+							height: 40rpx;
+							position: absolute;
+							top: -20rpx;
+							right: -20rpx;
+							line-height: 40rpx;
+							text-align: center;
+							.iconfont{
+								font-size: $font-size-32;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+			.register-input{
+				width: 654rpx;
+				height: 40rpx;
+				padding: 24rpx;
+				margin: 0 auto;
+				margin-bottom: 60rpx;
+				background: #F7F7F7;
+				border-radius: 14rpx;
+				.input{
+					width: 100%;
+					height: 100%;
+					background: #F7F7F7;
+					font-size: $font-size-28;
+					line-height: 40rpx;
+					color: #333333;
+					border-radius: 14rpx;
+				}
+			}
+			.register-fiexd{
+				width: 100%;
+				height: auto;
+				position: fixed;
+				bottom: 0;
+				left: 0;
+				z-index: 999;
+				background: #FFFFFF;
+				.register-agree{
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					margin: 32rpx 0;
+					.agree-text{
+						.checkbox{
+							float: left;
+							margin: 4rpx 6rpx 0 0;
+							color: #999999;
+							font-size: $font-size-32;
+							&.icon-gouxuan{
+								color: $color-system;
+							}
+						}
+						font-size: 20rpx;
+						line-height: 44rpx;
+						color: #999999;
+						text{
+							color:#0091FF;
+						}
+					}
+				}
+			}
+			.register-btn{
+				width: 702rpx;
+				height: 88rpx;
+				border-radius: 14rpx;
+				font-size: $font-size-28;
+				line-height: 88rpx;
+				color: #FFFFFF;
+				margin: 0 auto;
+				text-align: center;
+				background: $btn-confirm;
+				margin-top: 96rpx;
+				&.none{
+					background: #FFFFFF;
+					color: $text-color;
+					margin-top: 0;
+				}
+				&.sub{
+					margin-top: 0;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
pages/search/search.vue

@@ -219,7 +219,7 @@
 			toLoginPage() {
 			toLoginPage() {
 				let searchLoginType = 'search'
 				let searchLoginType = 'search'
 				uni.navigateTo({
 				uni.navigateTo({
-					url:`/pages/login/login-accont?type=${searchLoginType}`
+					url:`/pages/login/login?type=${searchLoginType}`
 				})
 				})
 			}
 			}
 		},
 		},

+ 1 - 1
pages/tabBar/cart/cart.vue

@@ -163,7 +163,7 @@
 			initLogin(){
 			initLogin(){
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 					if(wxResponse == 1){
 					if(wxResponse == 1){
-						this.$api.redirectTo('/pages/login/login-accont?type=4')
+						this.$api.redirectTo('/pages/login/login?type=4')
 					}else{
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization?type=0')
 						this.$api.navigateTo('/pages/authorization/authorization?type=0')
 					}
 					}

+ 1 - 1
pages/tabBar/user/user.vue

@@ -256,7 +256,7 @@
 				this.$store.commit('updateAllNum',0)
 				this.$store.commit('updateAllNum',0)
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 				authorize.getSetting().then(wxResponse =>{// console.log('是否已授权',res);//0:为取消授权 1:为已授权 2:为未操作
 					if(wxResponse == 1){
 					if(wxResponse == 1){
-						this.$api.redirectTo('/pages/login/login-accont?type=0')
+						this.$api.redirectTo('/pages/login/login?type=0')
 					}else{
 					}else{
 						this.$api.navigateTo('/pages/authorization/authorization?type=0')
 						this.$api.navigateTo('/pages/authorization/authorization?type=0')
 					}
 					}

+ 1 - 1
seller/pages/cart/cart.vue

@@ -156,7 +156,7 @@
 				})	
 				})	
 			},
 			},
 			initLogin(){
 			initLogin(){
-				this.$api.redirectTo('/pages/login/login-accont?type=4')
+				this.$api.redirectTo('/pages/login/login?type=4')
 			},
 			},
 			setScrollHeight() {
 			setScrollHeight() {
 				// 窗口高度-footer高度
 				// 窗口高度-footer高度

+ 1 - 1
seller/pages/search/search.vue

@@ -219,7 +219,7 @@
 			toLoginPage() {
 			toLoginPage() {
 				let searchLoginType = 'search'
 				let searchLoginType = 'search'
 				uni.navigateTo({
 				uni.navigateTo({
-					url:`/pages/login/login-accont?type=${searchLoginType}`
+					url:`/pages/login/login?type=${searchLoginType}`
 				})
 				})
 			}
 			}
 		},
 		},