diff --git a/src/api/news.ts b/src/api/news.ts new file mode 100644 index 0000000..fd5c10f --- /dev/null +++ b/src/api/news.ts @@ -0,0 +1,15 @@ +import request from '@/utils/requset' +//获取新闻栏目 +export const getColumnListApi = () => { + return request({ + url:'/cms/front/getColumnList' + }) +} +//根据栏目id获取新闻列表 +export function queryEssayListApi(columnId) { + return request.get(`/cms/front/getArticleListByColumn?columnId=${columnId}`); +} +//根据点击的新闻id获取新闻详细信息 +export function queryEssayApi(id) { + return request.get(`/cms/front/getByArticleTitle?id=${id}`); +} \ No newline at end of file diff --git a/src/api/person.ts b/src/api/person.ts index a38c13b..27ad773 100644 --- a/src/api/person.ts +++ b/src/api/person.ts @@ -1,5 +1,14 @@ import request from '@/utils/requset' - +function f(callback: Function) { + return (...arg: any[]) => { + return new Promise((resolve, reject) => { + callback(...arg).then((res: any) => { + if (res.code >= 200 && res.code < 300) resolve(res) + else reject(res) + }).catch(reject); + }) + } +} enum api { liststu = '/abilityEvaluation/personalAbilityEvaluationCollect/liststu', // 个人能力评价列表 @@ -7,15 +16,27 @@ enum api { PAGE_XSFXBG = '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/xsfxbg', // 个人能力报告 competition = '/AnnualCompPoint/annualCompPoint/findcompp', // 比赛项目列表 competitionOne = '/AnnualCompPoint/annualCompPoint/findcomppxq', // 比赛项目单个 + signUp = '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/edit', // 年度比赛项目报名 POST } -export const getlEvaluateApi = (params: Record<'pageNo' | 'pageSize', number>) => request.get(api.liststu, { params }); -export const getlIntegralApi = (params: Record<'pageNo' | 'pageSize', number>) => request.get(api.integral, { params }); +export const getlEvaluateApi = f((params: Record<'pageNo' | 'pageSize', number>) => request.get(api.liststu, { params })); +export const getlIntegralApi = f((params: Record<'pageNo' | 'pageSize', number>) => request.get(api.integral, { params })); -export const getXsfxbgApi = (params = {}) => { - const par = { recreateFlag: false, annualid: '' }; - Object.assign(par, params); - return request.get(api.PAGE_XSFXBG, { params: par }); -}; +export const getXsfxbgApi = f( + (params = {}) => { + const par = { recreateFlag: false, annualid: '' }; + Object.assign(par, params); + return request.get(api.PAGE_XSFXBG, { params: par }); + } +); -export const getCompetitionApi = (id: string) => request.get(api.competition, { params: { id } }); -export const getCompetitionOneApi = (id: string) => request.get(api.competitionOne, { params: { id } }); \ No newline at end of file +export const getCompetitionApi = f((id: string) => request.get(api.competition, { params: { id } })); +export const getCompetitionOneApi = f((id: string) => request.get(api.competitionOne, { params: { id } })); + +interface SignUpData { + annualCompid: string, + entryFormat: '团队' | '个人', + id: string, + instructorSheetList?: any[], + teamManagementList?: any[], +} +export const getSignUpApi = f((data: SignUpData) => request.post(api.signUp, data)); \ No newline at end of file diff --git a/src/permissions.ts b/src/permissions.ts index 08812e3..cee1648 100644 --- a/src/permissions.ts +++ b/src/permissions.ts @@ -17,7 +17,7 @@ router.beforeEach(async (to, form, next) => { if (useuserStore.token) { if (to.path === '/login') { next({ path: '/' }) - } else { + } else { if (!Object.keys(useuserStore.userInfo).length) { useuserStore.getUserInfo() next() diff --git a/src/utils/asyncHint.ts b/src/utils/asyncHint.ts new file mode 100644 index 0000000..e1be234 --- /dev/null +++ b/src/utils/asyncHint.ts @@ -0,0 +1,63 @@ +import { ElMessage, MessageOptions } from "element-plus"; + +enum indexs { + fulfilled, + Rejected +} + +interface Options { + onFulfilled?: Function; + onRejected?: Function; + onFinish?: Function; + // 是否需要提示:[ 成功时的 , 失败时的]。 + // 默认:[true, true] + isNeedPrompts?: boolean[]; + // 提示配置:[成功时的 , 失败时的] + msgObjs?: MessageOptions[]; + // 提示配置的快捷message配置:[ 成功时的 , 失败时的]。 + // 默认:['成功', '失败'] + msgs?: string[]; + [key: string]: any; +} + + +export function getHint(pro: Promise, options: Options = {}) { + const ful = indexs.fulfilled; + const rej = indexs.Rejected; + const { isNeedPrompts, msgs } = options; + + const opt: Options = { + ...options, + isNeedPrompts: Object.assign([true, true], isNeedPrompts), + msgs: Object.assign(['成功', '失败'], msgs), + } + + const onFulfilled = (res: any) => { + if (opt.isNeedPrompts?.[ful]) { + ElMessage({ + message: opt.msgs?.[ful], + type: 'success', + ...opt.msgObjs?.[ful] + }); + } + if (opt.onFulfilled) opt.onFulfilled(res); + } + const onRejected = (err: Error) => { + if (opt.isNeedPrompts?.[rej]) { + ElMessage({ + message: opt.msgs?.[rej], + type: 'error', + ...opt.msgObjs?.[rej] + }); + } + + if (opt.onRejected) opt.onRejected(err); + } + const onFinish = () => { + if (opt.onFinish) opt.onFinish(); + } + + pro.then(onFulfilled).catch(onRejected).finally(onFinish); + + return pro; +} \ No newline at end of file diff --git a/src/views/news/components/newsDetail.vue b/src/views/news/components/newsDetail.vue index 215d30e..beb973a 100644 --- a/src/views/news/components/newsDetail.vue +++ b/src/views/news/components/newsDetail.vue @@ -3,22 +3,37 @@ 返回

{{ data.title }}

-

{{ data.summary }}

+

- News Image + News Image
-

{{ data.date }}

+

{{ data.publishTime }}

\ No newline at end of file diff --git a/src/views/news/components/newsList.vue b/src/views/news/components/newsList.vue index 6a75778..3932ccb 100644 --- a/src/views/news/components/newsList.vue +++ b/src/views/news/components/newsList.vue @@ -1,172 +1,108 @@