From a6f64303f88508d1c4d6ce53ff46be6b745cfb93 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 14 十月 2025 15:21:59 +0800
Subject: [PATCH] 完成营养师管理

---
 src/views/login/component/account.vue |   99 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 82 insertions(+), 17 deletions(-)

diff --git a/src/views/login/component/account.vue b/src/views/login/component/account.vue
index 03b0338..fe3b991 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>
@@ -26,6 +26,11 @@
 					</i>
 				</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">
@@ -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: 'admin',
-		password: '123456',
-		code: '1234',
+		userName: '',
+		password: '',
+		code: '',
+		clientCode: '',
 	},
+	clients: [],
 	loading: {
 		signIn: false,
 	},
@@ -95,24 +102,82 @@
 });
 // 登录
 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(`userno=${state.ruleForm.userName}&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
+	} catch (err) {
+		console.log(err);
+		state.loading.signIn = false;
 	}
-	
 
 	// 存储 token 到浏览器缓存
 	// Session.set('token', '999');

--
Gitblit v1.8.0