From 000a89a294e2cdb493bb3ce178d686e58bd40196 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 23 十二月 2024 22:27:12 +0800
Subject: [PATCH] 更新234

---
 src/views/login/component/account.vue |   89 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 76 insertions(+), 13 deletions(-)

diff --git a/src/views/login/component/account.vue b/src/views/login/component/account.vue
index 5fc48b0..38ecb11 100644
--- a/src/views/login/component/account.vue
+++ b/src/views/login/component/account.vue
@@ -27,6 +27,11 @@
 				</template>
 			</el-input>
 		</el-form-item>
+		<el-form-item v-if="state.clients.length>1">
+			<el-select v-model="state.ruleForm.clientCode" placeholder="请选择登录客户">
+				<el-option v-for="item in state.clients" :key="item.code" :label="item.clientName" :value="item.code" />
+			</el-select>
+		</el-form-item>
 		<!-- <el-form-item class="login-animation3">
 			<el-col :span="15">
 				<el-input
@@ -65,11 +70,10 @@
 import { useThemeConfig } from '/@/stores/themeConfig';
 import { initFrontEndControlRoutes } from '/@/router/frontEnd';
 import { initBackEndControlRoutes } from '/@/router/backEnd';
-import { Session } from '/@/utils/storage';
+import { Session,Local } from '/@/utils/storage';
 import { formatAxis } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
-import { signIn } from '/@/api/login';
-import { error } from 'console';
+import { confirmClient, getuserinfo, signIn,getclients } from '/@/api/login';
 
 // 定义变量内容
 const { t } = useI18n();
@@ -78,12 +82,15 @@
 const route = useRoute();
 const router = useRouter();
 const state = reactive({
+	LS_token: '',
 	isShowPassword: false,
 	ruleForm: {
 		userName: 'cycems',
 		password: '123456',
 		code: '1234',
+		clientCode: '',
 	},
+	clients: [],
 	loading: {
 		signIn: false,
 	},
@@ -95,24 +102,80 @@
 });
 // 登录
 const onSignIn = async () => {
-	try{
-		state.loading.signIn = true;
-    	const signInRes = await signIn(`user_no=${state.ruleForm.userName}&user_password=${state.ruleForm.password}`)
-		if(signInRes.data){
-			// 存储 token 到浏览器缓存
-			Session.set('token', signInRes.data);
+	try {
+		// 第二次请求登录获取到了客户 换绑定token
+		if (state.ruleForm.clientCode) {
+			// 重新绑定token
+			const tokenRe= await confirmClient('clientCode='+state.ruleForm.clientCode);
+			// 更新token
+			Session.set('token', tokenRe.data);
+			// 更新客户选择缓存
+			Local.set('client_'+state.ruleForm.userName,state.ruleForm.clientCode)
+			console.log('更新tokeng重新请求用户信息')
 			// 模拟数据,对接接口时,记得删除多余代码及对应依赖的引入。用于 `/src/stores/userInfo.ts` 中不同用户登录判断(模拟数据)
 			Cookies.set('userName', state.ruleForm.userName);
 			// 前端控制路由,2、请注意执行顺序
 			const isNoPower = await initFrontEndControlRoutes();
 			signInSuccess(isNoPower);
 
+		} else { //第一次登录没有选择到客户
+			state.loading.signIn = true;
+			const signInRes = await signIn(`user_no=${state.ruleForm.userName}&user_password=${state.ruleForm.password}`);
+			if (signInRes.data) {
+				// 存储 token 到浏览器缓存
+				Session.set('token', signInRes.data);
+				const userinfoRes = await getuserinfo();
+				if (userinfoRes?.data?.clientInfos.length > 1) {
+					console.log('多中心管理账号');
+					console.log(userinfoRes.data);
+					state.clients = userinfoRes?.data?.clientInfos;
+					state.loading.signIn = false;
+					console.log(Local.get('client_'+state.ruleForm.userName))
+					// 看看有没有缓存客户选择
+					const lscode=Local.get('client_'+state.ruleForm.userName)
+					if(lscode){
+						const x=state.clients.findIndex((cl:any)=>{return cl.code===lscode})
+						if(x>=0){
+							// 默认选择客户项
+							state.ruleForm.clientCode=lscode
+						}
+						
+					}
+					ElMessage.success('请选择登录客户再登录')
+				} else if (
+					userinfoRes?.data?.roles.findIndex((ro: any) => {
+						return ro.roleName === 'admin';
+					}) >= 0
+				) {
+
+					console.log('管理员登录');
+						var ps= new Object ({
+						page: 0,
+						size: 0,
+						wherecondition: '',
+						ordercondition: 'create_time desc'
+					})
+					getclients(ps).then(re=>{
+						state.clients = re.data.list;
+					}).finally(()=>{
+						state.loading.signIn = false;
+					})
+					
+				} else {
+					console.log('普通登录');
+					console.log('-----------用token 换用户信息---------------');
+					// 模拟数据,对接接口时,记得删除多余代码及对应依赖的引入。用于 `/src/stores/userInfo.ts` 中不同用户登录判断(模拟数据)
+					Cookies.set('userName', state.ruleForm.userName);
+					// 前端控制路由,2、请注意执行顺序
+					const isNoPower = await initFrontEndControlRoutes();
+					signInSuccess(isNoPower);
+				}
+			}
 		}
-	}catch(err){
-		console.log(err)
-		state.loading.signIn = false
+	} catch (err) {
+		console.log(err);
+		state.loading.signIn = false;
 	}
-	
 
 	// 存储 token 到浏览器缓存
 	// Session.set('token', '999');

--
Gitblit v1.8.0