diff --git a/.env.development b/.env.development index 1306b8df..e476c013 100644 --- a/.env.development +++ b/.env.development @@ -16,5 +16,19 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001' # h5专用地址 # 王洋洋 +<<<<<<< HEAD #VITE_APP_BASE_H5_API_Url = 'http://25.64.16.140:9604' -VITE_APP_BASE_H5_API_Url = 'https://aitstest.jlbank.com.cn:7001' \ No newline at end of file +VITE_APP_BASE_H5_API_Url = 'https://aitstest.jlbank.com.cn:7001' +#岳世凯 +#VITE_APP_BASE_H5_API_Url = 'http://25.64.16.141:9701' + +======= +# VITE_APP_BASE_H5_API_Url = 'http://25.64.16.140:9604' +# 任东 +# VITE_APP_BASE_H5_API_Url = 'http://25.64.16.130:9602' +# 线上 +VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65:7001' + +# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.18.122.65:7001' +VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602' +>>>>>>> 05085e8e3e537d6cc35d677431086afd747b4eee diff --git a/src/api/dialog.js b/src/api/dialog.js index 38de539e..a4e2bdf7 100644 --- a/src/api/dialog.js +++ b/src/api/dialog.js @@ -9,4 +9,14 @@ export const queryHotQuestionApi = (data) => { method: 'post', data }); +}; +// 获取问答历史 + +// 问答反馈 +export const insertTraAskFeedback = (data) => { + return request({ + url: '/traask/traAskFeedback/insertTraAskFeedback', + method: 'post', + data + }); }; \ No newline at end of file diff --git a/src/api/examination.js b/src/api/examination.js index 52225e08..e788a707 100644 --- a/src/api/examination.js +++ b/src/api/examination.js @@ -12,5 +12,34 @@ export const startTraExamPapersInfo = (data) => { data }); }; +// 提交试卷 +export const commitPaperExam = (data) => { + return request({ + url: base_url + '/traExamPapers/commitPaperExam', + method: 'post', + toastErrors: true, + data + }); +}; + +// 试卷考试查分 +export const queryPaperExamScore = (data) => { + return request({ + url: base_url + '/traExamPapers/queryPaperExamScore', + method: 'post', + toastErrors: true, + data + }); +}; +// ↓↓↓↓↓↓↓↓↓课程考试↓↓↓↓↓↓↓↓ + +export const startExamByCrs = (data) => { + return request({ + url: base_url + '/traCrsPapers/startExamByCrs', + method: 'post', + toastErrors: true, + data + }); +}; \ No newline at end of file diff --git a/src/api/favorites.js b/src/api/favorites.js new file mode 100644 index 00000000..70426dd6 --- /dev/null +++ b/src/api/favorites.js @@ -0,0 +1,49 @@ +import request from '@/api/request' +const base_url = '/trastudy' + +// 课程收藏分页查询 +export const queryTraPersonalCollectionCrsPaging = (data) => { + return request({ + url: base_url + '/traPersonalCollection/queryTraPersonalCollectionCrsPaging', + method: 'post', + toastErrors: true, + data + }); +}; + +// 任务收藏分页查询 +export const queryTraPersonalCollectionTaskPaging = (data) => { + return request({ + url: base_url + '/traPersonalCollection/queryTraPersonalCollectionTaskPaging', + method: 'post', + toastErrors: true, + data + }); +}; + +// 根据收藏ID删除收藏 +export const deleteTraPersonalCollectionById = (data) => { + return request({ + url: base_url + '/traPersonalCollection/deleteTraPersonalCollectionById', + method: 'post', + toastErrors: true, + data + }); +}; + + + +/* +新增任务收藏 +入参: + collectTyp 收藏类型 必须 String 01--课程,02--任务 + collectBusId 收藏业务ID 必须 String +**/ +export const insertTraPersonalCollectionTask = (data) => { + return request({ + url: base_url + '/traPersonalCollection/insertTraPersonalCollectionTask', + method: 'post', + toastErrors: true, + data + }); +}; \ No newline at end of file diff --git a/src/api/learningTasks.js b/src/api/learningTasks.js new file mode 100644 index 00000000..63794ae1 --- /dev/null +++ b/src/api/learningTasks.js @@ -0,0 +1,13 @@ +import request from '@/api/request' +const base_url = '/trastudy' + +// 查询所有、未完成、已完成的任务(分页) +export const queryAllTraTaskInfoByUserId = (data) => { + return request({ + url: base_url + '/traTaskInfo/queryAllTraTaskInfoByUserId', + method: 'post', + toastErrors: true, + data + }); +}; + diff --git a/src/api/messageNotification.js b/src/api/messageNotification.js new file mode 100644 index 00000000..72fa6ef2 --- /dev/null +++ b/src/api/messageNotification.js @@ -0,0 +1,34 @@ +import request from '@/api/request' +const base_url = '/trastudy' + +// 查询当前用户的所有消息通知 (分页) +export const queryTraPersonalMessageNoticePaging = (data) => { + return request({ + url: base_url + '/traPersonalMessageNotice/queryTraPersonalMessageNoticePaging', + method: 'post', + toastErrors: true, + data + }); +}; + + +// 读取单一消息 +export const readNotice = (data) => { + return request({ + url: base_url + '/traPersonalMessageNotice/readNotice', + method: 'post', + toastErrors: true, + data + }); +}; + + +// 一键读取所有消息(不展示) +export const oneTimeRead = (data) => { + return request({ + url: base_url + '/traPersonalMessageNotice/oneTimeRead', + method: 'post', + toastErrors: true, + data + }); +}; \ No newline at end of file diff --git a/src/api/request.js b/src/api/request.js index d78bf0f1..e8373f95 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -5,16 +5,16 @@ import common from '@/common/common.js' const ENV = import.meta.env -export const get_base_url = url => { +export const get_base_url = (url = '') => { if (ENV.MODE === 'development') { // 开发环境 // H5必须用非https,手机端必须用https // #ifdef H5 - return ENV.VITE_APP_BASE_H5_API_Url || ENV.VITE_APP_BASE_API_Url - const baseUrl = ENV.VITE_APP_BASE_API_Url - if (baseUrl.startsWith('https')) { - return baseUrl.replace('https', 'http') + if (url) { + let _str = (url.split('/')[0] || url.split('/')[1])?.toUpperCase() + return ENV[`VITE_APP_BASE_H5_API_Url_${_str}`] || ENV.VITE_APP_BASE_H5_API_Url || ENV.VITE_APP_BASE_API_Url + } else { + return ENV.VITE_APP_BASE_H5_API_Url || ENV.VITE_APP_BASE_API_Url } - return baseUrl // #endif // #ifdef APP-PLUS return ENV.VITE_APP_BASE_API_Url @@ -50,7 +50,7 @@ export const goto_login_fun = (from = 'http') => { } else { common.navigateTo('/pages/login/login') } - + }).finally(() => { no_login_show_modal_state = false }) @@ -80,6 +80,8 @@ export default function request({ headers_base['summary'] = token // 让每个请求携带令牌 } let that = this + + return new Promise((resolve, reject) => { uni.request({ url: `${baseUrl || base_url}${url}`, diff --git a/src/api/testingHall.js b/src/api/testingHall.js index 7e0b47c1..01062cba 100644 --- a/src/api/testingHall.js +++ b/src/api/testingHall.js @@ -9,4 +9,5 @@ export const queryTraExamPapersPage = (data) => { method: 'post', data }); -}; \ No newline at end of file +}; + diff --git a/src/api/wrong_question_record.js b/src/api/wrong_question_record.js new file mode 100644 index 00000000..26e60fef --- /dev/null +++ b/src/api/wrong_question_record.js @@ -0,0 +1,22 @@ +import request from '@/api/request' +const base_url = '/traexam' + +// 错题本列表页 +export const queryTraMistakesCollectionPaging = (data) => { + return request({ + url: base_url + '/traMistakesCollection/queryTraMistakesCollectionPaging', + method: 'post', + toastErrors: true, + data + }); +}; + +// 错题订正 +export const mistakesCorrect = (data) => { + return request({ + url: base_url + '/traMistakesCollection/mistakesCorrect', + method: 'post', + toastErrors: true, + data + }); +}; diff --git a/src/common/imgSvg.ts b/src/common/imgSvg.ts index 267ad39f..b759e79b 100644 --- a/src/common/imgSvg.ts +++ b/src/common/imgSvg.ts @@ -5,9 +5,9 @@ export const optionSuccessIcon = (color : string) : string => { return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; }; -export const optionErrorIcon = () : string => { +export const optionErrorIcon = (color: string='#F5212D') : string => { const svgXml = ` - + `.trim(); return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; }; @@ -17,4 +17,18 @@ export const examinationSheetIcon = () : string => { `.trim(); return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; -}; \ No newline at end of file +}; + +export const markIcon = (color: string='#ABABAB') : string => { + const svgXml = ` + + `.trim(); + return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; +}; + +export const feedbackIcon = () : string => { + const svgXml = ` + + `.trim(); + return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; +}; diff --git a/src/components/examination/characters-subject.vue b/src/components/examination/characters-subject.vue index 8bf1c12e..03e8cc6a 100644 --- a/src/components/examination/characters-subject.vue +++ b/src/components/examination/characters-subject.vue @@ -11,6 +11,10 @@ + + + + @@ -21,7 +25,6 @@ - \ No newline at end of file diff --git a/src/pages.json b/src/pages.json index fdc554a0..b7ca8b0a 100644 --- a/src/pages.json +++ b/src/pages.json @@ -199,6 +199,15 @@ } } }, + { + "path": "pages/examination/result", + "style": { + "navigationBarTitleText": "考试结果", + "app-plus": { + "titleNView": false + } + } + }, { "path": "pages/practice/index", "style": { @@ -208,6 +217,24 @@ } } }, + { + "path": "pages/learningTasks/index", + "style": { + "navigationBarTitleText": "学习任务", + "app-plus": { + "titleNView": false + } + } + }, + { + "path": "pages/learningTasks/details", + "style": { + "navigationBarTitleText": "学习详情", + "app-plus": { + "titleNView": false + } + } + }, { "path": "pages/course/index", "style": { diff --git a/src/pages/course/components/talkingItem.vue b/src/pages/course/components/talkingItem.vue index a4759eb1..737e9149 100644 --- a/src/pages/course/components/talkingItem.vue +++ b/src/pages/course/components/talkingItem.vue @@ -32,6 +32,9 @@ + + 举例:{{ dataInfo.knoExampie }} + diff --git a/src/pages/course/components/touchBtn.vue b/src/pages/course/components/touchBtn.vue index ccee59f5..435ba539 100644 --- a/src/pages/course/components/touchBtn.vue +++ b/src/pages/course/components/touchBtn.vue @@ -1,24 +1,20 @@ + \ No newline at end of file diff --git a/src/pages/course/index.vue b/src/pages/course/index.vue index 5392536b..eabe7308 100644 --- a/src/pages/course/index.vue +++ b/src/pages/course/index.vue @@ -279,7 +279,7 @@ import { onShow } from "@dcloudio/uni-app" } // 跳转 课程详情 const toCourseDetail = (item) => { - common.navigateTo('/pages/courseDetail/index?crsNum=' + item.crsNum) + common.navigateTo('/pages/courseDetail/index?crsNum=' + item.crsNum + '&crsId=' + item.crsId) // common.navigateTo('/pages/course/study?crsNum=' + item.crsNum) } onMounted(()=>{ diff --git a/src/pages/courseDetail/components/comment.vue b/src/pages/courseDetail/components/comment.vue index 9dd8887b..cd0d01ba 100644 --- a/src/pages/courseDetail/components/comment.vue +++ b/src/pages/courseDetail/components/comment.vue @@ -148,7 +148,6 @@ keyboardHeight = Math.max(0, keyboardHeight - safeAreaBottomHeight); // 避免负数 } popup_input_bottom.value = `${keyboardHeight}px`; - console.log(res); }); }) } diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue index e79e3d3f..5d160686 100644 --- a/src/pages/courseDetail/index.vue +++ b/src/pages/courseDetail/index.vue @@ -15,40 +15,40 @@ - + 知识点 {{ form.pgrphNum || 0 }} - - + 已学 {{ form.styParaGraphNum || 0 }} - - + 考试排行榜 - - - - - + + + + - + - + :inactive-style="{ color: '#666666', 'font-size': '30rpx' }" + > @@ -61,69 +61,52 @@ - - + - @@ -230,8 +218,8 @@ left: 25%; width: 40%; height: 40%; - border-top: 4rpx solid #FFFFFF; - border-left: 4rpx solid #FFFFFF; + border-top: 4rpx solid #ffffff; + border-left: 4rpx solid #ffffff; transform: rotate(-45deg); } } @@ -257,7 +245,6 @@ height: 100%; display: flex; flex-direction: column; - } .body-head { @@ -276,7 +263,6 @@ } } - .head-title { border-radius: 24rpx 24rpx 0rpx 0rpx; // height: 162rpx; @@ -310,7 +296,7 @@ display: flex; .examination { - color: #0066FF; + color: #0066ff; .back-icon { position: relative; @@ -331,8 +317,8 @@ left: 25%; width: 40%; height: 40%; - border-top: 4rpx solid #0066FF; - border-left: 4rpx solid #0066FF; + border-top: 4rpx solid #0066ff; + border-left: 4rpx solid #0066ff; transform: rotate(135deg); } } @@ -345,7 +331,6 @@ padding-right: 16rpx; padding-top: 20rpx; padding-bottom: 245rpx; - } .body-tab { @@ -374,7 +359,7 @@ padding-top: 37rpx; justify-content: space-around; background-color: #ffffff; - border: 2rpx solid #E5E5E5; + border: 2rpx solid #e5e5e5; z-index: 1000; :deep(.uv-button-wrapper) { @@ -405,8 +390,6 @@ height: 30rpx; } - - .learn { color: #1dd17a; } @@ -419,4 +402,4 @@ font-weight: 600; color: #000000; } - \ No newline at end of file + diff --git a/src/pages/courseDetail/submit.vue b/src/pages/courseDetail/submit.vue index aebf1d67..6f4cee57 100644 --- a/src/pages/courseDetail/submit.vue +++ b/src/pages/courseDetail/submit.vue @@ -36,8 +36,7 @@ 提问 - @@ -74,7 +73,7 @@ const sliderChange = (event) => { formData.bbsGrade = event.detail.value } - + const submit = () => { if (formData.bbsContent === '') { if (formData.bbsTag == 'SUG') { @@ -87,9 +86,7 @@ common.msg('发表成功') setTimeout(() => { uni.$emit('refresh_comment_data') - if(from.value === 'study'){ - } else { - } + if (from.value === 'study') {} else {} common.navigateBack() }, 500) }) @@ -253,6 +250,7 @@ .back_div { // margin-right: 10rpx; padding: 15rpx; + // background-color: red; .back-icon { position: relative; diff --git a/src/pages/examination/components/dialog.vue b/src/pages/examination/components/dialog.vue new file mode 100644 index 00000000..e01a4d33 --- /dev/null +++ b/src/pages/examination/components/dialog.vue @@ -0,0 +1,116 @@ + + + + + \ No newline at end of file diff --git a/src/pages/examination/components/feedback.vue b/src/pages/examination/components/feedback.vue new file mode 100644 index 00000000..9240de2a --- /dev/null +++ b/src/pages/examination/components/feedback.vue @@ -0,0 +1,176 @@ + + + + + \ No newline at end of file diff --git a/src/pages/examination/index-old.vue b/src/pages/examination/index-old.vue deleted file mode 100644 index 335e4571..00000000 --- a/src/pages/examination/index-old.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/examination/index.vue b/src/pages/examination/index.vue index 8af7d10f..9f4760af 100644 --- a/src/pages/examination/index.vue +++ b/src/pages/examination/index.vue @@ -2,7 +2,7 @@ - + {{paperData.papersName}} @@ -23,7 +23,6 @@ :height="8"> - @@ -31,12 +30,12 @@ - + + :activeVoiceId="activeVoiceId" :voicePathValue="voicePathValue" + @subject_click="subject_click"> @@ -44,9 +43,9 @@ - + - + 答题卡 @@ -55,29 +54,33 @@ custom-style="color:#0066FF;borderRadius:16rpx;height:92rpx;" @click="button_tab(-1)"> - - + - - + + 答题卡 - - + + - + {{index + 1}} @@ -86,28 +89,32 @@ + @click="hand_in_paper_button_click()"> + + + + + + \ No newline at end of file diff --git a/src/pages/favorites/components/favorites-course.vue b/src/pages/favorites/components/favorites-course.vue index b799116c..da93fc50 100644 --- a/src/pages/favorites/components/favorites-course.vue +++ b/src/pages/favorites/components/favorites-course.vue @@ -1,47 +1,38 @@ @@ -101,6 +105,7 @@ import common from '@/common/common'; import TouchBtn from '@/pages/course/components/touchBtn.vue' import TalkingItem from './components/talking-item.vue'; + import PreviewVue from './components/preview.vue'; import { useSocketStore } from "@/store/socket.js" @@ -128,8 +133,12 @@ commonUploadVoiceFile } from "@/api/common.js" import { - queryHotQuestionApi + queryHotQuestionApi, + insertTraAskFeedback } from "@/api/dialog.js" + import Feedback from './components/feedback.vue' + import History from './components/history.vue' + const { statusBarHeight } = uni.getWindowInfo() @@ -141,6 +150,7 @@ SocketObj } = storeToRefs(socketStore) + const feedbackRef = ref() const userInfo = ref(getUserInfo()) const questionList = ref([ // '对公小程序开户流程?', @@ -275,7 +285,7 @@ return } if (commond === 'ASK-STOP') { - // console.log('停止回答标记!') + console.log('停止回答标记!') stopAnswerCallBack.value && stopAnswerCallBack.value(askData.value) setTimeout(() => { stopAnswerCallBack.value = null @@ -354,10 +364,18 @@ } const stopAnswerCallBack = ref(null) - const talkItemEvents = (type, data, id = '') => { + const talkItemEvents = ({type, data, id}) => { switch (type) { case 'reAnswer': console.log('重新提问回答') + // 停止获取 + sendMessage({ + "commond": 'ASK-STOP', + "body": { + reqBatch: reqBatch.value, + seqNo: seqNo.value, + } + }) sendMessage({ "commond": 'ASK', "body": data.askData @@ -369,14 +387,6 @@ // "body": $data // }) // } - // // 停止获取 - // sendMessage({ - // "commond": 'ASK-STOP', - // "body": { - // reqBatch: reqBatch.value, - // seqNo: seqNo.value, - // } - // }) break; case 'stop': console.log('停止获取数据') @@ -394,10 +404,17 @@ console.log('播放/暂停') activeVoiceTalkingItemId.value = id break; + case 'feedback': + feedbackRef.value.open(data) + break; default: break; } } + const historyRef = ref(null) + const showHistory = () => { + historyRef.value.open() + } const routerTo = (type) => { switch (type) { case 'AI学': @@ -546,8 +563,10 @@ return } }) + const previewRef = ref() onMounted(() => { loadData() + // previewRef.value.open() }) const refreshData = () => { @@ -558,12 +577,14 @@ const setHeight = (res) => { keyboardHeight.value = res.height +'px' } + //#ifdef APP-PLUS onHide(() => { uni.offKeyboardHeightChange(setHeight) }) onShow(() => { uni.onKeyboardHeightChange(setHeight) }) + // #endif onUnload(() => { watchFlag.value = 1 socketStore?.closeSocket() diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 58edb5d9..92e0d127 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -89,11 +89,11 @@ AI问答 - + AI陪练 - + 学习任务 @@ -130,7 +130,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -389,8 +389,8 @@ common.navigateTo('/pages/search/search') } // 进入课程详情页 - const goto_course_detail = (crsNum) => { - common.navigateTo('/pages/courseDetail/index?crsNum=' + crsNum) + const goto_course_detail = (crsId) => { + common.navigateTo('/pages/courseDetail/index?crsId=' + crsId) } const scrolltolower = () => { common.navigateTo('/pages/index/dialog', { diff --git a/src/pages/learningTasks/components/list-item.vue b/src/pages/learningTasks/components/list-item.vue new file mode 100644 index 00000000..111f74ef --- /dev/null +++ b/src/pages/learningTasks/components/list-item.vue @@ -0,0 +1,232 @@ + + + + \ No newline at end of file diff --git a/src/pages/learningTasks/details.vue b/src/pages/learningTasks/details.vue new file mode 100644 index 00000000..02409e35 --- /dev/null +++ b/src/pages/learningTasks/details.vue @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/src/pages/learningTasks/index.vue b/src/pages/learningTasks/index.vue new file mode 100644 index 00000000..5165d05e --- /dev/null +++ b/src/pages/learningTasks/index.vue @@ -0,0 +1,208 @@ + + + + + \ No newline at end of file diff --git a/src/pages/messageNotification/index.vue b/src/pages/messageNotification/index.vue index 7cc98cf3..e3a17740 100644 --- a/src/pages/messageNotification/index.vue +++ b/src/pages/messageNotification/index.vue @@ -15,36 +15,34 @@ suffixIcon="search" :customStyle="customStyle" :suffixIconStyle="suffixIconStyle"> - - 下拉显示 + + v-for="(item, index) in data_list"> - + - 新任务提醒 + {{item.noticeTitle}} - 2025-05-05 + {{item.ctTime.substr(0, 16)}} - - 您的学习任务 + + {{item.noticeContent}} - {{item}} + @@ -70,8 +68,9 @@ onLoad } from '@dcloudio/uni-app' import { - queryTraCrsBbsInfoByCrsId - } from '@/api/courseDetail.js'; + queryTraPersonalMessageNoticePaging + } from '@/api/messageNotification.js'; + const customStyle = { backgroundColor: "#ffffff", paddingLeft: "40rpx", @@ -135,8 +134,7 @@ console.log(status.value, '阿斯顿撒'); setTimeout(() => { - queryTraCrsBbsInfoByCrsId({ - crsId: 'CRS0250181220722025070408313900000018729', + queryTraPersonalMessageNoticePaging({ page: page.value, limit: limit }).then(res => { diff --git a/src/pages/preview/index.vue b/src/pages/preview/index.vue index f9f00e34..0e8e0d65 100644 --- a/src/pages/preview/index.vue +++ b/src/pages/preview/index.vue @@ -13,7 +13,7 @@ :scrollable="false" line-color="#0066FF" :inactive-style="{ color: '#333333', fontSize: '30rpx', fontWeight:'600'}" :activeStyle="{color:'#0066FF',fontSize:'30rpx', fontWeight:'600'}" - :lineColor="`url(${lineBg}) 10% 10%`"> + :lineColor="`url(${LineBg}) 10% 10%`"> @@ -48,8 +48,9 @@ } from '@/api/courseDetail.js'; import common from '@/common/common'; const statusBarHeight = uni.getSystemInfoSync().statusBarHeight; - const lineBg = - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAABL0lEQVQ4T6XSv0uCURTG8e9jgpRNDS1BU1sELUFLQVM1tgQFtcR7A8m1LQqaLGhOkQKH/o5aKiiHlgiE0K1oCYLAMk9ov/RF8e313u2ew4dzzzmi2+NsA9gH3hCr6srzbAJxDkS/nbvwYNJilMkDow1FXYUHneWAlV/MqN3ZcKCzHWDb164MGa3/H/Qshdj0YbdUmORIL8HBNRsgShZjoQkznvioY/e19wCgCccSsAcM+bBnjHmyuvx5bw8mrJ93FoEkYrzFej0g5kjrpjH2BTrro8oIYhgYQ0xhTCPibfb0ggjLHKrojwvPEogDIBZgycsYKQrscqpKq3zh7BXo7YBVgRMibLWqqvnLzh6BwTZgESNHD8edoL+hOJupT9CII0oYJcQ14oy0CgHa0JTyCeBLVNeWygE5AAAAAElFTkSuQmCC"; + import { + LineBg + } from '@/enum.js' const courseRef = ref(null); const aiSparringRef = ref(null); const tabAct = ref(0); diff --git a/src/pages/testingHall/details.vue b/src/pages/testingHall/details.vue index b7f66dd4..a9cbe84d 100644 --- a/src/pages/testingHall/details.vue +++ b/src/pages/testingHall/details.vue @@ -11,7 +11,6 @@ 已完成 {{detailData.papersName}} - 起止时间: - 20 + {{allNumber}} - 100 + {{allGrade}} @@ -162,7 +161,8 @@ onLoad } from '@dcloudio/uni-app'; import { - reactive + reactive, + computed } from 'vue' import { startTraExamPapersInfo @@ -177,33 +177,38 @@ examEndTm: '', execPersionNumer: '', planPersionNumber: '', + judgeNumber: 0, + singleNumber: 0, + multiNumber: 0, + essayNumber: 0, + judgeGrade: 0, + singleGrade: 0, + multiGrade: 0, + essayGrade: 0, }) const customStyle = { backgroundColor: '#0066FF', border: '1px solid rgb(12, 123, 245)', } + const allNumber = computed(() => detailData.judgeNumber + detailData.singleNumber + detailData.multiNumber + detailData.essayNumber) + const allGrade = computed(() => detailData.judgeGrade + detailData.singleGrade + detailData.multiGrade + detailData.essayGrade) const goto_examination = async () => { common.loading() startTraExamPapersInfo({ - examId : "1" + examId : detailData.examId }).then(res => { - setPageCache('examination', res.body) + setPageCache('examination', {...res.body, examId:detailData.examId}) common.navigateTo('/pages/examination/index') }).finally(() => { common.hideLoading() }) - // papersId.value = e.papersId - // paperData.value = setPageCache('examination_'+papersId.value) - // if (!papersId.value || !paperData.value) { - // common.navigateBack() - // return - // } } onLoad((e) => { const testing_hall_details = getPageCache('testing_hall_details') Object.assign(detailData, { ...testing_hall_details }) + console.log('detailData', detailData); }) diff --git a/src/pages/testingHall/index.vue b/src/pages/testingHall/index.vue index 8b2453cd..730312a3 100644 --- a/src/pages/testingHall/index.vue +++ b/src/pages/testingHall/index.vue @@ -9,8 +9,7 @@ + v-model="searchText" @confirm="search"> @@ -18,18 +17,21 @@ + :lineColor="`url(${LineBg}) 10% 10%`"> - + - + - + - + @@ -47,7 +49,9 @@ import { onLoad } from '@dcloudio/uni-app' - import {setPageCache} from '@/common/common'; + import { + setPageCache + } from '@/common/common'; import common from '@/common/common'; const customStyle = { backgroundColor: "#F1F5FA", @@ -63,9 +67,9 @@ } const statusBarHeight = uni.getSystemInfoSync().statusBarHeight; - const lineBg = - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAABL0lEQVQ4T6XSv0uCURTG8e9jgpRNDS1BU1sELUFLQVM1tgQFtcR7A8m1LQqaLGhOkQKH/o5aKiiHlgiE0K1oCYLAMk9ov/RF8e313u2ew4dzzzmi2+NsA9gH3hCr6srzbAJxDkS/nbvwYNJilMkDow1FXYUHneWAlV/MqN3ZcKCzHWDb164MGa3/H/Qshdj0YbdUmORIL8HBNRsgShZjoQkznvioY/e19wCgCccSsAcM+bBnjHmyuvx5bw8mrJ93FoEkYrzFej0g5kjrpjH2BTrro8oIYhgYQ0xhTCPibfb0ggjLHKrojwvPEogDIBZgycsYKQrscqpKq3zh7BXo7YBVgRMibLWqqvnLzh6BwTZgESNHD8edoL+hOJupT9CII0oYJcQ14oy0CgHa0JTyCeBLVNeWygE5AAAAAElFTkSuQmCC"; - + import { + LineBg + } from '@/enum.js' const contentRef = ref(null); const tabAct = ref(0); const searchText = ref(''); @@ -76,7 +80,7 @@ }, { name: '未完成' }]); - + const contentRefs = ref([]) const status = ref('loadmore') // loadmore - 加载前,loading - 加载中,nomore - 没有数据 const limit = 15 @@ -101,12 +105,9 @@ common.navigateTo('/pages/testingHall/details'); } onMounted(() => { - + triggered.value = true watch(tabAct, (newValue, oldValue) => { - console.log('resresresresresxxxxxxxxxx', contentRefs.value); - console.log('resresresresresxxxxxxxxxx', newValue); - console.log('resresresresresxxxxxxxxxx', contentRefs.value[newValue]); typeof contentRefs.value[newValue]?.getData === 'function' && contentRefs.value[newValue] ?.getData('first') }, { @@ -209,7 +210,7 @@ width: 90%; margin: 20rpx auto; height: 78rpx; - + position: relative; .search_div { diff --git a/src/pages/wrong_question_record/components/favorites-course.vue b/src/pages/wrong_question_record/components/favorites-course.vue index 8b39db1d..f02e3e44 100644 --- a/src/pages/wrong_question_record/components/favorites-course.vue +++ b/src/pages/wrong_question_record/components/favorites-course.vue @@ -47,6 +47,9 @@ import { queryTraCrsBbsInfoByCrsId } from '@/api/courseDetail.js'; + import { + queryTraMistakesCollectionPaging, + } from '@/api/wrong_question_record.js'; const getData = (from = '') => { if (from == 'first') { if (total.value !== -1) { @@ -64,8 +67,8 @@ console.log(status.value, '阿斯顿撒'); setTimeout(() => { - queryTraCrsBbsInfoByCrsId({ - crsId: 'CRS0250181220722025070408313900000018729', + queryTraMistakesCollectionPaging({ + isCorrect: 'N', page: page.value, limit: limit }).then(res => { diff --git a/src/pages/wrong_question_record/index.vue b/src/pages/wrong_question_record/index.vue index a6604e73..74fe2eb7 100644 --- a/src/pages/wrong_question_record/index.vue +++ b/src/pages/wrong_question_record/index.vue @@ -43,12 +43,15 @@ } from 'vue'; import { LineBg - } from '@/enum.js'; + } from '@/enum.js' import { queryTraCrsBbsInfoByCrsId, replyTraCrsBbsInfo, qryChildTraCrsBbsInfo } from '@/api/courseDetail.js'; + + + import common from '@/common/common'; const statusBarHeight = uni.getSystemInfoSync().statusBarHeight; diff --git a/src/pagesA.json b/src/pagesA.json index 9b2725d7..c51e8aeb 100644 --- a/src/pagesA.json +++ b/src/pagesA.json @@ -135,6 +135,15 @@ } } }, + { + "path": "pages/examination/result", + "style": { + "navigationBarTitleText": "考试结果", + "app-plus": { + "titleNView": false + } + } + }, { "path": "pages/practice/index", "style": { @@ -143,7 +152,24 @@ "titleNView": false } } - } - + }, + { + "path": "pages/learningTasks/index", + "style": { + "navigationBarTitleText": "学习任务", + "app-plus": { + "titleNView": false + } + } + }, + { + "path": "pages/learningTasks/details", + "style": { + "navigationBarTitleText": "学习详情", + "app-plus": { + "titleNView": false + } + } + }, ] } \ No newline at end of file diff --git a/src/static/images/dialog/history-icon.png b/src/static/images/dialog/history-icon.png new file mode 100644 index 00000000..6b0d333f Binary files /dev/null and b/src/static/images/dialog/history-icon.png differ diff --git a/src/static/images/examination/bg2@2x.png b/src/static/images/examination/bg2@2x.png new file mode 100644 index 00000000..b237623a Binary files /dev/null and b/src/static/images/examination/bg2@2x.png differ diff --git a/src/static/images/examination/duration-icon.png b/src/static/images/examination/duration-icon.png new file mode 100644 index 00000000..464f0bd5 Binary files /dev/null and b/src/static/images/examination/duration-icon.png differ diff --git a/src/static/images/examination/examination-icon.png b/src/static/images/examination/examination-icon.png new file mode 100644 index 00000000..2b93e371 Binary files /dev/null and b/src/static/images/examination/examination-icon.png differ diff --git a/src/static/images/examination/getting_in.gif b/src/static/images/examination/getting_in.gif new file mode 100644 index 00000000..5937cebe Binary files /dev/null and b/src/static/images/examination/getting_in.gif differ diff --git a/src/static/images/examination/getting_robot.png b/src/static/images/examination/getting_robot.png new file mode 100644 index 00000000..4404c935 Binary files /dev/null and b/src/static/images/examination/getting_robot.png differ diff --git a/src/static/images/examination/qualified.png b/src/static/images/examination/qualified.png new file mode 100644 index 00000000..dfb3e5a2 Binary files /dev/null and b/src/static/images/examination/qualified.png differ diff --git a/src/static/images/examination/unqualified.png b/src/static/images/examination/unqualified.png new file mode 100644 index 00000000..61f3315f Binary files /dev/null and b/src/static/images/examination/unqualified.png differ diff --git a/src/static/images/messageNotification/type_2.png b/src/static/images/messageNotification/type_01.png similarity index 100% rename from src/static/images/messageNotification/type_2.png rename to src/static/images/messageNotification/type_01.png diff --git a/src/static/images/messageNotification/type_5.png b/src/static/images/messageNotification/type_02.png similarity index 100% rename from src/static/images/messageNotification/type_5.png rename to src/static/images/messageNotification/type_02.png diff --git a/src/static/images/messageNotification/type_1.png b/src/static/images/messageNotification/type_03.png similarity index 100% rename from src/static/images/messageNotification/type_1.png rename to src/static/images/messageNotification/type_03.png diff --git a/src/uni_modules/uv-grid/changelog.md b/src/uni_modules/uv-grid/changelog.md new file mode 100644 index 00000000..8c612618 --- /dev/null +++ b/src/uni_modules/uv-grid/changelog.md @@ -0,0 +1,21 @@ +## 1.0.9(2023-12-06) +1. 优化 +## 1.0.8(2023-12-06) +1. 阻止事件冒泡问题 +## 1.0.7(2023-10-13) +1. unmounted兼容vue3 +## 1.0.6(2023-08-14) +1. 修复初始的时候闪动的BUG +## 1.0.5(2023-06-22) +1. 优化修改 +## 1.0.4(2023-06-21) +1. 修复BUG +## 1.0.3(2023-06-01) +1. 修复点击触发两次事件的BUG +## 1.0.2(2023-05-23) +1. 优化 +## 1.0.1(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.0(2023-05-10) +uv-grid 宫格布局 diff --git a/src/uni_modules/uv-grid/components/uv-grid-item/props.js b/src/uni_modules/uv-grid/components/uv-grid-item/props.js new file mode 100644 index 00000000..6b86298a --- /dev/null +++ b/src/uni_modules/uv-grid/components/uv-grid-item/props.js @@ -0,0 +1,15 @@ +export default { + props: { + // 宫格的name + name: { + type: [String, Number, null], + default: null + }, + // 背景颜色 + bgColor: { + type: String, + default: 'transparent' + }, + ...uni.$uv?.props?.gridItem + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-grid/components/uv-grid-item/uv-grid-item.vue b/src/uni_modules/uv-grid/components/uv-grid-item/uv-grid-item.vue new file mode 100644 index 00000000..9412852d --- /dev/null +++ b/src/uni_modules/uv-grid/components/uv-grid-item/uv-grid-item.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/src/uni_modules/uv-grid/components/uv-grid/props.js b/src/uni_modules/uv-grid/components/uv-grid/props.js new file mode 100644 index 00000000..d5f8474d --- /dev/null +++ b/src/uni_modules/uv-grid/components/uv-grid/props.js @@ -0,0 +1,20 @@ +export default { + props: { + // 分成几列 + col: { + type: [String, Number], + default: 3 + }, + // 是否显示边框 + border: { + type: Boolean, + default: false + }, + // 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 + align: { + type: String, + default: 'left' + }, + ...uni.$uv?.props?.grid + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-grid/components/uv-grid/uv-grid.vue b/src/uni_modules/uv-grid/components/uv-grid/uv-grid.vue new file mode 100644 index 00000000..0314b184 --- /dev/null +++ b/src/uni_modules/uv-grid/components/uv-grid/uv-grid.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/uni_modules/uv-grid/package.json b/src/uni_modules/uv-grid/package.json new file mode 100644 index 00000000..0c933795 --- /dev/null +++ b/src/uni_modules/uv-grid/package.json @@ -0,0 +1,88 @@ +{ + "id": "uv-grid", + "displayName": "uv-grid 宫格布局 全面兼容vue3+2、app、h5、小程序等多端", + "version": "1.0.9", + "description": "uv-grid 宫格组件一般用于同时展示多个同类项目的场景,可以给宫格的项目设置徽标组件(badge),或者图标等,也可以扩展为左右滑动的轮播形式。", + "keywords": [ + "uv-grid", + "uvui", + "uv-ui", + "宫格布局", + "grid" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [ + "uv-ui-tools", + "uv-icon" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-grid/readme.md b/src/uni_modules/uv-grid/readme.md new file mode 100644 index 00000000..cd13cefd --- /dev/null +++ b/src/uni_modules/uv-grid/readme.md @@ -0,0 +1,17 @@ +## Grid 宫格布局 + +> **组件名:uv-grid** + +宫格组件一般用于同时展示多个同类项目的场景,可以给宫格的项目设置徽标组件(badge),或者图标等,也可以扩展为左右滑动的轮播形式。 + +# 查看文档 + +### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui) + + + +![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png) + + + +#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群 \ No newline at end of file