From d84eaff15d774fb3158b15da8c78d20d08d55e69 Mon Sep 17 00:00:00 2001 From: JayChou <2064936853@qq.com> Date: Thu, 26 Sep 2024 17:23:52 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E5=A5=96=E9=A1=B9=E7=AE=A1=E7=90=86=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/race.ts | 96 ++++--- src/api/user.ts | 8 + src/router/module/constRouter/index.ts | 10 + src/views/home/index.vue | 10 + src/views/login/index.vue | 67 ++++- src/views/login/registered.vue | 280 +++++++++++++++++++ src/views/raceInfo/index.vue | 2 +- src/views/raceList/index.vue | 165 +++++++++++ src/views/userInfo/components/awardeList.vue | 177 ++++++++++++ src/views/userInfo/index.vue | 46 +-- 10 files changed, 792 insertions(+), 69 deletions(-) create mode 100644 src/views/login/registered.vue create mode 100644 src/views/raceList/index.vue create mode 100644 src/views/userInfo/components/awardeList.vue diff --git a/src/api/race.ts b/src/api/race.ts index a6462e5..18941c8 100644 --- a/src/api/race.ts +++ b/src/api/race.ts @@ -1,53 +1,75 @@ import request from '@/utils/requset' // 获取年度比赛项目列表 -export const getRaceProjectList = (params:any) => { - return request({ - url:'/AnnualCompPoint/annualCompPoint/listStudent', - params - }) +export const getRaceProjectList = (params: any) => { + return request({ + url: '/AnnualCompPoint/annualCompPoint/listStudent', + params, + }) } // 获取年度比赛列表 -export const getYearRaceList = (params:any) => { - return request({ - url:'/annualcomp/annualComp/findndbswlj', - params - }) +export const getYearRaceList = (params: any) => { + return request({ + url: '/annualcomp/annualComp/findndbswlj', + params, + }) } // 获取比赛列表 -export const getRaceList = (params:any) => { - return request({ - url:'/comp/comp/complistnolj', - params - }) +export const getRaceList = (params: any) => { + return request({ + url: '/comp/comp/complistnolj', + params, + }) } // 获取比赛详细信息 -export const getRaceInfo = (params:any) => { - return request({ - url:'/comp/comp/complistnoxq', - params - }) +export const getRaceInfo = (params: any) => { + return request({ + url: '/comp/comp/complistnoxq', + params, + }) } // 获取院系列表 -export const getFaculties = (params:any) => { - return request({ - url:'/sys/sysDepart/queryDepartStuTreeSync', - params - }) +export const getFaculties = (params: any) => { + return request({ + url: '/sys/sysDepart/queryDepartStuTreeSync', + params, + }) } // 上传文件 -export const uploadFile = (data:any) => { - return request({ - url:'/sys/common/upload', - method:'POST', - data - }) +export const uploadFile = (data: any) => { + return request({ + url: '/sys/common/upload', + method: 'POST', + data, + }) } // 修改用户信息 -export const editUserInfoApi = (data:any) => { - return request({ - url:'/sys/user/login/setting/userEdit', - method:'POST', - data - }) +export const editUserInfoApi = (data: any) => { + return request({ + url: '/sys/user/login/setting/userEdit', + method: 'POST', + data, + }) +} +// 获取奖项 +export const getAwardslist = (params: any) => { + return request({ + url: '/awardpersion/awardPersion/list', + params, + }) +} +// 上传证书 +export const uploadFileZs = (data: any) => { + return request({ + url: '/sys/common/uploadzs', + method: 'POST', + data, + }) +} +export const saveSz = (data: any) => { + return request({ + url: 'awardpersion/awardPersion/sczs', + method: 'POST', + data, + }) } \ No newline at end of file diff --git a/src/api/user.ts b/src/api/user.ts index 6a653a0..367ed86 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -22,4 +22,12 @@ export const logOut = () => { return request({ url:'/sys/logout' }) +} +// 注册 +export const sturegister = (data:any) => { + return request({ + url:'/sys/user/sturegister', + method:"POST", + data + }) } \ No newline at end of file diff --git a/src/router/module/constRouter/index.ts b/src/router/module/constRouter/index.ts index 5f092e8..85498d1 100644 --- a/src/router/module/constRouter/index.ts +++ b/src/router/module/constRouter/index.ts @@ -49,6 +49,16 @@ export const constRouter: any = { // hidden: false, // }, // }, + { + path: '/raceList', + name: 'RaceList', + component: () => import('@/views/raceList/index.vue'), + meta: { + icon: '', + title: '竞赛列表', + hidden: false, + }, + }, { path: '/competition', name: 'Competition', diff --git a/src/views/home/index.vue b/src/views/home/index.vue index e0ec3fa..9911359 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -25,6 +25,7 @@ --> +
更多
@@ -168,6 +169,7 @@ const toDetail = (id: number) => { } } .race-list { +position: relative; width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); @@ -216,6 +218,14 @@ const toDetail = (id: number) => { .item:nth-child(n) { margin-top: 20px; } + .more{ + position: absolute; + right: 20px; + top: -20px; + color: #0bd7c6; + cursor: pointer; + font-size: 14px; + } } .news-list { margin-top: 170px; diff --git a/src/views/login/index.vue b/src/views/login/index.vue index d598bae..9c774f4 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,20 +1,24 @@ @@ -35,7 +43,7 @@ import { getCode } from '@/api/user' import userStore from '@/store/module/user' import { ElMessage } from 'element-plus' import { useRouter } from 'vue-router' - +import RegisTered from './registered.vue' const useUserStore = userStore() const form = ref({ account: '', @@ -52,7 +60,13 @@ getcodeinfo() const Router = useRouter() const submit = async () => { console.log(111, useUserStore) - + if (!form.value.account) { + return ElMessage('账号不能为空') + } else if (!form.value.password) { + return ElMessage('密码不能为空') + } else if (!form.value.captcha) { + return ElMessage('验证码不能为空') + } let data = { captcha: form.value.captcha, checkKey: 1629428467008, @@ -67,10 +81,31 @@ const submit = async () => { } else if (res === 1) { ElMessage('账号或密码错误') getcodeinfo() - }else{ + } else { Router.push('/') } } +onMounted(() => { + window.addEventListener('keydown', keyDown) + +}) +const keyDown = (e: any) => { + //如果是回车则执行登录方法 + if (e.keyCode == 13) { + //需要执行的登录方法 + submit() + } +} + +const status = ref(true) +const registered = () => { + console.log(111); + status.value = false +} +const backLoginEvent = () => { + status.value = true + +} diff --git a/src/views/raceInfo/index.vue b/src/views/raceInfo/index.vue index abb919b..a4b5035 100644 --- a/src/views/raceInfo/index.vue +++ b/src/views/raceInfo/index.vue @@ -57,7 +57,7 @@
+ +
+ +
+
+
+ +
+
+
{{ item.compName }}
+
+ +
+
+
+
+ +
+
+ + + + + diff --git a/src/views/userInfo/components/awardeList.vue b/src/views/userInfo/components/awardeList.vue new file mode 100644 index 0000000..95641c8 --- /dev/null +++ b/src/views/userInfo/components/awardeList.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/userInfo/index.vue b/src/views/userInfo/index.vue index 01bb835..0df0370 100644 --- a/src/views/userInfo/index.vue +++ b/src/views/userInfo/index.vue @@ -80,9 +80,9 @@
@@ -90,32 +90,35 @@
姓名
-
{{ userInfo.realname }}
+
{{ useUserStore.userInfo.realname}}
姓别
-
{{ userInfo.sex === 1 ? '男' : '女' }}
+
{{ useUserStore.userInfo.sex === 1 ? '男' : '女' }}
+
+
+
生日
+
{{ useUserStore.userInfo.birthday }}
-
学号
-
{{ userInfo.workNo }}
+
{{ useUserStore.userInfo.workNo }}
手机号
-
{{ userInfo.phone }}
+
{{ useUserStore.userInfo.phone }}
-
+
邮箱
-
{{ userInfo.email }}
+
{{ useUserStore.userInfo.email }}
@@ -141,6 +144,7 @@ + - + ({}) console.log(useUserStore.userInfo, 'useUserStore') @@ -214,17 +218,17 @@ const Router = useRouter() const dialogVisible = ref(false) // 修改用户信息 const editUserInfo = () => { - form.name = userInfo.value.realname - form.birthday = userInfo.value.birthday - form.sex = userInfo.value.sex - form.email = userInfo.value.email - // form.facultiesId = userInfo.value.facultiesId - form.phone = userInfo.value.phone + form.name = useUserStore.userInfo.realname + form.birthday = useUserStore.userInfo.birthday + form.sex = useUserStore.userInfo.sex + form.email = useUserStore.userInfo.email + // form.facultiesId = useUserStore.userInfo.facultiesId + form.phone = useUserStore.userInfo.phone dialogVisible.value = true nextTick(() => { fileList.value = [ { - url: setImageUrl(userInfo.value.avatar), + url: setImageUrl(useUserStore.userInfo.avatar), }, ] }) @@ -273,6 +277,8 @@ const submit = async () => { } await editUserInfoApi(data) useUserStore.getUserInfo() + userInfo.value = useUserStore.userInfo + dialogVisible.value = false } onMounted(() => {}) From a5db35c14f35a3ea0310582afc0613de5173cf20 Mon Sep 17 00:00:00 2001 From: fwb Date: Fri, 27 Sep 2024 11:00:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?'=E6=96=B0=E9=97=BB=E4=BF=AE=E6=94=B9'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/module/constRouter/index.ts | 33 ++--- src/views/news/components/newsDetail.vue | 3 +- src/views/news/components/newsList.vue | 164 ----------------------- src/views/news/index.vue | 160 +++++++++++++++++++++- 4 files changed, 169 insertions(+), 191 deletions(-) delete mode 100644 src/views/news/components/newsList.vue diff --git a/src/router/module/constRouter/index.ts b/src/router/module/constRouter/index.ts index 85498d1..96bc5e6 100644 --- a/src/router/module/constRouter/index.ts +++ b/src/router/module/constRouter/index.ts @@ -98,29 +98,16 @@ export const constRouter: any = { title: '竞赛新闻', hidden: false, }, - children: [ - { - path: '/newsList', - name: 'newsList', - component: () => import('@/views/news/components/newsList.vue'), // 新闻列表组件 - meta: { - icon: '', - title: '新闻列表', - hidden: false, - }, - }, - { - // path: '/newsDetail', - path: 'detail/:id', - name: 'newsDetail', - component: () => import('@/views/news/components/newsDetail.vue'), - meta: { - icon: '', - title: '新闻内容详情', - hidden: true, - } - } - ], + }, + { + path: 'detail/:id', + name: 'newsDetail', + component: () => import('@/views/news/components/newsDetail.vue'), + meta: { + icon: '', + title: '新闻内容详情', + hidden: true, + } }, { path: '/user-info', diff --git a/src/views/news/components/newsDetail.vue b/src/views/news/components/newsDetail.vue index beb973a..e567552 100644 --- a/src/views/news/components/newsDetail.vue +++ b/src/views/news/components/newsDetail.vue @@ -24,7 +24,7 @@ const data = ref({}); //通过id获取文章详细信息 queryEssayApi(route.params.id).then(res=>{ data.value = res.result[0] - console.log(data.value,'data') + console.log(`当前id为${route.params.id}新闻详细信息`,data.value) }) // 定义一个计算属性来处理图片路径 @@ -44,6 +44,7 @@ const completeImageUrl = computed(() => { overflow-y: scroll; padding: 0; display: block; + margin-top: 100px; } .container::-webkit-scrollbar { width: 0; diff --git a/src/views/news/components/newsList.vue b/src/views/news/components/newsList.vue deleted file mode 100644 index 3932ccb..0000000 --- a/src/views/news/components/newsList.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/views/news/index.vue b/src/views/news/index.vue index 89f8e34..f784ae8 100644 --- a/src/views/news/index.vue +++ b/src/views/news/index.vue @@ -1,12 +1,166 @@ \ No newline at end of file From 875c3f65a72822bfc5f9921dfeec31547e73230c Mon Sep 17 00:00:00 2001 From: JayChou <2064936853@qq.com> Date: Fri, 27 Sep 2024 16:31:20 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- src/Layout/tabbar/index.vue | 2 +- src/permissions.ts | 2 +- src/utils/requset.ts | 24 ++++++++++++-------- src/views/raceInfo/index.vue | 12 +++++++--- src/views/userInfo/components/awardeList.vue | 6 ----- 6 files changed, 27 insertions(+), 21 deletions(-) diff --git a/index.html b/index.html index dde16aa..8f61c06 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Vite + Vue + TS + 高赛通
diff --git a/src/Layout/tabbar/index.vue b/src/Layout/tabbar/index.vue index 978f492..2a7cf98 100644 --- a/src/Layout/tabbar/index.vue +++ b/src/Layout/tabbar/index.vue @@ -23,7 +23,7 @@
-
注册
+
注册
diff --git a/src/permissions.ts b/src/permissions.ts index cee1648..b1cb509 100644 --- a/src/permissions.ts +++ b/src/permissions.ts @@ -13,7 +13,7 @@ const asyncRouter = (path: string) => { } router.beforeEach(async (to, form, next) => { const useuserStore = userStore() - + document.title = to.meta.title ? '高赛通-' + to.meta.title : '高赛通' if (useuserStore.token) { if (to.path === '/login') { next({ path: '/' }) diff --git a/src/utils/requset.ts b/src/utils/requset.ts index 8140ca0..f64c8e3 100644 --- a/src/utils/requset.ts +++ b/src/utils/requset.ts @@ -5,23 +5,29 @@ import pinia from '@/store' import userStore from '@/store/module/user' // 创建axios实例 const server = axios.create({ - baseURL: import.meta.env.VITE_APP_BASE_API, - timeout:30000, + baseURL: import.meta.env.VITE_APP_BASE_API, + timeout: 30000, }) // 创建请求拦截器 + server.interceptors.request.use((config) => { -const useuserStore = userStore(pinia) + const useuserStore = userStore(pinia) - config.headers.Authorization = useuserStore.token - config.headers['x-access-token'] = useuserStore.token - return config - + config.headers.Authorization = useuserStore.token + config.headers['x-access-token'] = useuserStore.token + return config }) // 创建相应拦截器 server.interceptors.response.use((response) => { - return response.data + const useuserStore = userStore(pinia) + + if (response.data.code === 401) { + useuserStore.logout() + return + } + return response.data }) // 暴露axios实例 -export default server \ No newline at end of file +export default server diff --git a/src/views/raceInfo/index.vue b/src/views/raceInfo/index.vue index a4b5035..2e8253c 100644 --- a/src/views/raceInfo/index.vue +++ b/src/views/raceInfo/index.vue @@ -56,10 +56,10 @@
@@ -106,7 +106,7 @@
附件:
- fhsuihfiaosdufasiu.pdf + {{ raceInfo.compFile }}
@@ -174,6 +174,11 @@ getraceInfoEvent() const goToCompetition = (id:any) => { Router.push({ path: '/competition', query: { id } }) } + +const doLoadFile = (url:any) => { + // console.log( import.meta.env.VITE_APP_BASE_API + "/sys/common/static/" + url) + window.open( import.meta.env.VITE_APP_BASE_API + "/sys/common/static/" + url) +} diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 9911359..0842f20 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -30,18 +30,18 @@
-
竞赛导航
+
新闻资讯
30+项目登陆后报名
- 全部 + {{ item }}
@@ -76,6 +76,8 @@ import { ElLoading } from 'element-plus' const router = useRouter() const reacProjectList = ref([]) const isLoading = ref(false) + +const News =ref(['全部','通知公告','赛事资讯','活动速递','政策文件']) const getRaceProjectListEvent = async () => { let page = { column: 'createTime', @@ -97,7 +99,7 @@ const getRaceProjectListEvent = async () => { loading.close() } getRaceProjectListEvent() -const active = ref(1) +const active = ref(0) const setImageUrl = (url: string) => { return import.meta.env.VITE_APP_BASE_API + url }