From cd23ef10a642c56bc31f1fe197bc8c0eb65a4085 Mon Sep 17 00:00:00 2001 From: lixg Date: Tue, 17 Jan 2023 19:43:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=A4=96=E9=93=BE?= =?UTF-8?q?=E8=AF=84=E4=BC=B0=E7=9B=B4=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/CONST.js | 11 + src/api/api.js | 24 +- src/api/request.js | 76 ++- src/assets/image/file/book.png | Bin 0 -> 260 bytes src/assets/image/file/rar.png | Bin 0 -> 590 bytes src/assets/image/publish.png | Bin 0 -> 790 bytes src/assets/image/return.png | Bin 0 -> 377 bytes src/components/FileTypeImg.vue | 57 ++ src/components/ReturnHead.vue | 83 +++ src/views/activities/ActivitiesPage.vue | 6 +- src/views/discuss/DiscussPage.vue | 14 +- src/views/evaluation/Evaluation.vue | 362 ++++++++++++ src/views/examination/Examination.vue | 220 ++++---- src/views/faceteach/FaceTeach.vue | 654 +++++++++++++++++----- src/views/homeworkpage/HomeworkPage.vue | 342 ++++++----- src/views/homeworkpage/UploadWork.vue | 53 +- src/views/investigat/InvestigatPage.vue | 476 +++++++++++----- src/views/liveboradcast/LiveBoradcast.vue | 319 ++++++++++- src/views/outerchain/OuterChain.vue | 360 ++++++++++++ src/views/pathmap/LearnPath.vue | 60 ++ src/views/pathmap/PathmapPage.vue | 378 +++++++++++-- 21 files changed, 2844 insertions(+), 651 deletions(-) create mode 100644 src/api/CONST.js create mode 100644 src/assets/image/file/book.png create mode 100644 src/assets/image/file/rar.png create mode 100644 src/assets/image/publish.png create mode 100644 src/assets/image/return.png create mode 100644 src/components/FileTypeImg.vue create mode 100644 src/components/ReturnHead.vue create mode 100644 src/views/evaluation/Evaluation.vue create mode 100644 src/views/outerchain/OuterChain.vue create mode 100644 src/views/pathmap/LearnPath.vue diff --git a/src/api/CONST.js b/src/api/CONST.js new file mode 100644 index 0000000..5f4c2a7 --- /dev/null +++ b/src/api/CONST.js @@ -0,0 +1,11 @@ +/* + * @Author: lixg lixg@dongwu-inc.com + * @Date: 2023-01-16 13:59:11 + * @LastEditors: lixg lixg@dongwu-inc.com + * @LastEditTime: 2023-01-16 13:59:17 + * @FilePath: /stu_h5/src/api/CONST.js + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +export const PROJECT = 1; +export const ROUTER = 2; +export const COURSE = 3; \ No newline at end of file diff --git a/src/api/api.js b/src/api/api.js index eba606e..0773371 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2023-01-13 11:42:48 * @LastEditors: lixg lixg@dongwu-inc.com - * @LastEditTime: 2023-01-13 18:09:17 + * @LastEditTime: 2023-01-17 17:06:24 * @FilePath: /stu_h5/src/api/api.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -16,15 +16,25 @@ export const ROUTER_UNCOMPLETE_LIST = '/stu/router/unCompleteTaskList' export const TAS_ACTIVITY_DETAIL = '/stu/task/activity/detail' export const TASK_ACTIVITY_SIGN = '/stu/task/activity/sign post' export const TASK_BROADCAST_COMMIT = '/stu/task/broadcast/commit' -export const TASK_BROADCAST_DETAIL = '/stu/task/broadcast/detail' -export const TASK_BROADCAST_SIGN = '/stu/task/broadcast/sign' +export const TASK_BROADCAST_DETAIL = '/liveBroadcast' +export const TASK_BROADCAST_SIGN = '/stu/task/broadcast/sign post' export const TASK_VOTE_COMMIT = '/stu/task/vote/commit' export const TASK_VOTE_DETAIL = '/stu/task/vote/detail' -export const TASK_WORK_COMMIT = '/stu/task/work/commit' -export const TASK_WORK_DETAIL = '/stu/task/work/detail' -export const STU_OFFCOURSE_DETAIL = '/stu/offcourse/detail' +export const TASK_WORK_COMMIT = '/workSubmit/submitStudentWorkDetail post' +export const TASK_WORK_DETAIL = '/workSubmit/getWorkDetailByTaskId' +export const STU_OFFCOURSE_DETAIL = '/stu/offcourse/detail post' export const WORK_QUERYWORKDETAILBYID = '/work/queryWorkDetailById' export const EXAMINATION_QUERYEXAMINATIONDETAILBYID = '/examination/queryExaminationDetailById' export const DISCUSS_COLLECTION = '/discussSubmit/clickDiscussCollectionCountOr POST' export const DISCUSS_LIKE = '/discussSubmit/clickDiscussLikeCountOr POST' -export const ACTIVITY = '/activity' \ No newline at end of file +export const ACTIVITY = '/activity' +export const EXAMINATION_QUERY = examinationId => `/examination/queryExaminationDetailById?examinationId=${examinationId} post` +export const TASK_OFFCOURSE_NOTASK_SIGN = '/stu/task/offcourse/notask/sign post' +export const TASK_OFFCOURSE_SIGN = '/stu/task/offcourse/sign post' +export const LINK_DETAILS = linkId => `/link/getOne?linkId=${linkId} post` +export const STUDY_RECORD = '/stu/task/thirdTask/submit post' +export const TASK_WORK_SUBMIT_LIST = '/workSubmit/queryWorkSubmitDetailById' +export const WORK_HISTROY = '/workSubmit/queryWorkDetailListByStuId' +export const ASSESSMENT_QUERY = assessmentId => `/stu/task/queryAssessmentDetailById` +export const ASSESSMENT_SUBMIT = '/stu/task/evaluate/commit post' + diff --git a/src/api/request.js b/src/api/request.js index 22b984e..5ff003c 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -1,11 +1,42 @@ import router from "@/router"; -import {ref, watch} from "vue"; +import { reactive, ref, toRefs, watch } from "vue"; import axios from 'axios'; import { getCookie } from "@/api/utils"; - import JSONBigInt from 'json-bigint'; const JSONBigIntStr = JSONBigInt({ storeAsString: true }); +export function usePage(_url, param) { + const state = reactive({ + data: {}, + loading: false, + total: 0, + size: 10, + current: 1, + params: { pageNo: 1, pageSize: 10, ...param } + }) + + watch(param, () => { + state.params = { ...state.params, ...param } + fetchData() + }) + + function fetchData() { + state.loading = true + request(_url, state.params).then(r => { + state.params.pageNo === 1 ? (state.data = (r.data.records || r.data.rows)) : (state.data = [...state.data, ...(r.data.records || r.data.rows)]) + state.size = r.data.size + state.total = r.data.total + state.current = r.data.current + state.loading = false + }) + } + + fetchData() + return { + ...toRefs(state), + fetchData, + }; +} export function useRequest(_url, params = {}) { const data = ref({}) @@ -34,7 +65,7 @@ export function useRequest(_url, params = {}) { export async function request(_url, params) { const s = _url.split(' ') let url = s[0] - const method = s[1] || 'get' + const method = s[1]?.toLowerCase() || 'get' if (method === 'get') { let paramsArray = []; //拼接参数 @@ -52,25 +83,34 @@ export async function request(_url, params) { url, method, headers: { - 'X-Token': localStorage.getItem('token'), - ...method !== 'get' ? {'Content-Type': 'application/json'} : {} + 'token': getCookie('token'), + ...method !== 'get' ? { 'Content-Type': 'application/json' } : {} }, baseURL: import.meta.env.VITE_BASE_API, - ...method !== 'get' ? {data: JSON.stringify(body)} : {} + ...method !== 'get' ? { data: JSON.stringify(body) } : {} }).then(resp => resp.data).then(response => { if (response.code !== 200 && response.code !== 0) { if (response.code === 1000) { - (import.meta.env.MODE === 'development' || import.meta.env.MODE === 'test') ? router.push({path: '/login'}) : window.open(import.meta.env.VITE_BASE_LOGIN_URL + window.location.url, '_top') + (import.meta.env.MODE === 'development' || import.meta.env.MODE === 'test') ? router.push({ path: '/login' }) : window.open(import.meta.env.VITE_BASE_LOGIN_URL, '_top') } + // if (import.meta.env.DEV && response.code === 1000) { + // router.push({path: '/login'}) + // } else { + // window.open() + // response.showMsg && notification.open({ + // message: response.showMsg, + // duration: 2, + // }); + // } throw new Error('接口异常') } return response }).catch(e => { - console.log(2222) - console.log(e) + console.log('eeeee', e) // router.push({path: '/login'}) }) } + export async function boeRequest(_url, params) { const s = _url.split(' ') let url = s[0] @@ -88,21 +128,21 @@ export async function boeRequest(_url, params) { } } const body = method !== 'get' ? params || {} : {} - return fetch(url,{ + return fetch(url, { method, - headers:{ + headers: { token: getCookie('token'), - ...method !== 'get' ? {'Content-Type': 'application/json'} : {} + ...method !== 'get' ? { 'Content-Type': 'application/json' } : {} }, - ...method !== 'get' ? {body: JSON.stringify(body)} : {} - }).then(res=>{ + ...method !== 'get' ? { body: JSON.stringify(body) } : {} + }).then(res => { return res.text() - }).then(res=>{ + }).then(res => { return JSONBigIntStr.parse(res) - }).then(res=>{ + }).then(res => { console.log(res) - if(res.status === 500){ - import.meta.env.MODE === 'development' ? router.push({path: '/login',query:{returnUrl:router.currentRoute.value.fullPath}}) : window.open(import.meta.env.VITE_BASE_LOGIN_URL + window.location.url, '_top') + if (res.status === 500) { + import.meta.env.MODE === 'development' ? router.push({ path: '/login', query: { returnUrl: router.currentRoute.value.fullPath } }) : window.open(import.meta.env.VITE_BASE_LOGIN_URL + window.location.url, '_top') } return res }) diff --git a/src/assets/image/file/book.png b/src/assets/image/file/book.png new file mode 100644 index 0000000000000000000000000000000000000000..925572e184ef68e310f9848a2529a431f6dd458e GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1IgeV#6kAr}67 zuj=w0au8^HSk9AhFnnWIOY?&b4m+9pHk9r#yHddZPp7Xr;q@v`u`3A+m@b-}Zn?VI zf8Y5tClc1Kecl|?BC*u{#%}F5w`8YX`o2pvLSat8DFy$I0JQ^dF^kNncu(|{Y1wOU zxxTt(qQ&~I38E`i>>IVea=ffRP-uBsE%W?EN4w&6dJ8RYsNDVTlj~G`Vb3PZjJTUJ zChK$fW`+Ob-4YjnwW(FPfY+0qr*Wm$&JcBmXAb59Yy1vy&#m5MCbw=+Ezlzopr0A8MGdH?_b literal 0 HcmV?d00001 diff --git a/src/assets/image/file/rar.png b/src/assets/image/file/rar.png new file mode 100644 index 0000000000000000000000000000000000000000..9b7bc337b39d55bbb0c5a8f186eba07678495c95 GIT binary patch literal 590 zcmV-U0Px%2uVaiR7gwhmd|SwK^TUgFB@&z#B?<&)|OIgE0t<`Nb5}x9t8gYJw$Cwp@L8$ zc<>?~q6aVbV7=(&f995sQlOpNP9iZjWNmtu^^cSH+ff5 z=d;^@$5q|X-{24=N1$~8qJ^AvOyAhd5S0%IPNX3|06)s$I9KIJW~Lh69C%MZXwQ`k zm9;C4dIyi6n7n*C5R20=k-Ms?KC)_A+jG<7HSp6Dl2*~K+h>N z_~T<}*Cp`)SP}UC9$w_&_=7*NCld{TyH3FKn`T1q8E}>%k%G2PcyNZ}Fe8-{pa6X4F%5bc4t_l(lP zEVS%};u1u=;oUPx%&`Cr=R7gv`l}kueVHC%I=T0#OS&-4gqR_c!r9m&Lgu;B3Aik*RK}DO0A_=UV z>n!rIXhtL2w2ItFP>Wg=R0IXBBnm2{m(EoRqD^gjpjLWMj5#VgFD?6)_dDnRJKz7D z`+dTHS~8WKbg#}9gTsbH@sxl}uWrYn6lD*P0(|*rAoH|()J28BE?~nLr*8Ze$gEN~ zGbvT2L|{KKElMk_Nr5tax*BDhD#w7O@%pSnWx}B4wVKked5X}*AN#^< zz~zt?7i8AxMiF+Xun$O$R=o(<9EUa$s(_4eoWP4<7i%Me(tJAK0X=*CCLvu!t-G>9{97(A997qEau5fa}!0~B?i zlb~6vPf*s!EK0a%`(?23h*P)1rwe~NoEO+TN~pajiQJF%(qmfM25gFJ_0S+h1%(An zua+aU0I%!-c_5l$>0^bQxDdb*O1k}WCoU)yknYtbP7+_;y$lQ(JOWlG0tv+!!irA6 zyiEuc77e{EhR_O>B?#*7Nn%yV>Is1|Yc#o|S-zQ;<^dOhtXRO%l@#>LaF65Obzw1& zrIiMh2Lo~_^v$f*29z@~U>EFwRFC}I3Hso%H1r(b1wN^As;fy_m(}WKM+pGAV`UVM zbOq$nghA;(EifGJ4<-J>A>D444@0M`MyUsqhxU724r@A^rDMV%kEQtn4}i~NP!v2X z&qtraPx$Gf6~2R7gv$)v->)FcbyQ>jcr33Y8f)`U8m~x-c{w10TZ7zc6<~EZJGf5=BUn zt#&ChLM)67AXM^@Bc*C-9NTd-J4er!?={1oK4$AgQFH|0fe6N{ZW=>pGJ@ZksB&FFD{I>rbh6(S{+<27SC^5$P{UXY!D@6 zi!?%AkR7NivIV&yYseL;pnV_}6o%m`W8MpZl`yg5bpW{U;Y}9a>jxEB!9mPK|WM8vCdVrYtsFthFI+Fm2VEVp>RZ&*tOt zd6Xo{uMyOSSwBY#jC#GpVV>t-#uL?flV|36{yl&zfZcIk+-hHuwy?%=+)vZ=yI%7L XJL?rKnm<@}00000NkvXXu0mjfNBoxU literal 0 HcmV?d00001 diff --git a/src/components/FileTypeImg.vue b/src/components/FileTypeImg.vue new file mode 100644 index 0000000..67630df --- /dev/null +++ b/src/components/FileTypeImg.vue @@ -0,0 +1,57 @@ + + + + \ No newline at end of file diff --git a/src/components/ReturnHead.vue b/src/components/ReturnHead.vue new file mode 100644 index 0000000..eea9944 --- /dev/null +++ b/src/components/ReturnHead.vue @@ -0,0 +1,83 @@ + + + + diff --git a/src/views/activities/ActivitiesPage.vue b/src/views/activities/ActivitiesPage.vue index d98d9ec..82dbdca 100644 --- a/src/views/activities/ActivitiesPage.vue +++ b/src/views/activities/ActivitiesPage.vue @@ -1,5 +1,6 @@ + + + diff --git a/src/views/examination/Examination.vue b/src/views/examination/Examination.vue index 05b97a9..4e30c9e 100644 --- a/src/views/examination/Examination.vue +++ b/src/views/examination/Examination.vue @@ -3,7 +3,6 @@
-
管理者进阶腾飞班 - 第一次考试
@@ -35,23 +34,17 @@ 状态 - - 2022-7-20 00:00 - + 2022-7-20 00:00 10分 已完成 - - 2022-7-20 00:00 - + 2022-7-20 00:00 10分 已完成 - - 2022-7-20 00:00 - + 2022-7-20 00:00 10分 已完成 @@ -59,7 +52,6 @@
-
@@ -78,7 +70,7 @@ export default { diff --git a/src/views/faceteach/FaceTeach.vue b/src/views/faceteach/FaceTeach.vue index 9543b37..bb0ee61 100644 --- a/src/views/faceteach/FaceTeach.vue +++ b/src/views/faceteach/FaceTeach.vue @@ -1,6 +1,7 @@ - diff --git a/src/views/homeworkpage/HomeworkPage.vue b/src/views/homeworkpage/HomeworkPage.vue index e5a6df8..c272ac0 100644 --- a/src/views/homeworkpage/HomeworkPage.vue +++ b/src/views/homeworkpage/HomeworkPage.vue @@ -1,123 +1,206 @@ - @@ -136,7 +219,7 @@ export default { display: flex; justify-content: center; // margin-top: -17.5px; - margin-top: 20px; + margin-top: 10px; .noticebox { width: 100%; background: #fff; @@ -144,60 +227,60 @@ export default { position: relative; display: flex; justify-content: center; - .line{ - width: 100%; - height: 0; - border-top: 1px solid #F1F2F3; - margin-top: 17px; - position:absolute; - left:0; - } + .line { + width: 100%; + height: 0; + border-top: 1px solid #f1f2f3; + margin-top: 17px; + position: absolute; + left: 0; + } .mani { width: 90%; margin-top: 20px; // position:relative; - .joininfo{ - color:#0D233A; + .joininfo { + color: #0d233a; font-size: 16px; font-weight: bold; } - - .contenttitle{ - width:100%; + + .contenttitle { + width: 100%; // height:10px; margin-top: 15px; // background-color: #bfa; - display:flex; - .timeimg{ + display: flex; + .timeimg { width: 12.8px; height: 13px; } - .timee{ - color:#6E7B84; + .timee { + color: #6e7b84; font-size: 14px; line-height: 13px; margin-left: 6px; } } - .timebox{ - display:flex; + .timebox { + display: flex; width: 100%; - height:49px; - background-color:#F2F5F7; + height: 49px; + background-color: #f2f5f7; margin-top: 17.5px; margin-bottom: 27.5px; border-radius: 10px; - .samez{ - color:#0060FF; + .samez { + color: #0060ff; font-size: 18px; line-height: 49px; margin-left: 13px; } - .samey{ - color:#6E7B84; + .samey { + color: #6e7b84; font-size: 14px; line-height: 49px; - + margin-left: 13px; } } @@ -208,49 +291,52 @@ export default { width: 100%; margin-bottom: 20px; // height: 200px; - - .ballotdetail{ - color:#6E7B84; + + .ballotdetail { + color: #6e7b84; line-height: 30px; font-size: 13px; } - .hiscon{ + .hiscon { width: 100%; - .historyitem{ + .historyitem { // margin-left: 21px; width: 100%; border-radius: 4px; - .itemtime{ - color:#6E7B84; + .itemtime { + color: #6e7b84; margin-left: 21px; font-size: 12px; margin-top: 11px; } - .itemtitle{ + .itemtitle { line-height: 22px; font-size: 13px; - color:#333330; - margin:10.5px 0 10.5px 21px; + color: #333330; + margin: 10.5px 0 10.5px 21px; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } } } - } - .btnc{ - width:100%; - display: flex; - justify-content: center; - .btncc{ - margin-bottom: 19px; - height:33px; - width:88%; - border:0; - background-color: #2478FF; - border-radius: 6px; - color:#fff; - font-size: 14px; - } + .btnc { + width: 100%; + display: flex; + justify-content: center; + .btncc { + margin-bottom: 19px; + height: 33px; + width: 88%; + border: 0; + background-color: #2478ff; + border-radius: 6px; + color: #fff; + font-size: 14px; } + } } } } diff --git a/src/views/homeworkpage/UploadWork.vue b/src/views/homeworkpage/UploadWork.vue index 7fdcb37..375d4cb 100644 --- a/src/views/homeworkpage/UploadWork.vue +++ b/src/views/homeworkpage/UploadWork.vue @@ -1,4 +1,9 @@ - +