ソースを参照

paper work + video&famous-paper

hare8999@163.com 2 年 前
コミット
d32877d265

+ 5 - 2
src/views/questioncenter/components/generate-tabs/paper-work-past.vue

@@ -1,10 +1,13 @@
 <template>
-
+  <famous-paper></famous-paper>
 </template>
 
 <script>
+import FamousPaper from '@/views/questioncenter/components/famous-paper'
+
 export default {
-  name: 'paper-work-past'
+  name: 'paper-work-past',
+  components: { FamousPaper }
 }
 </script>
 

+ 5 - 2
src/views/questioncenter/components/generate-tabs/paper-work-video.vue

@@ -1,10 +1,13 @@
 <template>
-
+  <video-course nested-mode></video-course>
 </template>
 
 <script>
+import VideoCourse from '@/views/videocourse/video_course'
+
 export default {
-  name: 'paper-work-video'
+  name: 'paper-work-video',
+  components: { VideoCourse }
 }
 </script>
 

+ 45 - 5
src/views/questioncenter/generating.vue

@@ -20,21 +20,60 @@ import PaperByHand from '@/views/questioncenter/components/generate-tabs/paper-b
 import PaperByIntelligent from '@/views/questioncenter/components/generate-tabs/paper-by-intelligent'
 import PaperRecord from '@/views/questioncenter/components/generate-tabs/paper-record'
 import PaperWorkIdentifierMixin from './components/generate-tabs/paper-work-identifier-mixin'
+import PaperWorkVideo from '@/views/questioncenter/components/generate-tabs/paper-work-video'
+import PaperWorkPast from '@/views/questioncenter/components/generate-tabs/paper-work-past'
+import PaperWorkPublish from '@/views/questioncenter/components/generate-tabs/paper-work-publish'
+import PaperWorkHistory from '@/views/questioncenter/components/generate-tabs/paper-work-history'
 
 export default {
   mixins: [PaperWorkIdentifierMixin],
-  components: { PaperRecord, PaperByIntelligent, PaperByHand },
+  components: {
+    PaperWorkHistory,
+    PaperWorkPublish,
+    PaperWorkPast,
+    PaperWorkVideo,
+    PaperRecord,
+    PaperByIntelligent,
+    PaperByHand
+  },
   data() {
     return {
       tabs: [{
         label: '手动组卷',
-        content: PaperByHand.name
+        content: PaperByHand.name,
+        supportNormal: true,
+        supportPaperWork: false
+      }, {
+        label: '组卷作业',
+        content: PaperByHand.name,
+        supportNormal: false,
+        supportPaperWork: true
       }, {
         label: '智能组卷',
-        content: PaperByIntelligent.name
+        content: PaperByIntelligent.name,
+        supportNormal: true,
+        supportPaperWork: false
       }, {
         label: '组卷记录',
-        content: PaperRecord.name
+        content: PaperRecord.name,
+        supportNormal: true,
+        supportPaperWork: false
+      }, {
+        label: '视频作业',
+        content: PaperWorkVideo.name,
+        supportPaperWork: true
+      }, {
+        label: '试卷作业',
+        content: PaperWorkPast.name,
+        supportPaperWork: true
+      }, {
+        label: '发布作业',
+        content: PaperWorkPublish.name,
+        supportPaperWork: true
+      }, {
+        label: '检查作业',
+        content: PaperWorkHistory.name,
+        supportPaperWork: true
       }],
       tabActive: 0,
       tabVisited: []
@@ -42,7 +81,8 @@ export default {
   },
   computed: {
     visibleTabs() {
-      return this.tabs
+      const sceneFilter = (tab) => this.isPaperWork ? tab.supportPaperWork : tab.supportNormal
+      return this.tabs.filter(sceneFilter)
     },
     currentTab() {
       return this.visibleTabs[this.tabActive]

+ 20 - 14
src/views/videocourse/video_course.vue

@@ -1,14 +1,13 @@
 <template>
-  <div class="video_contianer">
+  <div :class="{'video_contianer':!nestedMode}">
     <el-card>
       <mx-condition ref="condition" :query-params="queryParams" :require-fields="requireFields" @query="handleQuery"
-                    @invalid="handleInvalidQuery"
-      ></mx-condition>
+                    @invalid="handleInvalidQuery"></mx-condition>
     </el-card>
     <!-- 视频主体 -->
     <el-card class="video_content" v-if="videoList.length > 0">
       <div slot="header">
-        <mx-search-group  justify="end" :span="6" v-model="sectionName" placeholder="请输入搜索内容" @search="searchVideo">
+        <mx-search-group justify="end" :span="6" v-model="sectionName" placeholder="请输入搜索内容" @search="searchVideo">
         </mx-search-group>
       </div>
       <el-row :gutter="20">
@@ -34,7 +33,8 @@
           <p class="fx-row jc-between ai-center">
             <span class="text-ellipsis"> {{ item.section_name }} </span>
             <!-- 老师才能收藏 -->
-            <span v-if="role" @click="toCollect(item)" class="pointer iconfont icon-shoucang" :class="{'f-primary':item.isCollect}"></span>
+            <span v-if="role" @click="toCollect(item)" class="pointer iconfont icon-shoucang"
+                  :class="{'f-primary':item.isCollect}"></span>
           </p>
         </el-col>
       </el-row>
@@ -54,19 +54,22 @@
   </div>
 </template>
 <script>
-import { videoList,collectVideoCourse } from '@/api/webApi/webVideo'
+import { collectVideoCourse, videoList } from '@/api/webApi/webVideo'
 import MxSearchGroup from '@/components/MxSearch/mx-search-group'
 import MxCondition from '@/components/MxCondition/mx-condition'
-import { checkRole } from  '@/utils/permission'
+import { checkRole } from '@/utils/permission'
+
 export default {
+  name: 'video-course',
   components: { MxSearchGroup, MxCondition },
+  props: { 'nestedMode': { type: Boolean, default: false } },
   data() {
     return {
       pageForm: {
         pageNum: 1,
         pageSize: 16
       },
-      role:checkRole(['frontTeacher','frontHeadteacher']),
+      role: checkRole(['frontTeacher', 'frontHeadteacher']),
       sectionName: '',
       queryParams: {
         videoType: '',
@@ -110,8 +113,8 @@ export default {
     },
     toCollect(item) {
       collectVideoCourse({
-        isCollect:!item.isCollect,
-        id:item.id
+        isCollect: !item.isCollect,
+        id: item.id
       }).then(res => {
         item.isCollect = !item.isCollect
       }).catch(_ => {
@@ -144,6 +147,7 @@ export default {
 .video_contianer {
   padding: 20px;
 }
+
 .video_item > img {
   cursor: pointer;
 }
@@ -151,16 +155,18 @@ export default {
 .video_content .el-col {
   margin-bottom: 42px;
 }
-.video_item{
+
+.video_item {
   border-radius: 4px;
 }
+
 .video_item > img {
   width: 100%;
 }
 
 
-.video_item >p{
-  padding:5px 10px;
-  box-shadow: 0px 1px 4px 0px rgba(47,78,154,0.14);
+.video_item > p {
+  padding: 5px 10px;
+  box-shadow: 0px 1px 4px 0px rgba(47, 78, 154, 0.14);
 }
 </style>