From 4afd7755b465829a21b238fc0ccb98d08a8381e6 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期四, 27 二月 2025 14:23:36 +0800
Subject: [PATCH] gx

---
 src/views/login/component/account.vue |  129 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 107 insertions(+), 22 deletions(-)

diff --git a/src/views/login/component/account.vue b/src/views/login/component/account.vue
index a646f5a..ce9288f 100644
--- a/src/views/login/component/account.vue
+++ b/src/views/login/component/account.vue
@@ -1,7 +1,7 @@
 <template>
 	<el-form size="large" class="login-content-form">
 		<el-form-item class="login-animation1">
-			<el-input text :placeholder="$t('message.account.accountPlaceholder1')" v-model="state.ruleForm.userName" clearable autocomplete="off">
+			<el-input text placeholder="请输入用户登录账号默认是手机号码" v-model="state.ruleForm.userName" clearable autocomplete="off">
 				<template #prefix>
 					<el-icon class="el-input__icon"><ele-User /></el-icon>
 				</template>
@@ -27,7 +27,12 @@
 				</template>
 			</el-input>
 		</el-form-item>
-		<el-form-item class="login-animation3">
+		<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
 					text
@@ -46,7 +51,7 @@
 			<el-col :span="8">
 				<el-button class="login-content-code" v-waves>1234</el-button>
 			</el-col>
-		</el-form-item>
+		</el-form-item> -->
 		<el-form-item class="login-animation4">
 			<el-button type="primary" class="login-content-submit" round v-waves @click="onSignIn" :loading="state.loading.signIn">
 				<span>{{ $t('message.account.accountBtnText') }}</span>
@@ -65,9 +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 { confirmClient, getuserinfo, signIn,getclients } from '/@/api/login';
 
 // 定义变量内容
 const { t } = useI18n();
@@ -76,12 +82,15 @@
 const route = useRoute();
 const router = useRouter();
 const state = reactive({
+	LS_token: '',
 	isShowPassword: false,
 	ruleForm: {
-		userName: 'admin',
-		password: '123456',
-		code: '1234',
+		userName: '',
+		password: '',
+		code: '',
+		clientCode: '',
 	},
+	clients: [],
 	loading: {
 		signIn: false,
 	},
@@ -93,22 +102,98 @@
 });
 // 登录
 const onSignIn = async () => {
-	state.loading.signIn = true;
-	// 存储 token 到浏览器缓存
-	Session.set('token', Math.random().toString(36).substr(0));
-	// 模拟数据,对接接口时,记得删除多余代码及对应依赖的引入。用于 `/src/stores/userInfo.ts` 中不同用户登录判断(模拟数据)
-	Cookies.set('userName', state.ruleForm.userName);
-	if (!themeConfig.value.isRequestRoutes) {
-		// 前端控制路由,2、请注意执行顺序
-		const isNoPower = await initFrontEndControlRoutes();
-		signInSuccess(isNoPower);
-	} else {
-		// 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
-		// 添加完动态路由,再进行 router 跳转,否则可能报错 No match found for location with path "/"
-		const isNoPower = await initBackEndControlRoutes();
-		// 执行完 initBackEndControlRoutes,再执行 signInSuccess
-		signInSuccess(isNoPower);
+	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('管理员登录');
+					state.loading.signIn = false;
+					state.clients=userinfoRes?.data?.管理员能看到的客户列表
+					// 看看有没有缓存客户选择
+					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 {
+					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;
 	}
+
+	// 存储 token 到浏览器缓存
+	// Session.set('token', '999');
+	// 模拟数据,对接接口时,记得删除多余代码及对应依赖的引入。用于 `/src/stores/userInfo.ts` 中不同用户登录判断(模拟数据)
+	// Cookies.set('userName', state.ruleForm.userName);
+	// if (!themeConfig.value.isRequestRoutes) {
+	// 	// 前端控制路由,2、请注意执行顺序
+	// 	const isNoPower = await initFrontEndControlRoutes();
+	// 	signInSuccess(isNoPower);
+	// } else {
+	// 	// 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
+	// 	// 添加完动态路由,再进行 router 跳转,否则可能报错 No match found for location with path "/"
+	// 	const isNoPower = await initBackEndControlRoutes();
+	// 	// 执行完 initBackEndControlRoutes,再执行 signInSuccess
+	// 	signInSuccess(isNoPower);
+	// }
 };
 // 登录成功后的跳转
 const signInSuccess = (isNoPower: boolean | undefined) => {

--
Gitblit v1.8.0