Browse Source

homework + paper-type & query parameters

hare8999@163.com 2 years ago
parent
commit
68a1090e5b

+ 10 - 6
src/common/mx-const.js

@@ -125,18 +125,22 @@ export default {
       label: '在线作业',
       value: 1,
       usePaper: true,
-    },{
+      visible: true
+    }, {
       label: '视频作业',
       value: 2,
       useVideo: true,
-    },{
+      visible: true
+    }, {
       label: '试卷作业',
       value: 3,
-      usePaper: true
-    },{
+      usePaper: true,
+      visible: true
+    }, {
       label: '文字作业',
-      value: 4
-    },],
+      value: 4,
+      visible: false
+    }],
     aliIdType: {
       AliIdResourcePerson: 5 // 个人资源库收藏
     }

+ 18 - 0
src/components/MxCondition/condition-object/condition-homework-type.js

@@ -0,0 +1,18 @@
+import conditionObjectBase from '../condition-object-base.js'
+import consts from '@/common/mx-const'
+
+export default {
+  ...conditionObjectBase,
+  key: 'homeworkType',
+  alias: 'type',
+  title: '类型',
+  getList() {
+    return Promise.resolve(consts.enum.homeworkTypes.filter(t => t.visible))
+  },
+  getCode(item) {
+    return item.value
+  },
+  getLabel(item) {
+    return item.label
+  }
+}

+ 1 - 0
src/views/questioncenter/bestpaper.vue

