dusenyao 3 سال پیش
والد
کامیت
c99a8c754e

+ 2 - 1
.prettierrc.js

@@ -7,5 +7,6 @@ module.exports = {
   endOfLine: 'auto',
   endOfLine: 'auto',
   bracketSpacing: true,
   bracketSpacing: true,
   arrowParens: 'avoid',
   arrowParens: 'avoid',
-  printWidth: 120
+  printWidth: 120,
+  singleAttributePerLine: true
 };
 };

+ 4 - 0
src/views/task_details/student/index.vue

@@ -176,6 +176,7 @@ import { GetTaskInfo, FillMyTaskExecuteInfo_Student } from '@/api/course';
 import { isAllowFileType, fileTypeSizeLimit } from '@/utils/validate';
 import { isAllowFileType, fileTypeSizeLimit } from '@/utils/validate';
 
 
 export default {
 export default {
+  name: 'TaskDetailsStudent',
   components: {
   components: {
     FinishCourseware,
     FinishCourseware,
     TaskTop,
     TaskTop,
@@ -324,6 +325,9 @@ export default {
     },
     },
 
 
     fillTaskExecuteInfo_Student() {
     fillTaskExecuteInfo_Student() {
+      if (this.file_list.length <= 0) {
+        return this.$message.warning('请先提交作业');
+      }
       const homework_file_id_list = [];
       const homework_file_id_list = [];
       this.file_list.forEach(item => {
       this.file_list.forEach(item => {
         homework_file_id_list.push(item.file_id);
         homework_file_id_list.push(item.file_id);

+ 1 - 0
src/views/task_details/teacher/index.vue

@@ -132,6 +132,7 @@ import TaskTop from '../TaskTop.vue';
 import { GetTaskInfo, GetTaskStudentExecuteInfo, RemarkTaskStudentExecuteInfo_Teacher } from '@/api/course';
 import { GetTaskInfo, GetTaskStudentExecuteInfo, RemarkTaskStudentExecuteInfo_Teacher } from '@/api/course';
 
 
 export default {
 export default {
+  name: 'TaskDetailsTeacher',
   components: { CompletionView, TaskTop, ShowFile },
   components: { CompletionView, TaskTop, ShowFile },
   data() {
   data() {
     return {
     return {

+ 6 - 8
src/views/teacher/create_course/step_table/SelectBook.vue

@@ -30,7 +30,7 @@
             <div v-for="item in book_list" :key="item.id" class="book-list-item">
             <div v-for="item in book_list" :key="item.id" class="book-list-item">
               <div
               <div
                 :class="['book-list-item-img', { selected: item.is_selected === 'true' }]"
                 :class="['book-list-item-img', { selected: item.is_selected === 'true' }]"
-                @click="addOrRemoveBookToCourse($event, item.id)"
+                @click="addOrRemoveBookToCourse(item.id)"
               >
               >
                 <el-image fit="contain" :src="item.picture_url" />
                 <el-image fit="contain" :src="item.picture_url" />
               </div>
               </div>
@@ -105,23 +105,21 @@ export default {
       this.cur_page = newPage;
       this.cur_page = newPage;
       this.queryBookList();
       this.queryBookList();
     },
     },
-    addOrRemoveBookToCourse(e, book_id) {
-      const classList = e.target.parentElement.parentElement.classList;
-
+    addOrRemoveBookToCourse(book_id) {
       const data = {
       const data = {
         course_id: this.id,
         course_id: this.id,
         book_id
         book_id
       };
       };
-
-      if (classList.contains('selected')) {
+      const bookIndex = this.book_list.findIndex(({ id }) => id === book_id);
+      if (this.book_list[bookIndex].is_selected === 'true') {
         RemoveBookFromCourse(data).then(() => {
         RemoveBookFromCourse(data).then(() => {
           this.$message.success(this.$i18n.t('Key350'));
           this.$message.success(this.$i18n.t('Key350'));
-          classList.remove('selected');
+          this.book_list[bookIndex].is_selected = 'false';
         });
         });
       } else {
       } else {
         AddBookToCourse(data).then(() => {
         AddBookToCourse(data).then(() => {
           this.$message.success(this.$i18n.t('Key351'));
           this.$message.success(this.$i18n.t('Key351'));
-          classList.add('selected');
+          this.book_list[bookIndex].is_selected = 'true';
         });
         });
       }
       }
     },
     },