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