@@ -35,6 +35,7 @@ export default {
   },
   data() {
     return {
+      queryYear: '',
       tabActive: 0,
       tabList:[
         {

+ 14 - 10
src/views/questioncenter/components/famous-paper.vue

@@ -1,13 +1,17 @@
 <template>
   <div>
     <el-card class="mb10">
+      <slot name="prefix"></slot>
       <mx-condition ref="condition" :query-params="queryParams" :require-fields="requireFields" @query="handleQuery"
-                    @invalid="handleInvalidQuery"
-      ></mx-condition>
-      <mx-search-group justify="end" placeholder="请输入内容"  v-model="form.paperName" @search="clickSuffix">
-      </mx-search-group>
+                    @invalid="handleInvalidQuery"></mx-condition>
     </el-card>
     <el-card class="main" v-if="papersList.length">
+      <div slot="header">
+        <mx-search-group justify="end" placeholder="请输入内容" v-model="form.paperName" @search="clickSuffix">
+          <el-col v-if="isFrontTeacher" :span="16" style="margin-bottom: 0"><span class="f-warning">*收藏后方可发布作业</span>
+          </el-col>
+        </mx-search-group>
+      </div>
       <!-- 试卷整体-----名校试卷名校试卷  -->
       <div class="paper_container">
         <div class="paper_item" v-for="item in papersList" :key="item.id">
@@ -60,7 +64,8 @@ import MxCondition from '@/components/MxCondition/mx-condition'
 import MxSearchGroup from '@/components/MxSearch/mx-search-group'
 
 export default {
-  components:{
+  name: 'famous-paper',
+  components: {
     MxCondition,
     MxSearchGroup
   },
@@ -71,22 +76,22 @@ export default {
         paperGrade: '',
         paperType: '',
         paperArea: '',
-        paperYear: '',
+        paperYear: ''
       },
       requireFields: ['paperSubject', 'paperGrade', 'paperType', 'paperArea', 'paperYear'],
       form: {
-        paperName:'',
+        paperName: ''
       },
       pageForm: {
         pageNum: 1,
         pageSize: 12
       },
       papersList: [],
-      total: 0, // 试卷总数
+      total: 0 // 试卷总数
     }
   },
   computed: {
-    ...mapGetters(['period'])
+    ...mapGetters(['period', 'isFrontTeacher'])
   },
   methods: {
     paperDownLoad(paperId) {
@@ -209,7 +214,6 @@ export default {
 }
 
 
-
 .center_opera .shoucan span {
   font-size: 14px;
   font-family: PingFangSC-Regular, PingFang SC;

+ 56 - 42
src/views/questioncenter/components/generate-tabs/paper-work-history.vue

@@ -1,44 +1,52 @@
 <template>
-  <el-card>
-    <div class="fx-row fx-end-cen mb10">
-      <el-button icon="el-icon-refresh" circle @click="handleQuery"></el-button>
-    </div>
-    <dynamic-table :rows="rows" :columns="columns">
-      <template #index="{$index}">
-        {{ (queryParams.pageNum - 1) * queryParams.pageSize + $index + 1 }}
-      </template>
-      <template #type="{display}">
-        {{ translateType(display) }}
-      </template>
-      <template #status="{row}">
-        <div class="homework-status">
-          <el-badge :value="row.doneCount" type="primary">
-            <el-tag type="primary">已完成</el-tag>
-          </el-badge>
-          <el-badge :value="row.totalCount - row.doneCount" type="danger">
-            <el-tag type="danger">未完成</el-tag>
-          </el-badge>
-        </div>
-      </template>
-      <template #action="{row}">
-        <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)">查看</el-button>
-      </template>
-    </dynamic-table>
-    <pagination v-if="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-                @pagination="getList"></pagination>
-    <el-dialog v-if="detailOption.visible" :visible.sync="detailOption.visible" :title="detailOption.title"
-               width="900px">
-      <paper-work-history-detail :work-id="detailOption.workId" :type="detailOption.type"
-                                 @paperView="handlePaperView"></paper-work-history-detail>
-    </el-dialog>
-    <!--elDrawer不要内嵌在elDialog中,否则遮罩可能重迭-->
-    <el-drawer v-if="paperOption.visible" :visible.sync="paperOption.visible" :title="paperOption.title"
-               :close-on-click-modal="false" size="95%">
-      <div class="pl30 pr30 pb30">
-        <homework-paper :params="paperOption.params"></homework-paper>
+  <div>
+    <el-card>
+      <mx-condition :query-params="condition" use-alias-mapping @query="handleQuery"></mx-condition>
+      <mx-search-group justify="end" v-model="queryParams.keyword"
+                       @search="queryParams.pageNum=1,getList()">
+      </mx-search-group>
+    </el-card>
+    <el-card>
+      <div class="fx-row fx-end-cen mb10">
+        <el-button icon="el-icon-refresh" circle @click="handleQuery"></el-button>
       </div>
-    </el-drawer>
-  </el-card>
+      <dynamic-table :rows="rows" :columns="columns">
+        <template #index="{$index}">
+          {{ (queryParams.pageNum - 1) * queryParams.pageSize + $index + 1 }}
+        </template>
+        <template #type="{display}">
+          {{ translateType(display) }}
+        </template>
+        <template #status="{row}">
+          <div class="homework-status">
+            <el-badge :value="row.doneCount" type="primary">
+              <el-tag type="primary">已完成</el-tag>
+            </el-badge>
+            <el-badge :value="row.totalCount - row.doneCount" type="danger">
+              <el-tag type="danger">未完成</el-tag>
+            </el-badge>
+          </div>
+        </template>
+        <template #action="{row}">
+          <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)">查看</el-button>
+        </template>
+      </dynamic-table>
+      <pagination v-if="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+                  @pagination="getList"></pagination>
+      <el-dialog v-if="detailOption.visible" :visible.sync="detailOption.visible" :title="detailOption.title"
+                 width="900px">
+        <paper-work-history-detail :work-id="detailOption.workId" :type="detailOption.type"
+                                   @paperView="handlePaperView"></paper-work-history-detail>
+      </el-dialog>
+      <!--elDrawer不要内嵌在elDialog中,否则遮罩可能重迭-->
+      <el-drawer v-if="paperOption.visible" :visible.sync="paperOption.visible" :title="paperOption.title"
+                 :close-on-click-modal="false" size="95%">
+        <div class="pl30 pr30 pb30">
+          <homework-paper :params="paperOption.params"></homework-paper>
+        </div>
+      </el-drawer>
+    </el-card>
+  </div>
 </template>
 
 <script>
@@ -55,9 +63,13 @@ export default {
     return {
       extraData: { type: consts.enum.generateScene.paperWork.value },
       paperWorkType: Object.freeze(consts.enum.homeworkTypes.find(t => t.value == 1)),
+      condition: { homeworkType: '' },
+      conditionOutput: null,
       queryParams: {
         pageNum: 1,
-        pageSize: 20
+        pageSize: 20,
+        keyword: '',
+        type: ''
       },
       columns: [
         { prop: 'id', label: '序号', width: '80px', slotBody: 'index' },
@@ -94,12 +106,14 @@ export default {
     this.paperOption.visible = false
   },
   methods: {
-    handleQuery() {
+    handleQuery(model) {
       this.queryParams.pageNum = 1
+      this.conditionOutput = model
       this.getList()
     },
     async getList() {
-      const res = await getTeacherHomeworks(this.queryParams)
+      const query = Object.assign(this.queryParams, this.conditionOutput)
+      const res = await getTeacherHomeworks(query)
       this.rows = res.rows || res.data
       this.total = res.total || this.rows.length
     },

+ 30 - 3
src/views/questioncenter/components/generate-tabs/paper-work-past.vue

@@ -1,16 +1,43 @@
 <template>
-  <famous-paper></famous-paper>
+  <div>
+    <keep-alive v-for="type in paperTypes" :key="type.component">
+      <component :is="type.component" v-if="type.component==currentPaper">
+        <template #prefix>
+          <el-radio-group v-model="currentPaper" class="paper-type-radio mb20" style="margin-left: 65px">
+            <el-radio-button v-for="type in paperTypes" :key="type.component" :label="type.component">
+              {{ type.label }}
+            </el-radio-button>
+          </el-radio-group>
+        </template>
+      </component>
+    </keep-alive>
+  </div>
 </template>
 
 <script>
 import FamousPaper from '@/views/questioncenter/components/famous-paper'
+import HistoryPaper from '@/views/questioncenter/components/history-paper'
 
 export default {
   name: 'paper-work-past',
-  components: { FamousPaper }
+  components: { HistoryPaper, FamousPaper },
+  data() {
+    return {
+      paperTypes: [{
+        component: 'famous-paper',
+        label: '名校试卷'
+      }, {
+        component: 'history-paper',
+        label: '历年真题'
+      }],
+      currentPaper: FamousPaper.name
+    }
+  }
 }
 </script>
 
 <style scoped>
-
+.paper-type-radio /deep/ .el-radio-button__inner {
+  width: 180px;
+}
 </style>

+ 55 - 42
src/views/questioncenter/components/generate-tabs/paper-work-publish.vue

@@ -1,42 +1,47 @@
 <template>
-  <el-card>
-    <div class="mb10 fx-row fx-end-cen">
-      <el-button icon="el-icon-refresh" circle @click="handleQuery"></el-button>
-    </div>
-    <dynamic-table :rows="rows" :columns="columns">
-      <template #index="{$index}">
-        {{ (queryParams.pageNum - 1) * queryParams.pageSize + $index + 1 }}
-      </template>
-      <template #type="{display}">
-        {{ translateType(display) }}
-      </template>
-      <template #action="{row}">
-        <div>
-          <el-button v-if="row.type == paperWorkType.value" type="text" icon="el-icon-edit"
-                     @click="clickEditPaper(row)">编辑
-          </el-button>
-          <el-button type="text" icon="el-icon-connection" @click="clickPublish(row)">
-            发布
-            <template v-if="row.publishedCount">({{ row.publishedCount }})</template>
-          </el-button>
-        </div>
-      </template>
-    </dynamic-table>
-    <pagination v-if="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-                @pagination="getList"></pagination>
-    <upload-dialog
-      v-if="uploadOption.dialogVisible"
-      scene="发布"
-      :title="uploadOption.title"
-      :pageName="uploadOption.pageName"
-      :isZdy="false"
-      :selectType="uploadOption.selectType"
-      :dialogVisible="uploadOption.dialogVisible"
-      :default-selected="uploadOption.defaultSelected"
-      @handleClose="handleUploadReady"
-      @dialogVisibleClose="uploadOption.dialogVisible=false"
-    ></upload-dialog>
-  </el-card>
+  <div>
+    <el-card>
+      <mx-condition :query-params="condition" use-alias-mapping @query="handleQuery"></mx-condition>
+      <mx-search-group justify="end" v-model="queryParams.keyword"
+                       @search="queryParams.pageNum=1,getList()">
+      </mx-search-group>
+    </el-card>
+    <el-card>
+      <dynamic-table :rows="rows" :columns="columns">
+        <template #index="{$index}">
+          {{ (queryParams.pageNum - 1) * queryParams.pageSize + $index + 1 }}
+        </template>
+        <template #type="{display}">
+          {{ translateType(display) }}
+        </template>
+        <template #action="{row}">
+          <div>
+            <el-button v-if="row.type == paperWorkType.value" type="text" icon="el-icon-edit"
+                       @click="clickEditPaper(row)">编辑
+            </el-button>
+            <el-button type="text" icon="el-icon-connection" @click="clickPublish(row)">
+              发布
+              <template v-if="row.publishedCount">({{ row.publishedCount }})</template>
+            </el-button>
+          </div>
+        </template>
+      </dynamic-table>
+      <pagination v-if="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+                  @pagination="getList"></pagination>
+      <upload-dialog
+        v-if="uploadOption.dialogVisible"
+        scene="发布"
+        :title="uploadOption.title"
+        :pageName="uploadOption.pageName"
+        :isZdy="false"
+        :selectType="uploadOption.selectType"
+        :dialogVisible="uploadOption.dialogVisible"
+        :default-selected="uploadOption.defaultSelected"
+        @handleClose="handleUploadReady"
+        @dialogVisibleClose="uploadOption.dialogVisible=false"
+      ></upload-dialog>
+    </el-card>
+  </div>
 </template>
 
 <script>
@@ -45,17 +50,23 @@ import { getHomeworks, getHomeworkStudents, publicStudentHomework } from '@/api/
 import consts from '@/common/mx-const'
 import { download, listCustomerPaperQeustions } from '@/api/webApi/webQue'
 import { mapGetters } from 'vuex'
+import MxCondition from '@/components/MxCondition/mx-condition'
+import MxSearchGroup from '@/components/MxSearch/mx-search-group'
 
 export default {
   name: 'paper-work-publish',
-  components: { DynamicTable },
+  components: { MxSearchGroup, MxCondition, DynamicTable },
   data() {
     return {
       extraData: { type: consts.enum.generateScene.paperWork.value },
       paperWorkType: Object.freeze(consts.enum.homeworkTypes.find(t => t.value == 1)),
+      condition: { homeworkType: '' },
+      conditionOutput: null,
       queryParams: {
         pageNum: 1,
-        pageSize: 20
+        pageSize: 20,
+        keyword: '',
+        type: ''
       },
       columns: [
         { prop: 'id', label: '序号', width: '80px', slotBody: 'index' },
@@ -82,12 +93,14 @@ export default {
     this.getList()
   },
   methods: {
-    handleQuery() {
+    handleQuery(model) {
       this.queryParams.pageNum = 1
+      this.conditionOutput = model
       this.getList()
     },
     async getList() {
-      const res = await getHomeworks(this.queryParams)
+      const query = Object.assign(this.queryParams, this.conditionOutput)
+      const res = await getHomeworks(query)
       this.rows = res.rows || res.data
       this.total = res.total || this.rows.length
     },

+ 41 - 12
src/views/questioncenter/components/history-paper.vue

@@ -1,15 +1,19 @@
 <template>
   <div>
     <el-card class="mb10">
+      <slot name="prefix"></slot>
       <mx-condition ref="condition" :query-params="queryParams" :require-fields="requireFields" @query="handleQuery"
-                    @invalid="handleInvalidQuery"
-      ></mx-condition>
-      <mx-search-group justify="end" placeholder="请输入内容"  v-model="form.paperName" @search="clickSearch">
-      </mx-search-group>
+                    @invalid="handleInvalidQuery"></mx-condition>
     </el-card>
     <el-card class="main" v-if="paperYearList.length">
+      <div slot="header">
+        <mx-search-group justify="end" placeholder="请输入内容" v-model="form.paperName" @search="clickSearch">
+          <el-col v-if="isFrontTeacher" :span="16" style="margin-bottom: 0"><span class="f-warning">*收藏后方可发布作业</span>
+          </el-col>
+        </mx-search-group>
+      </div>
       <!-- 试卷整体-----历年真题  -->
-      <div class="real_topic" >
+      <div class="real_topic">
         <div class="topic_item" v-for="item in paperYearList" :key="item.id">
           <div class="paper_tit">
             {{ item.papername }}
@@ -20,6 +24,16 @@
               <span>预览</span>
             </div>
             <div class="btn" @click="paperDownLoad(item.id)">下载</div>
+            <div class="pointer ml20">
+              <div @click="collect(item)" v-if="!item.collect">
+                <img class="mr10" src="@/assets/images/icon_shoucang_n.png" alt=""/>
+                <span>收藏</span>
+              </div>
+              <div @click="cancelCollect(item)" v-else>
+                <img class="mr10" src="@/assets/images/icon_shoucang_s.png" alt=""/>
+                <span>已收藏</span>
+              </div>
+            </div>
           </div>
         </div>
       </div>
@@ -36,18 +50,19 @@
   </div>
 </template>
 <script>
-import { downloadRealPaper, papersList } from '@/api/webApi/webQue.js'
+import { downloadRealPaper, papersCancelCollect, papersCollect, papersList } from '@/api/webApi/webQue.js'
 import { mapGetters } from 'vuex'
 import MxCondition from '@/components/MxCondition/mx-condition'
 import MxSearchGroup from '@/components/MxSearch/mx-search-group'
 
 export default {
-  components:{
+  name: 'history-paper',
+  components: {
     MxCondition,
     MxSearchGroup
   },
-  props:{
-    queryYear:''
+  props: {
+    queryYear: ''
   },
   created() {
     this.queryParams.paperYear = this.queryYear
@@ -64,14 +79,14 @@ export default {
         pageSize: 12
       },
       form: {
-        paperName: '',
+        paperName: ''
       },
       total: 0, // 试卷总数
       paperYearList: []
     }
   },
   computed: {
-    ...mapGetters(['period'])
+    ...mapGetters(['period', 'isFrontTeacher'])
   },
   methods: {
     handleInvalidQuery() {
@@ -91,7 +106,7 @@ export default {
       })
     },
     clickSearch() {
-        this.getPaperListByYear()
+      this.getPaperListByYear()
     },
     // 获取历年真题试卷列表
     getPaperListByYear() {
@@ -109,6 +124,20 @@ export default {
     },
     togglePage() {
       this.getPaperListByYear()
+    },
+    // 收藏
+    collect(item) {
+      item.collect = !item.collect
+      papersCollect({ paperId: item.id }).then((res) => {
+        this.msgSuccess('收藏成功')
+      })
+    },
+    // 取消收藏
+    cancelCollect(item) {
+      item.collect = !item.collect
+      papersCancelCollect({ paperId: item.id }).then((res) => {
+        this.msgSuccess('取消收藏成功')
+      })
     }
   }
 }

+ 4 - 10
src/views/questioncenter/generating.vue

@@ -9,11 +9,10 @@
         </div>
       </div>
     </el-card>
-    <!--  效果不好,每次tab切换时都会完全重新加载组件,没有缓存效果  -->
-    <!--    <component v-if="tabActive" :is="tabActive"></component>-->
     <!--  NOTE:类似延迟加载  -->
-    <component v-for="tab in visibleTabs" :is="tab.content" :key="tab.content"
-               v-if="tabVisited.includes(tab.content)" v-show="tab.content==tabActive"></component>
+    <keep-alive v-for="tab in visibleTabs" :key="tab.content">
+      <component :is="tab.content" v-if="tab.content==tabActive"></component>
+    </keep-alive>
   </div>
 </template>
 <script>
@@ -66,8 +65,7 @@ export default {
         content: PaperWorkHistory.name
       }],
       visibleTabs: [],
-      tabActive: '',
-      tabVisited: []
+      tabActive: ''
     }
   },
   created() {
@@ -80,12 +78,8 @@ export default {
   },
   methods: {
     handleTabChange(idx) {
-      if (!(idx < this.visibleTabs.length)) return
       const current = this.visibleTabs[idx]
       this.tabActive = current.content
-      if (!this.tabVisited.includes(this.tabActive)) {
-        this.tabVisited.push(this.tabActive)
-      }
     }
   }
 }

+ 18 - 5
src/views/questioncenter/homework.vue

@@ -1,9 +1,12 @@
 <template>
   <div class="app-container">
     <el-card>
-      <div class="fx-row fx-end-cen mb10">
-        <el-button icon="el-icon-refresh" circle @click="queryParams.pageNum=1,getList()"></el-button>
-      </div>
+      <mx-condition :query-params="condition" use-alias-mapping @query="handleQuery"></mx-condition>
+      <mx-search-group justify="end" v-model="queryParams.keyword"
+                       @search="queryParams.pageNum=1,getList()">
+      </mx-search-group>
+    </el-card>
+    <el-card>
       <dynamic-table :columns="columns" :rows="rows">
         <template #index="{$index}">
           {{ (queryParams.pageNum - 1) * queryParams.pageSize + $index + 1 }}
@@ -51,9 +54,13 @@ export default {
   components: { HomeworkPaper, DynamicTable },
   data() {
     return {
+      condition: { homeworkType: '' },
+      conditionOutput: null,
       queryParams: {
         pageNum: 1,
-        pageSize: 20
+        pageSize: 20,
+        keyword: '',
+        type: ''
       },
       columns: [
         { prop: 'id', label: '序号', width: '80px', slotBody: 'index' },
@@ -92,8 +99,14 @@ export default {
     this.paperOption.visible = false
   },
   methods: {
+    handleQuery(model) {
+      this.queryParams.pageNum = 1
+      this.conditionOutput = model
+      this.getList()
+    },
     async getList() {
-      const res = await getStudentHomeworks(this.queryParams)
+      const query = Object.assign(this.queryParams, this.conditionOutput)
+      const res = await getStudentHomeworks(query)
       this.rows = res.rows || res.data
       this.total = res.total || this.rows.length
     },

+ 1 - 4
src/views/questioncenter/paper.vue

@@ -13,10 +13,7 @@
               questionData.num
             }}题;共{{ questionData.score }}分)</span>
             <span style="float: right; display: none" :id="'parent_score_' + index">
-            <el-button type="text" @click="
-                openParentScore = true;
-                currentIndex = index;
-              ">批量设置得分</el-button>
+            <el-button type="text" @click="openParentScore = true,currentIndex = index">批量设置得分</el-button>
             <el-button type="text" @click="deleteType(index)">删除分类</el-button>
           </span>
           </div>

+ 11 - 19
src/views/videocourse/video_course.vue

@@ -8,20 +8,14 @@
     <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">
+          <el-col v-if="isFrontTeacher" :span="18" style="margin-bottom: 0"><span class="f-warning">*收藏后方可发布作业</span>
+          </el-col>
         </mx-search-group>
       </div>
       <el-row :gutter="20">
-        <el-col
-          :span="6"
-          class="video_item"
-          v-for="item in videoList"
-          :key="item.id"
-        >
-          <img
-            :src="item.img"
-            alt=""
-            @click="
-              toVideoDetail(
+        <el-col :span="6" class="video_item" v-for="item in videoList" :key="item.id">
+          <img :src="item.img" alt="" @click="
+             toVideoDetail(
                 item.pack_id,
                 item.chapter_id,
                 item.id,
@@ -40,14 +34,8 @@
       </el-row>
       <!-- 分页 -->
       <div class="split_page">
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="pageForm.pageNum"
-          :limit.sync="pageForm.pageSize"
-          :pageSizes="[16,32]"
-          @pagination="getVideoList"
-        />
+        <pagination v-show="total > 0" :total="total" :page.sync="pageForm.pageNum" :limit.sync="pageForm.pageSize"
+                    :pageSizes="[16,32]" @pagination="getVideoList"/>
       </div>
     </el-card>
     <evaluation-empty v-if="videoList.length == 0"/>
@@ -58,6 +46,7 @@ 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 { mapGetters } from 'vuex'
 
 export default {
   name: 'video-course',
@@ -90,6 +79,9 @@ export default {
       videoList: [] // 视频列表
     }
   },
+  computed: {
+    ...mapGetters(['isFrontTeacher'])
+  },
   methods: {
     handleInvalidQuery() {