Pārlūkot izejas kodu

Merge branch 'master' into 03/12permission

lex-xin 4 gadi atpakaļ
vecāks
revīzija
fe2b91b882
38 mainītis faili ar 268 papildinājumiem un 42 dzēšanām
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/chunk-001a0337.d0e14a4d.css
  3. 0 1
      dist/static/css/chunk-071ca6b2.e1f39c77.css
  4. 0 0
      dist/static/css/chunk-58005682.59508c8c.css
  5. 0 0
      dist/static/css/chunk-5dcfc19b.41cf940d.css
  6. 0 0
      dist/static/css/chunk-7cacdd72.4b1b8eaa.css
  7. 0 0
      dist/static/css/chunk-badb2aba.8551dbac.css
  8. 0 0
      dist/static/css/chunk-fa92c0ee.dff09e43.css
  9. 0 0
      dist/static/js/app.063a50c6.js
  10. 0 0
      dist/static/js/app.d43551df.js
  11. 0 0
      dist/static/js/chunk-001a0337.325021aa.js
  12. 0 0
      dist/static/js/chunk-071ca6b2.cfec0407.js
  13. 0 0
      dist/static/js/chunk-41b8b496.0f1065c8.js
  14. 0 0
      dist/static/js/chunk-46ce4004.ac9c8ac8.js
  15. 0 0
      dist/static/js/chunk-58005682.ae7b1c80.js
  16. 0 0
      dist/static/js/chunk-5dcfc19b.d22623ec.js
  17. 0 0
      dist/static/js/chunk-68fa1f94.5f859fc3.js
  18. 0 0
      dist/static/js/chunk-6fc50c24.cb97bee9.js
  19. 0 0
      dist/static/js/chunk-7cacdd72.757c2a14.js
  20. 0 0
      dist/static/js/chunk-901cd140.37a30ad3.js
  21. 0 0
      dist/static/js/chunk-badb2aba.661dc726.js
  22. 0 0
      dist/static/js/chunk-d26cf0da.760a7533.js
  23. 0 0
      dist/static/js/chunk-d6221502.797364de.js
  24. 0 0
      dist/static/js/chunk-fa92c0ee.399f4bba.js
  25. 4 2
      src/router/index.js
  26. 1 0
      src/router/notKeepAliveList.js
  27. 13 4
      src/views/main/abnormal/index.vue
  28. 20 6
      src/views/main/abnormal/title.vue
  29. 7 0
      src/views/main/api.js
  30. 8 1
      src/views/main/constant.js
  31. 176 0
      src/views/main/notClassStudent.vue
  32. 11 12
      src/views/resetTeaming/index.vue
  33. 6 1
      src/views/teamBuild/teamSeting/components/setClassV2.vue
  34. 2 1
      src/views/teamDetail/componentCourse/studentRollCall.vue
  35. 2 6
      src/views/teamDetail/componentCourse/teacherList.vue
  36. 4 3
      src/views/teamDetail/components/modals/select-student.vue
  37. 3 0
      src/views/teamDetail/components/resetClass.vue
  38. 11 5
      src/views/teamDetail/teamCourseList.vue

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/index.html


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/chunk-001a0337.d0e14a4d.css


+ 0 - 1
dist/static/css/chunk-071ca6b2.e1f39c77.css

