登录页问题

This commit is contained in:
bb_pan 2025-02-18 13:38:21 +08:00
parent 84678f0a61
commit 0fefd38625
3 changed files with 74 additions and 51 deletions

View File

@ -4,7 +4,7 @@
{
"path": "pages/login/index",
"style": {
"navigationBarTitleText": "登录"
"navigationStyle": "custom"
}
},
//

View File

@ -1,7 +1,8 @@
<template>
<!-- 登录页面 -->
<van-nav-bar title="登录" fixed placeholder v-if="origin.indexOf('ticket') == -1" />
<view class="login-container flex-col-c">
<van-form @submit="onSubmitLogin" class="login-form">
<van-form @submit="onSubmitLogin" class="login-form" v-if="origin.indexOf('ticket') == -1">
<view class="login-title"> 欢迎登录 </view>
<van-cell-group size="large">
<van-field
@ -73,7 +74,7 @@ const onSubmitLogin = async () => {
}
const navBarHeight = ref(0)
const origin = window.location.href
onMounted(async () => {
uni.getSystemInfo({
success: (res) => {
@ -86,25 +87,39 @@ onMounted(async () => {
const origin = window.location.href
if (origin.indexOf('ticket') != -1) {
// console.log('origin.splitticket')
const { data: result } = await iwsLoginAPI({
ticket: origin.split('ticket=')[1].split('#/')[0],
sysType: 1,
})
try {
//
uni.showLoading({ title: '登录中' })
memberStore.setToken(result.access_token)
const userResult = await getUserInfoAPI()
const { data: comResult } = await getCompanyListAPI()
const userCompanyList = comResult.filter((e) => e.companyId == userResult.user.companyId)
memberStore.setUserInfo(userResult.user)
memberStore.setCompanyList(comResult)
memberStore.setCompanyName(userCompanyList[0].companyName)
uni.switchTab({ url: '/pages/index/index' })
const { data: result } = await iwsLoginAPI({
ticket: origin.split('ticket=')[1].split('#/')[0],
sysType: 1,
})
memberStore.setToken(result.access_token)
const userResult = await getUserInfoAPI()
const { data: comResult } = await getCompanyListAPI()
const userCompanyList = comResult.filter(
(e) => e.companyId == userResult.user.companyId,
)
memberStore.setUserInfo(userResult.user)
memberStore.setCompanyList(comResult)
memberStore.setCompanyName(userCompanyList[0].companyName)
uni.hideLoading()
uni.switchTab({ url: '/pages/index/index' })
} catch (error) {
console.log(error)
uni.hideLoading()
showToast('登录失败')
}
}
})
</script>
<style lang="scss">
<style lang="scss" scoped>
::v-deep .van-nav-bar__content {
background: #00a288;
}
.login-container {
position: fixed;
top: 0;

View File

@ -1,12 +1,12 @@
import { useMemberStore } from '@/stores'
import { useMemberStore } from '@/stores';
/**
* 添加拦截器
* 拦截 request 请求
* baseURL 设置请求ip地址和端口
*/
const ENV = process.env.NODE_ENV
export const baseURL = ENV === 'development' ? '/api' : '/iws/proxyApi'
const ENV = process.env.NODE_ENV;
export const baseURL = ENV === 'development' ? '/api' : '/iws/proxyApi';
/**
* httpInterceptor 分别拦截 request uploadFile 请求
*/
@ -16,29 +16,29 @@ const httpInterceptor = {
invoke(options) {
// 1. 先判断请求 url 是否为完整的 http 请求路径 如果不是则拼接 baseURL
if (!options.url.startsWith('http')) {
options.url = baseURL + options.url
options.url = baseURL + options.url;
}
// 2. 设置请求超时时间默认为60s设置为 10s
options.timeout = 10000
options.timeout = 10000;
// 3. 增加小程序端请求头标识
options.header = {
// 'source-client': 'mini',
...options.header,
}
};
// 4. 增加 token 请求头标识
const memberStore = useMemberStore()
const token = memberStore.token
const memberStore = useMemberStore();
const token = memberStore.token;
if (token) {
options.header.Authorization = token
options.header.Authorization = token;
}
},
}
};
uni.addInterceptor('request', httpInterceptor)
uni.addInterceptor('uploadFile', httpInterceptor)
uni.addInterceptor('request', httpInterceptor);
uni.addInterceptor('uploadFile', httpInterceptor);
// 设置http请求
export const http = (options) => {
@ -49,42 +49,50 @@ export const http = (options) => {
// 1. 判断是否请求成功
if (res.statusCode >= 200 && res.statusCode < 300) {
if (res.data.code >= 200 && res.data.code < 300) {
resolve(res.data)
} else if (res.data.code === 401) {
resolve(res.data);
} else if (res.data.code === 401 || res.data.code === 403) {
// 2. 401 表示token过期 去往登录页重新登录
uni.showToast({
icon: 'none',
title: `${res.data.msg}`,
})
const memberStore = useMemberStore()
memberStore.clearUserInfo()
memberStore.clearToken()
});
const memberStore = useMemberStore();
memberStore.clearUserInfo();
memberStore.clearToken();
uni.navigateTo({
url: '/pages/login/index',
})
reject(res)
});
// 宏源
// document.addEventListener(
// "deviceready",
// () => {
// navigator.security.closeWindow();
// },
// false
// );
reject(res);
} else if (res.data.code === 500) {
uni.showToast({
icon: 'none',
title: `${res.data.msg}`,
})
});
}
} else if (res.statusCode === 401) {
// 2. 401 表示token过期 去往登录页重新登录
const memberStore = useMemberStore()
memberStore.clearUserInfo()
memberStore.clearToken()
const memberStore = useMemberStore();
memberStore.clearUserInfo();
memberStore.clearToken();
uni.navigateTo({
url: '/pages/login/index',
})
reject(res)
});
reject(res);
} else {
// 3. 其他错误
uni.showToast({
icon: 'none',
title: '请求错误',
})
reject(res)
});
reject(res);
}
// console.log(res)
},
@ -92,10 +100,10 @@ export const http = (options) => {
uni.showToast({
icon: 'none',
title: '请求失败' + err.errMsg,
})
console.log(err, '请求失败')
reject(err)
});
console.log(err, '请求失败');
reject(err);
},
})
})
}
});
});
};