修改统一身份认证

This commit is contained in:
chy
2026-03-02 10:35:21 +08:00
parent 40b95aae29
commit ae12c765be
2 changed files with 94 additions and 104 deletions

View File

@@ -1,9 +1,14 @@
<template>
<div :class="prefixCls" class="relative h-[100%]" :style="{ backgroundImage: 'url(' + localImage + ')' ,backgroundSize:'cover'}">
<div class="relative mx-auto h-full flex" style=" margin: 0 auto;">
<div
:class="prefixCls"
class="relative h-[100%]"
:style="{ backgroundImage: 'url(' + localImage + ')', backgroundSize: 'cover' }"
>
<div class="relative mx-auto h-full flex" style="margin: 0 auto">
<div
class="relative flex-1 p-30px lt-sm:p-10px overflow-x-hidden overflow-y-auto"
:class="`${prefixCls}__right`">
class="relative flex-1 p-30px lt-sm:p-10px overflow-x-hidden overflow-y-auto"
:class="`${prefixCls}__right`"
>
<!-- 右边的登录界面 -->
<Transition appear enter-active-class="animate__animated animate__bounceInRight">
<div
@@ -18,28 +23,28 @@
</Transition>
</div>
</div>
<div class="tags">
<div class="module cockpit">
<img :src="jsc"/>
驾驶舱
</div>
<div class="module iot">
<img :src="wlzt"/>
物联中台
</div>
<div class="module data-center">
<img :src="sjzt"/>
数据中台
</div>
<div class="module report">
<img :src="znbb"/>
智能报表
</div>
<div class="module digital-twin">
<img :src="szls"/>
数字孪生
</div>
</div>
<div class="tags">
<div class="module cockpit">
<img :src="jsc" />
驾驶舱
</div>
<div class="module iot">
<img :src="wlzt" />
物联中台
</div>
<div class="module data-center">
<img :src="sjzt" />
数据中台
</div>
<div class="module report">
<img :src="znbb" />
智能报表
</div>
<div class="module digital-twin">
<img :src="szls" />
数字孪生
</div>
</div>
</div>
</template>
<script lang="ts" setup>
@@ -55,8 +60,6 @@ import sjzt from '@/assets/imgs/sjzt.png'
import szls from '@/assets/imgs/szls.png'
import wlzt from '@/assets/imgs/wlzt.png'
import znbb from '@/assets/imgs/znbb.png'
// import { useRoute } from 'vue-router';
import localImage from '@/assets/imgs/background.jpg'
defineOptions({ name: 'Login' })
@@ -67,7 +70,6 @@ const { getPrefixCls } = useDesign()
const prefixCls = getPrefixCls('login')
const windowSize = useWindowSize()
const loginAnimationData = ref(loginAnimation['default'])
const leftStyle = computed(() => {
const winW = windowSize.width.value
const leftW = winW / 2
@@ -97,9 +99,17 @@ const leftStyle = computed(() => {
return { lottie, bottomText, logo }
})
onMounted(() => {
const queryParams = new URLSearchParams(window.location.search);
const paramValue = queryParams.get('url'); // 获取查询参数值,例如 ?paramName=value 中的 value
debugger
});
const newClass = computed(() => {
const mobile = appStore.getMobile ? 'is-mobile' : ''
const toggle = appStore.getFullscreen ? 'is-toggle' : ''
const toggle = appStore.getFullscreen ? 'is-toggle' : ''
return toggle ? toggle : mobile
})
@@ -128,77 +138,77 @@ $prefix-cls: #{$namespace}-login;
transform: translate(-50%, -50%) scale(0.7, 0.6);
}
.tags{
position:absolute;
bottom:20px;
left:50%;
display: grid;
width: 1000px;
transform:translateX(-50%);
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto auto;
gap: 20px;
.tags {
position: absolute;
bottom: 20px;
left: 50%;
display: grid;
width: 1000px;
transform: translateX(-50%);
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto auto;
gap: 20px;
.module {
display: flex;
padding: 20px;
font-size: 26px;
font-weight: 600;
color: #fff;
text-align: center;
border-radius: 4px;
align-items: center;
justify-content: center;
flex-direction: column;
display: flex;
padding: 20px;
font-size: 26px;
font-weight: 600;
color: #fff;
text-align: center;
border-radius: 4px;
align-items: center;
justify-content: center;
flex-direction: column;
}
.module img {
width: 72px;
height: 72px;
margin-bottom: 16px;
object-fit: contain;
width: 72px;
height: 72px;
margin-bottom: 16px;
object-fit: contain;
}
.module.iot,
.module.data-center,
.module.report,
.module.digital-twin {
flex-direction: row;
gap: 50px; /* 图标和文字之间的间距 */
img{
margin:0
flex-direction: row;
gap: 50px; /* 图标和文字之间的间距 */
img {
margin: 0;
}
}
/* 驾驶舱:深蓝色渐变 */
.module.cockpit {
grid-row: 1 / 3;
background: linear-gradient(180deg, rgb(109 147 245 / 75%), rgb(7 38 111 / 75%));
grid-row: 1 / 3;
background: linear-gradient(180deg, rgb(109 147 245 / 75%), rgb(7 38 111 / 75%));
img {
width: 130px;
height: 130px;
}
img {
width: 130px;
height: 130px;
}
}
/* 物联中台:中蓝色渐变 */
.module.iot {
background: linear-gradient(180deg, rgb(130 156 223 / 75%), rgb(7 38 111 / 75%));
background: linear-gradient(180deg, rgb(130 156 223 / 75%), rgb(7 38 111 / 75%));
}
/* 数据中台:青绿色渐变 */
.module.data-center {
background: linear-gradient(180deg, rgb(46 192 182 / 75%), rgb(40 180 170 / 75%));
background: linear-gradient(180deg, rgb(46 192 182 / 75%), rgb(40 180 170 / 75%));
}
/* 智能报表:绿色渐变 */
.module.report {
background: linear-gradient(180deg, rgb(77 212 122 / 75%), rgb(60 180 100 / 75%));
background: linear-gradient(180deg, rgb(77 212 122 / 75%), rgb(60 180 100 / 75%));
}
/* 数字孪生:浅蓝色渐变 */
.module.digital-twin {
background: linear-gradient(180deg, rgb(111 181 235 / 75%), rgb(60 140 200 / 75%));
background: linear-gradient(180deg, rgb(111 181 235 / 75%), rgb(60 140 200 / 75%));
}
}
</style>

View File

@@ -140,41 +140,6 @@ const loginData = reactive({
}
})
const socialList = [
{ icon: 'ant-design:wechat-filled', type: 30 },
{ icon: 'ant-design:dingtalk-circle-filled', type: 20 },
{ icon: 'ant-design:github-filled', type: 0 },
{ icon: 'ant-design:alipay-circle-filled', type: 0 }
]
const easyDropdownList = [
{
label: t('login.btnMobile'),
icon: 'ant-design:phone-twotone',
type: LoginStateEnum.MOBILE,
code: 'page'
},
{
label: t('login.btnQRCode'),
icon: 'ant-design:qrcode-outlined',
type: LoginStateEnum.QR_CODE,
code: 'page'
},
{ label: t('login.btnWechat'), icon: 'ant-design:wechat-filled', type: 30, code: 'url' },
{
label: t('login.btnDingtalk'),
icon: 'ant-design:dingtalk-circle-filled',
type: 20,
code: 'url'
},
{ label: t('login.btnGitHub'), icon: 'ant-design:github-filled', type: 0, code: 'url' },
{ label: t('login.btnAlipay'), icon: 'ant-design:alipay-circle-filled', type: 0, code: 'url' }
]
const easyCommand = (row) => {
if (row.code == 'page') setLoginState(row.type)
else if (row.code == 'url') doSocialLogin(row.type)
}
// 获取验证码
const getCode = async () => {
@@ -242,14 +207,29 @@ const handleLogin = async (params) => {
authUtil.removeLoginForm()
}
authUtil.setToken(res)
debugger
if (!redirect.value) {
redirect.value = '/'
}
// 判断是否为SSO登录
if (redirect.value.indexOf('sso') !== -1) {
window.location.href = window.location.href.replace('/login?redirect=', '')
} else {
push({ path: redirect.value || permissionStore.addRouters[0].path })
const queryParams = new URLSearchParams(window.location.search);
const ticketUrl = queryParams.get('url'); // 获取查询参数值,例如 ?paramName=value 中的 value
console.log(ticketUrl);
debugger
if(ticketUrl!=null){
var urll=ticketUrl+"/#/login"+"?ticket=93279E3308BDBBEED946FC965017F67A";
window.location.href = urll
}else{
push({ path: redirect.value || permissionStore.addRouters[0].path })
}
}
} finally {
loginLoading.value = false