|
|
@@ -28,30 +28,26 @@
|
|
|
</div>
|
|
|
<div
|
|
|
v-for="item in list"
|
|
|
- :key="item.id || item.homeworkId"
|
|
|
+ :key="item.homeWorkStuId || item.homeWorkId"
|
|
|
class="homework_card">
|
|
|
<div class="card_left">
|
|
|
<div class="card_title_row">
|
|
|
<span
|
|
|
class="subject_badge"
|
|
|
- :style="{ background: getSubjectColor(item.subjectName) }">
|
|
|
- {{ item.subjectName || subjectName || '科目' }}
|
|
|
+ :style="{ background: getSubjectColor(item.courseName) }">
|
|
|
+ {{ item.courseName || subjectName || '科目' }}
|
|
|
</span>
|
|
|
- <span class="card_title" :title="item.homeworkName || item.taskName">
|
|
|
- {{ item.homeworkName || item.taskName }}
|
|
|
+ <span class="card_title" :title="item.homeWorkName">
|
|
|
+ {{ item.homeWorkName }}
|
|
|
</span>
|
|
|
</div>
|
|
|
<div class="card_meta">
|
|
|
- <template v-if="submitStatus === 0">
|
|
|
- <span>开始时间:{{ item.startTime || '-' }}</span>
|
|
|
- <span>结束时间:{{ item.endTime || '-' }}</span>
|
|
|
- </template>
|
|
|
- <span v-else>更新时间:{{ item.updateTime || item.endTime || '-' }}</span>
|
|
|
- <span>试题数量:{{ item.questionNum != null ? item.questionNum : '-' }}</span>
|
|
|
+ <span>提交截止:{{ item.submitEndTime || '-' }}</span>
|
|
|
+ <span>试题数量:{{ item.questionNumber != null ? item.questionNumber : '-' }}</span>
|
|
|
<span>
|
|
|
状态:
|
|
|
- <em :class="submitStatus === 0 ? 'status_todo' : 'status_done'">
|
|
|
- {{ submitStatus === 0 ? '未提交' : '已提交' }}
|
|
|
+ <em :class="item.status === 1 ? 'status_done' : 'status_todo'">
|
|
|
+ {{ item.status === 1 ? '已提交' : '未提交' }}
|
|
|
</em>
|
|
|
</span>
|
|
|
</div>
|
|
|
@@ -61,6 +57,7 @@
|
|
|
v-if="submitStatus === 0"
|
|
|
type="primary"
|
|
|
class="enter_btn"
|
|
|
+ :disabled="item.canWrite !== 1"
|
|
|
@click="handleEnter(item)">
|
|
|
进入作答
|
|
|
</el-button>
|
|
|
@@ -110,130 +107,6 @@ export default {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
total: 0,
|
|
|
- // TODO: 接口就绪后删除假数据
|
|
|
- mockList: [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-10 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- subjectName: '数学',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-10 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- subjectName: '英语',
|
|
|
- homeworkName: '9月12日单元练习',
|
|
|
- startTime: '26-08-11 08:00:00',
|
|
|
- endTime: '26-08-12 18:00:00',
|
|
|
- questionNum: 20,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 4,
|
|
|
- subjectName: '物理',
|
|
|
- homeworkName: '力学专项训练',
|
|
|
- startTime: '26-08-09 10:00:00',
|
|
|
- endTime: '26-08-15 22:00:00',
|
|
|
- questionNum: 15,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 5,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-10 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- updateTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: false,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 6,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-10 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- updateTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 7,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-10 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- updateTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: false,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 8,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '文言文阅读专项',
|
|
|
- startTime: '26-08-05 19:00:00',
|
|
|
- endTime: '26-08-11 19:00:00',
|
|
|
- updateTime: '26-08-11 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 9,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-04 19:00:00',
|
|
|
- endTime: '26-08-10 19:00:00',
|
|
|
- updateTime: '26-08-10 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: false,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 10,
|
|
|
- subjectName: '英语',
|
|
|
- homeworkName: '完形填空强化练习',
|
|
|
- startTime: '26-08-03 19:00:00',
|
|
|
- endTime: '26-08-09 19:00:00',
|
|
|
- questionNum: 14,
|
|
|
- submitStatus: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 11,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-02 19:00:00',
|
|
|
- endTime: '26-08-08 19:00:00',
|
|
|
- updateTime: '26-08-08 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 12,
|
|
|
- subjectName: '语文',
|
|
|
- homeworkName: '9月11日作业任务',
|
|
|
- startTime: '26-08-01 19:00:00',
|
|
|
- endTime: '26-08-07 19:00:00',
|
|
|
- updateTime: '26-08-07 19:00:00',
|
|
|
- questionNum: 12,
|
|
|
- submitStatus: 1,
|
|
|
- analysisDisabled: false,
|
|
|
- },
|
|
|
- ],
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -264,70 +137,82 @@ export default {
|
|
|
handleRefresh() {
|
|
|
this.fetchList();
|
|
|
},
|
|
|
- // TODO: 接口就绪后改为真实请求
|
|
|
fetchList() {
|
|
|
- this.loading = true;
|
|
|
- const keyword = (this.keyword || '').trim();
|
|
|
- let rows = this.mockList.filter(item => item.submitStatus === this.submitStatus);
|
|
|
- if (keyword) {
|
|
|
- rows = rows.filter(item => {
|
|
|
- const name = item.homeworkName || item.taskName || '';
|
|
|
- return name.indexOf(keyword) !== -1;
|
|
|
- });
|
|
|
+ if (!this.subjectCode) {
|
|
|
+ this.list = [];
|
|
|
+ this.total = 0;
|
|
|
+ return;
|
|
|
}
|
|
|
- this.total = rows.length;
|
|
|
- const start = (this.pageNum - 1) * this.pageSize;
|
|
|
- this.list = rows.slice(start, start + this.pageSize);
|
|
|
- this.$nextTick(() => {
|
|
|
+ this.loading = true;
|
|
|
+ const params = {
|
|
|
+ pageNum: this.pageNum,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ courseCode: this.subjectCode,
|
|
|
+ status: this.submitStatus,
|
|
|
+ queryStr: (this.keyword || '').trim(),
|
|
|
+ };
|
|
|
+ this.$api.teachingHomework.queryClassHomeWorkByPage(params).then(res => {
|
|
|
+ this.applyPage(res);
|
|
|
+ }).catch(err => {
|
|
|
+ const body = this.pickBody(err);
|
|
|
+ if (body) {
|
|
|
+ this.applyPage(body);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.list = [];
|
|
|
+ this.total = 0;
|
|
|
+ }).finally(() => {
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
+ // 公共请求把 code 为 0 的成功响应放进了 reject,这里两种都认
|
|
|
+ pickBody(payload) {
|
|
|
+ if (!payload) return null;
|
|
|
+ if (payload.code === 0 || payload.code === 200) return payload;
|
|
|
+ if (payload.data && (payload.data.code === 0 || payload.data.code === 200)) return payload.data;
|
|
|
+ if (payload.response) return this.pickBody(payload.response);
|
|
|
+ return null;
|
|
|
+ },
|
|
|
+ applyPage(res) {
|
|
|
+ const page = (res && res.data) || {};
|
|
|
+ this.list = page.records || [];
|
|
|
+ this.total = page.total || 0;
|
|
|
+ },
|
|
|
+ homeworkPayload(item) {
|
|
|
+ return {
|
|
|
+ id: item.homeWorkStuId || item.homeWorkId,
|
|
|
+ homeWorkId: item.homeWorkId,
|
|
|
+ homeWorkStuId: item.homeWorkStuId,
|
|
|
+ subjectName: item.courseName || this.subjectName || '',
|
|
|
+ courseCode: item.courseCode || this.subjectCode,
|
|
|
+ homeworkName: item.homeWorkName || '',
|
|
|
+ questionNum: item.questionNumber,
|
|
|
+ endTime: item.submitEndTime || '',
|
|
|
+ };
|
|
|
+ },
|
|
|
handleEnter(item) {
|
|
|
+ if (item.canWrite !== 1) return;
|
|
|
sessionStorage.setItem('teachingHomeworkAnswer', JSON.stringify({
|
|
|
- homework: {
|
|
|
- id: item.id,
|
|
|
- subjectName: item.subjectName || this.subjectName || '',
|
|
|
- homeworkName: item.homeworkName || item.taskName || '',
|
|
|
- teacherName: item.teacherName || '王老师',
|
|
|
- className: item.className || '1班',
|
|
|
- questionNum: item.questionNum,
|
|
|
- endTime: item.endTime || '',
|
|
|
- },
|
|
|
+ homework: this.homeworkPayload(item),
|
|
|
currentIndex: 0,
|
|
|
answers: {},
|
|
|
remainSeconds: 10 * 60,
|
|
|
}));
|
|
|
this.$router.push('/teachingHomework/answer');
|
|
|
},
|
|
|
- // 查看分析是否置灰(假数据用 analysisDisabled,接口可改为 analysisStatus 等)
|
|
|
- isAnalysisDisabled(item) {
|
|
|
- return !!(item && item.analysisDisabled);
|
|
|
+ isAnalysisDisabled() {
|
|
|
+ return false;
|
|
|
},
|
|
|
handleViewAnswer(item) {
|
|
|
sessionStorage.setItem('teachingHomeworkViewAnswer', JSON.stringify({
|
|
|
- homework: {
|
|
|
- id: item.id,
|
|
|
- subjectName: item.subjectName || this.subjectName || '',
|
|
|
- homeworkName: item.homeworkName || item.taskName || '',
|
|
|
- teacherName: item.teacherName || '王老师',
|
|
|
- className: item.className || '1班',
|
|
|
- questionNum: item.questionNum,
|
|
|
- },
|
|
|
+ homework: this.homeworkPayload(item),
|
|
|
currentIndex: 0,
|
|
|
}));
|
|
|
this.$router.push('/teachingHomework/viewAnswer');
|
|
|
},
|
|
|
handleViewAnalysis(item) {
|
|
|
- if (this.isAnalysisDisabled(item)) return;
|
|
|
sessionStorage.setItem('teachingHomeworkAnalysis', JSON.stringify({
|
|
|
- homework: {
|
|
|
- id: item.id,
|
|
|
- subjectName: item.subjectName || this.subjectName || '',
|
|
|
- homeworkName: item.homeworkName || item.taskName || '',
|
|
|
- teacherName: item.teacherName || '王老师',
|
|
|
- className: item.className || '1班',
|
|
|
- questionNum: item.questionNum,
|
|
|
- },
|
|
|
+ homework: this.homeworkPayload(item),
|
|
|
}));
|
|
|
this.$router.push('/teachingHomework/analysis');
|
|
|
},
|