优化: 修复安全隐患、路由权限、环境变量、CSS问题,新增组件,清理无用文件
This commit is contained in:
@@ -1,63 +1,63 @@
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import LotterySelection from '../views/LotterySelection.vue'
|
||||
import LotteryPremium from '../views/LotteryPremium.vue'
|
||||
import Home from '../views/ssq/Home.vue'
|
||||
import DltHome from '../views/dlt/Home.vue'
|
||||
import LotteryInfo from '../views/LotteryInfo.vue'
|
||||
import Profile from '../views/Profile.vue'
|
||||
import Login from '../views/Login.vue'
|
||||
import Register from '../views/Register.vue'
|
||||
import ResetPassword from '../views/ResetPassword.vue'
|
||||
import PredictRecords from '../views/PredictRecords.vue'
|
||||
import DltPredictRecords from '../views/dlt/PredictRecords.vue'
|
||||
|
||||
import ExcelImportManagement from '../views/ExcelImportManagement.vue'
|
||||
import ExchangeRecords from '../views/ExchangeRecords.vue'
|
||||
import TrendAnalysis from '../views/ssq/TrendAnalysis.vue'
|
||||
import SurfaceAnalysis from '../views/ssq/SurfaceAnalysis.vue'
|
||||
import LineAnalysis from '../views/ssq/LineAnalysis.vue'
|
||||
import SsqTableAnalysis from '../views/ssq/SsqTableAnalysis.vue'
|
||||
import DataAnalysis from '../views/DataAnalysis.vue'
|
||||
import HelpCenter from '../views/HelpCenter.vue'
|
||||
import AboutUs from '../views/AboutUs.vue'
|
||||
import UserAgreement from '../views/UserAgreement.vue'
|
||||
import UserGuide from '../views/UserGuide.vue'
|
||||
import MemberAgreement from '../views/MemberAgreement.vue'
|
||||
import HitAnalysis from '../views/ssq/HitAnalysis.vue'
|
||||
import DltHitAnalysis from '../views/dlt/HitAnalysis.vue'
|
||||
import UsageStats from '../views/ssq/UsageStats.vue'
|
||||
import DltUsageStats from '../views/dlt/UsageStats.vue'
|
||||
import PrizeStatistics from '../views/ssq/PrizeStatistics.vue'
|
||||
import DltPrizeStatistics from '../views/dlt/PrizeStatistics.vue'
|
||||
// 前台页面懒加载
|
||||
const LotterySelection = () => import('../views/LotterySelection.vue')
|
||||
const LotteryPremium = () => import('../views/LotteryPremium.vue')
|
||||
const Home = () => import('../views/ssq/Home.vue')
|
||||
const DltHome = () => import('../views/dlt/Home.vue')
|
||||
const LotteryInfo = () => import('../views/LotteryInfo.vue')
|
||||
const Profile = () => import('../views/Profile.vue')
|
||||
const Login = () => import('../views/Login.vue')
|
||||
const Register = () => import('../views/Register.vue')
|
||||
const ResetPassword = () => import('../views/ResetPassword.vue')
|
||||
const PredictRecords = () => import('../views/PredictRecords.vue')
|
||||
const DltPredictRecords = () => import('../views/dlt/PredictRecords.vue')
|
||||
const ExcelImportManagement = () => import('../views/ExcelImportManagement.vue')
|
||||
const ExchangeRecords = () => import('../views/ExchangeRecords.vue')
|
||||
const DataAnalysis = () => import('../views/DataAnalysis.vue')
|
||||
const HelpCenter = () => import('../views/HelpCenter.vue')
|
||||
const AboutUs = () => import('../views/AboutUs.vue')
|
||||
const UserAgreement = () => import('../views/UserAgreement.vue')
|
||||
const UserGuide = () => import('../views/UserGuide.vue')
|
||||
const MemberAgreement = () => import('../views/MemberAgreement.vue')
|
||||
const PrivacyPolicy = () => import('../views/PrivacyPolicy.vue')
|
||||
|
||||
// 双色球相关页面
|
||||
import SsqLottery from '../views/ssq/Lottery.vue'
|
||||
const SsqLottery = () => import('../views/ssq/Lottery.vue')
|
||||
const TrendAnalysis = () => import('../views/ssq/TrendAnalysis.vue')
|
||||
const SurfaceAnalysis = () => import('../views/ssq/SurfaceAnalysis.vue')
|
||||
const LineAnalysis = () => import('../views/ssq/LineAnalysis.vue')
|
||||
const SsqTableAnalysis = () => import('../views/ssq/SsqTableAnalysis.vue')
|
||||
const HitAnalysis = () => import('../views/ssq/HitAnalysis.vue')
|
||||
const UsageStats = () => import('../views/ssq/UsageStats.vue')
|
||||
const PrizeStatistics = () => import('../views/ssq/PrizeStatistics.vue')
|
||||
|
||||
// 大乐透相关页面
|
||||
import DltLottery from '../views/dlt/Lottery.vue'
|
||||
import DltTableAnalysis from '../views/dlt/DltTableAnalysis.vue'
|
||||
import DltSurfaceAnalysis from '../views/dlt/SurfaceAnalysis.vue'
|
||||
import DltLineAnalysis from '../views/dlt/LineAnalysis.vue'
|
||||
import DltTrendAnalysis from '../views/dlt/TrendAnalysis.vue'
|
||||
const DltLottery = () => import('../views/dlt/Lottery.vue')
|
||||
const DltTableAnalysis = () => import('../views/dlt/DltTableAnalysis.vue')
|
||||
const DltSurfaceAnalysis = () => import('../views/dlt/SurfaceAnalysis.vue')
|
||||
const DltLineAnalysis = () => import('../views/dlt/LineAnalysis.vue')
|
||||
const DltTrendAnalysis = () => import('../views/dlt/TrendAnalysis.vue')
|
||||
const DltHitAnalysis = () => import('../views/dlt/HitAnalysis.vue')
|
||||
const DltUsageStats = () => import('../views/dlt/UsageStats.vue')
|
||||
const DltPrizeStatistics = () => import('../views/dlt/PrizeStatistics.vue')
|
||||
|
||||
// 精推版页面
|
||||
import JtSsqHome from '../views/jt/SsqHome.vue'
|
||||
import JtDltHome from '../views/jt/DltHome.vue'
|
||||
|
||||
const JtSsqHome = () => import('../views/jt/SsqHome.vue')
|
||||
const JtDltHome = () => import('../views/jt/DltHome.vue')
|
||||
|
||||
// 后台管理相关组件
|
||||
import AdminLogin from '../views/admin/AdminLogin.vue'
|
||||
import AdminLayout from '../views/admin/layout/AdminLayout.vue'
|
||||
import AdminVipCodeManagement from '../views/admin/VipCodeManagement.vue'
|
||||
import AdminExcelImportManagement from '../views/admin/ExcelImportManagement.vue'
|
||||
import AdminDltExcelImportManagement from '../views/admin/DltExcelImportManagement.vue'
|
||||
import AdminPredictionManagement from '../views/admin/PredictionManagement.vue'
|
||||
import AdminDltPredictionManagement from '../views/admin/DltPredictionManagement.vue'
|
||||
import AdminPrizeStatistics from '../views/admin/PrizeStatistics.vue'
|
||||
import AdminDltPrizeStatistics from '../views/admin/DltPrizeStatistics.vue'
|
||||
import AdminUsageStats from '../views/ssq/UsageStats.vue'
|
||||
import AdminDltUsageStats from '../views/dlt/UsageStats.vue'
|
||||
const AdminLogin = () => import('../views/admin/AdminLogin.vue')
|
||||
const AdminLayout = () => import('../views/admin/layout/AdminLayout.vue')
|
||||
const AdminVipCodeManagement = () => import('../views/admin/VipCodeManagement.vue')
|
||||
const AdminExcelImportManagement = () => import('../views/admin/ExcelImportManagement.vue')
|
||||
const AdminDltExcelImportManagement = () => import('../views/admin/DltExcelImportManagement.vue')
|
||||
const AdminPredictionManagement = () => import('../views/admin/PredictionManagement.vue')
|
||||
const AdminDltPredictionManagement = () => import('../views/admin/DltPredictionManagement.vue')
|
||||
const AdminPrizeStatistics = () => import('../views/admin/PrizeStatistics.vue')
|
||||
const AdminDltPrizeStatistics = () => import('../views/admin/DltPrizeStatistics.vue')
|
||||
const AdminUsageStats = () => import('../views/ssq/UsageStats.vue')
|
||||
const AdminDltUsageStats = () => import('../views/dlt/UsageStats.vue')
|
||||
|
||||
const routes = [
|
||||
// 前台用户路由
|
||||
@@ -258,7 +258,13 @@ const routes = [
|
||||
path: '/member-agreement',
|
||||
name: 'MemberAgreement',
|
||||
component: MemberAgreement,
|
||||
meta: { requiresAuth: true }
|
||||
meta: { requiresAuth: false }
|
||||
},
|
||||
{
|
||||
path: '/privacy-policy',
|
||||
name: 'PrivacyPolicy',
|
||||
component: PrivacyPolicy,
|
||||
meta: { requiresAuth: false }
|
||||
},
|
||||
{
|
||||
path: '/table-analysis',
|
||||
@@ -483,7 +489,16 @@ const routes = [
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes
|
||||
routes,
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
// 如果有保存的位置(比如浏览器后退),使用保存的位置
|
||||
if (savedPosition) {
|
||||
return savedPosition
|
||||
} else {
|
||||
// 否则滚动到页面顶部
|
||||
return { top: 0, behavior: 'smooth' }
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 路由守卫 - 权限控制
|
||||
@@ -523,6 +538,18 @@ router.beforeEach((to, from, next) => {
|
||||
console.error('加载用户状态出错:', error)
|
||||
next('/cpzsadmin/login')
|
||||
})
|
||||
} else if (to.meta.requiresAuth) {
|
||||
// 前台需要登录的页面权限检查
|
||||
import('../store/user.js').then(({ userStore }) => {
|
||||
if (!userStore.isLoggedIn) {
|
||||
ElMessage.warning('请先登录后再访问该页面')
|
||||
next('/login')
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
}).catch(() => {
|
||||
next('/login')
|
||||
})
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user