Просмотр исходного кода

1、更改声音模块
2、新增宣传链接自动登录并跳转小低第二节课

liyanbo 4 месяцев назад
Родитель
Сommit
17c0110243

BIN
src/assets/music/blockly/pass.MP3


BIN
src/assets/music/blockly/pass_bak.MP3


+ 1 - 0
src/router/index.js

@@ -8,6 +8,7 @@ const routes = [
   { path: '/login', component: () => import('../views/Login.vue') },
   // 免登录
   { path: '/quick-login', component: () => import('../views/QuickLogin.vue') },
+  { path: '/promotion-login', component: () => import('../views/PromotionLogin.vue') },
   // 首页
   {
     path: '/home',

+ 141 - 0
src/views/PromotionLogin.vue

@@ -0,0 +1,141 @@
+<template>
+  <div class="quick-login-container">
+    <div class="loading-overlay">
+      <div class="loading-content">
+        <el-loading-spinner class="loading-spinner"></el-loading-spinner>
+        <p class="loading-text">登录中...</p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { onMounted } from 'vue'
+import { useRouter } from 'vue-router'
+import { getTenantIdByName, login } from '@/api/login/login.js'
+import { ElLoading, ElMessage } from 'element-plus'
+
+const router = useRouter()
+let loading = null
+
+// 测试账号信息
+const testAccount = {
+  tenantName: import.meta.env.VITE_APP_TITLE,
+  username: import.meta.env.VITE_APP_PROPAGATION_LOGIN_USERNAME,
+  password: import.meta.env.VITE_APP_PROPAGATION_LOGIN_PASSWORD
+}
+
+// 获取租户 ID
+const getTenantId = async (tenantName) => {
+  try {
+    const res = await getTenantIdByName(tenantName)
+    if (res && res.data) {
+      return res.data
+    } else {
+      ElMessage.error('租户验证失败!')
+      return null
+    }
+  } catch (error) {
+    ElMessage.error('获取租户信息失败!')
+    console.error('获取租户 ID 错误:', error)
+    return null
+  }
+}
+
+// 自动登录函数
+const autoLogin = async () => {
+  try {
+    // 显示全局加载状态
+    loading = ElLoading.service({
+      lock: true,
+      text: '登录中...',
+      background: 'rgba(0, 0, 0, 0.7)'
+    })
+
+    // 获取租户ID
+    const tenantId = await getTenantId(testAccount.tenantName)
+    if (!tenantId) {
+      // 租户验证失败
+      return
+    }
+
+    // 执行登录
+    const res = await login(
+      { 'Tenant-Id': tenantId },
+      testAccount
+    )
+
+    if (res && res.code === 0) {
+      // 登录成功,保存登录状态
+      localStorage.setItem('isLoggedIn', 'true')
+      localStorage.setItem('token', res.data.accessToken)
+      localStorage.setItem('userName', testAccount.username)
+      localStorage.setItem('tenantName', testAccount.tenantName)
+      localStorage.setItem('password', testAccount.password)
+      localStorage.setItem('rememberMe', 'true')
+
+      ElMessage.success('信息校验成功')
+      // 跳转到课程界面
+      // router.push('/ai-general-course')
+      window.location.href = 'https://learn-ai.com.cn/ai-develop?typeId=5&typeName=AI%E6%97%B6%E5%85%89%E6%97%85%E8%A1%8C&typeSort=02'
+    } else {
+      ElMessage.error(res?.message || '信息校验失败')
+      // 如果登录失败,跳转到正常登录页面
+      router.push('/login')
+    }
+  } catch (error) {
+    ElMessage.error('信息校验过程中发生错误')
+    console.error('信息校验错误:', error)
+    // 错误时跳转到登录页面
+    router.push('/login')
+  } finally {
+    // 关闭加载状态
+    if (loading) {
+      loading.close()
+    }
+  }
+}
+
+// 组件挂载时立即执行自动登录
+onMounted(() => {
+  autoLogin()
+})
+</script>
+
+<style scoped>
+.quick-login-container {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  background: linear-gradient(to bottom, #001169, #8a78d0);
+}
+
+.loading-overlay {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 100%;
+  height: 100%;
+}
+
+.loading-content {
+  text-align: center;
+  color: white;
+}
+
+.loading-spinner {
+  width: 60px;
+  height: 60px;
+  margin-bottom: 20px;
+}
+
+.loading-text {
+  font-size: 18px;
+  font-weight: 500;
+}
+</style>