From e29e595fef21a64bf8b8ec2e12932c866649677c Mon Sep 17 00:00:00 2001 From: pengxiaolong <15716207+pengxiaolong711@user.noreply.gitee.com> Date: Wed, 9 Jul 2025 13:28:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 18 +++++ package.json | 1 + src/api/account.js | 2 +- src/router/index.js | 39 +++++++---- src/utils/axios.js | 8 +-- src/views/HomeView.vue | 24 +++---- src/views/hosts/Home.vue | 87 ++++++++++++++++++------- src/views/hosts/ai/scriptManagement.vue | 6 +- src/views/hosts/mini/miniAM.vue | 11 +++- src/views/nav.vue | 4 +- 10 files changed, 137 insertions(+), 63 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81b082e..12044b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "axios": "^1.8.4", "core-js": "^3.8.3", "echarts": "^5.6.0", + "echarts-gl": "^2.0.9", "element-plus": "^2.9.7", "pinia": "^3.0.1", "qwebchannel": "^6.2.0", @@ -5155,6 +5156,11 @@ "node": ">=6.0" } }, + "node_modules/claygl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/claygl/-/claygl-1.3.0.tgz", + "integrity": "sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ==" + }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -6519,6 +6525,18 @@ "zrender": "5.6.1" } }, + "node_modules/echarts-gl": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/echarts-gl/-/echarts-gl-2.0.9.tgz", + "integrity": "sha512-oKeMdkkkpJGWOzjgZUsF41DOh6cMsyrGGXimbjK2l6Xeq/dBQu4ShG2w2Dzrs/1bD27b2pLTGSaUzouY191gzA==", + "dependencies": { + "claygl": "^1.2.1", + "zrender": "^5.1.1" + }, + "peerDependencies": { + "echarts": "^5.1.2" + } + }, "node_modules/echarts/node_modules/tslib": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", diff --git a/package.json b/package.json index 079b89b..3b713d7 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "axios": "^1.8.4", "core-js": "^3.8.3", "echarts": "^5.6.0", + "echarts-gl": "^2.0.9", "element-plus": "^2.9.7", "pinia": "^3.0.1", "qwebchannel": "^6.2.0", diff --git a/src/api/account.js b/src/api/account.js index 2728f24..d69ea4d 100644 --- a/src/api/account.js +++ b/src/api/account.js @@ -2,7 +2,7 @@ import { getAxios, postAxios, downFile } from '@/utils/axios.js' //登录 export function login(data) { - return postAxios({ url: 'api/user/doLogin', data }) + return postAxios({ url: 'account/login', data }) } //ai diff --git a/src/router/index.js b/src/router/index.js index 9539606..56a9a24 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4,40 +4,39 @@ import HomeView from '../views/HomeView.vue' const routes = [ { path: '/', - name: 'home', + name: 'login', component: HomeView }, - { path: '/nav', name: 'nav', - redirect: '/nav/Home', // 默认跳转 - component: () => import(/* webpackChunkName: "hostsList" */ '../views/nav.vue'), + redirect: '/nav/home', // 默认跳转 + component: () => import( '../views/nav.vue'), children: [ { - path: 'Home', - name: 'Home', - component: () => import(/* webpackChunkName: "hostsList" */ '../views/hosts/Home.vue'), + path: 'home', + name: 'home', + component: () => import( '../views/hosts/Home.vue'), }, { path: 'scriptManagement', name: 'scriptManagement', - component: () => import(/* webpackChunkName: "hostsList" */ '../views/hosts/ai/scriptManagement.vue'), + component: () => import( '../views/hosts/ai/scriptManagement.vue'), }, { path: 'LanguageManagement', name: 'LanguageManagement', - component: () => import(/* webpackChunkName: "hostsList" */ '../views/hosts/ai/LanguageManagement.vue'), + component: () => import( '../views/hosts/ai/LanguageManagement.vue'), }, { path: 'miniAM', name: 'miniAM', - component: () => import(/* webpackChunkName: "hostsList" */ '../views/hosts/mini/miniAM.vue'), + component: () => import( '../views/hosts/mini/miniAM.vue'), }, { path: 'miniIntegral', name: 'miniIntegral', - component: () => import(/* webpackChunkName: "hostsList" */ '../views/hosts/mini/miniIntegral.vue'), + component: () => import( '../views/hosts/mini/miniIntegral.vue'), }, ] } @@ -47,4 +46,22 @@ const router = createRouter({ routes }) +// 添加导航守卫 +router.beforeEach((to, from, next) => { + // 假设你有一个方法来检查用户是否已登录 + const isAuthenticated = () => { + return localStorage.getItem('token') == 1; + }; + + // 定义需要登录才能访问的路由 + const requiresAuth = ['nav','home', 'scriptManagement', 'LanguageManagement', 'miniAM', 'miniIntegral']; + + // 如果需要登录且用户未登录,则重定向到登录页面 + if (requiresAuth.includes(to.name) && !isAuthenticated()) { + next({ name: 'login' }); + } else { + next(); + } +}); + export default router diff --git a/src/utils/axios.js b/src/utils/axios.js index 987f6d0..8eb37af 100644 --- a/src/utils/axios.js +++ b/src/utils/axios.js @@ -30,9 +30,6 @@ if (process.env.NODE_ENV === 'development') { // 请求拦截器 axios.interceptors.request.use((config) => { const url = sliceUrl(config.url) - // if (!(config.url == 'templateList' || config.url == 'languageList')) { - // config.headers['vvtoken'] = getToken(); - // } // 请求超时时间 - 毫秒 config.timeout = 60000 @@ -49,10 +46,9 @@ axios.interceptors.response.use((response) => { if (response.data.code == '200') { return response.data.data } else { - router.push('/') - ElMessage.error(response.data.code + '' + response.data.message); + ElMessage.error(response.data.code + '' + response.data.msg); + return Promise.reject(response.data.msg); } - }, (error) => { // 可添加请求失败后的处理逻辑 return Promise.reject(error) diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 64a9332..b707812 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -69,10 +69,9 @@ diff --git a/src/views/hosts/Home.vue b/src/views/hosts/Home.vue index e94e903..5b7f867 100644 --- a/src/views/hosts/Home.vue +++ b/src/views/hosts/Home.vue @@ -1,31 +1,59 @@ - \ No newline at end of file +.noData{ + font-size: 20px; + color: #999999; +} +.main{ + width: 40%; + height: 40%; +} + diff --git a/src/views/hosts/ai/scriptManagement.vue b/src/views/hosts/ai/scriptManagement.vue index e6b1990..f146374 100644 --- a/src/views/hosts/ai/scriptManagement.vue +++ b/src/views/hosts/ai/scriptManagement.vue @@ -157,13 +157,13 @@ function handleSaveWordsAdd() { }); return; } + wordsAddStatus.value = false; addDialog(wordsAddData.value) .then(() => { ElMessage({ type: "success", message: "添加成功", }); - wordsAddStatus.value = false; getLanguageListDataFn(); }) .catch(() => { @@ -224,8 +224,7 @@ function handleDelete(id) { function getLanguageListDataFn() { getDialogList().then((res) => { getDialogListData.value = res; - }); - getLanguageList().then((res) => { + getLanguageList().then((res) => { getLanguageListData.value = res; LanguageData.value = mergeArrays( getDialogListData.value, @@ -233,6 +232,7 @@ function getLanguageListDataFn() { ); console.log("LanguageData", LanguageData.value); }); + }); } watch(refname, async (newQuestion, oldQuestion) => { // 变化后执行 diff --git a/src/views/hosts/mini/miniAM.vue b/src/views/hosts/mini/miniAM.vue index 98374c1..e4472d9 100644 --- a/src/views/hosts/mini/miniAM.vue +++ b/src/views/hosts/mini/miniAM.vue @@ -1,6 +1,8 @@ @@ -33,6 +35,13 @@ onUnmounted(() => { height: 100%; background-color: #ffffff; border-radius: 10px; + display: flex; + justify-content: center; + align-items: center; +} +.noData{ + font-size: 20px; + color: #999999; } /* 样式定义 */ \ No newline at end of file diff --git a/src/views/nav.vue b/src/views/nav.vue index 63f4be1..944bc79 100644 --- a/src/views/nav.vue +++ b/src/views/nav.vue @@ -44,7 +44,7 @@ Ai管理 - + 话术管理 语言管理 @@ -56,7 +56,7 @@ 小程序管理 - + 账号管理 积分配置