From 345706a1c57053dae0ef56d0ed911b68b5ecd863 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期六, 03 八月 2024 15:51:49 +0800
Subject: [PATCH] add 合伙人接口

---
 pages/login/supplier-login.vue |  294 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 236 insertions(+), 58 deletions(-)

diff --git a/pages/login/supplier-login.vue b/pages/login/supplier-login.vue
index c6b3b1a..20d49bf 100644
--- a/pages/login/supplier-login.vue
+++ b/pages/login/supplier-login.vue
@@ -11,82 +11,228 @@
 				<form class="cl">
 					<view class="t-a titles-top">
 						<view class="title-1">HELLO</view>
-						<view class="title-2">欢迎登录<span class="title-3">花满芜</span></view>
+						<view class="title-2">欢迎登录<span class="title-3">花满芫</span>
+							<!-- #ifdef PUB_SUPPLIER -->
+							<span>供应商管理平台</span>
+							<!-- #endif -->
+							<!-- #ifdef PUB_PARTNER -->
+							<span>合伙人管理平台</span>
+							<!-- #endif -->
+						</view>
 					</view>
 					<view class="t-a input form-input" v-if="loginType=='pwd'">
-						<!-- <input type="text" name="userName" placeholder="请输入账号" v-model="userName" /> -->
-						<u-input placeholder="请输入账号"    :border="false"   v-model="userName"></u-input>
-						
+						<!-- <input type="text" name="userName" placeholder="请输入账号" v-model="userName" /> -->
+						<u-input placeholder="请输入账号" :border="false" v-model="userName"></u-input>
+
 					</view>
 					<view class="t-a input form-input" v-if="loginType=='pwd'">
-						<!-- <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" /> -->
-						<u-input :password="true" :border="false"     placeholder="请输入密码" v-model="password"></u-input>
+						<u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
 					</view>
 					<view class="t-a input form-input" v-if="loginType=='code'">
 
 
-<!-- 						<input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber" />
-						<view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
-							{{getCodeText}}
-						</view> -->
-						<u-input placeholder="请输入手机号"  :border="false"  v-model="phoneNumber">
-							<template slot="suffix">
-								<view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
-									{{getCodeText}}
-								</view>
-							</template>
+						<u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber">
+							<template slot="suffix">
+								<view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
+									{{ getCodeText }}
+								</view>
+							</template>
 						</u-input>
 					</view>
 
 
 					<view class="t-a form-input" v-if="loginType=='code'">
-						<!-- <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode" /> -->
-						<u-input placeholder="请输入手机验证码"    :border="false"   v-model="smsCode"></u-input>
-						
+						<u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input>
+
 					</view>
+
 
 					<button @tap="login()" class="bottom-button">登 录</button>
 
 					<view class="flex">
-						<view class="topic-font" v-if="loginType=='pwd'" @click="loginType='code'">手机验证码登录</view>
-						<view class="topic-font" v-if="loginType=='code'" @click="loginType='pwd'">账号密码登录</view>
+						<view class="topic-font" v-if="loginType=='pwd'&&apitype!=='loginAdmin'"
+							@click="loginType='code'">手机验证码登录</view>
+						<view class="topic-font" v-if="loginType=='code'&&apitype!=='loginAdmin'"
+							@click="loginType='pwd'">账号密码登录</view>
 
-						<!-- #ifdef PUB_SUPPLIER -->
-						<view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
+						<view class="topic-font m-l-a m-r-0" v-if="apitype!=='loginAdmin'" @click="toReg">前往注册</view>
 
+						<!-- #ifdef PUB_CUSTOMER -->
+						<view class="topic-font m-l-a m-r-0" @click="toHome">返回首页</view>
+						<!-- #endif -->
+						<!-- #ifdef PUB_PARTNER -->
+						<view class="topic-font m-l-a m-r-0" @click="()=>{
+							if(apitype==='loginPartner'){
+								apitype = 'loginAdmin'
+								loginType = 'pwd'
+							}else{
+								apitype = 'loginPartner'
+							}
+						}">
+							切换为{{apitype!=='loginPartner'?'合伙人':'质检人员'}}登录
+						</view>
 						<!-- #endif -->
 					</view>
