Procházet zdrojové kódy

Merge branch '02_07search' into temp_0223

lex-xin před 4 roky
rodič
revize
bcf859ae91
41 změnil soubory, kde provedl 1758 přidání a 1094 odebrání
  1. 5 0
      src/components/save-form/README.md
  2. 7 5
      src/components/save-form/index.vue
  3. 1 1
      src/layout/components/Navbar.vue
  4. 9 2
      src/layout/components/TagsView.vue
  5. 1 0
      src/router/notKeepAliveList.js
  6. 6 2
      src/store/modules/tagsView.js
  7. 1 1
      src/utils/downLoadFile.js
  8. 1 0
      src/utils/index.js
  9. 1 1
      src/utils/request.js
  10. 1 1
      src/utils/request2.js
  11. 500 338
      src/views/accompanyManager/accompanys.vue
  12. 15 11
      src/views/afterSchoolManager/afterSchoolList.vue
  13. 1 1
      src/views/attendanceManager/attendanceList/index.vue
  14. 27 31
      src/views/businessManager/orderManager/backMoney.vue
  15. 21 17
      src/views/businessManager/orderManager/businessStatement.vue
  16. 2 2
      src/views/businessManager/orderManager/businessStatementDetail.vue
  17. 19 18
      src/views/businessManager/orderManager/financeManager.vue
  18. 2 2
      src/views/businessManager/orderManager/income.vue
  19. 1 1
      src/views/categroyManager/insideSetting/staffManager.vue
  20. 1 0
      src/views/evaluateManager/evaluateList.vue
  21. 2 1
      src/views/main/baseinfo/index.vue
  22. 1 1
      src/views/musicInspection/index.vue
  23. 7 0
      src/views/resetTeaming/components/strudentPayInfo.vue
  24. 4 3
      src/views/resetTeaming/index.vue
  25. 66 17
      src/views/studentManager/index.vue
  26. 6 6
      src/views/teacherManager/teacherDetail/index.vue
  27. 2 0
      src/views/teacherManager/teacherList.vue
  28. 2 2
      src/views/teamBuild/teamSeting/index.vue
  29. 51 7
      src/views/teamDetail/componentCourse/resetClass.vue
  30. 1 0
      src/views/teamDetail/componentCourse/teacherList.vue
  31. 167 120
      src/views/teamDetail/components/courseList.vue
  32. 80 39
      src/views/teamDetail/components/modals/classroom-setting.vue
  33. 51 52
      src/views/teamDetail/components/resetClass.vue
  34. 17 2
      src/views/teamDetail/teamClassList.vue
  35. 10 3
      src/views/teamDetail/teamCourseList.vue
  36. 3 2
      src/views/teamDetail/teamInfo.vue
  37. 637 398
      src/views/teamDetail/teamList.vue
  38. 2 1
      src/views/timedTask/index.vue
  39. 1 1
      src/views/vipClass/vipDetail/index.vue
  40. 17 3
      src/views/vipClass/vipReset.vue
  41. 9 2
      src/views/workBenchManager/payAppeal.vue

+ 5 - 0
src/components/save-form/README.md

@@ -31,3 +31,8 @@
 
 ###### 其他:
 请在`@/router/notKeepAliveList`中添加当页路由,保证当前页面不会keepAlive
+
+##### 已知问题
+
+1. 点击重置按钮无效
+请添加`noclear`属性

+ 7 - 5
src/components/save-form/index.vue

