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