diff --git a/src/api/learningTasks.js b/src/api/learningTasks.js index 63794ae1..293dfee6 100644 --- a/src/api/learningTasks.js +++ b/src/api/learningTasks.js @@ -6,7 +6,16 @@ export const queryAllTraTaskInfoByUserId = (data) => { return request({ url: base_url + '/traTaskInfo/queryAllTraTaskInfoByUserId', method: 'post', - toastErrors: true, + data + }); +}; + + +// 查询当前用户的课程完成情况 +export const queryAllTraTaskCrsInfo = (data) => { + return request({ + url: base_url + '/traTaskInfo/queryAllTraTaskCrsInfo', + method: 'post', data }); }; diff --git a/src/api/wrong_question_record.js b/src/api/wrongQuestionRecord.js similarity index 100% rename from src/api/wrong_question_record.js rename to src/api/wrongQuestionRecord.js diff --git a/src/common/imgSvg.ts b/src/common/imgSvg.ts index c48d3853..2a9bf5d9 100644 --- a/src/common/imgSvg.ts +++ b/src/common/imgSvg.ts @@ -48,3 +48,12 @@ export const completeTheExercisesIcon = (color: string) : string => { `.trim(); return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`; }; + +// 锁定 +export const lockIcon = (color: string) : 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 03e8cc6a..240788dd 100644 --- a/src/components/examination/characters-subject.vue +++ b/src/components/examination/characters-subject.vue @@ -2,17 +2,17 @@ - {{subject_type_text}} - - - 5分 - - - + {{ subject_type_text }} + 5分 + - + @@ -37,21 +31,21 @@ required: false, }, my_answer: { - type: Array, - required: true, - }, - backend_answer: { - type: Array, - required: true, - }, + type: String, + defauft:'' + } }); const select_status = computed(() => { - if (props.backend_answer.length === 0) { - return (props.my_answer||[]).includes(props.analysisVo.itemId) ? 'primary' : 'info'; - } else { - return (props.my_answer||[]).includes(props.analysisVo.itemId) ? 'success' : - 'error'; - } + // 只要是正确答案 就是绿色 + if (props.analysisVo.correctFlag === 'R') return 'success'; + // 是错误答案但是被用户错误选中的为红 + console.log('props.my_answer', props.my_answer); + const my_answer_array = props.my_answer.split(','); + if(my_answer_array.includes(props.analysisVo.itemId) && props.analysisVo.correctFlag === 'E') return 'error'; + // 只有被我选中,不知是正确还是错误的为蓝 + if(my_answer_array.includes(props.analysisVo.itemId)) return 'primary'; + // 什么都不是者为灰色 + return 'info'; }) const select_status_icon = computed(() => { if (select_status.value === 'primary') { @@ -65,7 +59,6 @@ }) const click_option = () => { emit('click_option', props.analysisVo) - } diff --git a/src/components/examination/radio-subject.vue b/src/components/examination/radio-subject.vue index a1c85507..ebd56cfc 100644 --- a/src/components/examination/radio-subject.vue +++ b/src/components/examination/radio-subject.vue @@ -24,7 +24,7 @@ + :analysisVo="analysisVo" :my_answer="props.item.my_answer"> @@ -81,8 +81,6 @@ qnsTyp: '', itemVos: props.item.itemVos.map(res => ({ ...res, - // 选择状态, 'info表示未选' , primary 表示蓝色, sunccess 表示绿色, error 表示红色 - select_status: 'info' })), }) Object.assign(subject_data, { @@ -95,21 +93,21 @@ const subject_type_text = computed(() => SUBJECT_TYPE.find(res => subject_data.qnsTyp === res.value)?.label || '') // 点击答题 const click_option = (analysisVo) => { - // // 无论什么类型如果表里已经有了,再次点击就是弹出 - if (props.item.my_answer.includes(analysisVo.itemId)) { - props.item.my_answer = props.item.my_answer.filter(id => id !== analysisVo.itemId); - } else if (props.item.qnsTyp === 'SN') { // 单选 - // 单选插入,并且移除其他 - props.item.my_answer[0] = analysisVo.itemId - muCheckbox() - } else if (props.item.qnsTyp === 'MU') { // 多选题 - // 多选直接插入 - props.item.my_answer.push(analysisVo.itemId) - } else if (props.item.qnsTyp === 'JD') { // 判断题 - // 判断插入,并且移除其他 - props.item.my_answer = [analysisVo.itemId] - muCheckbox() - } + // // // 无论什么类型如果表里已经有了,再次点击就是弹出 + // if (props.item.my_answer.includes(analysisVo.itemId)) { + // props.item.my_answer = props.item.my_answer.filter(id => id !== analysisVo.itemId); + // } else if (props.item.qnsTyp === 'SN') { // 单选 + // // 单选插入,并且移除其他 + // props.item.my_answer[0] = analysisVo.itemId + // muCheckbox() + // } else if (props.item.qnsTyp === 'MU') { // 多选题 + // // 多选直接插入 + // props.item.my_answer.push(analysisVo.itemId) + // } else if (props.item.qnsTyp === 'JD') { // 判断题 + // // 判断插入,并且移除其他 + // props.item.my_answer = [analysisVo.itemId] + // muCheckbox() + // } } const muCheckbox = () => { emit('subject_click', 'answer', { diff --git a/src/components/examination/subject.vue b/src/components/examination/subject.vue new file mode 100644 index 00000000..abd58d6a --- /dev/null +++ b/src/components/examination/subject.vue @@ -0,0 +1,213 @@ + + + + \ No newline at end of file diff --git a/src/components/examination/touchBtn.vue b/src/components/examination/touchBtn.vue index 14644e75..ae943aac 100644 --- a/src/components/examination/touchBtn.vue +++ b/src/components/examination/touchBtn.vue @@ -154,6 +154,7 @@ }; onMounted(async () => { + // #ifdef APP-PLUS recorderManager.onStop(function (res) { console.log('recorder stop' + JSON.stringify(res)); console.log('录音文件临时位置', res.tempFilePath, isOut.value); @@ -177,6 +178,7 @@ startTime = Date.now(); recordingStatus.value = 'in_recording'; }); + // #endif }); const touchY = ref(0); diff --git a/src/components/topic-display/topic-display.vue b/src/components/topic-display/topic-display.vue index fbc7eb26..c5801d9e 100644 --- a/src/components/topic-display/topic-display.vue +++ b/src/components/topic-display/topic-display.vue @@ -1,63 +1,120 @@ - \ No newline at end of file + + .item { + // height: 170rpx; + border-radius: 16rpx; + margin: 12rpx 0 50rpx 0; + padding: 34rpx 30rpx 34rpx 36rpx; + background-color: #fff; + display: flex; + flex-direction: column; + + .top { + display: flex; + align-items: center; + + .type { + width: 108rpx; + height: 46rpx; + background: #267eff; + border-radius: 8rpx; + font-family: PingFangSC; + font-weight: 500; + font-size: 25rpx; + color: #ffffff; + text-align: center; + line-height: 46rpx; + } + + .score { + margin-left: 24rpx; + font-family: ArialMT; + font-size: 30rpx; + color: #333333; + text-align: left; + } + + .right { + display: flex; + align-items: center; + + .right_text { + font-family: PingFangSC; + font-weight: 600; + font-size: 28rpx; + color: #333; + line-height: 40rpx; + text-align: left; + font-style: normal; + } + } + } + + .text { + font-family: PingFangSC; + font-weight: 500; + font-size: 30rpx; + color: #333333; + line-height: 48rpx; + text-align: left; + font-style: normal; + margin-top: 20rpx; + } + } + diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue index 4716f34b..133a1c24 100644 --- a/src/pages/courseDetail/index.vue +++ b/src/pages/courseDetail/index.vue @@ -104,7 +104,7 @@ 发布评价 diff --git a/src/pages/courseDetail/submit.vue b/src/pages/courseDetail/submit.vue index 6f4cee57..4869339b 100644 --- a/src/pages/courseDetail/submit.vue +++ b/src/pages/courseDetail/submit.vue @@ -62,7 +62,7 @@ import common from '@/common/common'; const formData = reactive({ - "crsNum": null, + "crsId": null, "imgIdList": [], // 发表图片ID列表,文件ID集 "bbsGrade": 10, // 综合评分(最高10分) "bbsTag": 'SUG', // 评价标签 (SUG 建议 ASK 提问 ) @@ -92,7 +92,7 @@ }) } onLoad((params) => { - formData.crsNum = params.crsNum; + formData.crsId = params.crsId; from.value = params.from; imgId.value = params.imgId; }); diff --git a/src/pages/examination/index.vue b/src/pages/examination/index.vue index 9f4760af..f858381f 100644 --- a/src/pages/examination/index.vue +++ b/src/pages/examination/index.vue @@ -3,15 +3,16 @@ - {{paperData.papersName}} + {{ paperData.papersName }} - 答题进度 {{questionNumber + 1}}/{{topicList.length}} + 答题进度 + {{ questionNumber + 1 }} + /{{ topicList.length }} 剩余时间 @@ -19,164 +20,178 @@ - + - - + + - - - + - + 答题卡 - - - + + + @click="button_tab(1)" + > - - + + - + - - 答题卡 - + 答题卡 - + - {{index + 1}} + {{ index + 1 }} - + @click="hand_in_paper_button_click()" + > - - - + \ No newline at end of file + diff --git a/src/pages/examination/result.vue b/src/pages/examination/result.vue index dd179f64..234a4913 100644 --- a/src/pages/examination/result.vue +++ b/src/pages/examination/result.vue @@ -2,56 +2,60 @@ - - 考试结算 - + 考试结算 - - + 得分 - -- - 40 - 50 - + -- + {{ result.examGrade }} + {{ result.examGrade }} - 失败乃成功之母,继续努力 - 考的不错啊,继续加油 - 考试结果计算中... - + 失败乃成功之母,继续努力 + 考的不错啊,继续加油 + 考试结果计算中... + - - - - + + + + @@ -59,41 +63,44 @@ - - - - - 考试:这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称这里是考试名称 + + 考试:{{ result.papersName }} - - + - 时长:12 分 15 秒 - - - + + 时长:{{ result.examLenTm }} + 考试排行榜 - - - - + + - + {{ groupIndex * 10 + index + 1 }} @@ -101,70 +108,57 @@ - - + - - + - - 你的等待会有更精确的结果,要耐心哦~ - + 你的等待会有更精确的结果,要耐心哦~ - - - - - - - 单选题 + - - - 属于商业银行风险管理“三道防线”的哪些风险管理部门,为什么? - - - - + + + + 属于商业银行风险管理“三道防线”的哪些风险管理部门,为什么? + + + --> + + + + - @@ -223,15 +222,11 @@ $bg-margin-left: 30rpx; .scroll-Y { - // max-height: calc(100vh - var(--status-bar-height) - 70rpx - 70rpx - 40rpx - 64rpx - 68rpx - 60rpx); height: calc(100vh - var(--status-bar-height) - 70rpx - 10rpx); // background-color: red; - } - - .item { border-radius: 16rpx; margin: 18rpx 0; @@ -247,12 +242,12 @@ .type { width: 108rpx; height: 46rpx; - background: #267EFF; + background: #267eff; border-radius: 8rpx; font-family: PingFangSC; font-weight: 500; font-size: 25rpx; - color: #FFFFFF; + color: #ffffff; text-align: center; line-height: 46rpx; } @@ -278,7 +273,6 @@ text-align: left; font-style: normal; } - } } @@ -292,11 +286,10 @@ font-style: normal; margin-top: 20rpx; } - } - .sticky {} - + .sticky { + } .sheet_table_div_fixed { position: absolute; @@ -318,9 +311,9 @@ z-index: 600; background-color: #fff; } - + .sheet_swiper { - height: 230rpx; + // max-height: 230rpx; } .swiper-dots { @@ -339,41 +332,40 @@ display: flex; align-items: center; justify-content: center; - border: 2rpx solid #E5E5E5; + border: 2rpx solid #e5e5e5; margin: 20rpx; } .current { background-color: rgba(0, 102, 255, 0.6); - border-color: #0066FF; - color: #FFFFFF; + border-color: #0066ff; + color: #ffffff; } .completed { // 已完成 background-color: rgba(0, 102, 255, 0.1); - border-color: #0066FF; - color: #0066FF; + border-color: #0066ff; + color: #0066ff; } .mark, .completed.mark { background-color: rgba(232, 181, 49, 0.1); - color: #E8B531; - border-color: #E8B531; + color: #e8b531; + border-color: #e8b531; } .current.mark { // 已完成 background-color: rgba(0, 102, 255, 0.6); - color: #FFFFFF; - border-color: #E8B531; + color: #ffffff; + border-color: #e8b531; } } // 主内容框 .main-div { - display: flex; flex-direction: column; padding: 34rpx 0 30rpx 0; @@ -419,13 +411,10 @@ font-style: normal; } } - - } // 信息框 .information-details-div { - display: flex; flex-direction: column; padding: 34rpx 20rpx 30rpx 48rpx; @@ -433,15 +422,18 @@ border-radius: 16rpx; position: relative; background-color: #fff; - opacity: .8; + opacity: 0.8; box-shadow: 2rpx -2rpx 2rpx #fff; - &>.top { + & > .top { display: flex; justify-content: space-between; - &>.left { - &>.top { + & > .left { + display: flex; + flex-direction: column; + justify-content: space-between; + & > .top { font-family: PingFangSC; font-weight: 700; font-size: 34rpx; @@ -451,17 +443,18 @@ font-style: normal; } - &>.mid { + & > .mid { font-weight: 700; font-size: 66rpx; line-height: 66rpx; text-align: left; font-style: normal; - margin-top: 34rpx; - margin-bottom: 30rpx; + height: 100rpx; + // margin-top: 34rpx; + // margin-bottom: 30rpx; } - &>.bottom { + & > .bottom { display: flex; align-items: center; font-family: PingFangSC; @@ -471,18 +464,21 @@ line-height: 24rpx; text-align: left; font-style: normal; - } } - &>.right { + & > .right { margin-left: 20rpx; + .img_div { + .img { + width: 270rpx; + height: 190rpx; + } + } } - } - &>.bottom { - + & > .bottom { font-family: PingFangSC; font-weight: 400; font-size: 26rpx; @@ -517,7 +513,7 @@ .examination { display: flex; align-items: center; - color: #0066FF; + color: #0066ff; .back-icon { position: relative; @@ -538,8 +534,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); } } @@ -547,25 +543,23 @@ } .loading-pass { - color: #0066FF; + color: #0066ff; font-family: DINAlternate, DINAlternate; font-weight: bold; font-size: 65rpx; - color: #0066FF; - letter-spacing: 12rpx + color: #0066ff; + letter-spacing: 12rpx; } .no-pass { - color: #D70C18; + color: #d70c18; } .pass { - color: #0066FF; + color: #0066ff; } } - - .nav-div { position: relative; @@ -611,15 +605,14 @@ transform: rotate(-45deg); } } - } .main_div { display: flex; flex-direction: column; - background-color: #F0F5F9; + background-color: #f0f5f9; /* 添加30度角的斜向上渐变,高度限制为400px */ - background-image: linear-gradient(30deg, #F0F5F9, #EBF1FF); + background-image: linear-gradient(30deg, #f0f5f9, #ebf1ff); /* 渐变背景高度400px,宽度充满容器 */ background-size: 100% 600rpx; /* 防止渐变背景重复 */ @@ -629,4 +622,4 @@ overflow: hidden; position: relative; } - \ No newline at end of file + diff --git a/src/pages/learningTasks/components/list-item.vue b/src/pages/learningTasks/components/list-item.vue index 190d99dc..b5b49f9e 100644 --- a/src/pages/learningTasks/components/list-item.vue +++ b/src/pages/learningTasks/components/list-item.vue @@ -1,10 +1,10 @@