@@ -14,7 +14,7 @@
 import { Searchs } from '@/helpers'
 export default {
   name: 'save-form',
-  props: ['model', 'save-key'],
+  props: ['model', 'save-key', 'noclear'],
   data() {
     return {
       searchs: null
@@ -55,10 +55,12 @@ export default {
       evt.preventDefault()
       if (this.$listeners.reset) {
         this.$listeners.reset()
-        this.$nextTick(() => {
-          this.resetFields()
-          // this.setFormValue()
-        })
+        if (this.noclear == undefined) {
+          this.$nextTick(() => {
+            this.resetFields()
+            // this.setFormValue()
+          })
+        }
 
       } else {
         this.resetFields()

+ 1 - 1
src/layout/components/Navbar.vue

@@ -169,7 +169,7 @@ export default {
     // 手动加入
     this.toggleSideBar();
     this.username = this.$store.getters.name;
-    this.organNameList = this.organName.split(",");
+    this.organNameList = this.organName.split(",")||[];
   },
   methods: {
     toggleSideBar() {

+ 9 - 2
src/layout/components/TagsView.vue

@@ -60,7 +60,7 @@ export default {
     $route() {
       this.addViewTags();
       this.moveToCurrentTag();
-      if (!activeKey) {
+      if (!activeKey && !this.$store.state.tagsView.isBack) {
         const s = new Searchs()
         const keys = [this.$route.path]
         for (const key in s.searchs) {
@@ -75,6 +75,7 @@ export default {
           s.removeByKey(item)
         }
       }
+      this.$store.commit('SET_IS_BACK', false)
       activeKey = ''
     },
     visible(value) {
@@ -144,9 +145,11 @@ export default {
       });
     },
     closeSelectedTag(view) {
+        activeKey = '1'
+
       const searchs = new Searchs();
       searchs.remove(this.$route.path);
-      this.$store.dispatch("delVisitedViews", view).then((views) => {
+      this.$store.dispatch("delVisitedViews", {...view, dontNeedSave: true}).then((views) => {
         if (this.isActive(view)) {
           const latestView = views.slice(-1)[0];
           if (latestView) {
@@ -177,11 +180,15 @@ export default {
       this.visible = false;
     },
     changeTag(tag) {
+      console.log(tag)
       activeKey = this.getSearchsByRealPath(tag)
+
     },
     getSearchsByRealPath(tag) {
       const searchs = new Searchs()
       let keyName = ''
+
+      console.log( searchs.searchs)
       for (const key in searchs.searchs) {
         if (Object.hasOwnProperty.call(searchs.searchs, key)) {
           const item = searchs.searchs[key];

+ 1 - 0
src/router/notKeepAliveList.js

@@ -89,4 +89,5 @@ export default [
   '/business/teacherDetail',
   '/arrearage-students',
   '/business/strudentPayInfo',
+  '/timedTask/timedTask'
 ]

+ 6 - 2
src/store/modules/tagsView.js

@@ -1,11 +1,11 @@
 const tagsView = {
   state: {
-    visitedViews: []
+    visitedViews: [],
+    isBack: false,
     // cachedViews: []
   },
   mutations: {
     ADD_VISITED_VIEWS: (state, view) => {
-      console.log(view)
       if (state.visitedViews.some(v => v.path === view.path)) {
         state.visitedViews.forEach(v => {
           if (v.path === view.path) {
@@ -67,6 +67,9 @@ const tagsView = {
     DEL_ALL_VIEWS: (state) => {
       state.visitedViews = []
       // state.cachedViews = []
+    },
+    SET_IS_BACK: (state, isBack) => {
+      state.isBack = isBack
     }
   },
   actions: {
@@ -75,6 +78,7 @@ const tagsView = {
     },
     delVisitedViews ({ commit, state }, view) {
       return new Promise((resolve) => {
+        commit('SET_IS_BACK', !view.dontNeedSave)
         commit('DEL_VISITED_VIEWS', view)
         resolve([...state.visitedViews])
       })

+ 1 - 1
src/utils/downLoadFile.js

@@ -27,7 +27,7 @@ export const Export = (that, params, message) => {
         responseType: "blob"
     };
     if(options.method == 'post') {
-        options.data = params.params
+        options.data =params.params
     } else {
         options.params = params.params
     }

+ 1 - 0
src/utils/index.js

@@ -161,3 +161,4 @@ export const getTimes = (times, keys = [], format = 'YYYY-MM-DD') => {
   }
   return {}
 }
+

+ 1 - 1
src/utils/request.js

@@ -117,7 +117,7 @@ service.interceptors.response.use(
       if (data.code == 404) {
         router.push('/404')
       }
-      if (data.code != 200) {
+      if (data.code < 200||data.code >= 300) {
         // Message({
         //   message: data.msg || `请求失败code码为${ data.code }`,
         //   type: 'error',

+ 1 - 1
src/utils/request2.js

@@ -123,7 +123,7 @@ service.interceptors.response.use(
       if (data.code == 404) {
         router.push('/404')
       }
-      if (data.code != 200) {
+      if (data.code < 200||data.code >= 300) {
         // Message({
         //   message: data.msg || `请求失败code码为${ data.code }`,
         //   type: 'error',

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 500 - 338
src/views/accompanyManager/accompanys.vue


+ 15 - 11
src/views/afterSchoolManager/afterSchoolList.vue

@@ -205,7 +205,18 @@ export default {
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {
      if (this.searchForm.listTimer && this.searchForm.listTimer.length <= 0) {
-        let now = new Date();
+       this.getNow()
+      }
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.$store.dispatch("setBranchs");
+    // 获取分部
+    this.init();
+  },
+  methods: {
+    getNow(){
+       let now = new Date();
         let startDate = new Date(
           Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
         )
@@ -219,17 +230,9 @@ export default {
         this.searchForm.listTimer = [];
         this.searchForm.listTimer.push(startDate);
         this.searchForm.listTimer.push(endDate);
-      }
-  },
-  //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {
-    this.$store.dispatch("setBranchs");
-    // 获取分部
-    this.init();
-  },
-  methods: {
+    },
     init() {
-     
+
       this.getList();
     },
     getList() {
@@ -268,6 +271,7 @@ export default {
         teacherId: null,
         organIdList: null,
       };
+      this.getNow()
       this.search();
     },
     lookDetail(row) {

+ 1 - 1
src/views/attendanceManager/attendanceList/index.vue

@@ -147,7 +147,7 @@
           :page-sizes="rules.page_size"
           @pagination="getList"
         />
-        <el-dialog title="作业详情" :visible.sync="classVisible" width="1000px">
+        <el-dialog title="作业详情" :visible.sync="classVisible" width="1000px" v-if="classVisible">
           <studentWork
             v-if="activeRow"
             :courseScheduleId="activeRow.courseScheduleId"

+ 27 - 31
src/views/businessManager/orderManager/backMoney.vue

@@ -9,7 +9,8 @@
       <save-form
         :inline="true"
         class="searchForm"
-        ref='searchForm'
+        ref="searchForm"
+        noclear
         :model="searchForm"
         @submit="search"
         @reset="onReSet"
@@ -30,6 +31,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <!--   @change="searchOrderDate" -->
         <el-form-item prop="orderDate">
           <el-date-picker
             style="width: 410px"
@@ -239,27 +241,17 @@ export default {
     // })
     this.$store.dispatch("setBranchs");
     if (this.searchForm?.orderDate?.length < 1) {
-     this.getNow()
+      this.getNow();
     }
 
     this.getList();
   },
   methods: {
-    getNow(){
-       var now = new Date();
-      var startDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      var endDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      this.searchForm.orderDate = [];
+    getNow() {
+      let startDate = this.$helpers.dayjs(new Date()).format("YYYY-MM-DD");
+      this.$set(this.searchForm, "orderDate", []);
+      this.searchForm.orderDate.push(startDate);
       this.searchForm.orderDate.push(startDate);
-      this.searchForm.orderDate.push(endDate);
     },
     search() {
       this.pageInfo.page = 1;
@@ -285,14 +277,16 @@ export default {
       });
     },
     getList() {
+      console.log(this.searchForm.orderDate);
       let { orderDate, ...rest } = this.searchForm;
+      // console.log(orderDate,{...rest})
       let params = {
         ...rest,
         page: this.pageInfo.page,
         rows: this.pageInfo.limit,
         ...getTimes(orderDate, ["startTime", "endTime"]),
       };
-      console.log(params)
+      // console.log(params)
       studentRefundsQueryPage(params).then((res) => {
         let result = res.data;
         if (res.code == 200) {
@@ -301,21 +295,23 @@ export default {
         }
       });
     },
-    searchOrderDate(value) {
-      console.log(value)
-      if (value) {
-        this.searchForm.startTime = value[0] + " 00:00:00";
-        this.searchForm.endTime = value[1] + " 23:59:59";
-      } else {
-        this.searchForm.startTime = null;
-        this.searchForm.endTime = null;
-      }
-    },
+    // searchOrderDate(value) {
+    //   console.log(value)
+    //   if (value) {
+    //     this.searchForm.startTime = value[0];
+    //     this.searchForm.endTime = value[1];
+    //   } else {
+    //     this.searchForm.startTime = null;
+    //     this.searchForm.endTime = null;
+    //   }
+    // },
     onReSet() {
-      this.$refs["searchForm"].resetFields();
-      // console.log(this.searchForm)
-      // this.getNow()
-      this.search()
+
+      console.log(this.searchForm);
+      this.getNow();
+      console.log(this.searchForm);
+        this.$refs["searchForm"].resetFields();
+      this.search();
     },
     onFormClose(formName) {
       // 关闭弹窗重置验证

+ 21 - 17
src/views/businessManager/orderManager/businessStatement.vue

@@ -271,6 +271,11 @@ export default {
       },
     };
   },
+  created(){
+     const form = { ...this.searchForm };
+    form.month = dayjs().format("YYYY-MM");
+    this.searchForm = form;
+  },
   mounted() {
     this.$store.dispatch("setBranchs");
     // getEmployeeOrgan().then(res => {
@@ -283,24 +288,23 @@ export default {
         this.cooperations = res.data.rows;
       }
     });
-    const form = { ...this.searchForm };
-    form.month = dayjs().format("YYYY-MM");
-    this.searchForm = form;
+
     this.getList();
-    var now = new Date();
-    var startDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    var endDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    this.orderDate = [];
-    this.orderDate.push(startDate);
-    this.orderDate.push(endDate);
+
+    // var now = new Date();
+    // var startDate = new Date(
+    //   Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+    // )
+    //   .toISOString()
+    //   .slice(0, 10);
+    // var endDate = new Date(
+    //   Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+    // )
+    //   .toISOString()
+    //   .slice(0, 10);
+    // this.orderDate = [];
+    // this.orderDate.push(startDate);
+    // this.orderDate.push(endDate);
   },
   methods: {
     search() {

+ 2 - 2
src/views/businessManager/orderManager/businessStatementDetail.vue

@@ -345,8 +345,8 @@ export default {
     goBack () {
       // searchForm: this.searchForm,
       // pageInfo: this.pageInfo
-       this.$store.dispatch('delVisitedViews', this.$route) 
-      this.$router.push({ path: '/orderList/businessStatement', query: { ...this.$route.query } })
+       this.$store.dispatch('delVisitedViews', this.$route)
+      this.$router.push({ path: '/orderList/businessStatement' })
     }
   }
 }

+ 19 - 18
src/views/businessManager/orderManager/financeManager.vue

@@ -749,20 +749,7 @@ export default {
   created() {
     that = this;
         if (!(this.searchForm.orderDate?.length > 0)) {
-      var now = new Date();
-      var startDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      var endDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      this.searchForm.orderDate = [];
-      this.searchForm.orderDate.push(startDate);
-      this.searchForm.orderDate.push(endDate);
+          this.getNow()
     }
   },
   mounted() {
@@ -777,12 +764,25 @@ export default {
         this.shopList = res.data.rows;
       }
     });
-
-
-
     this.getList();
   },
   methods: {
+    getNow(){
+       var now = new Date();
+      var startDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      var endDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      this.searchForm.orderDate = [];
+      this.searchForm.orderDate.push(startDate);
+      this.searchForm.orderDate.push(endDate);
+    },
     onClear(type) {
       if (type == "paymentType") {
         this.searchForm.paymentType = null;
@@ -1029,7 +1029,7 @@ export default {
         search: null,
         orderStartDate: null,
         orderEndDate: null,
-        paymentStatus: null,
+        paymentStatus: "SUCCESS",
         paymentType: null,
         routingOrganId: null,
         actualAmount: null,
@@ -1041,6 +1041,7 @@ export default {
         lessActualAmount: null,
         orderDate: [],
       };
+      this.getNow()
       this.getList();
     },
     removeGoodsList(item) {

+ 2 - 2
src/views/businessManager/orderManager/income.vue

@@ -263,11 +263,11 @@
           </el-table-column>
           <el-table-column align="center" label="学员姓名">
             <template slot-scope="scope">
-              <copy-text> {{ scope.row.user.username }}</copy-text>
+              <copy-text v-if="scope.row.user.username"> {{ scope.row.user.username }}</copy-text>
               <span v-if="scope.row.user.username && scope.row.user.phone"
                 >/</span
               >
-              <copy-text>
+              <copy-text v-if="scope.row.user.phone">
                 {{ scope.row.user.phone }}
               </copy-text>
             </template>

+ 1 - 1
src/views/categroyManager/insideSetting/staffManager.vue

@@ -625,7 +625,7 @@ export default {
   }
 }
 /deep/.el-dialog__body {
-  padding: 0 20px;
+  // padding: 0 20px;
 }
 /deep/.el-select,
 /deep/.el-date-editor.el-input {

+ 1 - 0
src/views/evaluateManager/evaluateList.vue

@@ -262,6 +262,7 @@ export default {
       )
         .toISOString()
         .slice(0, 7);
+        this.search()
     },
     gotoEvakuateDetail(row) {
       let id = row.id;

+ 2 - 1
src/views/main/baseinfo/index.vue

@@ -85,6 +85,7 @@ export default {
   data () {
     return {
       pickerOptions: {
+          firstDayOfWeek: 1,
         disabledDate: a => {
           const { dayjs } = this.$helpers
           return dayjs(a).isAfter(dayjs().subtract(1, 'day'))
@@ -136,7 +137,7 @@ export default {
   },
   mounted () {
     this.FetchDetail()
-     this.reset()
+    //  this.reset() 和卧龙大佬商量过
     this.$store.dispatch('setBranchs')
   },
   methods: {

+ 1 - 1
src/views/musicInspection/index.vue

@@ -2,7 +2,7 @@
 <template>
     <div class="m-container">
         <h2>
-            <div class="squrt"></div>乐团巡查 <filter-search :keys="['searchType']" :moreKeys="['organId', 'start', 'end']" @reload="reloadItem"/>
+            <div class="squrt"></div>乐团巡查 <filter-search :keys="['searchType']" :moreKeys="['organId', 'start', 'end']" @reload="getList"/>
         </h2>
         <div class="m-core">
             <save-form :inline="true" ref="searchForm" @submit="search" @reset="onReSet" :model="searchForm">

+ 7 - 0
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -617,6 +617,13 @@ export default {
           query: { ...this.$route.query },
         });
       }
+      if(query.type == "look"){
+         this.$store.dispatch("delVisitedViews", this.$route);
+        this.$router.push({
+          path: "/business/teamLookBase",
+          query: { ...this.$route.query },
+        });
+      }
     },
     handleSelectionChange(val) {
       this.activeChiose = val;

+ 4 - 3
src/views/resetTeaming/index.vue

@@ -135,13 +135,14 @@ export default {
       }
     },
     onCancel () {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+       this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({ path: '/business/teamDetail' })
     },
     getBaseInfo (baseInfo) {
+
       this.baseInfo = baseInfo
-      this.teamName = baseInfo.musicGroup.name
-      this.musicGroupInfo = baseInfo.musicGroup
+      this.teamName = baseInfo?.musicGroup?.name
+      this.musicGroupInfo = baseInfo?.musicGroup
     },
     handleClick (val) {
       // this.activeIndex = val.name

+ 66 - 17
src/views/studentManager/index.vue

@@ -5,32 +5,81 @@
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-      <tab-router v-model.trim="activeIndex" type="card" @tab-click="handleClick">
-        <el-tab-pane label="基本信息" lazy v-if="permissionList.studentInfo" name="1">
+      <tab-router
+        v-model.trim="activeIndex"
+        type="card"
+        @tab-click="handleClick"
+      >
+        <el-tab-pane
+          label="基本信息"
+          lazy
+          v-if="permissionList.studentInfo"
+          name="1"
+        >
           <studentInfo v-if="activeIndex == 1" />
         </el-tab-pane>
-        <el-tab-pane label="乐团&课程" lazy v-if="permissionList.teamAndcourse" name="2">
+        <el-tab-pane
+          label="乐团&课程"
+          lazy
+          v-if="permissionList.teamAndcourse"
+          name="2"
+        >
           <teamAndcourse v-if="activeIndex == 2" />
         </el-tab-pane>
-        <el-tab-pane label="VIP课" lazy v-if="permissionList.studentVip" name="3">
+        <el-tab-pane
+          label="VIP课"
+          lazy
+          v-if="permissionList.studentVip"
+          name="3"
+        >
           <studentVip v-if="activeIndex == 3" />
         </el-tab-pane>
-        <el-tab-pane label="对外课" lazy v-if="permissionList.studentOutList" name="4">
+        <el-tab-pane
+          label="对外课"
+          lazy
+          v-if="permissionList.studentOutList"
+          name="4"
+        >
           <studentOutList v-if="activeIndex == 4" />
         </el-tab-pane>
-        <el-tab-pane label="网管课" lazy v-if="permissionList.studentNetwork" name="9">
+        <el-tab-pane
+          label="网管课"
+          lazy
+          v-if="permissionList.studentNetwork"
+          name="9"
+        >
           <studentNetwork v-if="activeIndex == 9" />
         </el-tab-pane>
-        <el-tab-pane label="课表详情" lazy v-if="permissionList.studentRecord" name="5">
+        <el-tab-pane
+          label="课表详情"
+          lazy
+          v-if="permissionList.studentRecord"
+          name="5"
+        >
           <studentRecord v-if="activeIndex == 5" />
         </el-tab-pane>
-        <el-tab-pane label="扣费记录" lazy v-if="permissionList.studentPayList" name="6">
+        <el-tab-pane
+          label="扣费记录"
+          lazy
+          v-if="permissionList.studentPayList"
+          name="6"
+        >
           <studentPayList v-if="activeIndex == 6" />
         </el-tab-pane>
-        <el-tab-pane label="学员订单" lazy v-if="permissionList.studentOrder" name="7">
+        <el-tab-pane
+          label="学员订单"
+          lazy
+          v-if="permissionList.studentOrder"
+          name="7"
+        >
           <studentOrder v-if="activeIndex == 7" />
         </el-tab-pane>
-        <el-tab-pane label="学员提现" lazy v-if="permissionList.studentCashout" name="8">
+        <el-tab-pane
+          label="学员提现"
+          lazy
+          v-if="permissionList.studentCashout"
+          name="8"
+        >
           <studentCashout v-if="activeIndex == 8" />
         </el-tab-pane>
       </tab-router>
@@ -58,7 +107,7 @@ export default {
     studentOrder,
     studentCashout,
     studentOutList,
-    studentNetwork
+    studentNetwork,
   },
   name: "studentDetail",
   data() {
@@ -74,9 +123,9 @@ export default {
         studentOrder: permission("/studentDetail/studentOrder"),
         studentCashout: permission("/studentDetail/studentCashout"),
         studentOutList: permission("/studentDetail/studentOutList"), //
-        studentNetwork: permission("/studentDetail/studentNetwork")
+        studentNetwork: permission("/studentDetail/studentNetwork"),
       },
-      studentName: ""
+      studentName: "",
     };
   },
   mounted() {
@@ -99,16 +148,16 @@ export default {
   },
   methods: {
     onCancel() {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+      this.$store.dispatch("delVisitedViews", this.$route);
       this.$router.push({
-        path: "/business/studentList"
+        path: "/business/studentList",
       });
     },
     handleClick(val) {
       this.activeIndex = val.name;
       // this.acitveStatus[val.name - 1] = true
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang="scss">

+ 6 - 6
src/views/teacherManager/teacherDetail/index.vue

@@ -5,8 +5,8 @@
                       :content="teacherName"></el-page-header>
       <div>
         <!-- 服务指标:本周 运营指标: -->
-        <el-button v-if="teacherInfo" type="text" @click="gotoOperating">运营指标:<span style="color:red">{{teacherInfo.operatingIndex}}%</span></el-button>
-        <el-button v-if="teacherInfo" type="text" @click="gotoAfterSchool">服务指标(每周):<span style="color:red">{{teacherInfo.serviceIndex}}%</span></el-button>
+        <el-button v-if="teacherInfos" type="text" @click="gotoOperating">运营指标:<span style="color:red">{{teacherInfos.operatingIndex}}%</span></el-button>
+        <el-button v-if="teacherInfos" type="text" @click="gotoAfterSchool">服务指标(每周):<span style="color:red">{{teacherInfos.serviceIndex}}%</span></el-button>
       </div>
     </h2>
     <div class="m-core">
@@ -18,7 +18,7 @@
         lazy
                      v-if="permissionList.teacherInfo"
                      name="0">
-          <teacherInfo v-if="activeName == 0&&teacherInfo" :teacherInfo='teacherInfo'  />
+          <teacherInfo v-if="activeName == 0&&teacherInfos" :teacherInfo='teacherInfos'  />
         </el-tab-pane>
         <el-tab-pane label="乐团课"
         lazy
@@ -143,7 +143,7 @@ export default {
         calendarList: permission("/teacherDetail/calendarList"),
         weeklyCalendar: permission("/teacherDetail/weeklyCalendar"),
       },
-      teacherInfo:null
+      teacherInfos:null
     };
   },
   activated () {
@@ -156,7 +156,7 @@ export default {
     this.activeName = "0";
       teacherGet({ teacherId: this.teacherId }).then(res => {
         if (res.code == 200) {
-         this.teacherInfo = res.data
+         this.teacherInfos = res.data
 
         }
       })
@@ -167,7 +167,7 @@ export default {
       // this.activeStatus[val.name] = true
     },
     onCancel () {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+       this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({
         path: "/business/teacherList"
       });

+ 2 - 0
src/views/teacherManager/teacherList.vue

@@ -432,6 +432,7 @@ export default {
       if (type == "update") {
         path = "/business/teacherOperationUpdate";
       }
+      console.log(params)
       //  teacherId=${scope.row.id}&teacherName=${scope.row.realName}
       this.$router.push(
         {
@@ -515,6 +516,7 @@ export default {
         subjectId: null,
         search: null,
       };
+      this.search()
     },
     resetPassWrod(row) {
       this.activatedRow = row;

+ 2 - 2
src/views/teamBuild/teamSeting/index.vue

@@ -173,8 +173,8 @@ export default {
       this.activeIndex = val;
     },
     goBack () {
-       this.$store.dispatch('delVisitedViews', this.$route) 
-      this.$router.push({ path: '/business/teamDetail' })
+       this.$store.dispatch('delVisitedViews', this.$route)
+      this.$router.push({ path: '/business/teamDetail'})
     }
   },
 }

+ 51 - 7
src/views/teamDetail/componentCourse/resetClass.vue

@@ -15,10 +15,19 @@
         v-if="maskForm.type == 'VIP'"
         prop="teacher"
       >
-         <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" @change="changeTeacher" :width='220'/>
+        <remote-search
+          :commit="'setTeachers'"
+          v-model="maskForm.teacher"
+          @change="changeTeacher"
+          :width="220"
+        />
       </el-form-item>
       <el-form-item label="主教老师" v-else prop="teacher">
-        <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" :width='220'/>
+        <remote-search
+          :commit="'setTeachers'"
+          v-model="maskForm.teacher"
+          :width="220"
+        />
       </el-form-item>
       <el-form-item
         label="助教老师"
@@ -29,21 +38,31 @@
         "
         prop="assistant"
       >
-         <remote-search :commit="'setTeachers'" v-model="maskForm.assistant" :width='220'  :multiple='true'/>
+        <remote-search
+          :commit="'setTeachers'"
+          v-model="maskForm.assistant"
+          :width="220"
+          :multiple="true"
+        />
       </el-form-item>
       <el-form-item label="上课日期" prop="date">
         <el-date-picker
           v-model.trim="maskForm.date"
           type="date"
-          :picker-options="{
-            firstDayOfWeek: 1,
+          :picker-options="bigin"
+          @change="()=>{
+            maskForm.startTime = ''
           }"
           value-format="yyyy-MM-dd"
           placeholder="选择日期"
         ></el-date-picker>
       </el-form-item>
       <el-form-item label="课程时长" prop="timer">
-        <el-select v-model="maskForm.timer" @change="changeTime" style="width: 220px !important">
+        <el-select
+          v-model="maskForm.timer"
+          @change="changeTime"
+          style="width: 220px !important"
+        >
           <el-option
             v-for="(item, index) in typeTimeList"
             :key="index"
@@ -60,7 +79,7 @@
           format="HH:mm"
           value-format="HH:mm"
           :picker-options="{
-            selectableRange: '04:30:00 - 23:30:00',
+            selectableRange: `${nowTime} - 23:30:00`,
           }"
         ></el-time-picker>
       </el-form-item>
@@ -128,6 +147,7 @@ import { getTeachSchool } from "@/api/teacherManager";
 import { getSchool } from "@/api/systemManage";
 import cleanDeep from "clean-deep";
 import dayjs from "dayjs";
+let that;
 export default {
   props: ["show", "id", "isDisabled"],
   data() {
@@ -158,8 +178,12 @@ export default {
       typeTimeList: [],
       courseTimeList: {},
       organId: "",
+      bigin: this.beginDate(),
     };
   },
+  created() {
+    that = this;
+  },
   async mounted() {
     // await getTeacher().then((res) => {
     //   if (res.code == 200) {
@@ -307,6 +331,15 @@ export default {
         }
       });
     },
+    beginDate() {
+      return {
+        firstDayOfWeek: 1,
+        disabledDate(time) {
+          return time.getTime() + 86400000 <= new Date().getTime();
+          //开始时间不选时,结束时间最大值小于等于当天
+        },
+      };
+    },
   },
 
   watch: {
@@ -329,6 +362,17 @@ export default {
       });
     },
   },
+  computed: {
+    nowTime() {
+      // console.log(that.maskForm.date)
+      let str = "04:30:00";
+      if (that.maskForm.date == dayjs(new Date()).format("YYYY-MM-DD")) {
+        str = dayjs(new Date()).format("HH:mm:ss");
+      }
+
+      return str;
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 1 - 0
src/views/teamDetail/componentCourse/teacherList.vue

@@ -126,6 +126,7 @@
                        v-permission="'courseSchedule/queryTeacherSalary'"
                        @click="setCourseInfo(scope.row)">课酬调整</el-button>
               <el-button
+              size="small"
                 type="text"
                 v-permission="'teacherAttendance/update?page=teamCourseList'"
                 @click="hand(scope.row)"

+ 167 - 120
src/views/teamDetail/components/courseList.vue

@@ -212,9 +212,8 @@
                       prop="date">
           <el-date-picker v-model.trim="maskForm.date"
                           type="date"
-                          :picker-options="{
-                            firstDayOfWeek:1
-                          }"
+                          :picker-options="beginDate()"
+                          @change="changeDate"
                           value-format="yyyy-MM-dd"
                           placeholder="选择日期"></el-date-picker>
         </el-form-item>
@@ -237,8 +236,10 @@
                           format='HH:mm'
                           value-format='HH:mm'
                           :picker-options="{
-                            selectableRange: '04:30:00 - 23:30:00'
-                            }"></el-time-picker>
+            selectableRange: `${nowTime} - 23:30:00`,
+          }"
+
+                            ></el-time-picker>
         </el-form-item>
         <el-form-item label="结束时间"
                       v-if="courseVisible"
@@ -366,7 +367,7 @@
   </div>
 </template>
 <script>
-import dayjs from 'dayjs'
+import dayjs from "dayjs";
 import pagination from "@/components/Pagination/index";
 import { bathDelete } from "@/api/vipSeting";
 import {
@@ -381,19 +382,20 @@ import {
   findAttendanceStudentByCourseWithPage,
   updateStudentAttendances,
   cleanAttendance,
-  getOrganCourseDurationSettings
+  getOrganCourseDurationSettings,
 } from "@/api/buildTeam";
 import { permission } from "@/utils/directivePage";
-import { diffTimerFormMinute, addTimerFormMinute } from '@/utils/date'
-import { classTimeList,musicCourseType } from "@/utils/searchArray";
-import { getSchool } from "@/api/systemManage"
-import cleanDeep from 'clean-deep'
+import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
+import { classTimeList, musicCourseType } from "@/utils/searchArray";
+import { getSchool } from "@/api/systemManage";
+import cleanDeep from "clean-deep";
+let that
 export default {
   name: "tcourseList",
-  data () {
+  data() {
     return {
       classTimeList,
-      courseArray:musicCourseType,
+      courseArray: musicCourseType,
       typeVisible: false,
       timerVisible: false,
       courseVisible: false,
@@ -402,7 +404,7 @@ export default {
         classStatus: "", // 课程状态
         timer: [], // 时间
         class: "",
-        isSettlement: ""
+        isSettlement: "",
       },
       tableList: [],
       searchLsit: [],
@@ -411,7 +413,7 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       maskForm: {
         teacher: "",
@@ -421,11 +423,11 @@ export default {
         startTime: "",
         endTime: "",
         type: "",
-        timer: '',
+        timer: "",
         courseScheduleType: null,
-        address: '',
-        teachMode: '',
-        schoolId: ''
+        address: "",
+        teachMode: "",
+        schoolId: "",
       },
       typeForm: {
         teacher: "",
@@ -434,32 +436,32 @@ export default {
         startTime: "",
         endTime: "",
         type: null,
-        id: null
+        id: null,
       },
       maskRules: {
         schoolId: [
-          { required: true, message: "请选教学地点", trigger: "blur" }
+          { required: true, message: "请选教学地点", trigger: "blur" },
         ],
         teacher: [
-          { required: true, message: "请选择主教老师名称", trigger: "blur" }
+          { required: true, message: "请选择主教老师名称", trigger: "blur" },
         ],
-        date: [{ required: true, message: "请选择上课时间", trigger: "blur" }]
+        date: [{ required: true, message: "请选择上课时间", trigger: "blur" }],
         // startTime: [{ required: true, message: '请选择上课开始时间', trigger: 'blur' },],
         // endTime: [{ required: true, message: '请选择上课结束时间', trigger: 'blur' },],
       },
       typeRules: {
-        type: [{ required: true, message: "请选择课程类型", trigger: "blur" }]
+        type: [{ required: true, message: "请选择课程类型", trigger: "blur" }],
       },
       teacherList: [],
       classList: [],
       activeCourseList: [],
       timerMask: {
-        timer: ""
+        timer: "",
       },
       markAttendance: {
         // 考勤状态
         status: false,
-        dataInfo: {}
+        dataInfo: {},
       },
       rollCall: {
         // 点名表
@@ -469,38 +471,41 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-      organId: '',
+      organId: "",
       schoolList: [],
-      courseTimeList:{},
-      typeTimeList:[]
+      courseTimeList: {},
+      typeTimeList: [],
     };
   },
   components: {
-    pagination
+    pagination,
+  },
+  created(){
+    that = this;
   },
-  mounted () {
+  mounted() {
     this.init();
-    getSchool({ organId: this.$route.query.organId }).then(res => {
+    getSchool({ organId: this.$route.query.organId }).then((res) => {
       if (res.code == 200) {
         this.schoolList = res.data;
       }
-    })
-
+    });
   },
-  activated () {
+  activated() {
     this.init();
   },
   methods: {
-   async init () {
+    async init() {
       this.teamid = this.$route.query.id;
-      this.organId = this.$route.query.organId
-      try{
-        const res = await getOrganCourseDurationSettings({organId:this.organId})
-        this.courseTimeList = res.data
-
-      }catch{}
+      this.organId = this.$route.query.organId;
+      try {
+        const res = await getOrganCourseDurationSettings({
+          organId: this.organId,
+        });
+        this.courseTimeList = res.data;
+      } catch {}
 
       // MusicStore.dispatch('getBaseInfo', {
       //     data: { musicGroupId: this.teamid }
@@ -521,33 +526,33 @@ export default {
       // });
 
       // 获取班级列表
-      getMusicGroupAllClass({ musicGroupId: this.teamid }).then(res => {
+      getMusicGroupAllClass({ musicGroupId: this.teamid }).then((res) => {
         if (res.code == 200) {
           this.classList = res.data;
         }
       });
     },
-    onMarkAttendance (item) {
+    onMarkAttendance(item) {
       // 补考勤
       this.markAttendance = {
         status: true,
-        dataInfo: item
+        dataInfo: item,
       };
     },
-    onCallName (item) {
+    onCallName(item) {
       // 点名表
       this.rollCall.page = 1;
       this.rollCall.selectItem = item;
       this.getCallName();
     },
-    getCallName () {
+    getCallName() {
       let rollCall = this.rollCall;
       let params = {
         page: rollCall.page,
         rows: rollCall.limit,
-        courseScheduleId: rollCall.selectItem.courseScheduleId
+        courseScheduleId: rollCall.selectItem.courseScheduleId,
       };
-      findAttendanceStudentByCourseWithPage(params).then(res => {
+      findAttendanceStudentByCourseWithPage(params).then((res) => {
         let result = res.data;
         rollCall.status = true;
         if (res.code == 200) {
@@ -556,18 +561,18 @@ export default {
         }
       });
     },
-    onChangeRollCall (type, row) {
+    onChangeRollCall(type, row) {
       let rollCall = this.rollCall;
       let params = {
         courseScheduleId: rollCall.selectItem.courseScheduleId,
         studentAttendances: [
           {
             userId: row.studentId,
-            status: type
-          }
-        ]
+            status: type,
+          },
+        ],
       };
-      updateStudentAttendances(params).then(res => {
+      updateStudentAttendances(params).then((res) => {
         if (res.code == 200) {
           this.$message.success("修改成功");
           row.status = type;
@@ -577,14 +582,14 @@ export default {
         }
       });
     },
-    permission (str, parent) {
+    permission(str, parent) {
       return permission(str, parent);
     },
-    search () {
+    search() {
       this.rules.page = 1;
       this.getList();
     },
-    getList () {
+    getList() {
       let searchForm = this.searchForm;
       if (!searchForm.timer) {
         searchForm.timer = [];
@@ -598,22 +603,22 @@ export default {
         page: this.rules.page,
         rows: this.rules.limit,
         classGroupId: searchForm.class || null,
-        isSettlement: searchForm.isSettlement || null
+        isSettlement: searchForm.isSettlement || null,
       };
-      getCourseSchedule(obj).then(res => {
+      getCourseSchedule(obj).then((res) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
         }
       });
     },
-    resetClass (row) {
+    resetClass(row) {
       this.maskForm.teacher = parseInt(row.masterTeacherId);
       this.maskForm.courseScheduleType = row.courseScheduleType;
-            // this.courseTimeList
-      for(let key in this.courseTimeList){
-        if(key == row.courseScheduleType){
-          this.typeTimeList = this.courseTimeList[key].split(',')
+      // this.courseTimeList
+      for (let key in this.courseTimeList) {
+        if (key == row.courseScheduleType) {
+          this.typeTimeList = this.courseTimeList[key].split(",");
         }
       }
       // this.maskForm.type = row.courseScheduleType;
@@ -629,12 +634,20 @@ export default {
         "startTime",
         row.startClassTimeStr.substring(0, 5)
       );
-      let time = diffTimerFormMinute(row.classDate, row.startClassTimeStr, row.endClassTimeStr)
+      let time = diffTimerFormMinute(
+        row.classDate,
+        row.startClassTimeStr,
+        row.endClassTimeStr
+      );
       this.maskForm.timer = time;
-      this.maskForm.endTime = addTimerFormMinute(row.classDate, row.startClassTimeStr, time)
+      this.maskForm.endTime = addTimerFormMinute(
+        row.classDate,
+        row.startClassTimeStr,
+        time
+      );
       // this.maskForm.endTime = row.endClassTimeStr.substring(0, 5);
       this.maskForm.id = row.courseScheduleId;
-      this.maskForm.schoolId = row.schoolId
+      this.maskForm.schoolId = row.schoolId;
       this.courseVisible = true;
 
       // 修改课时
@@ -645,50 +658,50 @@ export default {
       //   classGroupId: row.id
       // }
     },
-    removeSingleClass (row) {
+    removeSingleClass(row) {
       this.$confirm("是否删除该课程?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           let courseScheduleIds = row.courseScheduleId;
-          bathDelete({ courseScheduleIds }).then(res => {
+          bathDelete({ courseScheduleIds }).then((res) => {
             if (res.code == 200) {
               this.$message.success("删除成功");
               this.getList();
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    removeCourses () {
+    removeCourses() {
       // 批量删除
       if (this.activeCourseList.length < 1) {
         this.$message.error("请至少选择一节课");
         return;
       }
       let arr = [];
-      arr = this.activeCourseList.map(item => {
+      arr = this.activeCourseList.map((item) => {
         return item.courseScheduleId;
       });
       this.$confirm("是否删除该课程?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           let courseScheduleIds = arr.join(",");
-          bathDelete({ courseScheduleIds }).then(res => {
+          bathDelete({ courseScheduleIds }).then((res) => {
             if (res.code == 200) {
               this.$message.success("删除成功");
               this.getList();
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    submitResetClass () {
+    submitResetClass() {
       let maskForm = this.maskForm;
       if (!maskForm.startTime || !maskForm.endTime) {
         this.$message.error("请填写开始时间或结束时间");
@@ -697,7 +710,7 @@ export default {
       this.$confirm("是否确定?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           let teachingTeacherIdList = maskForm.assistant.join(",");
@@ -712,10 +725,10 @@ export default {
             teachingTeacherIdList,
             classDate: maskForm.date,
             type: maskForm.type,
-            groupType: 'MUSIC',
-            schoolId: maskForm.schoolId
+            groupType: "MUSIC",
+            schoolId: maskForm.schoolId,
           };
-          resetCourse(cleanDeep(obj)).then(res => {
+          resetCourse(cleanDeep(obj)).then((res) => {
             if (res.code == 200) {
               this.$message.success("修改成功");
               this.getList();
@@ -723,9 +736,9 @@ export default {
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    handleClose () {
+    handleClose() {
       this.courseVisible = false;
       (this.maskForm = {
         teacher: "",
@@ -734,26 +747,26 @@ export default {
         id: "",
         startTime: "",
         endTime: "",
-        schoolId: null
+        schoolId: null,
       }),
         this.$refs["maskForm"].resetFields();
     },
-    handleSelectionChange (val) {
+    handleSelectionChange(val) {
       this.activeCourseList = val;
     },
-    checkSelectable (val) {
+    checkSelectable(val) {
       return val.courseScheduleStatus == "NOT_START";
       // return true;
     },
-    batchAdjustmentTime () {
+    batchAdjustmentTime() {
       let tempData = this.markAttendance.dataInfo;
       let params = {
         teacherId: tempData.masterTeacherId,
         courseScheduleId: tempData.courseScheduleId,
         signInStatus: 1,
-        signOutStatus: 1
+        signOutStatus: 1,
       };
-      updateTeacherAttendance(params).then(res => {
+      updateTeacherAttendance(params).then((res) => {
         if (res.code == 200) {
           this.$message.success("补卡成功");
           this.markAttendance.status = false;
@@ -763,18 +776,18 @@ export default {
         }
       });
     },
-    handleCloseTimer () {
+    handleCloseTimer() {
       this.timerVisible = false;
       this.timerMask.timer = "";
     },
-    resetTimer () {
+    resetTimer() {
       if (this.activeCourseList.length < 1) {
         this.$message.error("请至少选择一节课");
         return;
       }
       this.timerVisible = true;
     },
-    resetType (row) {
+    resetType(row) {
       this.typeForm.type = row.courseScheduleType;
       this.typeForm.id = row.courseScheduleId;
       this.typeForm.teacher = parseInt(row.masterTeacherId);
@@ -796,8 +809,8 @@ export default {
       //  console.log(row.type)
       this.typeVisible = true;
     },
-    submitResetType () {
-      this.$refs.typeForm.validate(res => {
+    submitResetType() {
+      this.$refs.typeForm.validate((res) => {
         if (res) {
           let teachingTeacherIdList = this.typeForm.assistant.join(",");
           if (teachingTeacherIdList.length <= 0) {
@@ -811,9 +824,8 @@ export default {
             type: this.typeForm.type,
             teachingTeacherIdList,
             classDate: this.typeForm.date,
-
           };
-          resetCourse(obj).then(res => {
+          resetCourse(obj).then((res) => {
             if (res.code == 200) {
               this.$message.success("修改成功");
               this.getList();
@@ -824,15 +836,15 @@ export default {
       });
     },
     // 清除考勤
-    clearAttend (row) {
+    clearAttend(row) {
       this.$confirm("是否清除考勤记录?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           cleanAttendance({ courseScheduleIds: row.courseScheduleId }).then(
-            res => {
+            (res) => {
               if (res.code == 200) {
                 this.$message.success("清除成功");
                 this.getList();
@@ -842,39 +854,74 @@ export default {
             }
           );
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    changeStartTime (val) {
-      this.$nextTick(res => {
-        this.maskForm.endTime = addTimerFormMinute(this.maskForm.date, val, this.maskForm.timer);
-      })
+    changeStartTime(val) {
+      this.$nextTick((res) => {
+        this.maskForm.endTime = addTimerFormMinute(
+          this.maskForm.date,
+          val,
+          this.maskForm.timer
+        );
+      });
     },
-    changeTime(val){
-        this.$nextTick(res => {
-        this.maskForm.endTime = addTimerFormMinute(this.maskForm.date,this.maskForm.startTime ,val );
-      })
+    changeTime(val) {
+      this.$nextTick((res) => {
+        this.maskForm.endTime = addTimerFormMinute(
+          this.maskForm.date,
+          this.maskForm.startTime,
+          val
+        );
+      });
     },
-    onReSet(){
-      this.$refs.searchForm.resetFields()
+    onReSet() {
+      this.$refs.searchForm.resetFields();
+    },
+    beginDate() {
+      return {
+        firstDayOfWeek: 1,
+        disabledDate(time) {
+          return time.getTime() + 86400000 <= new Date().getTime();
+          //开始时间不选时,结束时间最大值小于等于当天
+        },
+      };
+    },
+    changeDate(){
+      this.maskForm.startTime = ''
     }
-
   },
   filters: {
-    studentCallName: value => {
+    studentCallName: (value) => {
       let template = {
         NORMAL: "到课",
         TRUANT: "未到",
         LEAVE: "请假",
         DROP_OUT: "退学",
-        "": "未到"
+        "": "未到",
       };
       return template[value];
-    }
-  }, watch: {
-    'maskForm.timer' (val) {
-      this.maskForm.endTime = addTimerFormMinute(this.maskForm.date, this.maskForm.startTime, val);
-    }
-  }
+    },
+  },
+  watch: {
+    "maskForm.timer"(val) {
+      this.maskForm.endTime = addTimerFormMinute(
+        this.maskForm.date,
+        this.maskForm.startTime,
+        val
+      );
+    },
+  },
+    computed: {
+    nowTime() {
+      // console.log(that.maskForm.date)
+      let str = "04:30:00";
+      if (that.maskForm.date == dayjs(new Date()).format("YYYY-MM-DD")) {
+        str = dayjs(new Date()).format("HH:mm:ss");
+      }
+
+      return str;
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 80 - 39
src/views/teamDetail/components/modals/classroom-setting.vue

@@ -1,6 +1,12 @@
 <template>
   <div>
-    <el-form :model="form" inline ref="form" label-suffix=": " label-width="130px">
+    <el-form
+      :model="form"
+      inline
+      ref="form"
+      label-suffix=": "
+      label-width="130px"
+    >
       <el-row v-if="classType == 5">
         <el-form-item
           label="班级名称"
@@ -35,10 +41,18 @@
             :value="String(item.id)"
           ></el-option>
         </el-select>
-         <!-- <remote-search :commit="'setTeachers'" v-model="form.coreTeacher"  /> -->
+        <!-- <remote-search :commit="'setTeachers'" v-model="form.coreTeacher"  /> -->
       </el-form-item>
-      <el-form-item label="助教老师" prop="assistant" v-if="activeType!='HIGH'&&activeType!='HIGH_ONLINE'&&activeType!='MUSIC_NETWORK'">
-         <!-- <remote-search :commit="'setTeachers'" v-model="form.assistant"  :multiple='true'/> -->
+      <el-form-item
+        label="助教老师"
+        prop="assistant"
+        v-if="
+          activeType != 'HIGH' &&
+          activeType != 'HIGH_ONLINE' &&
+          activeType != 'MUSIC_NETWORK'
+        "
+      >
+        <!-- <remote-search :commit="'setTeachers'" v-model="form.assistant"  :multiple='true'/> -->
         <el-select
           v-model.trim="form.assistant"
           placeholder="请选择助教老师"
@@ -54,16 +68,22 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item v-if="!!Object.keys(allClasss).length" style="display: block;" label="排课类型" label-width="88px">
+      <el-form-item
+        v-if="!!Object.keys(allClasss).length"
+        style="display: block"
+        label="排课类型"
+        label-width="88px"
+      >
         <el-tag
           class="tag"
           :effect="form.classs[key] ? 'dark' : 'plain'"
           v-for="(item, key) in allClasss"
           :key="key"
           @click="changeTag(key)"
-        >{{courseTypeListByName[key]}}</el-tag>
+          >{{ courseTypeListByName[key] }}</el-tag
+        >
       </el-form-item>
-      <empty v-if="isEmpty" desc="暂无可排课时长"/>
+      <empty v-if="isEmpty" desc="暂无可排课时长" />
       <el-collapse v-model="collapses" @change="collapseChange">
         <el-collapse-item
           v-for="(item, key, index) in form.classs"
@@ -88,7 +108,9 @@
     </el-form>
     <div slot="footer" class="dialog-footer" v-if="classType != 5">
       <el-button @click="$listeners.close">取 消</el-button>
-      <el-button type="primary" :disabled="isEmpty" @click="submit">确 定</el-button>
+      <el-button type="primary" :disabled="isEmpty" @click="submit"
+        >确 定</el-button
+      >
     </div>
   </div>
 </template>
@@ -147,7 +169,7 @@ export default {
     "selectPrices",
     "classCouresTimeList",
     "teacherList",
-    "cooperationList"
+    "cooperationList",
   ],
   components: {
     courseItem,
@@ -246,7 +268,6 @@ export default {
       if (this.classType == 5) {
         // res = await findClassCourseMinute(this.classIdList);
         res.data = this.classCouresTimeList;
-
       } else {
         try {
           res = await getMusicCourseSettingsWithStudents({
@@ -257,38 +278,37 @@ export default {
         } catch (error) {
           console.log(error);
         }
-        }
-        // console.log(res);
-        if (Object.keys(res).length <= 0) return;
-        this.musicCourseSettings = res.data;
+      }
+      // console.log(res);
+      if (Object.keys(res).length <= 0) return;
+      this.musicCourseSettings = res.data;
 
-        const classs = {};
-        for (const item of this.courseTypeList) {
-          const key = item.value;
-          if (res.data[key]) {
-            classs[key] = {
-              courseTotalMinuties: res.data[key],
-              cycle: [
-                {
-                  time: this.selectPrices ? this.selectPrices[key] : undefined,
-                },
-              ],
-            };
-          }
+      const classs = {};
+      for (const item of this.courseTypeList) {
+        const key = item.value;
+        if (res.data[key]) {
+          classs[key] = {
+            courseTotalMinuties: res.data[key],
+            cycle: [
+              {
+                time: this.selectPrices ? this.selectPrices[key] : undefined,
+              },
+            ],
+          };
         }
-        this.allClasss = {...classs}
-        this.$set(this.form, "classs", classs);
-        // this.courseTimes = courseTimes
-
+      }
+      this.allClasss = { ...classs };
+      this.$set(this.form, "classs", classs);
+      // this.courseTimes = courseTimes
     },
     changeTag(key) {
-      const clas = {...this.form.classs}
+      const clas = { ...this.form.classs };
       if (clas[key]) {
-        delete clas[key]
+        delete clas[key];
       } else {
-        clas[key] = this.allClasss[key]
+        clas[key] = this.allClasss[key];
       }
-      this.$set(this.form, 'classs', clas)
+      this.$set(this.form, "classs", clas);
     },
     submit() {
       this.$refs.form.validate(async (valid) => {
@@ -325,7 +345,27 @@ export default {
           }
           try {
             if (this.detail) {
-              await classGroupUpdate(list);
+              let result = await classGroupUpdate(list);
+              if (result.code == 206) {
+                this.$confirm(`当前课程课酬预计为0,是否继续`, "提示", {
+                  confirmButtonText: "确定",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                })
+                  .then(async () => {
+                    // obj.allowZeroSalary = true;
+                    list.forEach((item) => {
+                      item.allowZeroSalary = true;
+                    });
+                    await classGroupUpdate(list);
+                    this.$listeners.submited();
+                    this.$listeners.close();
+                  })
+                  .catch(() => {
+                    return;
+                  });
+                return;
+              }
               this.$message.success("排课修改成功");
             } else {
               if (this.classType == 1) {
@@ -347,9 +387,10 @@ export default {
                 obj.classGroupIds = this.classIdList;
                 obj.studentIds = this.studentSubmitedData.seleched;
                 obj.classGroupStudents = this.classGroupStudents;
-                obj.classCourseMinuteMap  = this.selectPrices
+                obj.classCourseMinuteMap = this.selectPrices;
                 await mergeClassSplitClassAffirm(obj);
-                let grend = this.$parent.$parent.$parent.$parent.$parent.$parent.$parent;
+                let grend = this.$parent.$parent.$parent.$parent.$parent.$parent
+                  .$parent;
                 grend.closeStudentReset();
                 grend.getList();
                 return;
@@ -387,7 +428,7 @@ export default {
     font-size: 14px;
   }
 }
-.tag{
+.tag {
   margin-right: 5px;
   cursor: pointer;
 }

+ 51 - 52
src/views/teamDetail/components/resetClass.vue

@@ -125,15 +125,15 @@
                   @click="classAdjustment(scope.row)"
                   >排课</el-button
                 >
-                   <el-button
-                    type="text"
-                    v-if="
-                      scope.row.studentNum == '0' ||
-                      scope.row.totalClassTimes == '0'
-                    "
-                      @click="removeClass(scope)"
-                    >删除</el-button
-                  >
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.studentNum == '0' ||
+                    scope.row.totalClassTimes == '0'
+                  "
+                  @click="removeClass(scope)"
+                  >删除</el-button
+                >
                 <!--<el-button type="text"
                 @click="recourse(scope.row)">重新排课</el-button>-->
                 <!-- <el-popover
@@ -503,12 +503,10 @@
             ></el-option>
           </el-select>
         </el-form-item>
-
-
       </el-form>
       <div slot="footer" class="dialog-footer question">
         <div>
-           <el-popover placement="right" width="500" trigger="click">
+          <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>线上基础技能班规则:</p>
               <p>班级数量:</p>
@@ -532,9 +530,8 @@
         </div>
         <div>
           <el-button @click="newClassVisible = false">取 消</el-button>
-        <el-button type="primary" @click="newClassHight">确 定</el-button>
+          <el-button type="primary" @click="newClassHight">确 定</el-button>
         </div>
-
       </div>
     </el-dialog>
     <el-dialog
@@ -828,11 +825,14 @@ export default {
       // 根据分部id和缴费类型获取 可选课程类型
     },
     resetTeacher(row) {
-      this.teacherVisible = true
-      this.teacherDetail = row
+      this.teacherVisible = true;
+      this.teacherDetail = row;
     },
     teacherSubmited(data) {
-      const obj = this.getSubmitData(data, {classGroupId: this.teacherDetail?.id, courseAddType: 'onlyUpdateTeacher'})
+      const obj = this.getSubmitData(data, {
+        classGroupId: this.teacherDetail?.id,
+        courseAddType: "onlyUpdateTeacher",
+      });
       classGroupUpdate(obj).then((res) => {
         if (res.code == 200) {
           this.$message.success("修改成功");
@@ -842,20 +842,22 @@ export default {
       });
     },
     getSubmitData(data, more = {}) {
-      return [{
-        type: this.activeType,
-        classGroupName: data?.name,
-        musicGroupId: this.teamid,
-        classGroupTeacherMapperList: formatClassGroupTeacherMapperList(
-          data.coreTeacher,
-          data.assistant
-        ),
-        students: data?.seleched,
-        ...more
-      }]
+      return [
+        {
+          type: this.activeType,
+          classGroupName: data?.name,
+          musicGroupId: this.teamid,
+          classGroupTeacherMapperList: formatClassGroupTeacherMapperList(
+            data.coreTeacher,
+            data.assistant
+          ),
+          students: data?.seleched,
+          ...more,
+        },
+      ];
     },
     async submitClass(data) {
-      const list = this.getSubmitData(data, {onlyCreateClassGroup: true});
+      const list = this.getSubmitData(data, { onlyCreateClassGroup: true });
       try {
         if (this.classType == 1) {
           // 0新建班级 2 3 4新增班级修改
@@ -869,15 +871,15 @@ export default {
           await revisionAddClassGroup(list);
           this.$message.success("提交成功");
         }
-        this.studentVisible = false
-        this.getList()
+        this.studentVisible = false;
+        this.getList();
       } catch (error) {
         console.log(error);
       }
     },
     studentSubmited(data) {
       if (!this.isOnlyChangeUser) {
-        this.submitClass(data)
+        this.submitClass(data);
         // this.studentSubmitedData = data;
         // this.infoVisible = true;
       } else {
@@ -1037,26 +1039,23 @@ export default {
     },
     // 删除班级
     removeClass(scope) {
-         this.$confirm("是否确定删除该班级?", "提示", {
-      confirmButtonText: "确定",
-      cancelButtonText: "取消",
-      type: "warning"
-    })
-      .then(() => {
-        removeSingleClass({ classGroupId: scope.row.id })
-        .then((res) => {
-          if (res.code == 200) {
-            this.$message.success("删除成功");
-            // 重新请求列表
-            this.getList(this.activeMixClass);
-          }
-        })
-        .catch((res) => {
-
-        });
+      this.$confirm("是否确定删除该班级?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
       })
-      .catch(() => { });
-
+        .then(() => {
+          removeSingleClass({ classGroupId: scope.row.id })
+            .then((res) => {
+              if (res.code == 200) {
+                this.$message.success("删除成功");
+                // 重新请求列表
+                this.getList(this.activeMixClass);
+              }
+            })
+            .catch((res) => {});
+        })
+        .catch(() => {});
     },
     // 修改班级
     resetClass(row) {
@@ -1704,7 +1703,7 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.dialog-footer.question{
+.dialog-footer.question {
   display: flex;
   flex-direction: row;
   justify-content: space-between;

+ 17 - 2
src/views/teamDetail/teamClassList.vue

@@ -18,7 +18,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="search"
-            placeholder="乐团&班级编号"
+            placeholder="乐团&班级编号名称"
           ></el-input>
         </el-form-item>
         <el-form-item prop="organIdList">
@@ -74,6 +74,7 @@
         <el-form-item>
           <el-button native-type="submit" type="primary">搜索</el-button>
           <el-button native-type="reset" type="danger">重置</el-button>
+          <el-button  type="primary"   v-permission="'export/classGroup'"  @click='exportClassGroup'>导出</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
@@ -90,7 +91,7 @@
           <el-table-column
             align="center"
             prop="musicGroupName"
-            label="乐团名称"
+            label="乐团&班级名称"
           ></el-table-column>
           <el-table-column align="center" prop="organName" label="分部名称">
             <template slot-scope="scope">
@@ -219,6 +220,8 @@ import { musicClassTypeList } from "@/utils/searchArray";
 import { getClassGroupPage, removeSingleClass } from "@/api/buildTeam";
 import { permission } from "@/utils/directivePage";
 import classCompound from "./componentClass/classCompound";
+import { Export } from "@/utils/downLoadFile";
+import qs from 'qs'
 export default {
   components: { pagination, classCompound },
   data() {
@@ -360,6 +363,18 @@ export default {
     permission(str, parent) {
       return permission(str, parent);
     },
+    exportClassGroup(){
+        let params = this.searchForm;
+      Export(
+        this,
+        {
+            method: 'post',
+          url: "/api-web/export/classGroup",
+           params:qs.stringify({...params, organIdList: this.searchForm.organIdList.join(",")})
+        },
+        "是否确认导出报表?"
+      );
+    }
   },
 };
 </script>

+ 10 - 3
src/views/teamDetail/teamCourseList.vue

@@ -567,7 +567,7 @@
         <!-- infoMsg -->
       </el-tabs>
     </el-dialog>
-    <el-dialog :visible.sync="show" width="400px">
+    <el-dialog :visible.sync="show" width="400px" title="课程调整">
       <resetClass
         :show="show"
         v-if="show"
@@ -634,7 +634,7 @@ const initSearch = {
   organIdList: null,
   courseStatus: null,
   courseType: null,
-  timer: [], // 时间
+  timer: [nowTime,nowTime], // 时间
   class: null,
   teachType: null,
   mergeCourseType: null,
@@ -803,7 +803,7 @@ export default {
       }
       if (count <= 0) {
         this.$message.error("请至少选择一个搜索条件");
-        return;
+        return false;
       }
       const { creatTimer, timer, ...rest } = searchForm;
       return {
@@ -820,7 +820,11 @@ export default {
     },
     onCourseExport() {
       // 课表导出
+        if(!this.getSearchForm()){
+        return
+      }
       let url = "/api-web/export/superFindCourseSchedules";
+
       const options = {
         method: "get",
         headers: {
@@ -870,6 +874,9 @@ export default {
         .catch(() => {});
     },
     getList() {
+      if(!this.getSearchForm()){
+        return
+      }
       superFindCourseSchedules(this.getSearchForm()).then((res) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;

+ 3 - 2
src/views/teamDetail/teamInfo.vue

@@ -79,7 +79,7 @@ export default {
       this.activeIndex = val.name;
     },
     onCancel () {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+       this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({ path: '/business/teamDetail'})
     },
     getname (name) {
@@ -94,7 +94,8 @@ export default {
   components: {
     baseInfo,
     soundeDetail,
-    resetPayList, resetPayListSchool,
+    resetPayList,
+    resetPayListSchool,
   }
 }
 </script>

+ 637 - 398
src/views/teamDetail/teamList.vue

@@ -1,265 +1,414 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>乐团列表 <filter-search @reload="getList" :moreKeys="['organId']"/>
+      <div class="squrt"></div>
+      乐团列表 <filter-search @reload="getList" :moreKeys="['organId']" />
     </h2>
     <div class="m-core">
       <div class="btnList" style="margin-bottom: 20px">
-        <el-button type="primary" v-permission="'/teamBuild'"
-             @click="createNewTeam">新建乐团</el-button>
+        <el-button
+          type="primary"
+          v-permission="'/teamBuild'"
+          @click="createNewTeam"
+          >新建乐团</el-button
+        >
         <!-- <div class='newBand'
              v-permission="'/teamBuild/trimming'"
              @click="resetTeam">乐团调整</div> -->
       </div>
 
-      <save-form :inline="true"
-      @submit='search'
-      @reset='reset'
-               class="topForm"
-               ref="topForm"
-               :model="topForm">
-        <el-form-item prop='teamName'>
-          <el-input v-model.trim="topForm.teamName"
-          clearable
-                    @keyup.enter.native='search'
-                    placeholder="请输入乐团名称"></el-input>
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="reset"
+        class="topForm"
+        ref="topForm"
+        :model="topForm"
+      >
+        <el-form-item prop="teamName">
+          <el-input
+            v-model.trim="topForm.teamName"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="请输入乐团名称"
+          ></el-input>
         </el-form-item>
-        <el-form-item prop='orgin'>
-          <el-select class='multiple'
-                     v-model.trim="topForm.orgin"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+        <el-form-item prop="orgin">
+          <el-select
+            class="multiple"
+            v-model.trim="topForm.orgin"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in organList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop='status'>
-          <el-select class='multiple'
-                     v-model.trim="topForm.status"
-                     filterable
-                     clearable
-                     placeholder="请选择乐团状态">
-            <el-option v-for="(item,index) in nowStatus"
-                       :key="index"
-                       :label="item.text"
-                       :value="item.value"></el-option>
+        <el-form-item prop="status">
+          <el-select
+            class="multiple"
+            v-model.trim="topForm.status"
+            filterable
+            clearable
+            placeholder="请选择乐团状态"
+          >
+            <el-option
+              v-for="(item, index) in nowStatus"
+              :key="index"
+              :label="item.text"
+              :value="item.value"
+            ></el-option>
           </el-select>
         </el-form-item>
         <!-- 收费类型 -->
-        <el-form-item prop='payType'>
-          <el-select v-model.trim="topForm.payType"
-                     filterable
-                     placeholder="请选择收费类型"
-                     clearable>
-            <el-option v-for="(item,index) in typeList"
-                       :key='index'
-                       :label="item.name"
-                       :value="item.id"></el-option>
+        <el-form-item prop="payType">
+          <el-select
+            v-model.trim="topForm.payType"
+            filterable
+            placeholder="请选择收费类型"
+            clearable
+          >
+            <el-option
+              v-for="(item, index) in typeList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type='danger'
-          native-type="submit"
-                     >搜索</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
         </el-form-item>
         <el-form-item>
-          <el-button type='primary'
-          native-type="reset"
-                    >重置</el-button>
+          <el-button type="primary" native-type="reset">重置</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
-        <el-table style="width: 100%"
-                  @selection-change="handleSelectionChange"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
-                  :data='tableData'>
+        <el-table
+          style="width: 100%"
+          @selection-change="handleSelectionChange"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableData"
+        >
           <!-- <el-table-column type="selection"
                            :selectable="checkSelectable"
                            width="50">
           </el-table-column> -->
-          <el-table-column prop="id"
-                           width="100"
-                           align='center'
-                           label="乐团编号">
-                           <template slot-scope="scope">
-                             <copy-text>{{scope.row.id}}</copy-text>
-                           </template>
+          <el-table-column
+            prop="id"
+            width="100"
+            align="center"
+            label="乐团编号"
+          >
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.id }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column prop="name"
-                           width="200px"
-                           align='center'
-                           label="乐团名称">
-                           <template slot-scope="scope">
-                             <copy-text>{{scope.row.name}}</copy-text>
-                           </template>
+          <el-table-column
+            prop="name"
+            width="200px"
+            align="center"
+            label="乐团名称"
+          >
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           width="200px"
-                           prop="cooperationOrganName"
-                           max-width='274'
-                           label="合作单位">
+          <el-table-column
+            align="center"
+            width="200px"
+            prop="cooperationOrganName"
+            max-width="274"
+            label="合作单位"
+          >
           </el-table-column>
-          <el-table-column prop="status"
-                           align='center'
-                           label="乐团状态">
+          <el-table-column prop="status" align="center" label="乐团状态">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.status | teamStatus }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="chargeTypeName"
-                           label="收费类型">
+          <el-table-column
+            align="center"
+            prop="chargeTypeName"
+            label="收费类型"
+          >
           </el-table-column>
-          <el-table-column prop="educationalTeacherName"
-                           align='center'
-                           label="乐团主管">
+          <el-table-column
+            prop="educationalTeacherName"
+            align="center"
+            label="乐团主管"
+          >
           </el-table-column>
-          <el-table-column prop="teamTeacherName"
-                           align='center'
-                           label="运营主管">
+          <el-table-column
+            prop="teamTeacherName"
+            align="center"
+            label="运营主管"
+          >
           </el-table-column>
-          <el-table-column prop="groupMemberNum"
-                           align='center'
-                           label="成团人数">
+          <el-table-column
+            prop="groupMemberNum"
+            align="center"
+            label="成团人数"
+          >
           </el-table-column>
-          <el-table-column prop="payNum"
-                           align='center'
-                           label="在读人数">
+          <el-table-column prop="payNum" align="center" label="在读人数">
           </el-table-column>
           <!-- <el-table-column prop="course"
                            align='center'
                            label="当前课时">
           </el-table-column> -->
-          <el-table-column prop="createTime"
-                           width='100px'
-                           align='center'
-                           label="申请时间">
+          <el-table-column
+            prop="createTime"
+            width="100px"
+            align="center"
+            label="申请时间"
+          >
             <template slot-scope="scope">
               <div>
-                {{ scope.row.createTime | formatTimer}}
+                {{ scope.row.createTime | formatTimer }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           width='100px'
-                           label="成团时间">
+          <el-table-column align="center" width="100px" label="成团时间">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.billStartDate | formatTimer}}
+                {{ scope.row.billStartDate | formatTimer }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           width='100px'
-                           label="清单状况">
+          <el-table-column align="center" width="100px" label="清单状况">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.hasVerifyMusicalList?'已确认':'未确认'}}
+                {{ scope.row.hasVerifyMusicalList ? "已确认" : "未确认" }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           width='220px'
-                           fixed="right"
-                           label="操作">
+          <el-table-column
+            align="center"
+            width="220px"
+            fixed="right"
+            label="操作"
+          >
             <template slot-scope="scope">
               <div>
                 <!-- <el-button type="text"
                            v-if="scope.row.status == 'PREPARE' && permission('/setImprovement')"
                            @click="gotoImprovement(scope.row)">基础技能班</el-button> -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PREPARE' && permission('/teamDetailedList')"
-                           @click="gotodetailList(scope.row)">发放清单</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PREPARE' &&
+                    permission('/teamDetailedList')
+                  "
+                  @click="gotodetailList(scope.row)"
+                  >发放清单</el-button
+                >
 
                 <!-- <el-button type="text"
                            v-if="scope.row.status == 'PREPARE'"
                            @click="lookTeamCourse(scope.row)">查看课表</el-button> -->
 
                 <!-- 报名中&缴费中 查看 -->
-                <el-button type="text"
-                           v-if="(scope.row.status == 'APPLY'|| scope.row.status == 'PAY')  && permission('/signupList')"
-                           @click="lookTeamDetail(scope.row)">查看</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    (scope.row.status == 'APPLY' ||
+                      scope.row.status == 'PAY') &&
+                    permission('/signupList')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >查看</el-button
+                >
                 <!-- 报名中缴费中筹备中查看乐团 -->
-                <el-button type="text"
-                           v-if="(scope.row.status == 'APPLY'|| scope.row.status == 'PAY' || scope.row.status == 'PREPARE'  || scope.row.status == 'PRE_APPLY'  || scope.row.status == 'PRE_BUILD_FEE' || scope.row.status == 'FEE_AUDIT')  && permission('/teamLookBase')"
-                           @click="lookTeamInfo(scope.row)">乐团信息</el-button>
-                <el-button v-if="permission('recharge/findAll')"
-                           type="text"
-                           @click="lookSteam(scope.row)">乐团日志</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    (scope.row.status == 'APPLY' ||
+                      scope.row.status == 'PAY' ||
+                      scope.row.status == 'PREPARE' ||
+                      scope.row.status == 'PRE_APPLY' ||
+                      scope.row.status == 'PRE_BUILD_FEE' ||
+                      scope.row.status == 'FEE_AUDIT') &&
+                    permission('/teamLookBase')
+                  "
+                  @click="lookTeamInfo(scope.row)"
+                  >乐团信息</el-button
+                >
+                <el-button
+                  v-if="permission('recharge/findAll')"
+                  type="text"
+                  @click="lookSteam(scope.row)"
+                  >乐团日志</el-button
+                >
                 <!-- 进行中 关闭 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PROGRESS' && permission('musicGroup/closeMusicGroup')"
-                           @click="closeTeamDetail(scope.row)">关闭乐团</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PROGRESS' &&
+                    permission('musicGroup/closeMusicGroup')
+                  "
+                  @click="closeTeamDetail(scope.row)"
+                  >关闭乐团</el-button
+                >
                 <!-- 进行中 查看 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PROGRESS' && permission('/teamDetails')"
-                           @click="lookTeamDetail(scope.row)">查看</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PROGRESS' && permission('/teamDetails')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >查看</el-button
+                >
 
                 <!-- 预报名中 查看 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PRE_APPLY' && permission('studentRegistration/queryPreApplyList')"
-                           @click="lookTeamDetail(scope.row)">查看</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PRE_APPLY' &&
+                    permission('studentRegistration/queryPreApplyList')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >查看</el-button
+                >
 
                 <!-- 暂停中 查看 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PAUSE' && permission('musicGroup/pauseMusicGroup/look')"
-                           @click="lookTeamDetail(scope.row)">查看</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PAUSE' &&
+                    permission('musicGroup/pauseMusicGroup/look')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >查看</el-button
+                >
 
                 <!-- 创建缴费中 查看 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PRE_BUILD_FEE' && permission('/createPayment')"
-                           @click="lookTeamDetail(scope.row)">创建缴费</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PRE_BUILD_FEE' &&
+                    permission('/createPayment')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >创建缴费</el-button
+                >
 
                 <!-- <el-button type="text"
                            v-if="scope.row.status != 'PROGRESS' && scope.row.status != 'CANCELED'  && scope.row.status != 'PAUSE' && scope.row.status != 'APPLY'&& scope.row.status != 'PAY'"
                            @click="lookTeamDetail(scope.row)">编辑</el-button> -->
                 <!-- 筹备中 编辑 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'PREPARE' && permission('teamDetail/teamSeting/update')"
-                           @click="lookTeamDetail(scope.row)">班级列表</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'PREPARE' &&
+                    permission('teamDetail/teamSeting/update')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >班级列表</el-button
+                >
                 <!-- 审核中 编辑 -->
-                <el-button type="text"
-                           v-if="(scope.row.status == 'AUDIT')&& permission('teamDetail/audit/update')"
-                           @click="lookTeamDetail(scope.row)">审核</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'AUDIT' &&
+                    permission('teamDetail/audit/update')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >审核</el-button
+                >
                 <!-- 费用审核中  -->
                 <!-- <el-button type="text"
                            v-if="( scope.row.status == 'FEE_AUDIT')&& permission('teamDetail/audit/update')"
                            @click="lookTeamDetail(scope.row)">查看</el-button> -->
                 <!-- 编辑中 编辑 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'DRAFT' && permission('teamDetail/draft/update')"
-                           @click="lookTeamDetail(scope.row)">编辑</el-button>
-                <el-button type="text"
-                           v-if="(scope.row.status == 'DRAFT' || scope.row.status == 'AUDIT'|| scope.row.status == 'FEE_AUDIT' || (scope.row.status == 'APPLY'|| scope.row.status == 'PAY') && permission('musicGroup/cancelMusicGroup'))"
-                           @click="stopTeam(scope.row)">取消乐团</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'DRAFT' &&
+                    permission('teamDetail/draft/update')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >编辑</el-button
+                >
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'DRAFT' ||
+                    scope.row.status == 'AUDIT' ||
+                    scope.row.status == 'FEE_AUDIT' ||
+                    ((scope.row.status == 'APPLY' ||
+                      scope.row.status == 'PAY') &&
+                      permission('musicGroup/cancelMusicGroup'))
+                  "
+                  @click="stopTeam(scope.row)"
+                  >取消乐团</el-button
+                >
                 <!-- 审核失败 编辑 -->
-                <el-button type="text"
-                           v-if="scope.row.status == 'AUDIT_FAILED' && permission('teamDetail/aduitFailed/update')"
-                           @click="lookTeamDetail(scope.row)">编辑</el-button>
+                <el-button
+                  type="text"
+                  v-if="
+                    scope.row.status == 'AUDIT_FAILED' &&
+                    permission('teamDetail/aduitFailed/update')
+                  "
+                  @click="lookTeamDetail(scope.row)"
+                  >编辑</el-button
+                >
 
-                <el-button v-if="scope.row.status == 'PREPARE' && permission('musicGroup/action')"
-                           @click="startTeam(scope.row)"
-                           type="text">确认成团</el-button>
+                <el-button
+                  v-if="
+                    scope.row.status == 'PREPARE' &&
+                    permission('musicGroup/action')
+                  "
+                  @click="startTeam(scope.row)"
+                  type="text"
+                  >确认成团</el-button
+                >
                 <!-- <el-button type="text"
                            v-if="scope.row.status == 'AUDIT' && permission('musicGroup/cancelMusicGroup')"
                            @click="stopTeam(scope.row)">取消乐团</el-button> -->
-                <el-button v-if="scope.row.status == 'PAUSE' && permission('musicGroup/resumeMusicGroup')"
-                           @click="onTeamOpeation('start', scope.row)"
-                           type="text">启动</el-button>
-                <el-button v-if="scope.row.status == 'PROGRESS' && permission('musicGroup/pauseMusicGroup')"
-                           @click="onTeamOpeation('pause', scope.row)"
-                           type="text">暂停</el-button>
-                <el-button v-if="scope.row.status == 'PROGRESS' && permission('/resetTeaming')"
-                           @click="resetTeaming(scope.row)"
-                           type="text">修改</el-button>
-                <el-button v-if="scope.row.status == 'CANCELED' && permission('musicGroup/deleteMusicGroup')"
-                           @click="deteleTeaming(scope.row)"
-                           type="text">删除</el-button>
+                <el-button
+                  v-if="
+                    scope.row.status == 'PAUSE' &&
+                    permission('musicGroup/resumeMusicGroup')
+                  "
+                  @click="onTeamOpeation('start', scope.row)"
+                  type="text"
+                  >启动</el-button
+                >
+                <el-button
+                  v-if="
+                    scope.row.status == 'PROGRESS' &&
+                    permission('musicGroup/pauseMusicGroup')
+                  "
+                  @click="onTeamOpeation('pause', scope.row)"
+                  type="text"
+                  >暂停</el-button
+                >
+                <el-button
+                  v-if="
+                    scope.row.status == 'PROGRESS' &&
+                    permission('/resetTeaming')
+                  "
+                  @click="resetTeaming(scope.row)"
+                  type="text"
+                  >修改</el-button
+                >
+                <el-button
+                  v-if="
+                    scope.row.status == 'CANCELED' &&
+                    permission('musicGroup/deleteMusicGroup')
+                  "
+                  @click="deteleTeaming(scope.row)"
+                  type="text"
+                  >删除</el-button
+                >
               </div>
             </template>
           </el-table-column>
@@ -267,52 +416,60 @@
         <!-- 分页器 -->
         <!-- 分页 -->
         <pagination
-        sync
-        :total.sync="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
-                    @pagination="getList" />
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
-      <el-dialog :visible.sync="showSteam"
-                 width="500px"
-                 title="乐团流程">
-
-        <teamSteam :activeId='activeId' />
-        <div slot="footer"
-             class="dialog-footer">
-          <el-button type="primary"
-                     @click="showSteam=false">确 定</el-button>
+      <el-dialog :visible.sync="showSteam" width="500px" title="乐团流程">
+        <teamSteam :activeId="activeId" />
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="showSteam = false">确 定</el-button>
         </div>
       </el-dialog>
       <el-dialog :visible.sync="closeVisible" title="确认学员" width="800px">
-        <closeStudens v-if="closeVisible" :detail="closeDetail" @close="closeVisible = false" @submited="getList"/>
+        <closeStudens
+          v-if="closeVisible"
+          :detail="closeDetail"
+          @close="closeVisible = false"
+          @submited="getList"
+        />
       </el-dialog>
-
     </div>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { getTeamList, getPayType } from '@/api/teamServer'
-import { getCooperation, cancelMusicGroup, startTeam, getEmployeeOrgan, pauseMusicGroup, resumeMusicGroup, deleteMusicGroup } from '@/api/buildTeam'
-import { musicGroupStatus } from '@/utils/searchArray'
-import { isObject } from 'util'
-import { permission } from '@/utils/directivePage'
-import teamSteam from './teamListComponent/teamSteam'
-import closeStudens from '../teamBuild/modals/close-studens'
+import pagination from "@/components/Pagination/index";
+import { getTeamList, getPayType } from "@/api/teamServer";
+import {
+  getCooperation,
+  cancelMusicGroup,
+  startTeam,
+  getEmployeeOrgan,
+  pauseMusicGroup,
+  resumeMusicGroup,
+  deleteMusicGroup,
+} from "@/api/buildTeam";
+import { musicGroupStatus } from "@/utils/searchArray";
+import { isObject } from "util";
+import { permission } from "@/utils/directivePage";
+import teamSteam from "./teamListComponent/teamSteam";
+import closeStudens from "../teamBuild/modals/close-studens";
 export default {
   name: "teamList",
-  data () {
+  data() {
     return {
       closeDetail: {},
       closeVisible: false,
       topForm: {
-        teamName: '',
-        status: '',
-        payType: '',
-        word: '',
-        orgin: ''
+        teamName: "",
+        status: "",
+        payType: "",
+        word: "",
+        orgin: "",
       },
       organList: [],
       typeList: [], // 收费类型
@@ -324,61 +481,61 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       passed: [], // 传递的参数
       showSteam: false,
-      activeId: null
-    }
+      activeId: null,
+    };
   },
   components: {
     pagination,
     teamSteam,
-    closeStudens
+    closeStudens,
   },
-  mounted () {
-    const { query } = this.$route
+  mounted() {
+    const { query } = this.$route;
     if (query.organId) {
-      this.topForm.orgin = query.organId
+      this.topForm.orgin = query.organId;
     }
     this.init();
   },
-  activated () {
+  activated() {
     this.init();
   },
   methods: {
-    init () {
-      sessionStorage.setItem('resetCode', '1')
+    init() {
+      sessionStorage.setItem("resetCode", "1");
 
-      getEmployeeOrgan().then(res => {
+      getEmployeeOrgan().then((res) => {
         if (res.code == 200) {
           this.organList = res.data;
         }
-      })
+      });
       // 获取乐团收费类型
-      getPayType().then(res => {
+      getPayType().then((res) => {
         if (res.code == 200) {
           this.typeList = res.data.rows;
         }
-      })
+      });
       // 获取乐团合作单位(学校)
       // getCooperation().then(res => {
       // })
       this.getList();
     },
-    permission (str) {
-      return permission(str)
+    permission(str) {
+      return permission(str);
     },
-    reset () {
+    reset() {
       this.rules.page = 1;
-      this.$refs['topForm'].resetFields();
-      this.getList()
+      this.$refs["topForm"].resetFields();
+      this.getList();
     },
-    search () {
+    search() {
       this.rules.page = 1;
       this.getList();
     },
-    getList () {
+    getList() {
       getTeamList({
         rows: this.rules.limit,
         page: this.rules.page,
@@ -386,70 +543,78 @@ export default {
         chargeTypeId: this.topForm.payType || null,
         musicGroupName: this.topForm.teamName || null,
         musicGroupStatus: this.topForm.status || null,
-        musicGroupId: this.$route.query.search
-      }).then(res => {
+        musicGroupId: this.$route.query.search,
+      }).then((res) => {
         if (res.code == 200) {
-          this.tableData = res.data.rows
-          this.rules.total = res.data.total
+          this.tableData = res.data.rows;
+          this.rules.total = res.data.total;
         }
-      })
+      });
     },
-    createNewTeam () {
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/teamBuild', query: { type: 'newTeam', } }, router => {
-        router.meta.title = '新建乐团'
-      })
+    createNewTeam() {
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push(
+        { path: "/business/teamBuild", query: { type: "newTeam" } },
+        (router) => {
+          router.meta.title = "新建乐团";
+        }
+      );
     },
-    resetTeam () {
+    resetTeam() {
       // 这里还有勾选的乐团信息
       if (this.passed && this.passed.length <= 0) {
-        this.$message.error('请至少选择一个乐团进行调整')
-        return
+        this.$message.error("请至少选择一个乐团进行调整");
+        return;
       }
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/teamBuild', query: { type: 'teamList', teamList: this.passed, } })
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/teamBuild",
+        query: { type: "teamList", teamList: this.passed },
+      });
     },
-    resetTeaming (row) {
+    resetTeaming(row) {
       // 修改进行中的乐团
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/resetTeaming', query: { type: 'resetTeam', id: row.id,} })
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/resetTeaming",
+        query: { type: "resetTeam", id: row.id },
+      });
     },
-    setSearchList (obj) {
+    setSearchList(obj) {
       //
       // 没有相同的key=>添加这个对象
       // 有相同的key => 替换这个对象
       if (obj.type == 1) {
         let flag = false;
-        this.searchLsit = this.searchLsit.map(item => {
+        this.searchLsit = this.searchLsit.map((item) => {
           if (item.id == obj.id) {
             item = obj;
             flag = true;
           }
           return item;
-        })
+        });
         if (!flag) {
-          this.searchLsit.push(obj)
+          this.searchLsit.push(obj);
         }
       } else {
         let flag = false;
-        this.searchLsit = this.searchLsit.map(item => {
+        this.searchLsit = this.searchLsit.map((item) => {
           if (item.key == obj.key) {
             // 多选框的再次点击=> 等于 就是删除
             item = obj;
             flag = true;
           }
           return item;
-        })
+        });
         if (!flag) {
-          this.searchLsit.push(obj)
+          this.searchLsit.push(obj);
         }
       }
-
     },
-    closeSearch (item) {
+    closeSearch(item) {
       // 1.删除search里的元素
       if (item.type == 1) {
         for (let some in this.searchLsit) {
@@ -458,7 +623,7 @@ export default {
           }
         }
         // 2.清空对应元素所对应的的值
-        this.topForm[item.id] = '';
+        this.topForm[item.id] = "";
       } else {
         for (let i = 0; i < this.topForm[item.id].length; i++) {
           if (this.topForm[item.id][i] == item.value) {
@@ -467,236 +632,310 @@ export default {
         }
         // 处理search
         for (let some in this.searchLsit) {
-          if (this.searchLsit[some].value == item.value && this.searchLsit[some].id == item.id) {
+          if (
+            this.searchLsit[some].value == item.value &&
+            this.searchLsit[some].id == item.id
+          ) {
             this.searchLsit.splice(some, 1);
           }
           // id: 'school', key: this.schools[item].text, value: val, type: 1
         }
-
-
       }
     },
     closeTeamDetail(row) {
-      this.closeVisible = true
-      this.closeDetail = {...row}
+      this.closeVisible = true;
+      this.closeDetail = { ...row };
     },
-    onTeamOpeation (type, row) {
-      if (type == 'start') {
-        this.$confirm('是否确定开启乐团?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          resumeMusicGroup({ musicGroupId: row.id }).then(res => {
-            if (res.code == 200) {
-              this.$message.success('开启成功')
-              this.getList()
-            } else {
-              this.$message.error(res.msg)
-            }
+    onTeamOpeation(type, row) {
+      if (type == "start") {
+        this.$confirm("是否确定开启乐团?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            resumeMusicGroup({ musicGroupId: row.id }).then((res) => {
+              if (res.code == 200) {
+                this.$message.success("开启成功");
+                this.getList();
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
           })
-        }).catch(() => { })
-
-      } else if (type == 'pause') {
-        this.$confirm('是否确定暂停乐团?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          pauseMusicGroup({ musicGroupId: row.id }).then(res => {
-            if (res.code == 200) {
-              this.$message.success('暂停成功')
-              this.getList()
-            } else {
-              this.$message.error(res.msg)
-            }
+          .catch(() => {});
+      } else if (type == "pause") {
+        this.$confirm("是否确定暂停乐团?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            pauseMusicGroup({ musicGroupId: row.id }).then((res) => {
+              if (res.code == 200) {
+                this.$message.success("暂停成功");
+                this.getList();
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
           })
-        }).catch(() => { })
+          .catch(() => {});
       }
     },
-    gotoSearch () {
-      this.$refs['topForm'].resetFields();
+    gotoSearch() {
+      this.$refs["topForm"].resetFields();
       this.searchLsit = [];
     },
-    lookTeamCourse (row) {
+    lookTeamCourse(row) {
       // 查看课表
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/teamDetailCourse', query: { id: row.id, name: row.name,  } })
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/teamDetailCourse",
+        query: { id: row.id, name: row.name },
+      });
     },
-    lookTeamDetail (row) {
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
+    lookTeamDetail(row) {
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
       switch (row.status) {
-        case 'DRAFT': {
+        case "DRAFT": {
           // 编辑中
-          this.$router.push({ path: '/business/teamBuild', query: { type: 'teamDraft', id: row.id,  } }, router => {
-            router.meta.title = '编辑乐团'
-          })
+          this.$router.push(
+            {
+              path: "/business/teamBuild",
+              query: { type: "teamDraft", id: row.id },
+            },
+            (router) => {
+              router.meta.title = "编辑乐团";
+            }
+          );
           break;
         }
-        case 'AUDIT': {
+        case "AUDIT": {
           // 审核中
-          this.$router.push({ path: '/business/teamBuild', query: { type: 'teamAudit', id: row.id,  } }, router => {
-            router.meta.title = '审核乐团'
-          })
+          this.$router.push(
+            {
+              path: "/business/teamBuild",
+              query: { type: "teamAudit", id: row.id },
+            },
+            (router) => {
+              router.meta.title = "审核乐团";
+            }
+          );
           break;
         }
-        case 'PRE_BUILD_FEE': {
+        case "PRE_BUILD_FEE": {
           // 创建缴费中
-          this.$router.push({ path: '/business/createPayment', query: { type: 'PRE_BUILD_FEE', id: row.id, name: row.name } })
+          this.$router.push({
+            path: "/business/createPayment",
+            query: { type: "PRE_BUILD_FEE", id: row.id, name: row.name },
+          });
           break;
         }
-        case 'FEE_AUDIT': {
+        case "FEE_AUDIT": {
           // 费用审核中
-          this.$router.push({ path: '/business/teamBuild', query: { type: 'feeAudit', id: row.id,  } }, router => {
-            router.meta.title = '乐团费用审核中'
-          })
+          this.$router.push(
+            {
+              path: "/business/teamBuild",
+              query: { type: "feeAudit", id: row.id },
+            },
+            (router) => {
+              router.meta.title = "乐团费用审核中";
+            }
+          );
           break;
         }
-        case 'AUDIT_FAILED': {
+        case "AUDIT_FAILED": {
           // 审核失败
-          this.$router.push({ path: '/business/teamBuild', query: { type: 'teamDraft', id: row.id,  } }, router => {
-            router.meta.title = '乐团审核失败编辑'
-          })
+          this.$router.push(
+            {
+              path: "/business/teamBuild",
+              query: { type: "teamDraft", id: row.id },
+            },
+            (router) => {
+              router.meta.title = "乐团审核失败编辑";
+            }
+          );
           break;
         }
-        case 'PRE_APPLY': {
+        case "PRE_APPLY": {
           // 预报名
-          this.$router.push({ path: '/business/forecastName', query: { id: row.id, name: row.name  } })
+          this.$router.push({
+            path: "/business/forecastName",
+            query: { id: row.id, name: row.name },
+          });
           break;
         }
-        case 'APPLY': {
+        case "APPLY": {
           // 报名中
-          this.$router.push({ path: `/business/signupList`, query: { status: row.status, id: row.id, name: row.name, } }, router => {
-            router.meta.title = "报名详情"
-          })
+          this.$router.push(
+            {
+              path: `/business/signupList`,
+              query: { status: row.status, id: row.id, name: row.name },
+            },
+            (router) => {
+              router.meta.title = "报名详情";
+            }
+          );
           break;
         }
-        case 'PAY': {
+        case "PAY": {
           // 缴费中
-          this.$router.push({ path: `/business/signupList`, query: { status: row.status, id: row.id, name: row.name,  } }, router => {
-            router.meta.title = "缴费详情"
-          })
+          this.$router.push(
+            {
+              path: `/business/signupList`,
+              query: { status: row.status, id: row.id, name: row.name },
+            },
+            (router) => {
+              router.meta.title = "缴费详情";
+            }
+          );
           break;
         }
-        case 'PREPARE': {
+        case "PREPARE": {
           // 筹备中 跳转到乐团设置界面
-          this.$router.push({ path: `/business/teamSeting`, query: { status: row.status, id: row.id, name: row.name,  } })
+          this.$router.push({
+            path: `/business/teamSeting`,
+            query: { status: row.status, id: row.id, name: row.name },
+          });
           break;
         }
-        case 'PROGRESS': {
+        case "PROGRESS": {
           // 进行中
           // 调到乐团详情 teamDetails
-          this.$router.push({ path: `/business/teamDetails`, query: { status: row.status, id: row.id, name: row.name,  organId: row.organId ,type:'look' } })
-          break
+          this.$router.push({
+            path: `/business/teamDetails`,
+            query: {
+              status: row.status,
+              id: row.id,
+              name: row.name,
+              organId: row.organId,
+              type: "look",
+            },
+          });
+          break;
         }
-        case 'CANCELED': {
+        case "CANCELED": {
           // 取消
-          break
+          break;
         }
-        case 'PAUSE': {
+        case "PAUSE": {
           // 暂停
-          this.$router.push({ path: `/business/teamDetails`, query: { status: row.status, id: row.id, name: row.name, } })
+          this.$router.push({
+            path: `/business/teamDetails`,
+            query: { status: row.status, id: row.id, name: row.name },
+          });
           break;
         }
       }
     },
-    checkSelectable (row) {
-      return row.status == 'PROGRESS'
+    checkSelectable(row) {
+      return row.status == "PROGRESS";
     },
-    handleSelectionChange (arr) {
+    handleSelectionChange(arr) {
       this.passed = [];
       for (let i in arr) {
         let obj = {};
         obj.id = arr[i].id;
         obj.name = arr[i].name;
-        this.passed.push(obj)
+        this.passed.push(obj);
       }
     },
-    gotodetailList (row) {
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/teamDetailedList', query: { id: row.id, } })
+    gotodetailList(row) {
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/teamDetailedList",
+        query: { id: row.id },
+      });
     },
     //
-    lookTeamInfo (row) {
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/teamLookBase', query: { type: 'look', id: row.id, name: row.name } })
+    lookTeamInfo(row) {
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/teamLookBase",
+        query: { type: "look", id: row.id, name: row.name },
+      });
     },
     // setImprovement 设置基础技能班
-    gotoImprovement (row) {
-      let search = JSON.stringify(this.topForm)
-      let rules = JSON.stringify(this.rules)
-      this.$router.push({ path: '/business/setImprovement', query: { id: row.id,  } })
+    gotoImprovement(row) {
+      let search = JSON.stringify(this.topForm);
+      let rules = JSON.stringify(this.rules);
+      this.$router.push({
+        path: "/business/setImprovement",
+        query: { id: row.id },
+      });
     },
     // 停止乐团
-    stopTeam (row) {
-      this.$confirm('您确定取消申请乐团?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        cancelMusicGroup({
-          musicGroupId: row.id
-        }).then(res => {
-          if (res.code == 200) {
-            this.$message.success('停止成功')
-            this.getList()
-          }
-        })
-      }).catch(() => {
+    stopTeam(row) {
+      this.$confirm("您确定取消申请乐团?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
       })
-
+        .then(() => {
+          cancelMusicGroup({
+            musicGroupId: row.id,
+          }).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("停止成功");
+              this.getList();
+            }
+          });
+        })
+        .catch(() => {});
     },
     // 确认成团
-    startTeam (row) {
-      this.$confirm('是否确定成团?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        startTeam({ musicGroupId: row.id }).then(res => {
-          if (res.code == 200) {
-            this.$message.success('开启乐团成功')
-            this.getList();
-          }
+    startTeam(row) {
+      this.$confirm("是否确定成团?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          startTeam({ musicGroupId: row.id }).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("开启乐团成功");
+              this.getList();
+            }
+          });
         })
-      }).catch(() => { })
-
+        .catch(() => {});
     },
-    deteleTeaming (row) {
-      this.$confirm('您确定删除该乐团?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteMusicGroup({
-          musicGroupId: row.id
-        }).then(res => {
-          if (res.code == 200) {
-            this.$message.success('删除成功')
-            this.getList()
-          }
-        })
-      }).catch(() => {
+    deteleTeaming(row) {
+      this.$confirm("您确定删除该乐团?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
       })
+        .then(() => {
+          deleteMusicGroup({
+            musicGroupId: row.id,
+          }).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("删除成功");
+              this.getList();
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    lookSteam(row) {
+      this.activeId = row.id;
+      this.showSteam = true;
     },
-    lookSteam (row) {
-      this.activeId = row.id
-      this.showSteam = true
-    }
   },
   watch: {
-    showSteam (val) {
+    showSteam(val) {
       if (!val) {
-        this.activeId = null
+        this.activeId = null;
       }
-    }
-  }
-
-}
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .select {

+ 2 - 1
src/views/timedTask/index.vue

@@ -52,7 +52,8 @@
           </el-table-column>
         </el-table>
         <pagination
-          :total="pageInfo.total"
+          sync
+          :total.sync="pageInfo.total"
           :page.sync="pageInfo.page"
           :limit.sync="pageInfo.limit"
           :page-sizes="pageInfo.page_size"

+ 1 - 1
src/views/vipClass/vipDetail/index.vue

@@ -89,7 +89,7 @@ export default {
 
     },
     onCancel () {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+       this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({ path: '/business/vipList' })
     }
   }

+ 17 - 3
src/views/vipClass/vipReset.vue

@@ -148,7 +148,7 @@
                           format='HH:mm'
                           value-format='HH:mm'
                           :picker-options="{
-                            selectableRange: '04:30:00 - 23:30:00'
+                            selectableRange: `${nowTime} - 23:30:00`
                             }"></el-time-picker>
         </el-form-item>
         <el-form-item label="结束时间"
@@ -494,6 +494,7 @@ import {
 import { getTeachSchool } from "@/api/teacherManager";
 import { diffTimerFormMinute, addTimerFormMinute } from '@/utils/date'
 import dayjs from 'dayjs'
+let that;
 export default {
   components: {
     pagination
@@ -595,7 +596,9 @@ export default {
       },
     };
   },
-  created () { },
+  created () {
+    that = this
+  },
   mounted () {
     this.__init();
     this.getList();
@@ -666,7 +669,7 @@ export default {
       });
     },
     goBack () {
-        this.$store.dispatch('delVisitedViews', this.$route) 
+        this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({
         path: "/business/vipList",
       });
@@ -1121,6 +1124,17 @@ export default {
       }
     },
 
+  },
+    computed:{
+    nowTime(){
+      // console.log(that.maskForm.date)
+      let str = '04:30:00'
+      if(that.maskForm.date == dayjs(new Date).format('YYYY-MM-DD')){
+        str = dayjs(new Date).format('HH:mm:ss')
+      }
+
+      return str
+    }
   }
 };
 </script>

+ 9 - 2
src/views/workBenchManager/payAppeal.vue

@@ -12,7 +12,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="search"
-            placeholder="老师名称"
+            placeholder="老师名称、课程编号"
           ></el-input>
         </el-form-item>
         <el-form-item>
@@ -144,10 +144,17 @@
               <div>
                 <el-button
                   type="text"
-                  v-if="permission('teacherAttendance/operation')"
+                  v-if="permission('teacherAttendance/operation')&&scope.row.complaintsStatusEnum == 2"
                   @click="lookDetail(scope.row)"
                   >操作</el-button
                 >
+                 <el-button
+                  type="text"
+                  v-if="permission('teacherAttendance/operation')&&scope.row.complaintsStatusEnum != 2"
+                  @click="lookDetail(scope.row)"
+                  >查看</el-button
+                >
+                <!-- complaintsStatusEnum -->
               </div>
             </template>
           </el-table-column>

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů