dusenyao hace 3 años
padre
commit
840119f075

+ 4 - 4
src/common/data.js

@@ -1,19 +1,19 @@
 const taskTimeList = [
   {
     constant: -1,
-    name: '全部'
+    name: 'Key110'
   },
   {
     constant: 0,
-    name: '课前'
+    name: 'Key292'
   },
   {
     constant: 1,
-    name: '课中'
+    name: 'Key293'
   },
   {
     constant: 2,
-    name: '课后'
+    name: 'Key294'
   }
 ];
 

+ 1 - 0
src/layouts/components/BreadCrumb.vue

@@ -44,6 +44,7 @@ export default {
   methods: {
     getBreadcrumb() {
       this.routerList = this.$route.matched.filter(item => item.meta && item.meta.title);
+      this.$emit('update:isShowNav', this.isShow);
     }
   }
 };

+ 8 - 5
src/layouts/components/LayoutHeader.vue

@@ -7,7 +7,7 @@
       </span>
       <ul class="logo-projectlist">
         <li
-          v-for="({name}, i) in projectList"
+          v-for="({ name }, i) in projectList"
           :key="i"
           :class="i === LoginNavIndex ? 'active' : ''"
           @click="handleCommand(i)"
@@ -26,7 +26,7 @@
         </el-dropdown-menu>
       </el-dropdown>
       <div v-if="!userMessage" class="selectLoginOrRegistration">
-        <span @click="cutLoginReg">登录</span>
+        <span @click="cutLoginReg">{{ $t('Key9') }}</span>
       </div>
       <!-- 用户头像和用户名 -->
       <el-dropdown v-else style="margin-right: 16px" trigger="click" class="user">
@@ -40,10 +40,10 @@
         </span>
         <el-dropdown-menu slot="dropdown" class="user-menu">
           <el-dropdown-item @click.native="goPersonal">
-            <img src="../../assets/login/project7.png"><span>个人中心</span>
+            <img src="../../assets/login/project7.png"><span>{{ $t('Key8') }}</span>
           </el-dropdown-item>
           <el-dropdown-item @click.native="QuitLogin">