@@ -1 +0,0 @@
-[data-v-ae845b98] .el-popover .el-form{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-ae845b98] .el-popover .el-form-item__content{margin-left:0!important}.music-title[data-v-ae845b98]{font-size:14px;color:#444}.music-title .el-col[data-v-ae845b98]{background-color:#edeef0;padding-left:36px}.music-title[data-v-ae845b98] .el-button{float:right;margin-top:10px;margin-right:16px}.el-row[data-v-ae845b98]{margin-bottom:12px}.el-row .el-col[data-v-ae845b98]{line-height:48px}.el-row .el-col-18[data-v-ae845b98]{width:calc(75% - 20px);margin-left:20px}.el-row .one_name[data-v-ae845b98]{padding-left:10px}.el-row .tow_col[data-v-ae845b98]{padding-left:20px}.el-row .tow_col .el-button--primary[data-v-ae845b98],.el-row .tow_col .el-button--primary[data-v-ae845b98]:active,.el-row .tow_col .el-button--primary[data-v-ae845b98]:focus,.el-row .tow_col .el-button--primary[data-v-ae845b98]:hover{background:#fff;border-color:#979797;color:#777}.el-row .tow_input[data-v-ae845b98]{width:100px;margin-right:12px}.el-button--primary[data-v-ae845b98],.el-button--primary[data-v-ae845b98]:active,.el-button--primary[data-v-ae845b98]:focus,.el-button--primary[data-v-ae845b98]:hover{background:#14928a;border-color:#14928a;color:#fff}[data-v-ae845b98] .el-date-editor.el-input{width:100%!important}.el-select[data-v-ae845b98]{width:98%!important}.el-tag+.el-tag[data-v-ae845b98]{margin-left:10px}.button-new-tag[data-v-ae845b98]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-ae845b98]{width:90px;vertical-align:bottom}.el-tag--dark.el-tag--info[data-v-ae845b98]{background-color:#f0f2f5;border-color:#f0f2f5;color:#5a5e66}.el-tag--dark.el-tag--info[data-v-ae845b98] .el-tag__close{background-color:#c0c4cc}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/chunk-58005682.59508c8c.css


+ 0 - 0
dist/static/css/chunk-901cd140.b05a6f22.css → dist/static/css/chunk-5dcfc19b.41cf940d.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/chunk-7cacdd72.4b1b8eaa.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/chunk-badb2aba.8551dbac.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/chunk-fa92c0ee.dff09e43.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.063a50c6.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.d43551df.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-001a0337.325021aa.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-071ca6b2.cfec0407.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-41b8b496.0f1065c8.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-46ce4004.ac9c8ac8.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-58005682.ae7b1c80.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-5dcfc19b.d22623ec.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-68fa1f94.5f859fc3.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-6fc50c24.cb97bee9.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-7cacdd72.757c2a14.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-901cd140.37a30ad3.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-badb2aba.661dc726.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-d26cf0da.760a7533.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-d6221502.797364de.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/chunk-fa92c0ee.399f4bba.js


+ 4 - 2
src/router/index.js

@@ -208,7 +208,7 @@ export const asyncRoutes = {
   shopCategory: () => import('@/views/businessManager/shopManager/shopCategory'),
   shopCategory: () => import('@/views/businessManager/shopManager/shopCategory'),
   // 报表中心
   // 报表中心
   reportForm: () => import('@/views/reportForm/index'),
   reportForm: () => import('@/views/reportForm/index'),
-  musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
+  // musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
   // 系统管理
   // 系统管理
   specialSetup: () => import('@/views/categroyManager/specialSetup/index'),
   specialSetup: () => import('@/views/categroyManager/specialSetup/index'),
   // 类型管理
   // 类型管理
@@ -426,7 +426,9 @@ export const asyncRoutes = {
   branchActiveManager:()=>import('@/views/courseListManager'),
   branchActiveManager:()=>import('@/views/courseListManager'),
   // vip活动管理
   // vip活动管理
   vipActiveManager:()=>import('@/views/courseListManager'),
   vipActiveManager:()=>import('@/views/courseListManager'),
-  serverDetail:()=>import('@/views/serverDetail')
+  serverDetail:()=>import('@/views/serverDetail'),
+  // 未在班级学员
+  notClassStudent:()=>import('@/views/main/notClassStudent')
 }
 }
 
 
 export default router
 export default router

+ 1 - 0
src/router/notKeepAliveList.js

@@ -13,6 +13,7 @@ export default [
   '/vipClassSet/vipActiveList', // VIP活动方案
   '/vipClassSet/vipActiveList', // VIP活动方案
   '/vipClassSet/vipNewActive', // VIP活动方案修改
   '/vipClassSet/vipNewActive', // VIP活动方案修改
   '/main/main', // 首页
   '/main/main', // 首页
+  '/main/notClassStudent', // 未在班级学员
   '/journal/journal', // 系统日志
   '/journal/journal', // 系统日志
   '/business/accompany', // 网管课管理
   '/business/accompany', // 网管课管理
   '/business/accompanys', // 网管课详情
   '/business/accompanys', // 网管课详情

+ 13 - 4
src/views/main/abnormal/index.vue

@@ -40,11 +40,16 @@
     >
     >
       <title-item
       <title-item
         :type="item[0].isError ? 'error' : 'warning'"
         :type="item[0].isError ? 'error' : 'warning'"
-        :data="item.map(title => ({name: title.desc, num: title.num,errorType:title.errorType}))"
+        :data="item.map(title => ({name: title.desc, num: title.num, num2: title.num2, errorType:title.errorType}))"
       >
       >
-        <span
-          style="color: #14928A;"
-        >立即处理<i class="el-icon-d-arrow-right"/></span>
+        <span style="color: #14928A;" v-if='item[0].errorType == "NO_CLASS_MUSIC_GROUP_STUDENT_INFO"'>
+          <template v-if="permission('/notClassStudent')">
+            立即处理<i class="el-icon-d-arrow-right"/>
+          </template>
+        </span>
+        <span style="color: #14928A;" v-else>
+          立即处理<i class="el-icon-d-arrow-right"/>
+        </span>
       </title-item>
       </title-item>
     </el-button>
     </el-button>
     <!-- <title-item
     <!-- <title-item
@@ -150,6 +155,10 @@ export default {
   methods: {
   methods: {
     permission,
     permission,
     handle(item) {
     handle(item) {
+      console.log(item)
+      if(item[0].errorType == "NO_CLASS_MUSIC_GROUP_STUDENT_INFO" && !this.permission('/notClassStudent')) {
+        return
+      }
       new Searchs().removeByKey(item[0].url)
       new Searchs().removeByKey(item[0].url)
       this.$router.push({
       this.$router.push({
         path: item[0].url,
         path: item[0].url,

+ 20 - 6
src/views/main/abnormal/title.vue

@@ -2,7 +2,7 @@
   <div class="title" :class="{error: type === 'error', warning: type === 'warning'}">
   <div class="title" :class="{error: type === 'error', warning: type === 'warning'}">
     <div>
     <div>
       <span v-for="(item, index) in data" :key="index">
       <span v-for="(item, index) in data" :key="index">
-        <span>{{item.name}}</span>
+        <span v-html=titleFilter(item)></span>
               <el-tooltip
               <el-tooltip
             v-if="descs[item.errorType]"
             v-if="descs[item.errorType]"
             :content="descs[item.errorType]"
             :content="descs[item.errorType]"
@@ -15,7 +15,7 @@
                 style="font-size: 14px; "
                 style="font-size: 14px; "
             />
             />
           </el-tooltip>
           </el-tooltip>
-        <b>{{item.num}}</b>
+        <b v-if="!(ignore.includes(item.errorType))">{{item.num}}</b>
       </span>
       </span>
 
 
     </div>
     </div>
@@ -37,10 +37,24 @@ export default {
   },
   },
   data(){
   data(){
     return{
     return{
-     descs
+     descs,
+     ignore: ['NO_CLASS_MUSIC_GROUP_STUDENT_INFO'] // // 忽略类型
     }
     }
   },
   },
   mounted(){
   mounted(){
+  },
+  methods: {
+    titleFilter(item) {
+      
+      if(this.ignore.includes(item.errorType)) {
+        let tempName = item.name
+        tempName = tempName.replace('{0}', `<b>${item.num}</b>`)
+        tempName = tempName.replace('{1}', `<b>${item.num2}</b>`)
+        return tempName
+      } else {
+        return item.name
+      }
+    }
   }
   }
 }
 }
 </script>
 </script>
@@ -56,14 +70,14 @@ export default {
   font-weight: bold;
   font-weight: bold;
   transition: all .3s;
   transition: all .3s;
   width: 100%;
   width: 100%;
-  b{
+  /deep/b {
     font-size: 18px;
     font-size: 18px;
   }
   }
   &:hover{
   &:hover{
     background-color: rgba(0, 0, 0, .06);
     background-color: rgba(0, 0, 0, .06);
   }
   }
   &.error {
   &.error {
-    b{
+    /deep/b{
       color: #ED6F62;
       color: #ED6F62;
     }
     }
     &:before{
     &:before{
@@ -71,7 +85,7 @@ export default {
     }
     }
   }
   }
   &.warning {
   &.warning {
-    b{
+    /deep/b{
       color: #F2A24A;
       color: #F2A24A;
     }
     }
     &:before{
     &:before{

+ 7 - 0
src/views/main/api.js

@@ -111,3 +111,10 @@ export const hasIndexErrData = () => request2({
   method: 'get',
   method: 'get',
   loading: false,
   loading: false,
 })
 })
+
+// 查询乐团中未加入班级学员信息
+export const queryNoClassMusicStudentInfo = (data) => request2({
+  url: '/api-web/studentRegistration/queryNoClassMusicStudentInfo',
+  method: 'get',
+  params: data
+})

+ 8 - 1
src/views/main/constant.js

@@ -43,7 +43,8 @@ export const descs = {
   TEACHER_EXCEPTION_ATTENDANCE:'课程上有老师或学员考勤异常',
   TEACHER_EXCEPTION_ATTENDANCE:'课程上有老师或学员考勤异常',
   TEACHER_NOT_A_CLASS:'课程无老师考勤',
   TEACHER_NOT_A_CLASS:'课程无老师考勤',
   TEACHER_SERVE_ERROR:'服务指标生成的作业未布置',
   TEACHER_SERVE_ERROR:'服务指标生成的作业未布置',
-  WAIT_CREATE_PAYMENT_CALENDER:'缴费项目有效期结束前7天'
+  WAIT_CREATE_PAYMENT_CALENDER:'缴费项目有效期结束前7天',
+  NO_CLASS_MUSIC_GROUP_STUDENT_INFO: '进行中乐团不在班级中的在读学员提醒'
 }
 }
 
 
 const dates = {
 const dates = {
@@ -73,6 +74,12 @@ export const errorType = {
       lessThenThreeHighOnline: '1',
       lessThenThreeHighOnline: '1',
     },
     },
   },
   },
+  NO_CLASS_MUSIC_GROUP_STUDENT_INFO: {
+    name: '当前有{0}个乐团共{1}名学员未加入任何班级',
+    isError: true,
+    url: '/main/notClassStudent',
+    always: true,
+  },
   STUDENT_NOT_PAYMENT: {
   STUDENT_NOT_PAYMENT: {
     name: '未缴费学员数',
     name: '未缴费学员数',
     isError: true,
     isError: true,

+ 176 - 0
src/views/main/notClassStudent.vue

@@ -0,0 +1,176 @@
+<!--  -->
+<template>
+    <div class="m-container">
+        <h2>
+            <div class="squrt"></div>
+            未在班级学员
+        </h2>
+        <div class="m-core">
+            <save-form
+                :inline="true"
+                @submit="search"
+                @reset="onReSet"
+                ref="searchFrom"
+                :model="searchForm"
+            >
+                <el-form-item prop="musicGroupSearch">
+                    <el-input
+                        v-model.trim="searchForm.musicGroupSearch"
+                        clearable
+                        @keyup.enter.native="search"
+                        placeholder="乐团名称/编号"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item prop="studentSearch">
+                    <el-input
+                        v-model.trim="searchForm.studentSearch"
+                        clearable
+                        @keyup.enter.native="search"
+                        placeholder="学员姓名/编号"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item prop="organIds">
+                    <el-select
+                        placeholder="请选择分部"
+                        v-model="searchForm.organIds"
+                        clearable
+                    >
+                        <el-option
+                        v-for="(item, index) in selects.branchs"
+                        :label="item.name"
+                        :value="item.id"
+                        :key="index"
+                        ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="danger" native-type="submit">搜索</el-button>
+                    <el-button native-type="reset" type="primary">重置</el-button>
+                </el-form-item>
+            </save-form>
+            <div class="tableWrap">
+                <el-table
+                style="width: 100%"
+                :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+                :data="tableList"
+                >
+                <el-table-column align="center" label="分部">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.organName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="乐团编号">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.groupId }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="乐团名称">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.groupName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="学员编号">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.studentId }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="学员姓名">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.studentName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="学员声部" prop="subjectName">
+                </el-table-column>
+                <el-table-column align="center" label="操作">
+                    <template slot-scope="scope">
+                        <auth :auths="['notClassStudent/nowLook', '/resetTeaming', '/resetTeaming/resetClass']" mulit>
+                            <el-button type="text" @click="showDetail(scope.row)">立即处理</el-button>
+                        </auth>
+                    </template>
+                </el-table-column>
+                </el-table>
+                <pagination
+                sync
+                :total.sync="rules.total"
+                :page.sync="rules.page"
+                :limit.sync="rules.limit"
+                :page-sizes="rules.page_size"
+                @pagination="getList"
+                />
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import pagination from "@/components/Pagination/index";
+import { queryNoClassMusicStudentInfo } from './api.js'
+export default {
+    components: { pagination },
+    data() {
+        return {
+            searchForm: {
+                musicGroupSearch: null,
+                studentSearch: null,
+                organIds: null,
+            },
+            rules: {
+                // 分页规则
+                limit: 10, // 限制显示条数
+                page: 1, // 当前页
+                total: 0, // 总条数
+                page_size: [10, 20, 40, 50], // 选择限制显示条数
+            },
+            tableList: []
+        };
+    },
+    //生命周期 - 挂载完成(可以访问DOM元素)
+    mounted() {
+        const { query } = this.$route
+        if (query.organId) {
+            this.searchForm.organIds = Number(query.organId)
+        }
+        this.$store.dispatch("setBranchs");
+
+        this.getList()
+    },
+    methods: {
+        search() {
+            this.rules.page = 1;
+            this.getList();
+        },
+        onReSet() {
+            this.$refs['searchFrom'].resetFields()
+            this.getList()
+        },
+        async getList() {
+            try {
+                const { ...search } = this.searchForm
+                const params = {
+                    ...search,
+                    page: this.rules.page,
+                    rows: this.rules.limit
+                }
+                let res = await queryNoClassMusicStudentInfo(params)
+                this.tableList = res.data.rows;
+                this.rules.total = res.data.total;
+            } catch (err) {
+                // 
+            }
+        },
+        showDetail(item) {
+            this.$router.push({
+                path: '/business/resetTeaming',
+                query: {
+                    type: 'resetTeam',
+                    id: item.groupId,
+                    tabrouter: 'resetClass'
+                }
+            })
+        }
+    },
+};
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 11 - 12
src/views/resetTeaming/index.vue

@@ -20,7 +20,7 @@
           name="1"
           name="1"
         >
         >
           <teamBaseInfo
           <teamBaseInfo
-            v-if="activeIndex == 1"
+            v-if="activeIndex == 'teamBaseInfo'"
             @getBaseInfo="getBaseInfo"
             @getBaseInfo="getBaseInfo"
             :baseInfo="baseInfo"
             :baseInfo="baseInfo"
             @getName="getName"
             @getName="getName"
@@ -32,7 +32,7 @@
           v-if="permission('/resetTeaming/resetSound')"
           v-if="permission('/resetTeaming/resetSound')"
           name="2"
           name="2"
         >
         >
-          <resetSound v-if="activeIndex == 2" />
+          <resetSound v-if="activeIndex == 'resetSound'" />
         </el-tab-pane>
         </el-tab-pane>
         <el-tab-pane lazy label="预报名信息" name="9">
         <el-tab-pane lazy label="预报名信息" name="9">
           <!--         v-if="
           <!--         v-if="
@@ -54,14 +54,14 @@
           v-if="permission('/teamDetails/teacherList')"
           v-if="permission('/teamDetails/teacherList')"
           name="4"
           name="4"
         >
         >
-          <teacherList :teamid="teamid" v-if="activeIndex == 4" />
+          <teacherList :teamid="teamid" v-if="activeIndex == 'teacherList'" />
         </el-tab-pane>
         </el-tab-pane>
         <el-tab-pane
         <el-tab-pane
           label="学生列表"
           label="学生列表"
           v-if="permission('/teamDetails/studentList')"
           v-if="permission('/teamDetails/studentList')"
           name="7"
           name="7"
         >
         >
-          <studentList :teamid="teamid" v-if="activeIndex == 7" />
+          <studentList :teamid="teamid" v-if="activeIndex == 'studentList'" />
         </el-tab-pane>
         </el-tab-pane>
 
 
         <el-tab-pane
         <el-tab-pane
@@ -71,7 +71,7 @@
           name="5"
           name="5"
         >
         >
           <resetClass
           <resetClass
-            v-if="activeIndex == 5 && musicGroupInfo"
+            v-if="activeIndex == 'resetClass' && musicGroupInfo"
             :musicGroupInfo="musicGroupInfo"
             :musicGroupInfo="musicGroupInfo"
           />
           />
         </el-tab-pane>
         </el-tab-pane>
@@ -91,7 +91,7 @@
         >
         >
           <resetPayList
           <resetPayList
             :baseInfo="baseInfo"
             :baseInfo="baseInfo"
-            v-if="activeIndex == 3 && baseInfo"
+            v-if="activeIndex == 'resetPayList' && baseInfo"
             @changeActive="handleClick"
             @changeActive="handleClick"
           />
           />
         </el-tab-pane>
         </el-tab-pane>
@@ -103,7 +103,7 @@
         >
         >
           <resetPayListSchool
           <resetPayListSchool
             :baseInfo="baseInfo"
             :baseInfo="baseInfo"
-            v-if="activeIndex == 6 && baseInfo"
+            v-if="activeIndex == 'resetPayList' && baseInfo"
             @changeActive="handleClick"
             @changeActive="handleClick"
           />
           />
         </el-tab-pane>
         </el-tab-pane>
@@ -217,11 +217,10 @@ export default {
     __init() {
     __init() {
       // this.activeIndex = sessionStorage.getItem('resetCode') || '1';
       // this.activeIndex = sessionStorage.getItem('resetCode') || '1';
       this.teamid = this.$route.query.id;
       this.teamid = this.$route.query.id;
-      this.team_status = this.$route.query.team_status;
-      if (this.$route.query.tabrouter != 1) {
-        getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
-          if (res.code == 200) {
-            this.getBaseInfo(res.data);
+      if(this.$route.query.tabrouter != 'teamBaseInfo'){
+        getTeamBaseInfo({ musicGroupId: this.teamid }).then(res=>{
+          if(res.code == 200){
+           this.getBaseInfo(res.data)
           }
           }
         });
         });
       }
       }

+ 6 - 1
src/views/teamBuild/teamSeting/components/setClassV2.vue

@@ -346,6 +346,7 @@
         :classGroupId="activeClass"
         :classGroupId="activeClass"
         :isOnlyChangeUser="true"
         :isOnlyChangeUser="true"
         :activeType="activeType"
         :activeType="activeType"
+        :isStudentRemove="isStudentRemove"
         type="change"
         type="change"
         @changeActiveChioseSound="changeActiveChioseSound"
         @changeActiveChioseSound="changeActiveChioseSound"
         @searchStudent="searchStudent"
         @searchStudent="searchStudent"
@@ -859,6 +860,7 @@ export default {
       classList: [],
       classList: [],
       appoint: false,
       appoint: false,
       activeSoundList: [],
       activeSoundList: [],
+      isStudentRemove: false,
     };
     };
   },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -918,6 +920,8 @@ export default {
         return;
         return;
       }
       }
       this.newClassVisible = true;
       this.newClassVisible = true;
+      // 是否可以移除学员,下次优化会去掉
+      this.isStudentRemove = false;
     },
     },
     newClassSecond() {
     newClassSecond() {
       // 判断当前选择的课程类型
       // 判断当前选择的课程类型
@@ -1035,7 +1039,7 @@ export default {
       // let arr = this.chioseStudent.map(item => {
       // let arr = this.chioseStudent.map(item => {
       //   return item.userId;
       //   return item.userId;
       // });
       // });
-      if (arr.length <= 0) {
+      if (arr.length <= 0 && !this.isStudentRemove) {
         this.$message.error("至少添加一名学员");
         this.$message.error("至少添加一名学员");
         return;
         return;
       }
       }
@@ -1462,6 +1466,7 @@ export default {
       this.activeClass = row.id;
       this.activeClass = row.id;
       this.isSearch = false;
       this.isSearch = false;
       this.activeType = row.type;
       this.activeType = row.type;
+      this.isStudentRemove = true;
       this.newClassForm.type = row.type;
       this.newClassForm.type = row.type;
       this.activeChioseSound = null;
       this.activeChioseSound = null;
       // 根据单机班id 查询声部班内的所有学生
       // 根据单机班id 查询声部班内的所有学生

+ 2 - 1
src/views/teamDetail/componentCourse/studentRollCall.vue

@@ -31,7 +31,8 @@
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div>
             <div>
               {{scope.row.username}}
               {{scope.row.username}}
-               <span style="color: #f56c6c">({{scope.row.userId}})</span>
+               <span >({{scope.row.userId}})</span>
+               <!-- style="color: #f56c6c" -->
             </div>
             </div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>

+ 2 - 6
src/views/teamDetail/componentCourse/teacherList.vue

@@ -12,12 +12,8 @@
       >
       >
         <template slot-scope="scope">
         <template slot-scope="scope">
           <div>
           <div>
-            <span>{{ scope.row.teacherName }}</span
-            ><br />
-            <span style="color: #f56c6c"
-              >(<copy-text>{{ scope.row.teacherId }}</copy-text
-              >)</span
-            >
+            <span>{{scope.row.teacherName}}</span><br/>
+             <span>(<copy-text>{{scope.row.teacherId}}</copy-text>)</span><!-- style="color: #f56c6c"-->
           </div>
           </div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>

+ 4 - 3
src/views/teamDetail/components/modals/select-student.vue

@@ -124,7 +124,7 @@ import { genderType } from "@/constant";
 import { updateClassGroupStudents } from '../../api'
 import { updateClassGroupStudents } from '../../api'
 import { uniqBy } from 'lodash'
 import { uniqBy } from 'lodash'
 export default {
 export default {
-  props: ["studentList", "soundList", "activeType", 'activeListStudent', 'isOnlyChangeUser', 'classGroupId', 'type', 'teacherList', 'cooperationList'],
+  props: ["studentList", "soundList", "activeType", 'activeListStudent', 'isOnlyChangeUser', 'classGroupId', 'type', 'teacherList', 'cooperationList', 'isStudentRemove'],
   computed: {
   computed: {
     data() {
     data() {
       return uniqBy([...this.studentList, ...this.activeListStudent], 'userId')
       return uniqBy([...this.studentList, ...this.activeListStudent], 'userId')
@@ -146,7 +146,8 @@ export default {
       return !this.isOnlyChangeUser && this.activeType != 'MUSIC_NETWORK'
       return !this.isOnlyChangeUser && this.activeType != 'MUSIC_NETWORK'
     },
     },
     canDelUser() {
     canDelUser() {
-      return this.$route.query.type !== 'resetTeam' || !this.isOnlyChangeUser
+      // console.log(this.isStudentRemove)
+      return this.$route.query.type !== 'resetTeam' || !this.isOnlyChangeUser || this.isStudentRemove
     }
     }
   },
   },
   data() {
   data() {
@@ -203,7 +204,7 @@ export default {
       if (!this.isOnlyChangeUser && this.activeType == 'HIGH_ONLINE' && (this.seleched.length < 3 || this.seleched.length > 5)) {
       if (!this.isOnlyChangeUser && this.activeType == 'HIGH_ONLINE' && (this.seleched.length < 3 || this.seleched.length > 5)) {
         return this.$message.error('线上技能班必须为3-5人')
         return this.$message.error('线上技能班必须为3-5人')
       }
       }
-      if (this.seleched.length < 1) {
+      if (this.seleched.length < 1 && !this.isStudentRemove) {
         return this.$message.error('请至少选择一名学生')
         return this.$message.error('请至少选择一名学生')
       }
       }
       if (this.activeType == 'MUSIC_NETWORK' && this.seleched.length > 1) {
       if (this.activeType == 'MUSIC_NETWORK' && this.seleched.length > 1) {

+ 3 - 0
src/views/teamDetail/components/resetClass.vue

@@ -202,6 +202,7 @@
         :teacherList="teacherList"
         :teacherList="teacherList"
         :cooperationList="cooperationList"
         :cooperationList="cooperationList"
         :isOnlyChangeUser="isOnlyChangeUser"
         :isOnlyChangeUser="isOnlyChangeUser"
+        :isStudentRemove="isStudentRemove"
         :activeType="activeType"
         :activeType="activeType"
         @changeActiveChioseSound="changeActiveChioseSound"
         @changeActiveChioseSound="changeActiveChioseSound"
         @searchStudent="searchStudent(activeClass)"
         @searchStudent="searchStudent(activeClass)"
@@ -686,6 +687,7 @@ export default {
       chioseStudent: [], // 勾选的学生信息
       chioseStudent: [], // 勾选的学生信息
       isNewClass: false, // 是否为新建班级
       isNewClass: false, // 是否为新建班级
       isOnlyChangeUser: false,
       isOnlyChangeUser: false,
+      isStudentRemove: false, // 班级上没有未开始课程时
       isSearch: false, // 是否需要搜索
       isSearch: false, // 是否需要搜索
       isTemporary: false, // 是否为临时班级
       isTemporary: false, // 是否为临时班级
       className: "", // 班级名称
       className: "", // 班级名称
@@ -1106,6 +1108,7 @@ export default {
       this.isSearch = false;
       this.isSearch = false;
       this.activeType = row.type;
       this.activeType = row.type;
       this.activeChioseSound = null;
       this.activeChioseSound = null;
+      this.isStudentRemove = row.currentClassTimes == row.totalClassTimes ? true : false // 上课时长是否没有
       // 根据单机班id 查询声部班内的所有学生
       // 根据单机班id 查询声部班内的所有学生
       getClassAllStudent({ classGroupId: row.id }).then((res) => {
       getClassAllStudent({ classGroupId: row.id }).then((res) => {
         if (res.code == 200) {
         if (res.code == 200) {

+ 11 - 5
src/views/teamDetail/teamCourseList.vue

@@ -22,17 +22,17 @@
       >
       >
         <el-form-item>
         <el-form-item>
           <el-input
           <el-input
-            v-model.trim="searchForm.search"
+          type="number"
+            v-model.trim="searchForm.courseIdSearch"
             clearable
             clearable
-            placeholder="课程编号/课程名称"
+            placeholder="课程编号"
           />
           />
         </el-form-item>
         </el-form-item>
         <el-form-item>
         <el-form-item>
           <el-input
           <el-input
-          type="number"
-            v-model.trim="searchForm.courseIdSearch"
+            v-model.trim="searchForm.search"
             clearable
             clearable
-            placeholder="课程编号"
+            placeholder="课程编号/课程名称"
           />
           />
         </el-form-item>
         </el-form-item>
         <el-form-item>
         <el-form-item>
@@ -527,6 +527,12 @@
             </el-tooltip>
             </el-tooltip>
           </div>
           </div>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="学员考勤" v-if="maskForm.status != 'NOT_START'">
+          <div class="inputStyle" :class="maskForm.errorAttendanceNum != 0 ? 'red' : null">{{ maskForm.errorAttendanceNum != 0 ? '异常' : '正常' }}</div>
+        </el-form-item>
+        <el-form-item label="老师考勤" v-if="maskForm.status != 'NOT_START'">
+          <div class="inputStyle" :class="maskForm.signInStatusEnum == 1 && maskForm.signOutStatusEnum == 1? null : 'red'">{{ maskForm.signInStatusEnum == 1 && maskForm.signOutStatusEnum == 1 ? '正常' : '异常' }}</div>
+        </el-form-item>
         <el-form-item v-if="maskForm.school" label="教学点">
         <el-form-item v-if="maskForm.school" label="教学点">
           {{ maskForm.school.name }}
           {{ maskForm.school.name }}
           <el-tooltip content="查看教学点" :open-delay="0.5">
           <el-tooltip content="查看教学点" :open-delay="0.5">

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels