dusenyao пре 3 година
родитељ
комит
b0c1f2cc56

Разлика између датотеке није приказан због своје велике величине
+ 109 - 212
package-lock.json


+ 3 - 3
package.json

@@ -17,7 +17,7 @@
     "awe-dnd": "^0.3.4",
     "axios": "^0.26.1",
     "book-ui": "file:../book-ui-0.2.38.tgz",
-    "core-js": "^3.22.0",
+    "core-js": "^3.22.1",
     "dayjs": "^1.11.1",
     "element-ui": "^2.15.8",
     "gcls-book-question-ui": "file:../gcls-book-question-ui-0.1.0.tgz",
@@ -49,7 +49,7 @@
     "@vue/eslint-config-prettier": "^7.0.0",
     "@vue/test-utils": "^1.3.0",
     "babel-jest": "^27.5.1",
-    "babel-loader": "^8.2.4",
+    "babel-loader": "^8.2.5",
     "babel-plugin-dynamic-import-node": "^2.3.3",
     "compression-webpack-plugin": "^6.1.1",
     "eslint": "^7.32.0",
@@ -59,7 +59,7 @@
     "postcss": "^8.4.12",
     "postcss-html": "^1.4.1",
     "prettier": "2.6.2",
-    "sass": "^1.50.0",
+    "sass": "^1.50.1",
     "sass-loader": "^10.2.1",
     "script-ext-html-webpack-plugin": "^2.1.5",
     "stylelint": "14.7.1",

+ 4 - 4
src/App.vue

