From c7ebc4d5a39e3ffdf158ef8caebd0202be730aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=85=E5=85=89=E5=AD=9F?= Date: Sat, 11 Apr 2026 10:39:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B5=B7=E5=A4=96?= =?UTF-8?q?=E8=B5=84=E8=AE=AF=E9=A1=B5=E9=9D=A2=E5=8F=8A=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/cankao.ts | 33 ++ src/router/route.ts | 63 +++- src/utils/requestCankao.ts | 90 ++++++ src/views/pages/cankao/index.vue | 405 +++++++++++++++++++++++++ src/views/pages/cankao/indexPC.vue | 301 ++++++++++++++++++ src/views/pages/homeNew/index.vue | 12 +- src/views/pages/index/common/index.vue | 10 +- src/views/pages/yuqing/homeNew.vue | 15 +- 8 files changed, 912 insertions(+), 17 deletions(-) create mode 100644 src/api/cankao.ts create mode 100644 src/utils/requestCankao.ts create mode 100644 src/views/pages/cankao/index.vue create mode 100644 src/views/pages/cankao/indexPC.vue diff --git a/src/api/cankao.ts b/src/api/cankao.ts new file mode 100644 index 0000000..b9cc432 --- /dev/null +++ b/src/api/cankao.ts @@ -0,0 +1,33 @@ +import request from '/@/utils/requestCankao'; + +// 登录 +export const login = (data: any) => { + return request({ + url: '/common/tenantLogin', + method: 'post', + data, + }); +}; + +// 编辑精选接口 +export const editTopNews = (data: any) => { + return request({ + url: '/news/list/published', + method: 'post', + data, + }); +}; + +/** + * 获取文章详情 + * @param data + * @id * 文章id number + * @returns + */ +export const fetchArticleDetail = (data: any) => { + return request({ + url: `/news/detail/${data.id}`, + method: 'get', + data, + }); +}; diff --git a/src/router/route.ts b/src/router/route.ts index eb18402..4363395 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -87,7 +87,68 @@ export const dynamicRoutes: Array = [ // icon: 'iconfont icon-shouye', }, }, - + { + path: '/realtimeInfo', + name: 'realtimeInfo', + component: () => import('/@/views/pages/cankao/index.vue'), + meta: { + title: '海外资讯', + isLink: '', + isHide: true, + isKeepAlive: true, + isAffix: false, + isIframe: false, + roles: [ + 'admin', + 'common', + 'subCommon', + 'subCenter', + 'Director', + 'CSRC', + 'QJJG', + 'DFJG', + 'JYS', + 'QJJGC', + 'DFJGC', + 'JYSC', + 'operate', + 'Bank', + 'SubBank', + ], + // icon: 'iconfont icon-shouye', + }, + }, + { + path: '/indexPC', + name: 'indexPC', + component: () => import('/@/views/pages/cankao/indexPC.vue'), + meta: { + title: '海外资讯', + isLink: '', + isHide: true, + isKeepAlive: false, + isAffix: false, + isIframe: false, + roles: [ + 'admin', + 'common', + 'subCommon', + 'subCenter', + 'Director', + 'CSRC', + 'QJJG', + 'DFJG', + 'JYS', + 'QJJGC', + 'DFJGC', + 'JYSC', + 'operate', + 'Bank', + 'SubBank', + ], + // icon: 'iconfont icon-shouye', + }, + }, { path: '/caixun', name: 'caixun', diff --git a/src/utils/requestCankao.ts b/src/utils/requestCankao.ts new file mode 100644 index 0000000..3e1ace1 --- /dev/null +++ b/src/utils/requestCankao.ts @@ -0,0 +1,90 @@ +import axios, { AxiosInstance } from 'axios'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import { Session } from '/@/utils/storage'; +import qs from 'qs'; +import Cookies from 'js-cookie'; + +// 配置新建一个 axios 实例 +const service: AxiosInstance = axios.create({ + baseURL: import.meta.env.VITE_API_CANKAO, + timeout: 50000, + headers: { 'Content-Type': 'application/json' }, + paramsSerializer: { + serialize(params) { + return qs.stringify(params, { allowDots: true }); + }, + }, +}); + +// 添加请求拦截器 +service.interceptors.request.use( + (config) => { + config.headers!['auth-token'] = window.token; + // config.headers!['auth-token'] = `${Cookies.get('token')}`; + // config.headers!['auth-token'] = `${Session.get('token')}`; + if (window.phone) { + config.headers!['phone'] = window.phone; + } else { + config.headers!['phone'] = window.username; + } + // 在发送请求之前做些什么 token + // if (Session.get('token')) { + // config.headers!['auth-token'] = window.token; + // // config.headers!['auth-token'] = `${Cookies.get('token')}`; + // // config.headers!['auth-token'] = `${Session.get('token')}`; + // config.headers!['phone'] = window.phone; + // } + return config; + }, + (error) => { + // 对请求错误做些什么 + return Promise.reject(error); + } +); + +// 添加响应拦截器 +service.interceptors.response.use( + (response) => { + // 对响应数据做点什么 + const res = response.data; + if (res.code && res.code !== 200) { + // `token` 过期或者账号已在别处登录 + // if (res.code === 401 || res.code === 402 || res.code === 4001) { + // Session.clear(); // 清除浏览器全部临时缓存 + // window.location.href = '/'; // 去登录页 + // ElMessageBox.alert('登录已过期,请重新登录', '提示', {}) + // .then(() => {}) + // .catch(() => {}); + // } else { + // ElMessage.error(res.msg); + // } + return Promise.reject(service.interceptors.response); + } else { + return res; + } + }, + (error) => { + console.log('🚀 ~ error:', error); + // 对响应错误做点什么 + if (error.message.indexOf('timeout') != -1) { + ElMessage.error('网络超时'); + } else if (error.message == 'Network Error') { + ElMessage.error('网络连接错误'); + } else if (error.message.indexOf('token') != -1) { + Session.clear(); // 清除浏览器全部临时缓存 + window.location.href = '/'; // 去登录页 + } else { + if (error.response.data) { + ElMessage.error(error.response.statusText); + } else { + Session.clear(); // 清除浏览器全部临时缓存 + window.location.href = '/'; // 去登录页 + ElMessage.error('接口路径找不到'); + } + } + return Promise.reject(error); + } +); + +// 导出 axios 实例 +export default service; diff --git a/src/views/pages/cankao/index.vue b/src/views/pages/cankao/index.vue new file mode 100644 index 0000000..e88a87c --- /dev/null +++ b/src/views/pages/cankao/index.vue @@ -0,0 +1,405 @@ + + + + diff --git a/src/views/pages/cankao/indexPC.vue b/src/views/pages/cankao/indexPC.vue new file mode 100644 index 0000000..3951ac7 --- /dev/null +++ b/src/views/pages/cankao/indexPC.vue @@ -0,0 +1,301 @@ + + + + + diff --git a/src/views/pages/homeNew/index.vue b/src/views/pages/homeNew/index.vue index 7bb9faf..b55dbe6 100644 --- a/src/views/pages/homeNew/index.vue +++ b/src/views/pages/homeNew/index.vue @@ -506,11 +506,13 @@ function jumpHaiwaiUrl() { } } - getCankaoUrl({}).then((res) => { - if (res.code == 200) { - window.open(res.data); - } - }); + // getCankaoUrl({}).then((res) => { + // if (res.code == 200) { + // window.open(res.data); + // } + // }); + + router.push('/realtimeInfo') } const newsList = ref([]); diff --git a/src/views/pages/index/common/index.vue b/src/views/pages/index/common/index.vue index de44720..83478c1 100644 --- a/src/views/pages/index/common/index.vue +++ b/src/views/pages/index/common/index.vue @@ -2,11 +2,11 @@
- - 首页 - 智能检校 - -
+ + 首页 + 智能检校 + +
diff --git a/src/views/pages/yuqing/homeNew.vue b/src/views/pages/yuqing/homeNew.vue index 352866c..f21774f 100644 --- a/src/views/pages/yuqing/homeNew.vue +++ b/src/views/pages/yuqing/homeNew.vue @@ -167,6 +167,8 @@ import icon_4 from '/@/assets/yuqingNew/icon_4.png'; import { useRoute } from 'vue-router'; import { Session } from '/@/utils/storage'; import RankList from './component/RankList.vue'; // 路径根据实际调整 +import JSON5 from 'json5'; +import router from '/@/router'; // 定义需要缩小的分辨率阈值,例如小于1024px时缩小 const SCALE_THRESHOLD = 1480; @@ -390,7 +392,6 @@ async function getWangkuangJinduiFn() { jingduiList.value = data; } } -import JSON5 from 'json5'; // 舆情首页-词云 const cloudWordList = ref([]); async function getWangkuangCloudWordFn() { @@ -470,11 +471,13 @@ function jumpHaiwaiUrl() { } } - getCankaoUrl({}).then((res) => { - if (res.code == 200) { - window.open(res.data); - } - }); + // getCankaoUrl({}).then((res) => { + // if (res.code == 200) { + // window.open(res.data); + // } + // }); + + router.push('/realtimeInfo') } const hadRole = ref(true);