diff --git a/.env.development b/.env.development
index 97d27da0..298c7817 100644
--- a/.env.development
+++ b/.env.development
@@ -25,11 +25,12 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
# VITE_APP_BASE_H5_API_Url = 'https://aitstest.jlbank.com.cn:7001'
VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65:7001'
+#VITE_APP_BASE_H5_API_Url = 'http://25.18.122.116:7001'
# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.16.130:9601'
-VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602'
-VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.16.144:9605'
+# VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602'
+# VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.16.144:9605'
# 王洋洋
diff --git a/src/api/practice.js b/src/api/practice.js
index 81cc6c19..fb67031d 100644
--- a/src/api/practice.js
+++ b/src/api/practice.js
@@ -6,7 +6,6 @@ export const startPracticeByCrs = (data) => {
return request({
url: base_url + '/traCrsPractice/startPracticeByCrs',
method: 'post',
- toastErrors: true,
data
});
};
@@ -16,17 +15,16 @@ export const practiceAnswer = (data) => {
return request({
url: base_url + '/traCrsPractice/practiceAnswer',
method: 'post',
- toastErrors: true,
data
});
};
// 3.课程练习状态变更
-export const practiceCommit = (data) => {
+export const practiceCommit = (data, suppressErrors=true) => {
return request({
url: base_url + '/traCrsPractice/practiceCommit',
method: 'post',
- toastErrors: true,
+ suppressErrors: suppressErrors,
data
});
};
@@ -36,7 +34,6 @@ export const queryPracticeRecordByExrId = (data) => {
return request({
url: base_url + '/traCrsPractice/queryPracticeRecordByExrId',
method: 'post',
- toastErrors: true,
data
});
};
diff --git a/src/api/request.js b/src/api/request.js
index 4a45d1d3..34356a6e 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -61,8 +61,8 @@ export default function request({
data,
meta,
isStream,
- suppressErrors,
- toastErrors,
+ suppressErrors = false,
+ toastErrors = true,
header = {},
timeout = 6000,
baseUrl = ''
@@ -97,10 +97,9 @@ export default function request({
const res = response.data
if (res?.rtnCode === '0000') {
return resolve(res)
- } else {
- if (toastErrors) {
- common.msg(res?.message)
- }
+ } else if (toastErrors) {
+ // common.msg(res?.message)
+
}
//到这里下面全是异常的处理
if (suppressErrors) { // 静默的接口,报错也不处理,因为下面有公共处理
diff --git a/src/api/wrongQuestionRecord.js b/src/api/wrongQuestionRecord.js
index 26e60fef..dd4e9348 100644
--- a/src/api/wrongQuestionRecord.js
+++ b/src/api/wrongQuestionRecord.js
@@ -20,3 +20,24 @@ export const mistakesCorrect = (data) => {
data
});
};
+
+
+// 错题本id集合
+export const queryTraMistakesCollection = (data) => {
+ return request({
+ url: base_url + '/traMistakesCollection/queryTraMistakesCollection',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+// 根据ID查题
+export const queryMistakesAnswerByMisId = (data) => {
+ return request({
+ url: base_url + '/traMistakesCollection/queryMistakesAnswerByMisId ',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
\ No newline at end of file
diff --git a/src/common/imgSvg.ts b/src/common/imgSvg.ts
index 9e61a5c2..4dbf34f4 100644
--- a/src/common/imgSvg.ts
+++ b/src/common/imgSvg.ts
@@ -58,26 +58,11 @@ export const lockIcon = (color: string) : string => {
};
-// 学习时长
-export const studyDurationIcon = (color: string='#62A1FF') : string => {
+// 练习退出图标
+export const practiceExitIcon = () : string => {
const svgXml = `
-
+
`.trim();
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`;
};
-// 学习次数
-export const studyFrequencyIcon = (color: string='#62A1FF') : string => {
- const svgXml = `
-
-`.trim();
- return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`;
-};
-
-// 学习时间
-export const studyTimeIcon = (color: string='#958DFF') : string => {
- const svgXml = `
-
-`.trim();
- return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`;
-};
\ No newline at end of file
diff --git a/src/components/examination/es-analysis.vue b/src/components/examination/es-analysis.vue
index 6174f9f2..84e5bea3 100644
--- a/src/components/examination/es-analysis.vue
+++ b/src/components/examination/es-analysis.vue
@@ -3,20 +3,25 @@
维度评分:
{{ dimension_all_score }}
+
+
+
+
{{ item.gradeDimens }}:
{{ item.anlyGrade }}
-
+
-
diff --git a/src/components/examination/question.vue b/src/components/examination/question.vue
index e2562594..74b0ae3c 100644
--- a/src/components/examination/question.vue
+++ b/src/components/examination/question.vue
@@ -32,10 +32,18 @@
文
-
+
重答
-
+
完成
@@ -49,8 +57,16 @@
- 重答
- 完成
+
+ 重答
+
+
+ 完成
+
@@ -62,7 +78,7 @@
\ No newline at end of file
+
diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue
index c1dcf43c..ecef8d83 100644
--- a/src/pages/courseDetail/index.vue
+++ b/src/pages/courseDetail/index.vue
@@ -40,7 +40,7 @@
-
-
-
-
+
+
+
-
+
-
+
去学习
- 去练习
- 去考试
+ 去练习
+ 去考试
-
+
发布评价
@@ -138,16 +128,17 @@
import introduceVue from './components/introduce.vue';
import knowledge from './components/knowledge.vue';
import comment from './components/comment.vue';
+ import collectedImg from '@/static/images/courseDetail/out_collect.png';
+ import notCollectedImg from '@/static/images/courseDetail/in_collect.png';
const statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
// tab栏
const tabList = ref([{ name: '课程介绍' }, { name: '知识点' }, { name: '评价' }]);
- const test = ref(false);
const commentRef = ref(null);
- const tabsDiv = ref(null);
const form = ref({});
const crsId = ref('');
const collectId = ref(''); // 记录初始的收藏id
+ const isPreview = ref(''); // 记录是否是预览
const tabAct = ref(0);
const scrollTop = ref(0);
const tabSwitch = (item) => {
@@ -159,7 +150,7 @@
commentRef.value?.getData();
}
};
-
+
const getData = async () => {
const { body } = await getCourseDetailApi({
crsId: crsId.value
@@ -184,8 +175,8 @@
const opacity = Math.min(1, (scrollTop.value - 20) / 80);
return `rgba(255,255,255,${opacity})`;
});
- // 子组件滑动开启状态
- const childScrollStatus = ref(false);
+
+
const scroll_fun = (e) => {
scrollTop.value = e.detail.scrollTop;
};
@@ -193,8 +184,10 @@
const swiper_change = (res) => {
tabAct.value = res.detail.current;
};
+
// 去考试
const goto_examination = async () => {
+ if(isPreview.value === 'preview') return common.msg('预览课程不允许考试');
common.loading();
startExamByCrs({
crsId: crsId.value
@@ -213,6 +206,7 @@
};
// 去练习
const goto_practice = async () => {
+ if(isPreview.value === 'preview') return common.msg('预览课程不允许练习');
common.loading();
startPracticeByCrs({
crsId: crsId.value
@@ -230,7 +224,6 @@
common.hideLoading();
});
};
- // uni.$emit('refresh_comment_data');
const collect_click = async (id) => {
try {
if (!id) {
@@ -258,7 +251,6 @@
};
onMounted(async () => {
uni.$on('refresh_comment_data', () => {
- // console.log('发评论了刷新');
commentRef.value?.getData('submit');
tabAct.value = 2;
});
@@ -266,6 +258,7 @@
onLoad((params) => {
crsId.value = params.crsId;
collectId.value = params.collectId || '';
+ isPreview.value = params.isPreview || '';
});
onShow(() => {
getData();
diff --git a/src/pages/courseRecord/coursePracticeRecordDetail.vue b/src/pages/courseRecord/coursePracticeRecordDetail.vue
index 9b5ee32f..9a5c3f22 100644
--- a/src/pages/courseRecord/coursePracticeRecordDetail.vue
+++ b/src/pages/courseRecord/coursePracticeRecordDetail.vue
@@ -1,5 +1,6 @@
+
练习记录
@@ -116,6 +117,7 @@
}
.main_div {
+
display: flex;
flex-direction: column;
background-color: #f0f5f9;
diff --git a/src/pages/examination/components/dialog.vue b/src/pages/examination/components/dialog.vue
index 71e23d7e..79e9c611 100644
--- a/src/pages/examination/components/dialog.vue
+++ b/src/pages/examination/components/dialog.vue
@@ -30,7 +30,7 @@
const props = defineProps({
dialogConfiguration: {
type: Object,
- required: true,
+ required: false,
}
});
const emit = defineEmits(['button_click'])
@@ -45,13 +45,13 @@
}
const close = () => PopupRef.value?.close()
- const open = () => {
+ const open = (dialogConfiguration) => {
// 解构赋值更清晰
const {
title: t,
html: h,
buttonList: bl = []
- } = props.dialogConfiguration || {};
+ } = dialogConfiguration || props.dialogConfiguration || {};
title.value = t || '';
html.value = h || '';
buttonList.value = Array.isArray(bl) ? bl : [];
diff --git a/src/pages/examination/components/feedback.vue b/src/pages/examination/components/feedback.vue
index 290fed4b..af602101 100644
--- a/src/pages/examination/components/feedback.vue
+++ b/src/pages/examination/components/feedback.vue
@@ -92,7 +92,7 @@
const startTime = Date.now();
saveTraQnsFeedback({
qnsId: feedbackInfo.qnsId,
- fbComtent: feedbackInfo.text.trim(),
+ fbContent: feedbackInfo.text.trim(),
fbTyp: feedbackInfo.type.join(',')
})
.then(async (res) => {
diff --git a/src/pages/examination/index.vue b/src/pages/examination/index.vue
index c4c29919..e21cfd16 100644
--- a/src/pages/examination/index.vue
+++ b/src/pages/examination/index.vue
@@ -160,7 +160,7 @@
const touchBtnRef = ref(null);
let examinationStartTime = 0; // 考试开始时间
- const mode = ref('examination'); // 考试 examination 练习practice
+ const mode = 'examination'; // 考试 examination 练习practice
const paperData = reactive({
crsId: '', // 课程ID,通过课程id是否为空字符串判断这个试卷是课程考试还是考试中心考试
execId: '', // 执行ID
@@ -406,6 +406,7 @@
// 执行交卷
const hand_in_paper = () => {
const answerDtoList = topicList.map((res) => {
+ console.log('resres', res);
let answerItem = {
examId: paperData.examId,
papersId: paperData.papersId,
@@ -417,7 +418,9 @@
// 问答题特殊处理
return {
...answerItem,
- anserResult: ''
+ anserResult: res.my_answer.anserResult,
+ ossKey: res.my_answer.ossKey || '',
+ ossAddr: res.my_answer.ossAddr || ''
};
} else {
//其他题
@@ -427,7 +430,7 @@
};
}
});
-
+ console.log('提交的', answerDtoList);
console.log('answerDtoList', answerDtoList);
dialogRef.value.close();
common.loading('正在提交');
@@ -457,7 +460,7 @@
// 需要查分
const examLenTm = 678;
common.redirectTo(
- `/pages/examination/result?execId=${res.body.execId}&examLenTm=${examLenTm}&papersName=${paperData.papersName}&papersId=${paperData.papersId}&mode=${mode.value}&crsId=${paperData.crsId}`
+ `/pages/examination/result?execId=${res.body.execId}&examLenTm=${examLenTm}&papersName=${paperData.papersName}&papersId=${paperData.papersId}&mode=${mode}&crsId=${paperData.crsId}`
);
} else {
// todo 此处应该有个弹窗交代下结果
diff --git a/src/pages/learningTasks/details.vue b/src/pages/learningTasks/details.vue
index f0a4ee26..07c56692 100644
--- a/src/pages/learningTasks/details.vue
+++ b/src/pages/learningTasks/details.vue
@@ -53,7 +53,7 @@
- 试卷信息
+ 任务历程
-
+
@@ -56,8 +56,8 @@
我的积分
@@ -68,8 +68,8 @@
徽章墙
@@ -80,41 +80,34 @@
-
-
-
-
-
- 课程记录
-
+
+
+
+
+
+ 课程记录
+
-
-
-
- 考试记录
-
+
+
+
+ 考试记录
-
-
-
- 竞赛记录
-
+
+
+
+
+ AI陪练记录
-
-
-
- AI陪练记录
-
+
+
+
+
+ 竞赛记录
-
-
-
- AI问答记录
-
-
-
-
+
+
@@ -212,72 +205,7 @@
const accmTaskCntRef = ref(null);
const accmPointRef = ref(null);
const stdtTmLenRef = ref(null);
- const statistics_data = reactive({
- stdtTmLen: 0, // 累计学习时长
- accmTaskCnt: 0, // 累计完成任务
- accmPoint: 0, // 累计获得积分
- startStdtTmLen: 0, // 起始累计学习时长
- startAccmTaskCnt: 0, // 起始累计完成任务
- startAccmPoint: 0, // 起始累计获得积分
- request_time: 0, // 上次请求时间
- init: function () {
- // 初始化统计数据
- console.log('初始化统计数据');
- const me_statistics_data = common.getValue('statistics_data'); // 获取缓存
- if (me_statistics_data) {
- this.stdtTmLen = me_statistics_data.stdtTmLen;
- this.accmTaskCnt = me_statistics_data.accmTaskCnt;
- this.accmPoint = me_statistics_data.accmPoint;
- }
- },
- get_statistics_data: async function () {
- try {
- const time_now = Date.now();
- let statistics_data = common.getValue('statistics_data') || {};
- if (time_now - this.request_time > 300) {
- this.request_time = time_now;
- // 获取最新数据
- const res = await queryTraStdyStatisticsSelf();
- if (res && res.body) {
- // 合并新数据与缓存数据,确保只更新有效字段
- statistics_data = {
- ...statistics_data,
- stdtTmLen: res.body.stdtTmLen || 0,
- accmTaskCnt: res.body.accmTaskCnt || 0,
- accmPoint: res.body.accmPoint || 0
- };
- common.setValue('statistics_data', statistics_data);
- }
- }
-
- // 解构赋值获取最新值
- const { accmPoint = 0, accmTaskCnt = 0, stdtTmLen = 0 } = statistics_data;
-
- // 更新数据并触发动画
- if (accmPoint !== this.accmPoint) {
- this.startAccmPoint = this.accmPoint;
- this.accmPoint = accmPoint;
- accmPointRef.value?.start();
- }
-
- if (accmTaskCnt !== this.accmTaskCnt) {
- this.startAccmTaskCnt = this.accmTaskCnt;
- this.accmTaskCnt = accmTaskCnt;
- accmTaskCntRef.value?.start();
- }
-
- if (stdtTmLen !== this.stdtTmLen) {
- this.startStdtTmLen = this.stdtTmLen;
- this.stdtTmLen = stdtTmLen;
- stdtTmLenRef.value?.start();
- }
- } catch (error) {
- console.error('获取统计数据失败:', error);
- // 可以在这里添加更多的错误处理逻辑,比如显示错误提示
- }
- }
- });
const user_info = reactive({
userName: '',
userId: '',
@@ -302,16 +230,12 @@
common.reLaunch('/pages/login/login');
});
};
- onLoad(() => {
- statistics_data['init'](); // 初始化数据
- });
+ onLoad(() => {});
onShow(() => {
setMascot();
Object.assign(user_info, getUserInfo());
- statistics_data['get_statistics_data'](); // 获取统计数据
});
onPullDownRefresh(() => {
- console.log('下拉刷新');
uni.stopPullDownRefresh();
});
@@ -389,11 +313,12 @@
// 快捷导航栏
.navigation_div {
margin: 30rpx $bg-margin-left 0 $bg-margin-left;
- padding: 24rpx 0 0 20rpx;
+ // padding: 24rpx 0 0 20rpx;
+ padding: 24rpx 10rpx;
background-color: #ffffff;
border-radius: 23rpx;
display: flex;
- flex-direction: column;
+ // flex-direction: column;
justify-content: space-around;
z-index: 101;
@@ -541,15 +466,15 @@
top: 20%;
transform: translateX(-50%);
width: 1rpx;
- height: 60%;
- width: 4rpx;
- height: 54rpx;
- background: linear-gradient(
- to bottom,
- rgba(239, 246, 255, 0) 0%,
- rgba(229, 239, 255, 1) 30%,
- rgba(229, 239, 255, 1) 70%,
- rgba(239, 246, 255, 0) 100%
+ height: 60%;
+ width: 4rpx;
+ height: 54rpx;
+ background: linear-gradient(
+ to bottom,
+ rgba(239, 246, 255, 0) 0%,
+ rgba(229, 239, 255, 1) 30%,
+ rgba(229, 239, 255, 1) 70%,
+ rgba(239, 246, 255, 0) 100%
);
}
}
diff --git a/src/pages/messageNotification/index.vue b/src/pages/messageNotification/index.vue
index 68d17a31..8bae4cd6 100644
--- a/src/pages/messageNotification/index.vue
+++ b/src/pages/messageNotification/index.vue
@@ -9,18 +9,6 @@
-
-
-
+ > -->
+
@@ -96,22 +78,21 @@
import { onLoad } from '@dcloudio/uni-app';
import { queryTraPersonalMessageNoticePaging, readNotice, oneTimeRead } from '@/api/messageNotification.js';
import common from '../../common/common';
-
- const customStyle = {
- backgroundColor: '#ffffff',
- paddingLeft: '40rpx',
- height: '78rpx',
- paddingTop: '5px',
- paddingBottom: '5px',
- border: 'none'
+
+ import type_01 from '@/static/images/messageNotification/type_01.png';
+ import type_02 from '@/static/images/messageNotification/type_02.png';
+ import type_03 from '@/static/images/messageNotification/type_03.png';
+ import type_04 from '@/static/images/messageNotification/type_04.png';
+
+ const imageMap = {
+ '01': type_01,
+ '02': type_02,
+ '03': type_03,
+ '04': type_04,
};
- const suffixIconStyle = {
- color: '#2c8ef2',
- fontSize: '50rpx'
- };
-
+
const status = ref('loadmore'); // loadmore - 加载前,loading - 加载中,nomore - 没有数据
- const limit = 20;
+ const limit = 20;
const total = ref(-1);
const page = ref(0);
const data_list = reactive([]);
@@ -135,7 +116,7 @@
page.data_list.length = 0;
getData();
};
-
+
// 刷新处理函数
const onRefresh = () => {
if (_freshing.value) return;
@@ -317,7 +298,7 @@
.right {
margin-left: 16rpx;
flex: 1;
-
+ overflow: hidden;
.top {
display: flex;
justify-content: space-between;
@@ -356,6 +337,8 @@
text-align: left;
font-style: normal;
flex: 1;
+ width: 100%;
+ overflow: hidden;
}
.num_div {
diff --git a/src/pages/practice/index.vue b/src/pages/practice/index.vue
index a818c10a..71b96918 100644
--- a/src/pages/practice/index.vue
+++ b/src/pages/practice/index.vue
@@ -2,10 +2,12 @@
-
+
{{ paperData.name }}
-
+
+
+
@@ -39,6 +41,7 @@
:current="questionNumber"
easing-function="linear"
@transition="transition"
+ @animationfinish="animationfinish"
>
@@ -71,7 +74,7 @@
-
+
@@ -87,7 +90,7 @@
import common from '@/common/common';
import { setPageCache, formatSeconds, getPageCache, setupKeyboardHeightListener } from '@/common/common';
import { commonUploadVoiceFile } from '@/api/common.js';
- import { optionErrorIcon, examinationSheetIcon } from '@/common/imgSvg';
+ import { optionErrorIcon, examinationSheetIcon, practiceExitIcon } from '@/common/imgSvg';
import { practiceAnswer, practiceCommit, queryCrsPracticeAnswerResult } from '@/api/practice.js';
import { startExamByCrs } from '@/api/examination.js';
import { startPracticeByCrs } from '@/api/practice.js';
@@ -116,7 +119,6 @@
set: (val) => (topicList[questionNumber.value] = val)
});
- const isLastTopic = computed(() => topicList.length === questionNumber.value + 1);
const showTouchBtn = computed(() => {
return topic.value?.qnsTyp === 'ES';
});
@@ -134,8 +136,6 @@
const completed = questionNumber.value + 1;
return Math.min(Math.round((completed / total) * 10000) / 100, 100);
});
- // 弹出框配置
- const dialogConfiguration = reactive({});
// 滑动切换
const swiperChange = (item) => {
@@ -143,10 +143,20 @@
};
const isTriggered = ref(false); // 下面这个得防抖
// 滑动发生改变
+ const finishCurrent = ref(questionNumber.value);
+ // 滑动组件结束事件
+ const animationfinish = (event) => {
+ finishCurrent.value = event.detail.current;
+ };
+ // 判断是否滑动结束
+ const isLastTopic = computed(
+ () => topicList.length === finishCurrent.value + 1 && finishCurrent.value === questionNumber.value
+ );
+
const transition = (event) => {
if (isTriggered.value) return;
const dx = event.detail.dx;
- if (dx > 50 && isLastTopic.value && ['P', 'U'].includes(topic.value.judgeResult)) {
+ if (dx > 90 && dx < 250 && isLastTopic.value && ['P', 'U'].includes(topic.value.judgeResult)) {
// 如果是最后一题并且右滑动大于50,并且这题已经答了,就触发练习完成
isTriggered.value = true;
hand_in_paper_button_click();
@@ -222,7 +232,7 @@
const judgeResultStatus = traQnsInfoVo.judgeResult === 'P'; // P为正确U为错误
if (!addProblem()) {
// 返回false说明到了最后一题
- console.log('最后一题');
+ console.log('最后一题', topic.value.qnsTyp, !judgeResultStatus);
if (topic.value.qnsTyp === 'ES' || !judgeResultStatus) {
// 最后一题是问答题,或者答错了,都不自动弹出
return;
@@ -319,11 +329,9 @@
// 添加一道题
const addProblem = () => {
if (topicList.length >= storageTopicList.value.length) {
- console.log('最后一题了', storageTopicList.value.length);
return false;
}
topicList.push(storageTopicList.value[topicList.length]);
- console.log('topicList', topicList);
return true;
};
// 初始化时检查
@@ -352,97 +360,80 @@
});
});
const result_click = async ({ key }) => {
- isTriggered.value = false;
- if (key === 'goto_test') {
- // 去考试
- try {
- dialogRef.value.close();
- await nextTick();
- common.loading();
- const res = await startExamByCrs({
- crsId: paperData.crsId
- });
- setPageCache('examination', {
- ...res.body,
- name: paperData.name,
- crsId: paperData.crsId
- });
- common.hideLoading();
- common.redirectTo('/pages/examination/index');
- } catch (e) {
- console.log('e', e);
- common.navigateBack();
- }
- } else if (key === 'again') {
- // 重新练
- try {
- dialogRef.value.close();
- await nextTick();
- common.loading();
- const res = await startPracticeByCrs({
- crsId: paperData.crsId
- });
- setPageCache('practice', {
- ...res.body,
- name: paperData.name,
- crsId: paperData.crsId
- });
- common.hideLoading();
- common.redirectTo('/pages/practice/index');
- } catch (e) {
- console.log('e', e);
- common.navigateBack();
- }
- } else if (key === 'return') {
- // 返回
+ isTriggered.value = false; // 恢复
+ if (key === 'exit') {
+ // 中途退出
dialogRef.value.close();
+ common.loading();
+ await practiceCommit({ exrId: paperData.exrId, examLenTm: practiceTime.value, stat: 'U' });
+ common.hideLoading();
await nextTick();
common.navigateBack();
+ } else if (key === 'revert') {
+ // 返回
+ dialogRef.value.close();
}
};
-
+ const style_button_1 = {
+ color: '#FFFFFF',
+ fontSize: '30rpx',
+ backgroundColor: '#0066FF',
+ borderRadius: '8rpx'
+ };
+ const style_button_2 = {
+ color: '#0066FF',
+ fontSize: '30rpx',
+ backgroundColor: '#E2EDFF',
+ borderRadius: '8rpx'
+ };
+ // 弹出框配置
+ const dialogConfiguration = reactive({});
// 交卷按钮点击,打开交卷确认框
const hand_in_paper_button_click = async () => {
- common.loading();
- try {
- await practiceCommit({ exrId: paperData.exrId, examLenTm: practiceTime.value, stat: 'P' });
- } catch (e) {}
- common.hideLoading();
- console.log('点击交卷', paperData);
- // 判断是否完成所有题目
- const style_button_1 = {
- color: '#FFFFFF',
- fontSize: '30rpx',
- backgroundColor: '#0066FF',
- borderRadius: '8rpx'
- };
- const style_button_2 = {
- color: '#0066FF',
- fontSize: '30rpx',
- backgroundColor: '#E2EDFF',
- borderRadius: '8rpx'
- };
+ console.log('交卷按钮');
+ const stat = 'P'
+ // 都做完弹窗了,产品说改成跳页,说客户觉得奇怪
+ common.redirectTo(`/pages/practice/result?name=${paperData.name}&exrId=${paperData.exrId}&crsId=${paperData.crsId}&examLenTm=${practiceTime.value}&stat=${stat}`);
// 完成
- dialogConfiguration.type = 'complete';
- dialogConfiguration.title = '恭喜你,已完成全部练习!';
- dialogConfiguration.buttonList = [
- {
- key: 'goto_test',
- name: '去考试',
- style: style_button_1
- },
- {
- key: 'again',
- name: '重新练',
- style: style_button_2
- },
- {
- key: 'return',
- name: '返回',
- style: style_button_2
- }
- ];
- dialogRef.value.open();
+ // dialogRef.value.open({
+ // // type: 'complete',
+ // title: '恭喜你,已完成全部练习!',
+ // buttonList: [
+ // {
+ // key: 'goto_test',
+ // name: '去考试',
+ // style: style_button_1
+ // },
+ // {
+ // key: 'again',
+ // name: '重新练',
+ // style: style_button_2
+ // },
+ // {
+ // key: 'return',
+ // name: '返回',
+ // style: style_button_2
+ // }
+ // ]
+ // });
+ };
+ // 中途退出
+ const exit_practice = () => {
+ dialogRef.value.open({
+ title: '确认现在退出吗?',
+ buttonList: [
+ {
+ key: 'exit',
+ name: '退出',
+ style: style_button_1
+ },
+ {
+ key: 'revert',
+ name: '返回',
+ style: style_button_2
+ }
+ ]
+ });
};
// 启动练习时长定时器
const startTimer = () => {
@@ -748,6 +739,13 @@
top: 0;
width: 70rpx;
height: 70rpx;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ .img {
+ width: 32rpx;
+ height: 32rpx;
+ }
// background-color: red;
}
}
diff --git a/src/pages/practice/result.vue b/src/pages/practice/result.vue
new file mode 100644
index 00000000..b7e5b847
--- /dev/null
+++ b/src/pages/practice/result.vue
@@ -0,0 +1,175 @@
+
+
+
+ 练习完成
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/preview/components/previewCourse.vue b/src/pages/preview/components/previewCourse.vue
index 5c6c07b8..2a83fe07 100644
--- a/src/pages/preview/components/previewCourse.vue
+++ b/src/pages/preview/components/previewCourse.vue
@@ -1,7 +1,7 @@
-
+
@@ -23,6 +23,7 @@
const limit = 15;
const total = ref(-1);
const page = ref(0);
+ import common from '@/common/common';
const data_list = reactive([]);
import { ref, reactive, onMounted, nextTick } from 'vue';
import { queryTraStdyInfoPreviewPaging } from '@/api/preview.js';
@@ -59,9 +60,8 @@
const scrolltolower = (item) => {
getData();
};
- const item_click = (item) => {
- console.log(item, 'item');
- crsId
+ const goto_course_detail = (item) => {
+ common.navigateTo('/pages/courseDetail/index?isPreview=preview&crsId=' + item.crsId);
};
defineExpose({
diff --git a/src/pages/setting/index.vue b/src/pages/setting/index.vue
index 0110cd46..3803d78b 100644
--- a/src/pages/setting/index.vue
+++ b/src/pages/setting/index.vue
@@ -31,8 +31,8 @@
-
-
+
+
-
-
-
-
-
- 单选题
-
-
- 5分
-
-
-
-
-
-
- 展开
-
-
-
-
-
- 属于商业银行风险管理“三道防线”的哪些风险管理部门,为什么?
-
+
+
+
+
+
\ No newline at end of file
+ .scroll-Y {
+ background-color: #f1f5fa;
+ max-height: calc(100vh - var(--status-bar-height) - 78rpx - 88rpx - 156rpx);
+ }
+
diff --git a/src/pages/wrongQuestionRecord/components/favorites-course.vue b/src/pages/wrongQuestionRecord/components/favorites-course.vue
index 60da27d7..2257c235 100644
--- a/src/pages/wrongQuestionRecord/components/favorites-course.vue
+++ b/src/pages/wrongQuestionRecord/components/favorites-course.vue
@@ -1,6 +1,6 @@
-
-
+
+
@@ -11,7 +11,7 @@
+
+
diff --git a/src/pages/wrongQuestionRecord/index.vue b/src/pages/wrongQuestionRecord/index.vue
index 428852d4..4e315163 100644
--- a/src/pages/wrongQuestionRecord/index.vue
+++ b/src/pages/wrongQuestionRecord/index.vue
@@ -22,7 +22,13 @@
>
-
+
@@ -32,18 +38,16 @@
-
+
-
-
+ >
@@ -54,14 +58,15 @@
// 我的收藏
import { reactive, ref, computed, nextTick, onMounted, watch } from 'vue';
import { LineBg } from '@/enum.js';
- import { queryTraCrsBbsInfoByCrsId, replyTraCrsBbsInfo, qryChildTraCrsBbsInfo } from '@/api/courseDetail.js';
-
+ import { queryMistakesAnswerByMisId, queryTraMistakesCollection } from '@/api/wrongQuestionRecord.js';
import common from '@/common/common';
+ import { setPageCache } from '@/common/common';
+
const customStyle = {
borderRadius: '16rpx'
- }
+ };
const statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
-
+
const courseRef = ref(null);
const correctRef = ref(null);
const tabAct = ref(0);
@@ -80,6 +85,23 @@
const swiperChange = (item) => {
tabAct.value = item.detail.current;
};
+ const redo_subject = async () => {
+ // 重做错题
+
+ common.loading();
+ queryTraMistakesCollection()
+ .then((res) => {
+ setPageCache('correct', {
+ list: res.body,
+ name: '错题本'
+ });
+ common.navigateTo('/pages/wrongQuestionRecord/correct');
+ })
+ .finally(() => {
+ common.hideLoading();
+ });
+ };
+
onMounted(() => {
watch(
tabAct,
@@ -99,24 +121,29 @@
\ No newline at end of file
diff --git a/src/pagesA.json b/src/pagesA.json
index a2d27f82..e9bacbe6 100644
--- a/src/pagesA.json
+++ b/src/pagesA.json
@@ -126,6 +126,15 @@
}
}
},
+ {
+ "path": "pages/wrongQuestionRecord/correct",
+ "style": {
+ "navigationBarTitleText": "错题本做题页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
+ },
{
"path": "pages/examination/index",
"style": {
@@ -215,6 +224,25 @@
"titleNView": false
}
}
+ },
+ {
+ "path": "pages/wrongQuestionRecord/result",
+ "style": {
+ "navigationBarTitleText": "答题本答题完成结果页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
+ },
+ {
+ "path": "pages/practice/result",
+ "style": {
+ "navigationBarTitleText": "练习完成结果页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
}
+
]
}
\ No newline at end of file
diff --git a/src/static/images/common/wc.png b/src/static/images/common/wc.png
new file mode 100644
index 00000000..ac46b7a2
Binary files /dev/null and b/src/static/images/common/wc.png differ