@@ -24,10 +24,10 @@ export default {
     };
   },
   created() {
-    const lang_type = this.$store.state.user.language_type;
-    if (lang_type === 'AR') {
-      this.dir = 'rtl';
-    }
+    // const lang_type = this.$store.state.user.language_type;
+    // if (lang_type === 'AR') {
+    //   this.dir = 'rtl';
+    // }
     this.handleUserAgentRoot();
   },
   methods: {

+ 5 - 2
src/components/course/CompletionView.vue

@@ -74,6 +74,10 @@ export default {
     curStudentId: {
       default: '',
       type: String
+    },
+    previewGroupId: {
+      default: '[]',
+      type: String
     }
   },
   data() {
@@ -92,8 +96,7 @@ export default {
       category: '',
       dialogWidth: '820px',
       themeColor: '',
-      previewType: 'previewCheckShow',
-      previewGroupId: '[]'
+      previewType: 'previewCheckShow'
     };
   },
   watch: {

+ 8 - 1
src/components/course/FinishCourseware.vue

@@ -43,6 +43,8 @@
         :is-show-title="true"
         task-model=""
         :is-show-save="true"
+        :preview-type="previewType"
+        :preview-group-id="previewGroupId"
         @finishTaskMaterial="finishMyTaskMaterial_Student"
       />
     </template>
@@ -71,6 +73,10 @@ export default {
     coursewareId: {
       default: '',
       type: String
+    },
+    previewGroupId: {
+      default: '[]',
+      type: String
     }
   },
   data() {
@@ -80,7 +86,8 @@ export default {
       exam_answer: '',
       category: '',
       dialogWidth: '860px',
-      themeColor: ''
+      themeColor: '',
+      previewType: 'previewCheckShow'
     };
   },
   watch: {

+ 6 - 1
src/components/live/CurMaterial.vue

@@ -72,6 +72,8 @@
           :is-show-save="!isFinished"
           :is-show-title="true"
           :book-answer-content="bookAnswerContent"
+          :preview-type="previewType"
+          :preview-group-id="courseware_group_id_selected_info"
           @finishTaskMaterial="saveNPCAnswer"
         />
       </template>
@@ -140,6 +142,8 @@ export default {
       material_name: '',
       material_type: '',
       material_picture_url: '',
+      previewType: 'previewCheckShow',
+      courseware_group_id_selected_info: '[]',
       context: null,
       exam_answer: '',
       ui_type: '',
@@ -221,7 +225,7 @@ export default {
     getCurMaterialSent() {
       this.timer = setInterval(() => {
         GetCurMaterialSent({ task_id: this.taskId }).then(
-          ({ material_id, material_name, material_type, material_picture_url }) => {
+          ({ material_id, material_name, material_type, material_picture_url, courseware_group_id_selected_info }) => {
             if (material_id !== undefined && material_id.length > 0) {
               this.visible = true;
 
@@ -230,6 +234,7 @@ export default {
               this.material_name = material_name;
               this.material_type = material_type;
               this.material_picture_url = material_picture_url;
+              this.courseware_group_id_selected_info = courseware_group_id_selected_info ?? '[]';
               clearInterval(this.timer);
               this.timer = null;
               this.curStudentID = '-';

+ 2 - 0
src/components/preview/PreviewCourse.vue

@@ -25,6 +25,7 @@
           task-model=""
           :is-show-save="false"
           :is-show-title="true"
+          :preview-type="previewType"
         />
       </template>
     </template>
@@ -70,6 +71,7 @@ export default {
   },
   data() {
     return {
+      previewType: 'previewCheckShow',
       category: '',
       context: null,
       themeColor: '',

+ 6 - 1
src/components/select/SelectCourse.vue

@@ -117,7 +117,12 @@ export default {
     },
 
     confirm() {
-      this.$emit('selectCourse', this.currentCourse, this.$refs.book.submitPreviewGroupId());
+      if (this.category === 'NPC' || this.category === 'NNPE') {
+        this.$emit('selectCourse', this.currentCourse, this.$refs.book.submitPreviewGroupId());
+      } else {
+        this.$emit('selectCourse', this.currentCourse);
+      }
+
       this.currentCourse = '';
     },
 

+ 6 - 1
src/views/live/teacher/CompleteList.vue

@@ -84,6 +84,8 @@
             task-model="ANSWER"
             :is-show-save="false"
             :book-answer-content="bookAnswerContent"
+            :preview-type="previewType"
+            :preview-group-id="courseware_group_id_selected_info"
           />
         </template>
       </template>
@@ -135,6 +137,8 @@ export default {
       material_name: '',
       material_type: '',
       material_picture_url: '',
+      previewType: 'previewCheckShow',
+      courseware_group_id_selected_info: '[]',
       context: null,
       ui_type: '',
       category: '',
@@ -208,12 +212,13 @@ export default {
   methods: {
     getCurMaterialSent() {
       GetCurMaterialSent({ task_id: this.taskId }).then(
-        ({ material_id, material_name, material_type, material_picture_url }) => {
+        ({ material_id, material_name, material_type, material_picture_url, courseware_group_id_selected_info }) => {
           if (material_id !== undefined && material_id.length > 0) {
             this.material_id = material_id;
             this.material_name = material_name;
             this.material_type = material_type;
             this.material_picture_url = material_picture_url;
+            this.courseware_group_id_selected_info = courseware_group_id_selected_info ?? '[]';
           }
         }
       );

+ 4 - 0
src/views/task_details/ShowCourseware.vue

@@ -27,6 +27,8 @@
           :theme-color="themeColor"
           :is-show-title="true"
           :is-show-save="false"
+          :preview-type="previewType"
+          :preview-group-id="group_id_selected_info"
         />
       </template>
     </div>
@@ -40,6 +42,8 @@ export default {
   data() {
     return {
       coursewareId: this.$route.params.coursewareId,
+      previewType: 'previewCheckShow',
+      group_id_selected_info: this.$route.query.group_id_selected_info ?? '[]',
       context: null,
       ui_type: '',
       previewWidth: window.screen.width,

+ 13 - 1
src/views/task_details/TaskTop.vue

@@ -30,7 +30,11 @@
           <svg-icon icon-class="courseware" />
           <router-link
             target="_blank"
-            :to="{ path: `/task_detail/show_courseware/${item.courseware_id}` }"
+            :to="{
+              path: `/task_detail/show_courseware/${item.courseware_id}?group_id_selected_info=${
+                item.group_id_selected_info ? item.group_id_selected_info : '[]'
+              }`
+            }"
             class="courseware_name nowrap-ellipsis"
           >
             {{ item.courseware_name }}
@@ -143,6 +147,14 @@ export default {
       ::v-deep a {
         color: #18a0fb;
       }
+
+      :first-child {
+        min-width: 70px;
+      }
+
+      :last-child {
+        word-break: break-all;
+      }
     }
 
     &-title {

+ 11 - 7
src/views/task_details/student/index.vue

@@ -15,14 +15,14 @@
         <span class="label">{{ $t('Key312') }}</span>
         <div>
           <el-tag
-            v-for="item in courseware_list"
-            :key="item.courseware_id"
+            v-for="{ courseware_id, courseware_name, is_finished, group_id_selected_info } in courseware_list"
+            :key="courseware_id"
             color="#fff"
-            :title="item.courseware_name"
-            @click="finishTask(item.courseware_id, item.is_finished)"
+            :title="courseware_name"
+            @click="finishTask(courseware_id, is_finished, group_id_selected_info)"
           >
-            <svg-icon icon-class="courseware" /> <span>{{ item.courseware_name }}</span>
-            <svg-icon v-if="item.is_finished === 'true'" class="check-mark" icon-class="check-mark" />
+            <svg-icon icon-class="courseware" /> <span>{{ courseware_name }}</span>
+            <svg-icon v-if="is_finished === 'true'" class="check-mark" icon-class="check-mark" />
           </el-tag>
         </div>
       </div>
@@ -146,12 +146,14 @@
       :cur-student-id="$store.state.user.user_code"
       :cur-courseware-id="curCoursewareId"
       :dialog-visible="dialogVisible_completion"
+      :preview-group-id="previewGroupId"
       @dialogClose="dialogClose_completion"
     />
 
     <finish-courseware
       :id="id"
       :courseware-id="coursewareId"
+      :preview-group-id="previewGroupId"
       :dialog-visible="dialogVisible"
       @dialogClose="dialogClose"
     />
@@ -204,6 +206,7 @@ export default {
       accessory_list: [],
       file_list: [],
       dialogVisible: false,
+      previewGroupId: '[]',
       coursewareId: '',
       curCoursewareId: '',
       dialogVisible_completion: false,
@@ -382,10 +385,11 @@ export default {
     },
 
     // 完成任务
-    finishTask(id, is_finished) {
+    finishTask(id, is_finished, group_id_selected_info) {
       if (this.my_execute_info.is_finished === 'true' && is_finished === 'false') {
         return this.$message.warning(this.$i18n.t('Key338'));
       }
+      this.previewGroupId = group_id_selected_info ?? '[]';
       if (is_finished === 'true') {
         this.dialogVisible_completion = true;
         this.curCoursewareId = id;

+ 5 - 2
src/views/task_details/teacher/index.vue

@@ -37,7 +37,7 @@
               :key="item.courseware_id"
               color="#fff"
               :title="item.courseware_name"
-              @click="showCompletionView(item.courseware_id, item.is_finished)"
+              @click="showCompletionView(item.courseware_id, item.is_finished, item.group_id_selected_info)"
             >
               <div class="courseware">
                 <svg-icon icon-class="courseware" />
@@ -113,6 +113,7 @@
       :cur-student-id="curStudentId"
       :cur-courseware-id="curCoursewareId"
       :dialog-visible="dialogVisible"
+      :preview-group-id="previewGroupId"
       @dialogClose="dialogClose"
     />
 
@@ -169,6 +170,7 @@ export default {
       student_score: 0,
       dialogVisible: false,
       curCoursewareId: '',
+      previewGroupId: '[]',
       loading: false,
       student_list_height: 490,
       showCurFileName: '',
@@ -274,8 +276,9 @@ export default {
       );
     },
 
-    showCompletionView(id, is_finished) {
+    showCompletionView(id, is_finished, group_id_selected_info) {
       if (is_finished === 'false') return this.$message.warning(this.$i18n.t('Key338'));
+      this.previewGroupId = group_id_selected_info ?? '[]';
       this.curCoursewareId = id;
       this.dialogVisible = true;
     },

+ 24 - 6
src/views/teacher/create_course/step_table/NewTask.vue

@@ -384,12 +384,22 @@ export default {
           data['file_id_list'] = this.liveForm.file_info_list.map(({ file_id }) => file_id);
           data['courseware_visible_mode'] = this.liveForm.courseware_visible_mode;
           data['zhibo_record_mode'] = this.liveForm.zhibo_record_mode;
+          data['courseware_group_selected_list'] = this.liveForm.coursewareInfo.map(
+            ({ courseware_id, group_id_selected_info }) => {
+              return { courseware_id, group_id_selected_info };
+            }
+          );
         }
 
         if (teaching_type === 11) {
           data['courseware_id_list'] = this.courseForm.coursewareInfo.map(({ courseware_id }) => courseware_id);
           data['task_mode'] = this.courseForm.task_mode;
           data['is_enable_message'] = this.courseForm.is_enable_message;
+          data['courseware_group_selected_list'] = this.courseForm.coursewareInfo.map(
+            ({ courseware_id, group_id_selected_info }) => {
+              return { courseware_id, group_id_selected_info: group_id_selected_info ?? '[]' };
+            }
+          );
         }
 
         if (teaching_type === 12) {
@@ -463,25 +473,33 @@ export default {
         this.$message.warning(this.$t('Key385'));
         return;
       }
-      console.log(previewGroupId);
+
       const type = this.form.teaching_type;
       if (type === 10) {
-        this.getTreeNodeInfo_BookChapterStruct(course_id, 'live');
+        this.getTreeNodeInfo_BookChapterStruct(course_id, 'live', previewGroupId);
       }
 
       if (type === 11) {
-        this.getTreeNodeInfo_BookChapterStruct(course_id, 'course');
+        this.getTreeNodeInfo_BookChapterStruct(course_id, 'course', previewGroupId);
       }
       this.dialogVisible = false;
     },
 
-    getTreeNodeInfo_BookChapterStruct(id, type) {
+    getTreeNodeInfo_BookChapterStruct(id, type, previewGroupId) {
       GetTreeNodeInfo_BookChapterStruct({ id }).then(({ name, id }) => {
         if (type === 'live') {
-          this.liveForm.coursewareInfo.push({ courseware_id: id, courseware_name: name });
+          this.liveForm.coursewareInfo.push({
+            courseware_id: id,
+            courseware_name: name,
+            group_id_selected_info: previewGroupId
+          });
         }
         if (type === 'course') {
-          this.courseForm.coursewareInfo.push({ courseware_id: id, courseware_name: name });
+          this.courseForm.coursewareInfo.push({
+            courseware_id: id,
+            courseware_name: name,
+            group_id_selected_info: previewGroupId
+          });
         }
       });
     },

Неке датотеке нису приказане због велике количине промена