+
 				</form>
 			</view>
+			<!-- 		<view v-if="optionsStr">
+				{{optionsStr}}
+			</view> -->
 		</view>
 	</view>
 </template>
 <script>
-	// import util from '@/utils/util.js'
-	// import gzmzApi from '@/api/gzmzApi.js'
-	// import myCache from '@/utils/myCache.js'
 	export default {
-		props: {
-			// apitype: 'loginSupplier',
-			apitype: {
-				type: String,
-				default () {
-					// #ifdef PUB_SUPPLIER
-					return 'loginSupplier'
-					// #endif
-					// #ifdef PUB_PARTNER
-					return 'loginPartner'
-					// #endif
-					// #ifdef PUB_CUSTOMER
-					return 'loginCustomer'
-					// #endif	
-					return ''
-					// return 'loginPartner'
+		async onLoad(options) {
+			// #ifdef PUB_CUSTOMER
+			var query = options.q && decodeURIComponent(options.q) || ''
+			var querydto = {}
+			if (query) {
+				try {
+					var keyvalues = query.split("?")[1].split("&")
+					for (var item of keyvalues) {
+						var tarr = item.split("=")
+						querydto[tarr[0]] = tarr[1]
+					}
+				} catch (e) {
+					console.error('error', e)
 				}
-			},
+			}
+			console.log('options query111', querydto)
+			// this.optionsStr = JSON.stringify(options) || ''
+			if (querydto.partnerUserId) {
+				//通过接口获取名称,兼容,url上不能放中文的情况
+
+				if (!querydto.partnerUserName) {
+					this.$message.showLoading()
+					const resname = await this.$http.request('get', '/api/customer/partner/name', {
+						params: {
+							id: querydto.partnerUserId
+						}
+					})
+					this.$message.hideLoading()
+					if (resname.code == 0) {
+						querydto.partnerUserName = resname.data || ''
+					}
+
+				}
+
+				if (this.$storage.getItem('token')) {
+					console.log('to login 1')
+					this.$message.showLoading()
+					//稍微等一会,避免currentInfo还在同步
+					let tmp = this
+					setTimeout(async () => {
+						try {
+							tmp.$message.hideLoading()
+							if (tmp.currentInfo && tmp.currentInfo.id || tmp.$storage.getItem('token')) {
+								await this.$store.dispatch('getCurrentInfo');
+
+
+								//这种已经登录的
+								//确定是注册绑定还是重新绑定
+								tmp.$nextTick(() => {
+									var tt = {
+										title: '提示:您已登录,是直接用该账号绑定,还是退出并注册新账号绑定合伙人',
+										content: '',
+										showCancel: true,
+										cancelText: '直接绑定',
+										cancelColor: '#000000',
+										confirmText: '退出注册',
+										confirmColor: '#20613D'
+									}
+									uni.showModal({
+										...tt,
+										success: async (res) => {
+
+											if (res.confirm) {
+												//清空登录信息,
+												this.$store.commit('updateLogin',
+													false)
+												setTimeout(() => {
+													uni.navigateTo({
+														url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+													})
+												}, 200)
+											}
+											if (res.cancel) {
+												if (!tmp.currentInfo.customerDTO) {
+													tmp.$message.showToast(
+														'您尚未完善信息无法绑定')
+													return
+												} else {
+													if (tmp.currentInfo.customerDTO
+														.partnerId) {
+														tmp.$message.showToast(
+															'您已绑定,请联系客服解除绑定')
+														return
+													} else {
+														//前往绑定页面
+														uni.reLaunch({
+															url: `/pages/user/supplier-user?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+														})
+													}
+												}
+											}
+										},
+										fail(res) {
+											console.log('res uni model', res)
+										}
+									})
+
+								})
+							} else {
+								console.log('to login 3')
+								//退出登录了,或者失效了
+								uni.navigateTo({
+									url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+								})
+							}
+						} catch (e2) {
+							console.log('to login error', e2)
+						}
+					}, 2000)
+
+				} else {
+					console.log('to login 2',
+						`/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+					)
+					uni.navigateTo({
+						url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+					})
+				}
+
+
+			}
+			// #endif
+
+		},
+		onShareAppMessage() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && currentInfo.partnerDTO.name || ''
+			var url =
+				`/pages/login/supplier-login?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: "花满芫",
+				path: url,
+			}
+		},
+		onShareTimeline() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && currentInfo.partnerDTO.name || ''
+			var url =
+				`/pages/login/supplier-login?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: "花满芫",
+				path: url,
+			}
 		},
 		data() {
 			return {
+				optionsStr: '',
 				openId: '-1',
 				userName: '',
 				password: '',
@@ -102,11 +248,21 @@
 				getCodeText: '获取验证码',
 				getCodeBtnColor: "#20613D",
 				getCodeisWaiting: false,
-				Timer: undefined
+				Timer: undefined,
+				// #ifdef PUB_SUPPLIER
+				apitype: 'loginSupplier',
+				// #endif
+				// #ifdef PUB_PARTNER
+				apitype: 'loginPartner',
+				// #endif
+				// #ifdef PUB_CUSTOMER
+				apitype: 'loginCustomer',
+				// #endif
+				// return 'loginPartner'
 			};
 		},
 		methods: {
-			async getCode() {
+			async getCode() {
 				console.log('getCode')
 				uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
 				if (this.getCodeisWaiting) {
@@ -126,7 +282,7 @@
 				} = await this.$http.request('post', '/api/sms/send/code', {
 					data: {
 						tel: this.phoneNumber,
-						userType: 'supplier'
+						userType: this.apitype.replace("login", "").toLowerCase()
 					}
 				})
 				if (code == 0) {
@@ -135,7 +291,7 @@
 						icon: "none"
 					});
 					this.setTimer(); //调用定时器方法
-				}else{
+				} else {
 					this.getCodeText = "获取验证码" //发送验证码
 					this.getCodeisWaiting = false;
 					this.getCodeBtnColor = "#20613D";
@@ -168,14 +324,33 @@
 					holdTime--;
 				}, 1000)
 			},
+			toHome() {
+				uni.redirectTo({
+					url: '/pages/home/home'
+				})
+			},
 			toReg() {
 				// uni.switchTab({
 				// 	url: '/pages/index/index'
 				// })
-				uni.redirectTo({
-					url: '/sub_pages/supplier/supplier-reg/supplier-reg'
+				var addstr = ''
+				// #ifdef PUB_PARTNER
+				addstr = '?source=step'
+				uni.navigateTo({
+					url: '/sub_pages/partner/partner-info/partner-info' + addstr
 				})
-
+				// #endif
+				// #ifdef PUB_SUPPLIER
+				uni.redirectTo({
+					url: '/pages/login/supplier-reg'
+				})
+				// #endif
+				// #ifdef PUB_CUSTOMER
+				addstr = '?source=step'
+				uni.navigateTo({
+					url: '/sub_pages/customer/customer-info/customer-info' + addstr
+				})
+				// #endif
 			},
 			changeAll(e) {
 				this.pcfvalue = e.detail.value[0]
@@ -200,6 +375,7 @@
 						});
 						return;
 					}
+					that.phoneNumber = ''
 				}
 				if (this.loginType == 'code') {
 					if (!that.phoneNumber) {
@@ -234,7 +410,7 @@
 				const resp = await this.$store.dispatch(this.apitype, post);
 				// uni.hideLoading()
 
-				if (resp.code == 0) {
+				if (resp.code === 0) {
 
 					// myCache.cache("userToken", res.data.accessToken)
 					// let userRes = await gzmzApi.getMemberInfo();
@@ -266,17 +442,19 @@
 	.form-input {
 		background-color: #f8f7fc;
 		border-radius: 50rpx;
-		margin-bottom: 50rpx;
+		margin-bottom: 50rpx;
 		border: 1px solid #e9e9e9;
-		/deep/ .u-input{
-			padding-left: 60rpx !important;
-			padding-right: 40rpx !important;
+
+		/deep/ .u-input {
+			padding-left: 60rpx !important;
+			padding-right: 40rpx !important;
 		}
+
 		/deep/ input {
 			height: 70rpx;
-			line-height: 70rpx;
-		
-		}
+			line-height: 70rpx;
+
+		}
 
 	}
 </style>

--
Gitblit v1.9.3