-            <img src="../../assets/login/Frame77.png"><span>退出登录</span>
+            <img src="../../assets/login/Frame77.png"><span>{{ $t('Key39') }}</span>
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -83,6 +83,9 @@ export default {
   },
   created() {
     this.getChildSysList();
+    this.updateWordPack({
+      word_key_list: ['Key8', 'Key9', 'Key39']
+    });
     const { token, isHas } = getToken();
     if (isHas) {
       this.userMessage = token;
@@ -360,7 +363,7 @@ export default {
 
 <style lang="scss">
 .user-menu {
-  width: 156px;
+  min-width: 156px;
 
   .el-dropdown-menu__item {
     display: flex;

+ 13 - 12
src/layouts/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app">
-    <div class="app-header">
+    <header class="app-header">
       <layout-header />
-      <bread-crumb />
-    </div>
-    <section class="app-main">
+      <bread-crumb :is-show-nav.sync="isShowNav" />
+    </header>
+    <section class="app-main" :style="{ height: `calc(100vh - 64px ${isShowNav ? '- 56px' : ''})` }">
       <transition name="fade-transfrom" mode="out-in">
         <router-view :key="key" />
       </transition>
@@ -13,8 +13,8 @@
 </template>
 
 <script>
-import LayoutHeader from './components/LayoutHeader';
-import BreadCrumb from './components/BreadCrumb';
+import LayoutHeader from './components/LayoutHeader.vue';
+import BreadCrumb from './components/BreadCrumb.vue';
 
 export default {
   name: 'Layout',
@@ -22,6 +22,11 @@ export default {
     LayoutHeader,
     BreadCrumb
   },
+  data() {
+    return {
+      isShowNav: false
+    };
+  },
   computed: {
     key() {
       return this.$route.path;
@@ -37,20 +42,16 @@ export default {
 
 <style lang="scss">
 .app {
-  height: 100%;
-  padding-top: $header-h;
+  display: flex;
+  flex-direction: column;
 
   &-header {
-    position: fixed;
-    top: 0;
-    left: 0;
     z-index: 1002;
     width: 100%;
   }
 
   &-main {
     width: 100%;
-    height: calc(100vh - #{$header-h});
     overflow-y: auto;
     background-color: $bac-color;
   }

+ 1 - 1
src/router/index.js

@@ -84,7 +84,7 @@ const routes = [
       },
       // 分步表单 -> 第三步 -> 新建课节任务
       {
-        path: '/create_course_step_table/new_task/:time_type/:id/:cs_item_id',
+        path: '/create_course_step_table/new_task/:time_type/:id/:curItemID',
         component: () =>
           import(/* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/NewTask')
       }

+ 3 - 9
src/views/course_details/index.vue

@@ -100,7 +100,7 @@
               </div>
               <div class="text">
                 <p class="p1">
-                  {{ item.book_name }}
+                  <span :style="{ cursor: 'pointer' }" @click="goBook(item.book_id)">{{ item.book_name }}</span>
                 </p>
                 <p>{{ item.book_org_name }}</p>
                 <p>{{ item.book_author }}</p>
@@ -118,7 +118,7 @@
             </div>
           </div>
         </div>
-        <div class="more">
+        <div v-if="CourseData.teacher_list.length > 0" class="more">
           <div class="moreTitle">
             授课教师
           </div>
@@ -227,13 +227,7 @@
           </div>
         </div>
 
-        <el-dialog
-          class="orderDialog"
-          title="商品详情"
-          :visible="auditShow"
-          width="720px"
-          :before-close="closeaudit"
-        >
+        <el-dialog class="orderDialog" title="商品详情" :visible="auditShow" width="720px" :before-close="closeaudit">
           <audit :goods-id="goods_id" :data="CourseData" :goods-type="goods_type" />
         </el-dialog>
       </div>

+ 37 - 17
src/views/main/TaskList.vue

@@ -10,7 +10,10 @@
         <div class="notice-title">
           <svg-icon icon-class="task-notification" class-name="svg-normal" />
           <span>{{ $t('Key291') }}</span>
-          <span class="notice-title-link" @click="goPersonal">全部 <i class="el-icon-arrow-right" /></span>
+          <span class="notice-title-link" @click="goPersonal">
+            {{ $t('Key110') }}
+            <i class="el-icon-arrow-right" />
+          </span>
         </div>
         <!-- 通知列表 -->
         <div class="notice-container">
@@ -37,7 +40,9 @@
 
     <div class="tasks-right">
       <div class="task-title">
-        <svg-icon icon-class="task-list" class-name="svg-normal" /><span class="task-title-name">任务列表</span>
+        <svg-icon icon-class="task-list" class-name="svg-normal" /><span class="task-title-name">
+          {{ $t('Key278') }}
+        </span>
         <div class="curricula-type">
           <span
             v-for="{ constant, name } in taskTimeList"
@@ -45,14 +50,14 @@
             :class="['curricula-type-item', timeType === constant ? 'active' : '']"
             @click="changeTaskTime(constant)"
           >
-            {{ name }}
+            {{ $t(name) }}
           </span>
         </div>
         <span class="select-prefix">
           <svg-icon icon-class="schedule" class-name="svg-normal" />
         </span>
         <el-select v-model="course_id" class="select-course" @change="changeCourse">
-          <el-option label="全部" value="" />
+          <el-option :label="$t('Key110')" value="" />
           <el-option v-for="{ id, name } in course_list" :key="id" :label="name" :value="id" />
         </el-select>
       </div>
@@ -88,7 +93,7 @@
                 :style="{ 'background-color': buttonColorList[j % 3] }"
                 @click.stop="taskLink(teaching_type, id)"
               >
-                {{ getTimeTypeName(time_type) }}任务
+                {{ getTimeTypeName(time_type) }}{{ $t('Key289') }}
               </span>
             </div>
             <div class="task-item-bottom">
@@ -111,7 +116,7 @@ import MainMenu from './components/MainMenu.vue';
 import { PageQueryMyMessageList, GetMyTaskList } from '@/api/table';
 import { CreateEnterLiveRoomSession } from '@/api/live';
 import { ReadMyMessage } from '@/api/user';
-import { colorMatching, getMenuList, buttonColorList } from './data';
+import { colorMatching, buttonColorList } from './data';
 import { taskTimeList } from '@/common/data';
 import { GetMyCourseList_TaskBelong } from '@/api/list';
 import MonthlyCalendar from './components/MonthlyCalendar.vue';
@@ -130,7 +135,6 @@ export default {
       course_id: '',
       selected: '',
       timeType: -1,
-      menuList: getMenuList(),
       task_group_list: [],
       message_list: [],
       course_list: []
@@ -151,7 +155,19 @@ export default {
       this.message_list = message_list;
     });
     this.updateWordPack({
-      word_key_list: ['Key291']
+      word_key_list: [
+        'Key110',
+        'Key291',
+        'Key215',
+        'Key290',
+        'Key278',
+        'Key292',
+        'Key293',
+        'key294',
+        'Key289',
+        'Key310',
+        'Key311'
+      ]
     });
   },
   mounted() {
@@ -159,9 +175,9 @@ export default {
   },
   methods: {
     getTimeTypeName(type) {
-      if (type === 0) return '课前';
-      if (type === 1) return '课中';
-      if (type === 2) return '课后';
+      if (type === 0) return this.$i18n.t('Key292');
+      if (type === 1) return this.$i18n.t('Key293');
+      if (type === 2) return this.$i18n.t('Key294');
       return '';
     },
 
@@ -270,6 +286,7 @@ export default {
       height: calc(100vh - 705px);
       min-height: 424px;
       padding: 32px;
+      line-height: 1.5;
       background: #fff;
       border-radius: 8px;
 
@@ -281,7 +298,7 @@ export default {
 
         > span:first-of-type {
           flex: 1;
-          padding-left: 16px;
+          padding-left: 8px;
         }
 
         &-link {
@@ -299,17 +316,20 @@ export default {
           li {
             display: flex;
             padding: 8px 0;
-            border-bottom: 1px solid $border-color;
+
+            &:not(:first-child) {
+              border-top: 1px solid $border-color;
+            }
 
             .is-read {
-              width: 80px;
+              min-width: 48px;
               color: $basic-color;
             }
 
             .notice-content {
               position: relative;
               width: 230px;
-              max-height: 3.45em;
+              max-height: 3em;
               margin-right: 16px;
               overflow: hidden;
               word-break: break-all;
@@ -317,7 +337,7 @@ export default {
               // 多行文本隐藏
               &::after {
                 position: absolute;
-                top: 2em;
+                top: 1.2em;
                 right: 0;
                 padding-left: 40px;
                 font-size: 18px;
@@ -387,7 +407,7 @@ export default {
       }
 
       .el-select {
-        width: calc(100% - 360px);
+        flex: 1;
       }
     }
 

+ 36 - 19
src/views/main/TemplateList.vue

@@ -6,16 +6,16 @@
       <div>
         <el-input v-model="template_name" class="search-name" prefix-icon="el-icon-search" @change="queryCourseList">
           <el-button slot="append" @click="queryCourseList">
-            搜索
+            {{ $t('Key131') }}
           </el-button>
         </el-input>
       </div>
       <div>
         <el-select v-model="release_status">
-          <el-option v-for="item in releaseStatusList" :key="item.value" :label="item.name" :value="item.value" />
+          <el-option v-for="item in releaseStatusList" :key="item.value" :label="$t(item.name)" :value="item.value" />
         </el-select>
         <el-button class="query-button" type="primary" @click="queryCourseList">
-          查询
+          {{ $t('Key168') }}
         </el-button>
       </div>
     </div>
@@ -23,23 +23,23 @@
     <div class="template-container">
       <div class="template-container-title">
         <el-button class="create" @click="$router.push('/create_course_step_table/course_info?is_template=true')">
-          <div><svg-icon icon-class="create" /><span>创建模板</span></div>
+          <svg-icon icon-class="create" /><span>{{ $t('Key297') }}</span>
         </el-button>
       </div>
       <div class="template-container-list">
         <el-table :data="courseList">
-          <el-table-column prop="name" label="课程名称" width="320" />
-          <el-table-column label="课程周期" width="210">
+          <el-table-column prop="name" :label="$t('Key134')" width="320" />
+          <el-table-column :label="$t('Key250')" width="210">
             <template slot-scope="{ row }">
               <i class="el-icon-date" /> {{ row.begin_date }} - {{ row.end_date }}
             </template>
           </el-table-column>
-          <el-table-column label="已发布" width="80">
+          <el-table-column :label="$t('Key129')" width="90">
             <template slot-scope="{ row }">
               {{ row.is_release === 'true' ? '√' : '' }}
             </template>
           </el-table-column>
-          <el-table-column label="所属机构" prop="org_name" />
+          <el-table-column :label="$t('Key136')" prop="org_name" />
 
           <el-table-column fixed="right" width="80">
             <template slot-scope="{ row: { id, is_release } }">
@@ -49,16 +49,16 @@
                 </span>
                 <el-dropdown-menu slot="dropdown">
                   <el-dropdown-item @click.native="edit(id)">
-                    <svg-icon icon-class="edit" /> 编辑
+                    <svg-icon icon-class="edit" /> {{ $t('Key123') }}
                   </el-dropdown-item>
                   <el-dropdown-item v-if="is_release === 'false'" @click.native="releaseCourse(id, true)">
-                    <svg-icon icon-class="publish" /> 发布
+                    <svg-icon icon-class="publish" /> {{ $t('Key130') }}
                   </el-dropdown-item>
                   <el-dropdown-item v-else @click.native="releaseCourse(id, false)">
-                    <svg-icon icon-class="undo" /> 取消发布
+                    <svg-icon icon-class="undo" /> {{ $t('Key171') }}
                   </el-dropdown-item>
                   <el-dropdown-item @click.native="deleteCourse(id)">
-                    <svg-icon icon-class="delete" /> 删除
+                    <svg-icon icon-class="delete" /> {{ $t('Key172') }}
                   </el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
@@ -102,15 +102,15 @@ export default {
       release_status: -1,
       releaseStatusList: [
         {
-          name: '全部',
+          name: 'Key110',
           value: -1
         },
         {
-          name: '已发布',
+          name: 'Key129',
           value: 1
         },
         {
-          name: '未发布',
+          name: 'Key217',
           value: 0
         }
       ],
@@ -119,6 +119,24 @@ export default {
     };
   },
   created() {
+    this.updateWordPack({
+      word_key_list: [
+        'Key129',
+        'Key131',
+        'Key168',
+        'Key297',
+        'Key134',
+        'Key136',
+        'Key250',
+        'Key123',
+        'Key130',
+        'Key171',
+        'Key172',
+        'Key110',
+        'Key129',
+        'Key217'
+      ]
+    });
     this.queryCourseList();
   },
   methods: {
@@ -209,11 +227,10 @@ export default {
       font-weight: bold;
 
       .create {
-        width: 138px;
+        min-width: 138px;
 
-        div {
-          display: flex;
-          justify-content: space-around;
+        .svg-icon {
+          margin-right: 12px;
         }
       }
     }

+ 1 - 1
src/views/main/components/MainMenu.vue

@@ -7,7 +7,7 @@
         :class="['main-menu-item', tab === curTab ? 'active' : '']"
         @click="changeTab(tab)"
       >
-        {{ name }}
+        {{ $t(name) }}
       </span>
     </template>
   </div>

+ 1 - 1
src/views/main/components/MonthlyCalendar.vue

@@ -70,7 +70,7 @@
         :class="['item', type === time_unit ? 'active' : '']"
         @click="changeMenu(type)"
       >
-        {{ name }}
+        {{ $t(name) }}
       </span>
     </div>
   </div>

+ 2 - 2
src/views/main/components/calendarData.js

@@ -83,11 +83,11 @@ const monthList = [
 const modeList = [
   {
     type: 'DAY',
-    name: ''
+    name: 'Key310'
   },
   {
     type: 'MONTH',
-    name: ''
+    name: 'Key311'
   }
 ];
 

+ 10 - 11
src/views/main/curricula_list/student.vue

@@ -6,13 +6,13 @@
       <div class="curricula-student-search-condition">
         <el-input v-model="search" prefix-icon="el-icon-search" @change="queryMyCourseList">
           <el-button slot="append" @click="queryMyCourseList">
-            搜索
+            {{ $t('Key131') }}
           </el-button>
         </el-input>
       </div>
       <div class="curricula-student-search-button">
         <el-select v-model="teacher_id">
-          <el-option label="-请选择-" value="" />
+          <el-option :label="`-${$t('Key295')}-`" value="" />
           <el-option
             v-for="item in teacher_list"
             :key="item.teacher_id"
@@ -21,7 +21,7 @@
           />
         </el-select>
         <el-select v-model="finish_status">
-          <el-option label="-请选择-" :value="-1" />
+          <el-option :label="`-${$t('Key295')}-`" :value="-1" />
           <el-option
             v-for="item in finish_status_list"
             :key="item.finish_status"
@@ -30,11 +30,11 @@
           />
         </el-select>
         <el-select v-model="buy_status">
-          <el-option label="-请选择-" :value="-1" />
+          <el-option :label="`-${$t('Key295')}-`" :value="-1" />
           <el-option v-for="item in buy_status_list" :key="item.status" :label="item.name" :value="item.status" />
         </el-select>
         <el-button type="primary" @click="queryMyCourseList">
-          查询
+          {{ $t('Key168') }}
         </el-button>
       </div>
     </div>
@@ -47,9 +47,9 @@
       </div>
       <div class="curricula-student-container-list">
         <el-table :data="courseList">
-          <el-table-column prop="course_name" label="课程名称" width="300" />
+          <el-table-column prop="course_name" :label="$t('Key203')" width="300" />
           <el-table-column label="课程教师" prop="teacher_name_desc" width="360" />
-          <el-table-column label="课程周期" width="280">
+          <el-table-column :label="$t('Key250')" width="280">
             <template slot-scope="{ row }">
               <i class="el-icon-date" /> {{ row.date_space_view_text }}
             </template>
@@ -86,7 +86,6 @@
 </template>
 
 <script>
-import { updateWordPack } from '@/utils/i18n';
 import { PageQueryMyJoinCourseList_Student } from '@/api/table';
 import {
   GetFinishStatusList_Course,
@@ -115,6 +114,9 @@ export default {
     };
   },
   created() {
+    this.updateWordPack({
+      word_key_list: ['Key131', 'Key295', 'Key168', 'Key203', 'Key250']
+    });
     this.initData();
   },
   methods: {
@@ -129,9 +131,6 @@ export default {
         this.teacher_list = teacher_list;
       });
       this.queryMyCourseList();
-      updateWordPack({
-        word_key_list: ['Learn_New_Courses']
-      });
     },
     changePage(newPage) {
       this.cur_page = newPage;

+ 37 - 19
src/views/main/curricula_list/teacher.vue

@@ -6,13 +6,13 @@
       <div class="curricula-teacher-search-condition">
         <el-input v-model="search" prefix-icon="el-icon-search" @change="queryMyCourseList">
           <el-button slot="append" @click="queryMyCourseList">
-            搜索
+            {{ $t('Key131') }}
           </el-button>
         </el-input>
       </div>
       <div class="curricula-teacher-search-button">
         <el-select v-model="finish_status">
-          <el-option label="-请选择-" :value="-1" />
+          <el-option :label="`-${$t('Key295')}-`" :value="-1" />
           <el-option
             v-for="item in finish_status_list"
             :key="item.finish_status"
@@ -21,7 +21,7 @@
           />
         </el-select>
         <el-button type="primary" @click="queryMyCourseList">
-          查询
+          {{ $t('Key168') }}
         </el-button>
       </div>
     </div>
@@ -30,25 +30,25 @@
       <div class="curricula-teacher-container-title">
         <div>
           <el-button class="create" @click="$router.push('/create_course')">
-            <div><svg-icon icon-class="create" /><span>创建课程</span></div>
+            <svg-icon icon-class="create" /><span>{{ $t('Key285') }}</span>
           </el-button>
         </div>
       </div>
       <div class="curricula-teacher-container-list">
         <el-table :data="courseList">
-          <el-table-column prop="name" label="课程名称" width="320" />
-          <el-table-column label="课程周期" width="210">
+          <el-table-column prop="name" :label="$t('Key134')" width="320" />
+          <el-table-column :label="$t('Key250')" width="210">
             <template slot-scope="{ row }">
               <i class="el-icon-date" /> {{ row.begin_date }} - {{ row.end_date }}
             </template>
           </el-table-column>
-          <el-table-column label="已发布" width="80">
+          <el-table-column :label="$t('Key129')" width="90">
             <template slot-scope="{ row }">
               {{ row.is_release === 'true' ? '√' : '' }}
             </template>
           </el-table-column>
-          <el-table-column label="所属机构" width="280" prop="org_name" />
-          <el-table-column label="创建人" prop="creator_name" />
+          <el-table-column :label="$t('Key136')" width="280" prop="org_name" />
+          <el-table-column :label="$t('Key280')" prop="creator_name" />
           <el-table-column fixed="right" width="80">
             <template slot-scope="{ row }">
               <el-dropdown trigger="click">
@@ -57,22 +57,22 @@
                 </span>
                 <el-dropdown-menu slot="dropdown">
                   <el-dropdown-item @click.native="edit(row.id)">
-                    <svg-icon icon-class="edit" /> 编辑
+                    <svg-icon icon-class="edit" /> {{ $t('Key123') }}
                   </el-dropdown-item>
                   <el-dropdown-item @click.native="view(row.id)">
-                    <svg-icon icon-class="view" /> 查看
+                    <svg-icon icon-class="view" /> {{ $t('Key169') }}
                   </el-dropdown-item>
                   <el-dropdown-item v-if="row.is_release === 'false'" @click.native="releaseCourse(row.id, true)">
-                    <svg-icon icon-class="publish" /> 发布
+                    <svg-icon icon-class="publish" /> {{ $t('Key173') }}
                   </el-dropdown-item>
                   <el-dropdown-item v-else @click.native="releaseCourse(row.id, false)">
-                    <svg-icon icon-class="undo" /> 取消发布
+                    <svg-icon icon-class="undo" /> {{ $t('Key171') }}
                   </el-dropdown-item>
                   <el-dropdown-item @click.native="deleteCourse(row.id)">
-                    <svg-icon icon-class="delete" /> 删除
+                    <svg-icon icon-class="delete" /> {{ $t('Key172') }}
                   </el-dropdown-item>
                   <el-dropdown-item @click.native="studentList(row.id)">
-                    <svg-icon icon-class="students" /> 学生列表
+                    <svg-icon icon-class="students" /> {{ $t('Key296') }}
                   </el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
@@ -120,6 +120,25 @@ export default {
     };
   },
   created() {
+    this.updateWordPack({
+      word_key_list: [
+        'Key131',
+        'Key168',
+        'Key295',
+        'Key285',
+        'Key134',
+        'Key250',
+        'Key129',
+        'Key136',
+        'Key280',
+        'Key123',
+        'Key169',
+        'Key171',
+        'Key173',
+        'Key172',
+        'Key296'
+      ]
+    });
     this.queryMyCourseList();
     this.getFinishStatusList_Course();
     updateWordPack({
@@ -245,11 +264,10 @@ export default {
       }
 
       .create {
-        width: 138px;
+        min-width: 138px;
 
-        div {
-          display: flex;
-          justify-content: space-around;
+        .svg-icon {
+          margin-right: 12px;
         }
       }
     }

+ 3 - 3
src/views/main/data.js

@@ -46,17 +46,17 @@ function getMenuList() {
 
   return [
     {
-      name: '任务',
+      name: 'Key289',
       tab: 'TaskList',
       isShow: isStudent || popedom_code_list.includes(2000001)
     },
     {
-      name: '课程',
+      name: 'Key215',
       tab: 'CurriculaList',
       isShow: isStudent || popedom_code_list.includes(2000001)
     },
     {
-      name: '模板',
+      name: 'Key290',
       tab: 'TemplateList',
       isShow: !isStudent && popedom_code_list.includes(2000002)
     }

+ 10 - 2
src/views/task_details/TaskTop.vue

@@ -9,7 +9,7 @@
     </div>
     <div class="courseware-list">
       <div class="courseware-list-title">
-        课件
+        {{ $t('Key309') }}
       </div>
       <el-tag
         v-for="item in itemInfo.courseware_list"
@@ -31,7 +31,7 @@
     </div>
     <div class="learning-material">
       <div class="learning-material-title">
-        学习资料
+        {{ $t('Key274') }}
       </div>
       <el-tag
         v-for="item in itemInfo.cs_item_learning_material_list"
@@ -61,6 +61,14 @@ export default {
       type: Object
     }
   },
+  created() {
+    this.updateWordPack({
+      word_key_list: [
+        'Key309',
+        'Key274'
+      ]
+    });
+  },
   methods: {
     emitViewFile(fileName, fileId) {
       this.$emit('viewFile', fileName, fileId);

+ 51 - 25
src/views/task_details/student/index.vue

@@ -4,16 +4,16 @@
 
     <div class="task-detail-main">
       <div class="time-type">
-        {{ timeType }}任务 {{ name }}
+        {{ $t(timeType) }} {{ name }}
       </div>
       <div class="time-interval">
         {{ time_space_view_txt }}
       </div>
       <div class="task-require">
-        <span class="label">任务要求</span>{{ content }}
+        <span class="label">{{ $t('Key326') }}</span>{{ content }}
       </div>
       <div class="task-courseware">
-        <span class="label">课件任务</span>
+        <span class="label">{{ $t('Key312') }}</span>
         <div>
           <el-tag
             v-for="item in courseware_list"
@@ -28,7 +28,7 @@
         </div>
       </div>
       <div class="accessory-list">
-        <span class="label">文档列表</span>
+        <span class="label">{{ $t('Key313') }}</span>
         <div>
           <el-tag v-for="item in accessory_list" :key="item.file_id" color="#fff" :title="item.file_name">
             <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
@@ -39,7 +39,7 @@
       <template v-if="my_execute_info.is_finished === 'true'">
         <div class="teacher-commenting">
           <div class="single-line">
-            <span class="label">作业</span>
+            <span class="label">{{ $t('Key327') }}</span>
             <div>
               <el-tag
                 v-for="item in my_execute_info.homework_list"
@@ -52,19 +52,19 @@
             </div>
           </div>
           <div v-if="teaching_type === 10" class="single-line">
-            <span class="label">学员课后评价</span>
+            <span class="label">{{ $t('Key316') }}</span>
             <el-input v-model="my_execute_info.student_remark" disabled type="textarea" resize="none" :rows="6" />
           </div>
           <div v-if="teaching_type === 10" class="single-line">
-            <span class="label">学员课后评分</span>
+            <span class="label">{{ $t('Key317') }}</span>
             <el-rate v-model="my_execute_info.student_score" disabled />
           </div>
           <div class="single-line">
-            <span class="label">给教师留言</span>
+            <span class="label">{{ $t('Key328') }}</span>
             <el-input v-model="my_execute_info.student_message" disabled type="textarea" resize="none" :rows="6" />
           </div>
           <div class="single-line">
-            <span class="label">教师点评</span>
+            <span class="label">{{ $t('Key318') }}</span>
             <el-rate v-model="my_execute_info.teacher_score" disabled />
             <span class="teacher_remark">{{ my_execute_info.teacher_remark }}</span>
           </div>
@@ -74,28 +74,28 @@
       <template v-else-if="teaching_type === 10">
         <div class="live-info">
           <div class="single-line">
-            <span class="enter-live" @click="enterLive"><svg-icon icon-class="video-red" /> 点击进入直播间</span>
+            <span class="enter-live" @click="enterLive"><svg-icon icon-class="video-red" /> {{ $t('Key329') }}</span>
           </div>
           <div class="single-line">
-            <span class="label">学员课后评价</span>
+            <span class="label">{{ $t('Key316') }}</span>
             <el-input v-model="student_remark" type="textarea" resize="none" :rows="6" />
           </div>
           <div class="single-line">
-            <span class="label">学员课后评分</span>
+            <span class="label">{{ $t('Key317') }}</span>
             <el-rate v-model="student_score" />
           </div>
           <div class="confirm single-line">
             <el-button type="primary" @click="fillTaskExecuteInfo_Student_live">
-              提交
+              {{ $t('Key319') }}
             </el-button>
           </div>
         </div>
       </template>
       <template v-else>
         <div class="submit-homework">
-          <span class="label">提交作业</span>
+          <span class="label">{{ $t('Key330') }}</span>
           <el-upload action="no" :http-request="upload" multiple :show-file-list="false">
-            <el-button><svg-icon icon-class="upload" /> 上传文件</el-button>
+            <el-button><svg-icon icon-class="upload" /> {{ $t('Key192') }}</el-button>
           </el-upload>
         </div>
         <div class="file-list">
@@ -111,12 +111,12 @@
           </el-tag>
         </div>
         <div class="leave-message">
-          <span class="label">给教师留言</span>
+          <span class="label">{{ $t('Key328') }}</span>
           <el-input v-model="student_message" type="textarea" resize="none" :rows="6" />
         </div>
         <div class="submit-button">
           <el-button type="primary" @click="fillTaskExecuteInfo_Student">
-            完成任务
+            {{ $t('Key331') }}
           </el-button>
         </div>
       </template>
@@ -199,17 +199,44 @@ export default {
     timeType() {
       switch (this.time_type) {
         case 0:
-          return '课前';
+          return 'Key353';
         case 1:
-          return '课中';
+          return 'Key354';
         case 2:
-          return '课后';
+          return 'Key355';
         default:
           return '';
       }
     }
   },
   created() {
+    this.updateWordPack({
+      word_key_list: [
+        'Key353',
+        'Key354',
+        'Key355',
+        'Key326',
+        'Key312',
+        'Key313',
+        'Key327',
+        'Key316',
+        'Key317',
+        'Key328',
+        'Key318',
+        'Key329',
+        'Key316',
+        'Key317',
+        'Key319',
+        'Key330',
+        'Key192',
+        'Key328',
+        'Key331',
+        'Key335',
+        'Key336',
+        'Key337',
+        'Key338'
+      ]
+    });
     this.loading = true;
     GetTaskInfo({
       id: this.id,
@@ -257,7 +284,7 @@ export default {
     upload(file) {
       let fileName = file.file.name;
       if (!isAllowFileType(fileName)) {
-        this.$message.warning(`文件:【${fileName}】文件类型,不允许上传`);
+        this.$message.warning(`【${fileName}】${this.$i18n.t('Key335')}`);
         return;
       }
 
@@ -301,7 +328,7 @@ export default {
         student_message: this.student_message,
         is_finished: true
       }).then(() => {
-        this.$message.success('任务完成成功');
+        this.$message.success(this.$i18n.t('Key337'));
         this.$router.go(0);
       });
     },
@@ -313,7 +340,7 @@ export default {
         student_remark: this.student_remark,
         student_score: this.student_score
       }).then(() => {
-        this.$message.success('提交成功');
+        this.$message.success(this.$i18n.t('Key336'));
         this.$router.go(0);
       });
     },
@@ -332,7 +359,7 @@ export default {
     // 完成任务
     finishTask(id, is_finished) {
       if (this.my_execute_info.is_finished === 'true' && is_finished === 'false') {
-        return this.$message.warning('该课件没有被完成');
+        return this.$message.warning(this.$i18n.t('Key338'));
       }
       if (is_finished === 'true') {
         this.dialogVisible_completion = true;
@@ -365,7 +392,6 @@ $bor-color: #d9d9d9;
   @include container;
 
   min-height: calc(100vh - 130px);
-  margin-top: 56px;
 
   .el-tag {
     @include el-tag;

+ 28 - 13
src/views/task_details/teacher/index.vue

@@ -4,7 +4,7 @@
 
     <div class="teacher-task-detail-main">
       <div class="student-finish-situation">
-        <div>学员完成情况</div>
+        <div>{{ $t('Key308') }}</div>
         <div class="student-list" :style="{ height: student_list_height + 'px' }">
           <ul>
             <li
@@ -29,7 +29,7 @@
         </div>
         <div ref="situation" class="finish-situation">
           <div class="title">
-            课件任务
+            {{ $t('Key312') }}
           </div>
           <div class="courseware-list">
             <el-tag
@@ -47,7 +47,7 @@
             </el-tag>
           </div>
           <div class="title">
-            文档列表
+            {{ $t('Key313') }}
           </div>
           <div>
             <el-tag v-for="item in accessory_list" :key="item.file_id" color="#fff" :title="item.file_name">
@@ -55,7 +55,7 @@
             </el-tag>
           </div>
           <div class="title">
-            作业列表
+            {{ $t('Key314') }}
           </div>
           <div>
             <el-tag
@@ -68,21 +68,21 @@
             </el-tag>
           </div>
           <div class="title">
-            学生留言
+            {{ $t('Key315') }}
           </div>
           <div>{{ curFinishDetail.student_message }}</div>
           <template v-if="teaching_type === 10">
             <div class="title">
-              学员课后评价
+              {{ $t('Key316') }}
             </div>
             <div>{{ student_remark }}</div>
             <div class="title">
-              <span>学员课后评分</span>
+              <span>{{ $t('Key317') }}</span>
               <el-rate v-model="student_score" disabled />
             </div>
           </template>
           <div class="title">
-            <span>教师点评</span>
+            <span>{{ $t('Key318') }}</span>
             <el-rate v-model="teacher_score" />
           </div>
           <div>
@@ -90,7 +90,7 @@
           </div>
           <div class="confirm">
             <el-button type="primary" @click="remarkTaskStudentExecuteInfo_Teacher">
-              提交
+              {{ $t('Key319') }}
             </el-button>
             <el-button v-if="student_list.length > 1" @click="next">
               {{ buttonName() }} <i class="el-icon-right" />
@@ -168,6 +168,22 @@ export default {
   },
   created() {
     this.loading = true;
+    this.updateWordPack({
+      word_key_list: [
+        'Key308',
+        'Key312',
+        'Key313',
+        'Key314',
+        'Key315',
+        'Key316',
+        'Key317',
+        'Key318',
+        'Key319',
+        'Key338',
+        'Key324',
+        'Key325'
+      ]
+    });
     GetTaskInfo({
       id: this.id,
       is_contain_cs_item_learning_material: true,
@@ -250,7 +266,7 @@ export default {
     },
 
     showCompletionView(id, is_finished) {
-      if (is_finished === 'false') return this.$message.warning('该课件没有被完成');
+      if (is_finished === 'false') return this.$message.warning(this.$i18n.t('Key338'));
       this.curCoursewareId = id;
       this.dialogVisible = true;
     },
@@ -284,14 +300,14 @@ export default {
         teacher_score: this.teacher_score,
         teacher_remark: this.teacher_remark
       }).then(() => {
-        this.$message.success('点评成功');
+        this.$message.success(this.$i18n.t('Key324'));
       });
     },
 
     next() {
       let list = this.student_list;
       if (list.length <= 0) {
-        return this.$message.warning('当前学生列表为空');
+        return this.$message.warning(this.$i18n.t('Key325'));
       }
       let curIndex = list.findIndex(item => item.student_id === this.curStudentId);
       let nextList = list.length - 1 === curIndex ? list[curIndex - 1] : list[curIndex + 1];
@@ -311,7 +327,6 @@ $bor-color: #d9d9d9;
   @include dialog;
 
   min-height: calc(100vh - 130px);
-  margin-top: 56px;
 
   .el-tag {
     @include el-tag;

+ 15 - 13
src/views/teacher/create_course/step_table/CreateTask.vue

@@ -69,12 +69,7 @@
           </div>
           <div class="item-info-date">
             <div>日期</div>
-            <el-date-picker
-              v-model="itemInfoBox.date"
-              readonly
-              type="daterange"
-              range-separator="~"
-            />
+            <el-date-picker v-model="itemInfoBox.date" readonly type="daterange" range-separator="~" />
           </div>
         </div>
         <div class="item-task">
@@ -352,7 +347,8 @@ export default {
     AddItem
   },
   data() {
-    let is_template = 'is_template' in this.$route.query ? this.$route.query.is_template === 'true' : false;
+    const query = this.$route.query;
+    let is_template = 'is_template' in query ? query.is_template === 'true' : false;
 
     return {
       id: this.$route.params.id,
@@ -402,9 +398,9 @@ export default {
         this.begin_date = begin_date;
         this.end_date = end_date;
         this.cs_item_list = cs_item_list;
-        if (cs_item_list.length > 0) {
-          this.curItemID = cs_item_list[cs_item_list.length - 1].id;
-        }
+        if (cs_item_list.length <= 0) return;
+        let curItemID = 'curItemID' in this.$route.query ? this.$route.query.curItemID : '';
+        this.curItemID = curItemID || cs_item_list[cs_item_list.length - 1].id;
       });
     },
 
@@ -511,9 +507,15 @@ export default {
         });
       }
       if (type === 'delete') {
-        DeleteTask({ id }).then(() => {
-          this.$message.success('删除任务成功');
-          this.getCSItemInfoBox();
+        this.$confirm('您确定要删除该任务吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          DeleteTask({ id }).then(() => {
+            this.$message.success('删除任务成功');
+            this.getCSItemInfoBox();
+          });
         });
       }
     }

+ 23 - 8
src/views/teacher/create_course/step_table/NewTask.vue

@@ -260,13 +260,16 @@ export default {
         callback();
       }
     };
-
+    const { params, query } = this.$route;
+    let is_template = 'is_template' in query ? JSON.parse(query.is_template) : false;
     return {
-      id: this.$route.params.id,
-      task_id: this.$route.query.task_id,
-      time_type: this.$route.params.time_type,
-      cs_item_id: this.$route.params.cs_item_id,
-      is_template: 'is_template' in this.$route.query ? JSON.parse(this.$route.query.is_template) : false,
+      id: params.id,
+      task_id: query.task_id,
+      time_type: params.time_type,
+      cs_item_id: params.cs_item_id,
+      is_template,
+      // 任务所属课节
+      curItemID: params.curItemID,
       dialogVisible: false,
       cs_item_begin_time: '',
       cs_item_end_time: '',
@@ -420,7 +423,7 @@ export default {
 
     goBack() {
       this.$router.push({
-        path: `/create_course_step_table/create_task/${this.id}?is_template=${this.is_template}`
+        path: `/create_course_step_table/create_task/${this.id}?is_template=${this.is_template}&curItemID=${this.curItemID}`
       });
     },
 
@@ -558,10 +561,22 @@ export default {
   .go-back {
     margin-bottom: 16px;
 
+    .el-button {
+      padding: 7px 20px;
+    }
+
     &-button {
       display: flex;
-      justify-content: space-between;
       width: 78px;
+      font-size: 16px;
+      line-height: 24px;
+      color: #000;
+
+      .svg-icon {
+        width: 20px;
+        height: 20px;
+        margin-right: 10px;
+      }
     }
   }
 

+ 9 - 4
src/views/teacher/student_list/SendMessage.vue

@@ -1,18 +1,18 @@
 <template>
-  <el-dialog :visible="visible" :title="`发送消息给 ${titleName}`" :before-close="close">
+  <el-dialog :visible="visible" :title="`${$t('Key301')} ${titleName}`" :before-close="close">
     <el-input
       v-model="message"
       resize="none"
       type="textarea"
       :rows="8"
-      placeholder="请输入内容"
+      :placeholder="$t('Key46')"
       maxlength="240"
       show-word-limit
     />
 
     <div slot="footer">
       <el-button type="primary" @click="send">
-        发送
+        {{ $t('Key302') }}
       </el-button>
     </div>
   </el-dialog>
@@ -41,13 +41,18 @@ export default {
       this.message = '';
     }
   },
+  created() {
+    this.updateWordPack({
+      word_key_list: ['Key301', 'Key46', 'Key300', 'Key302']
+    });
+  },
   methods: {
     close() {
       this.$emit('update:visible', false);
     },
 
     send() {
-      if (this.message.length === 0) return this.$message.warning('消息内容不能为空');
+      if (this.message.length === 0) return this.$message.warning(this.$i18n.t('Key300'));
       this.$emit('sendMessage', this.message);
     }
   }

+ 20 - 11
src/views/teacher/student_list/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="student-list">
     <div class="search">
-      <el-input v-model="student_name" prefix-icon="el-icon-search" @change="queryCourseStudentList">
+      <el-input v-model.trim="student_name" prefix-icon="el-icon-search" @change="queryCourseStudentList">
         <el-button slot="append" @click="queryCourseStudentList">
-          搜索
+          {{ $t('Key131') }}
         </el-button>
       </el-input>
     </div>
@@ -16,12 +16,12 @@
             :class="['tabs-item', { active: item.type === curTab }]"
             @click="changeTab(item.type)"
           >
-            {{ item.name }}
+            {{ $t(item.name) }}
           </span>
         </div>
         <div v-if="curTab === tabList[1].type" class="tabs-right">
           <el-button @click="sendMessage('all')">
-            <span><svg-icon icon-class="send-message" /> 群发消息</span>
+            <span><svg-icon icon-class="send-message" /> {{ $t('Key299') }}</span>
           </el-button>
         </div>
       </div>
@@ -42,17 +42,23 @@
           <el-table-column prop="country_name" width="180" />
           <el-table-column>
             <template slot-scope="{ row }">
-              <span>{{ row.is_pay === 'true' ? '已付款' : '未付款' }}</span>
+              <span>{{ row.is_pay === 'true' ? $t('Key306') : $t('Key307') }}</span>
             </template>
           </el-table-column>
-          <el-table-column fixed="right" width="120">
+          <el-table-column fixed="right" width="160">
             <template slot-scope="{ row }">
               <template v-if="curTab === tabList[0].type">
-                <span class="agree" @click="auditCourseStudent(row.course_student_id, 'true')"> 同意 </span>
-                <span class="refuse" @click="auditCourseStudent(row.course_student_id, 'false')"> 拒绝 </span>
+                <span class="agree" @click="auditCourseStudent(row.course_student_id, 'true')">
+                  {{ $t('Key303') }}
+                </span>
+                <span class="refuse" @click="auditCourseStudent(row.course_student_id, 'false')">
+                  {{ $t('Key304') }}
+                </span>
               </template>
               <template v-if="curTab === tabList[1].type">
-                <span class="agree" @click="sendMessage('single', row.student_id, row.student_name)">发消息</span>
+                <span class="agree" @click="sendMessage('single', row.student_id, row.student_name)">
+                  {{ $t('Key305') }}
+                </span>
               </template>
             </template>
           </el-table-column>
@@ -101,17 +107,20 @@ export default {
       tabList: [
         {
           type: 'new',
-          name: '新申请'
+          name: 'Key298'
         },
         {
           type: 'list',
-          name: '学生列表'
+          name: 'Key296'
         }
       ]
     };
   },
   created() {
     this.queryCourseStudentList();
+    this.updateWordPack({
+      word_key_list: ['Key131', 'Key299', 'Key298', 'Key296', 'Key303', 'Key304', 'Key305', 'Key306', 'Key307']
+    });
   },
   methods: {
     queryCourseStudentList() {