diff --git a/.env.development b/.env.development
index 0e20cf6d..4ddca13e 100644
--- a/.env.development
+++ b/.env.development
@@ -29,3 +29,8 @@ VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65: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_TRAEXAM = 'http://25.64.16.140:9604'
+# 于嘉文
+#VITE_APP_BASE_H5_API_Url_TRAEXAM = 'http://25.64.16.143:9604'
diff --git a/src/api/courseRecord.js b/src/api/courseRecord.js
new file mode 100644
index 00000000..b47d471f
--- /dev/null
+++ b/src/api/courseRecord.js
@@ -0,0 +1,49 @@
+import request from '@/api/request'
+const base_url = '/traexam'
+
+
+
+// 学习列表页
+
+
+/**练习*/
+// 练习列表页
+export const queryPracticeRecordPaging = (data) => {
+ return request({
+ url: base_url + '/traRecord/queryPracticeRecordPaging',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+// 练习每一项列表
+export const queryPracticeHis = (data) => {
+ return request({
+ url: base_url + '/traRecord/queryPracticeHis',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+/**考试*/
+// 考试列表页
+export const queryExamRecordPaging = (data) => {
+ return request({
+ url: base_url + '/traRecord/queryExamRecordPaging',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+// 考试每一项列表
+export const queryExamHisByExamId = (data) => {
+ return request({
+ url: base_url + '/traRecord/queryExamHisByExamId',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+
diff --git a/src/api/practice.js b/src/api/practice.js
new file mode 100644
index 00000000..562ce205
--- /dev/null
+++ b/src/api/practice.js
@@ -0,0 +1,42 @@
+import request from '@/api/request'
+const base_url = '/traexam'
+
+// 1.开始练习(课程练习)
+export const startPracticeByCrs = (data) => {
+ return request({
+ url: base_url + '/traCrsPractice/startPracticeByCrs',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+// 2.课程练习答题
+export const practiceAnswer = (data) => {
+ return request({
+ url: base_url + '/traCrsPractice/practiceAnswer',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+// 3.课程练习状态变更
+export const practiceCommit = (data) => {
+ return request({
+ url: base_url + '/traCrsPractice/practiceCommit',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
+
+// 4.课程练习记录
+export const queryPracticeRecordByExrId = (data) => {
+ return request({
+ url: base_url + '/traCrsPractice/queryPracticeRecordByExrId',
+ method: 'post',
+ toastErrors: true,
+ data
+ });
+};
diff --git a/src/common/imgSvg.ts b/src/common/imgSvg.ts
index 2a9bf5d9..9e61a5c2 100644
--- a/src/common/imgSvg.ts
+++ b/src/common/imgSvg.ts
@@ -57,3 +57,27 @@ export const lockIcon = (color: string) : string => {
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgXml)}`;
};
+
+// 学习时长
+export const studyDurationIcon = (color: string='#62A1FF') : 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/radio-subject-item.vue b/src/components/examination/radio-subject-item.vue
index 0c62edbc..5f1b3cf4 100644
--- a/src/components/examination/radio-subject-item.vue
+++ b/src/components/examination/radio-subject-item.vue
@@ -40,7 +40,6 @@
if (props.analysisVo.correctFlag === 'R') return 'success';
// 是错误答案但是被用户错误选中的为红
const my_answer_array = props.my_answer;
- console.log('my_answer_array', my_answer_array);
if(my_answer_array.includes(props.analysisVo.itemId) && props.analysisVo.correctFlag === 'E') return 'error';
// 只有被我选中,不知是正确还是错误的为蓝
diff --git a/src/pages.json b/src/pages.json
index 0986e251..c66ed48b 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -244,6 +244,24 @@
}
}
},
+ {
+ "path": "pages/courseRecord/index",
+ "style": {
+ "navigationBarTitleText": "课程记录页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
+ },
+ {
+ "path": "pages/examinationRecord/index",
+ "style": {
+ "navigationBarTitleText": "考试记录页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
+ },
{
"path": "pages/course/index",
"style": {
diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue
index 925ea3e8..c18d7a8c 100644
--- a/src/pages/courseDetail/index.vue
+++ b/src/pages/courseDetail/index.vue
@@ -1,7 +1,13 @@
-
+
@@ -32,7 +38,10 @@
已学
{{ form.styParaGraphNum || 0 }}
-
+
去学习
- 去练习
+ 去练习
去考试
@@ -119,7 +132,9 @@
import { getCourseDetailApi } from '@/api/courseDetail.js';
import { startExamByCrs } from '@/api/examination.js';
import { insertTraPersonalCollectionTask, deleteTraPersonalCollectionById } from '@/api/favorites.js';
+ import { startPracticeByCrs } from '@/api/practice.js';
import common from '@/common/common';
+ import { setPageCache } from '@/common/common';
import introduceVue from './components/introduce.vue';
import knowledge from './components/knowledge.vue';
import comment from './components/comment.vue';
@@ -181,13 +196,14 @@
const goto_examination = async () => {
common.loading();
startExamByCrs({
- crsId : crsId.value
+ crsId: crsId.value
// crsId: 'CRS0250181220722025070408313900000018729'
})
.then((res) => {
setPageCache('examination', {
...res.body,
- examId: detailData.examId
+ name: form.value.crsName,
+ crsId: crsId.value
});
common.navigateTo('/pages/examination/index');
})
@@ -195,6 +211,25 @@
common.hideLoading();
});
};
+ // 去练习
+ const goto_practice = async () => {
+ common.loading();
+ startPracticeByCrs({
+ crsId: crsId.value
+ })
+ .then((res) => {
+ console.log('res', res);
+ setPageCache('practice', {
+ ...res.body,
+ name: form.value.crsName,
+ crsId: crsId.value,
+ });
+ common.navigateTo('/pages/practice/index');
+ })
+ .finally(() => {
+ common.hideLoading();
+ });
+ };
const collect_click = async (collectId) => {
try {
@@ -318,7 +353,7 @@
padding-bottom: 24rpx;
min-height: 158rpx;
justify-content: space-between;
- }
+ }
.title-text {
font-size: 34rpx;
@@ -340,6 +375,7 @@
.title-num {
display: flex;
+ flex-wrap: nowrap;
.examination {
color: #0066ff;
@@ -431,7 +467,7 @@
display: flex;
align-items: center;
font-size: 30rpx;
- margin-right: 30rpx;
+ margin-right: 26rpx;
color: #666666;
height: 30rpx;
}
diff --git a/src/pages/courseRecord/components/examRecordItem.vue b/src/pages/courseRecord/components/examRecordItem.vue
new file mode 100644
index 00000000..02409e35
--- /dev/null
+++ b/src/pages/courseRecord/components/examRecordItem.vue
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/courseRecord/components/practiceRecordItem.vue b/src/pages/courseRecord/components/practiceRecordItem.vue
new file mode 100644
index 00000000..a57b10ab
--- /dev/null
+++ b/src/pages/courseRecord/components/practiceRecordItem.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+ {{
+ item.crsName
+ }}阿斯顿萨达萨达阿斯顿萨达萨达萨达萨达萨达萨达
+
+
+
+ 答题正确率:30
+
+
+
+ 练习记录:2条
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/courseRecord/components/studyRecordItem.vue b/src/pages/courseRecord/components/studyRecordItem.vue
new file mode 100644
index 00000000..02409e35
--- /dev/null
+++ b/src/pages/courseRecord/components/studyRecordItem.vue
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/courseRecord/index.vue b/src/pages/courseRecord/index.vue
new file mode 100644
index 00000000..497b4dfc
--- /dev/null
+++ b/src/pages/courseRecord/index.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+ 课程记录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/examination/index.vue b/src/pages/examination/index.vue
index c0a2f0fc..12048141 100644
--- a/src/pages/examination/index.vue
+++ b/src/pages/examination/index.vue
@@ -218,6 +218,7 @@
const clikc_sheet_item = (index) => {
questionNumber.value = index;
};
+
const subject_click = (type, params) => {
if (type === 'mark') {
topicList[questionNumber.value]['mark'] = !topicList[questionNumber.value]['mark'];
@@ -236,6 +237,7 @@
} else if (type === 'text') {
}
};
+
// 发送语音
const uploadRecordNow = (voicePath) => {
commonUploadVoiceFile(voicePath, '/traask/traAskchat/voiceTrans', {})
diff --git a/src/pages/examinationRecord/components/list-item.vue b/src/pages/examinationRecord/components/list-item.vue
new file mode 100644
index 00000000..dc1240f8
--- /dev/null
+++ b/src/pages/examinationRecord/components/list-item.vue
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+ 未完成
+ 已完成
+
+
+
+ {{ item.taskName }}
+
+
+ 起止时间:
+ {{ item.startTm?.substr(0, 10) }}至{{ item.endTm?.substr(0, 10) }}
+
+
+
+ 完成人数:
+ {{ item.taskFinishSums ?? 0 }}/{{ item.taskSums ?? 0 }}
+
+
+ 进度:
+ {{ item.finishCrs ?? 0 }}/{{ item.sumCrs ?? 0 }}门课程
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/examinationRecord/index.vue b/src/pages/examinationRecord/index.vue
new file mode 100644
index 00000000..db0e1675
--- /dev/null
+++ b/src/pages/examinationRecord/index.vue
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+ 学习任务
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/me/index.vue b/src/pages/me/index.vue
index 92597e3d..f16c77a0 100644
--- a/src/pages/me/index.vue
+++ b/src/pages/me/index.vue
@@ -66,19 +66,13 @@
-
-
+
- 学习记录
+ 课程记录
-
-
-
- 练习记录
-
-
-
+
+
考试记录
@@ -92,7 +86,7 @@
-
+
AI陪练记录
diff --git a/src/pages/messageNotification/index - 副本.vue b/src/pages/messageNotification/index2.vue
similarity index 100%
rename from src/pages/messageNotification/index - 副本.vue
rename to src/pages/messageNotification/index2.vue
diff --git a/src/pages/practice/index.vue b/src/pages/practice/index.vue
index 02409e35..5c3e70c5 100644
--- a/src/pages/practice/index.vue
+++ b/src/pages/practice/index.vue
@@ -1,8 +1,648 @@
+
+
+
+
+ {{ paperData.name }}
+
+
+
+
+
+
+ 答题进度
+ {{ questionNumber + 1 }}
+ /{{ storageTopicList.length }}
+
+
+ 剩余时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
+
diff --git a/src/pagesA.json b/src/pagesA.json
index 15fc7fe1..d06a95d5 100644
--- a/src/pagesA.json
+++ b/src/pagesA.json
@@ -179,6 +179,24 @@
"titleNView": false
}
}
+ },
+ {
+ "path": "pages/courseRecord/index",
+ "style": {
+ "navigationBarTitleText": "课程记录页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
+ },
+ {
+ "path": "pages/examinationRecord/index",
+ "style": {
+ "navigationBarTitleText": "考试记录页",
+ "app-plus": {
+ "titleNView": false
+ }
+ }
}
]
}
\ No newline at end of file