Browse Source

Merge branch 'Nov16thResetMusic' into online

lex-xin 4 years ago
parent
commit
ab966932b7

+ 2 - 0
package.json

@@ -36,8 +36,10 @@
     "path-to-regexp": "2.4.0",
     "qrcodejs2": "0.0.2",
     "qs": "^6.8.0",
+    "swiper": "^6.3.5",
     "vue": "2.6.10",
     "vue-amap": "^0.5.10",
+    "vue-awesome-swiper": "^4.1.1",
     "vue-lunar-calendar-pro": "^1.0.14",
     "vue-qr": "^2.2.1",
     "vue-quill-editor": "^3.0.6",

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

@@ -10,7 +10,7 @@
         <el-form-item>
           <el-input v-model.trim="searchForm.search"
                     @keyup.enter.native="search"
-                    placeholder='请输入课程编号、名称、乐团名称'></el-input>
+                    placeholder='课程编号、名称、乐团名称'></el-input>
         </el-form-item>
         <el-form-item prop="organId">
           <el-select class="multiple"
@@ -70,7 +70,7 @@
                            label="分部"></el-table-column>
           <el-table-column align="center"
                            prop="groupName"
-                           label="乐团名称"></el-table-column>
+                           label="课程组名称"></el-table-column>
           <el-table-column align="center"
                            label="布置时间">
             <template slot-scope="scope">

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

@@ -227,10 +227,10 @@
                            label="交易方式">
             <template slot-scope="scope">{{ scope.row.paymentChannel | paymentChannelStatus }}</template>
           </el-table-column>
-          <el-table-column align="center"
+          <!-- <el-table-column align="center"
                            label="收款账户">
             <template slot-scope="scope">{{ scope.row.merNo }}</template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center"
                            label="交易状态">
             <template slot-scope="scope">{{ scope.row.status | dealStatus }}</template>

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

@@ -193,10 +193,10 @@
                            label="交易方式">
             <template slot-scope="scope">{{ scope.row.paymentChannel | paymentChannelStatus }}</template>
           </el-table-column>
-          <el-table-column align="center"
+          <!-- <el-table-column align="center"
                            label="收款账户">
             <template slot-scope="scope">{{ scope.row.merNos }}</template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center"
                            label="交易状态">
             <template slot-scope="scope">{{ scope.row.status | dealStatus }}</template>

+ 3 - 2
src/views/reportForm/index.vue

@@ -177,6 +177,7 @@
                      class="organSelect"
                      style="width:100%"
                      filterable
+                     multiple
                      placeholder="请选择分部"
                      clearable>
             <el-option v-for="(item,index) in organList"
@@ -247,7 +248,7 @@ export default {
       musicTeamNum: [],
       studentOrganId: '',
       studentMonth: '',
-      attendanceOrganId: '',
+      attendanceOrganId: [],
       attendanceCourseType: 'MUSIC',
       timer: []
       // imageIcon: require("@/assets/images/base/warning.png")
@@ -541,7 +542,7 @@ export default {
         url: '/api-web/export/exportStudentAttendances',
         fileName: '学生考勤.xlsx',
         method: 'post',
-        params: qs.stringify({ organId: this.attendanceOrganId, groupType: this.attendanceCourseType, classStartDate, classEndDate })
+        params: qs.stringify({ organId: this.attendanceOrganId.join(','), groupType: this.attendanceCourseType, classStartDate, classEndDate })
       }, '您确定导出学生考勤?')
     },
   }

+ 8 - 3
src/views/teamDetail/componentCourse/studentRollCall.vue

@@ -1,12 +1,12 @@
 <template>
   <div>
     <el-form :inline="true">
-      <el-form-item label="应到学生数">
+      <el-form-item label="学生数">
         <!-- <el-input disabled
                   :value="studentNum"></el-input> -->
         <div class="inputStyle">{{studentNum}}</div>
       </el-form-item>
-      <el-form-item label="课学生数">
+      <el-form-item label="实际上课学生数">
         <!-- <el-input disabled
                   :value="signInNum"></el-input> -->
         <div class="inputStyle">{{signInNum}}</div>
@@ -28,6 +28,11 @@
         <el-table-column align='center'
                          prop="username"
                          label="学生姓名">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.username}}({{scope.row.userId}})
+            </div>
+          </template>
         </el-table-column>
         <el-table-column align='center'
                          prop="phone"
@@ -53,7 +58,7 @@
         </el-table-column>
         <el-table-column align='center'
                          prop="status"
-                         label="学生状态">
+                         label="考勤状态">
           <template slot-scope="scope">
             <div>
               <p v-if="scope.row.status">{{scope.row.status | studentRecord}}</p>

+ 79 - 18
src/views/teamDetail/componentCourse/studentWork.vue

@@ -1,5 +1,6 @@
 <template>
   <div>
+
     <el-form :inline="true">
       <el-form-item label="应交学生数">
         <!-- <el-input disabled
@@ -16,8 +17,11 @@
         :value="repliedNum"></el-input>-->
         <div class="inputStyle">{{ repliedNum}}</div>
       </el-form-item>
+      <el-form-item label="作业内容">
+        <p class="">{{content}}</p>
+      </el-form-item>
     </el-form>
-    <p class="work">老师布置的作业:{{content}}</p>
+
     <div class="tableWrap">
       <el-table :data="tableList"
                 :header-cell-style="{background:'#EDEEF0',color:'#444'}">
@@ -32,7 +36,7 @@
                          label="手机号"
                          width="120"></el-table-column>
         <el-table-column align="center"
-                         prop="subjectName"
+                         prop="subjectNames"
                          label="声部名称"></el-table-column>
         <el-table-column align="center"
                          prop="createTime"
@@ -56,13 +60,13 @@
             <div>{{ scope.row.isView ? '是' : '否' }}</div>
           </template>
         </el-table-column>
-        <el-table-column align="center"
+        <!-- <el-table-column align="center"
                          prop="isReplied"
                          label="是否回复">
           <template slot-scope="scope">
             <div>{{ scope.row.isReplied ? '是' : '否' }}</div>
           </template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column align="center"
                          label="查看作业"
                          width="200px">
@@ -70,9 +74,11 @@
             <div>
               <!--   -->
               <el-button type="text"
-                         v-for="(item,index) in scope.row.urlList"
-                         :key="index"
-                         @click="lookWork(item)">{{'作业'+(index+1) }}</el-button>
+                         v-if="scope.row.urlList"
+                         @click="lookWork(scope.row)">查看作业</el-button>
+              <el-button type="text"
+                         v-if="scope.row.isReplied"
+                         @click="lookReplied(scope.row)">查看回复</el-button>
             </div>
           </template>
         </el-table-column>
@@ -84,18 +90,42 @@
     </div>
     <el-dialog title="查看作业"
                @close="closeWorkVisible"
-               width="680px"
+               width="480px"
                append-to-body
                :visible.sync="workVisible">
       <!-- activeUrl -->
-      <video style="width:640px;"
-             :src="activeUrl"
-             ref="dialogVideo"
-             controls="controls">您的浏览器不支持视频播放</video>
+      <swiper ref="mySwiper"
+              :options="swiperOptions"
+              v-if="activeRow">
+        <swiper-slide v-for="
+                   (item,index)
+                   in
+                   activeRow.urlList"
+                      :key="index">
+          <video style="width:480px;"
+                 :src="item"
+                 ref="dialogVideo"
+                 controls="controls">您的浏览器不支持视频播放</video>
+
+        </swiper-slide>
+        <div class="swiper-pagination"
+             slot="pagination"></div>
+        <div class="swiper-button-prev swiper-button-white"
+             @click="prev"
+             slot="button-prev"></div>
+        <div class="swiper-button-next swiper-button-white"
+             @click="next"
+             slot="button-next"></div>
+      </swiper>
+
     </el-dialog>
   </div>
 </template>
 <script>
+import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'
+
+// import style (>= Swiper 6.x)
+import 'swiper/swiper-bundle.css'
 import pagination from "@/components/Pagination/index";
 import {
   findStudentCourseHomeworks,
@@ -104,7 +134,13 @@ import {
 } from "@/api/buildTeam";
 export default {
   props: ["courseScheduleId"],
-  components: { pagination },
+  components: {
+    pagination, Swiper,
+    SwiperSlide
+  },
+  directives: {
+    swiper: directive
+  },
   data () {
     return {
       tableList: [],
@@ -119,9 +155,24 @@ export default {
       homeworkNum: null,
       repliedNum: null,
       activeUrl: null,
-      content: null
+      content: null,
+      activeRow: null,
+      swiperOptions: {
+        loop: true,
+        pagination: '.swiper-pagination',
+        navigation: {
+          nextEl: '.swiper-button-next',
+          prevEl: '.swiper-button-prev'
+        }
+        // Some Swiper option/callback...
+      }
     };
   },
+  computed: {
+    swiper () {
+      return this.$refs.mySwiper.$swiper
+    }
+  },
   mounted () {
     this.init();
   },
@@ -163,16 +214,26 @@ export default {
               item.urlList = item.url ? item.url.split(",") : [];
               return item;
             });
+            console.log(this.tableList)
           }
         }
       );
     },
-    lookWork (url) {
+    lookWork (row) {
+      this.activeRow = row
       this.workVisible = true;
-      this.activeUrl = url;
     },
     closeWorkVisible () {
       this.activeUrl = "";
+    },
+    prev () {
+      this.swiper.slidePrev()
+    },
+    next () {
+      this.swiper.slideNext()
+    },
+    lookReplied (row) {
+
     }
   }, watch: {
     courseScheduleId (val) {
@@ -189,7 +250,7 @@ export default {
   text-align: center;
 }
 .work {
-  margin-bottom: 30px;
-  font-size: 16px;
+  line-height: 30px;
+  font-size: 14px;
 }
 </style>

+ 20 - 11
src/views/teamDetail/componentCourse/teacherList.vue

@@ -75,13 +75,12 @@
       </el-table-column>
     </el-table>
     <el-dialog width="1000px"
-               title="GPS"
                :visible.sync="gpsVisible"
                append-to-body>
       <gpsLoction v-if="gpsVisible"
                   :activeRow='activeRow' />
     </el-dialog>
-    <el-dialog title="课酬调整"
+    <!-- <el-dialog title="课酬调整"
                width="800px"
                append-to-body
                :visible.sync="dialogTableVisible">
@@ -97,10 +96,10 @@
           </template>
         </el-table-column>
         <el-table-column label="课程课酬"
-                         prop="expectSalary"></el-table-column>
+                         prop="expectSalary"></el-table-column> -->
         <!-- <el-table-column label="课时补贴"
                          prop="subsidy"></el-table-column> -->
-        <el-table-column label="操作">
+        <!-- <el-table-column label="操作">
           <template slot-scope="scope">
             <div>
               <el-button type='text'
@@ -109,15 +108,19 @@
             </div>
           </template>
         </el-table-column>
-      </el-table>
+      </el-table> -->
       <el-dialog width="500px"
-                 title=""
+                 :title="activeTeacher&&(activeTeacher.teacherName + ` (${activeTeacher.teacherId})`)"
                  :visible.sync="innerVisible"
                  append-to-body>
         <!-- 修改代码 -->
         <el-form :model="teacherMask"
                  :rules="teacherRules"
                  ref='teacherMask'>
+          <el-form-item label="原课程课酬"
+                        prop="expectSalary">
+            <span>{{activeTeacher && activeTeacher.expectSalary | moneyFormat}}</span>
+          </el-form-item>
           <el-form-item label="调整范围"
                         prop="radio">
             <el-radio v-model.trim="teacherMask.radio"
@@ -138,7 +141,7 @@
                      @click="resetSalary">确 定</el-button>
         </div>
       </el-dialog>
-    </el-dialog>
+    <!-- </el-dialog> -->
   </div>
 </template>
 <script>
@@ -217,13 +220,19 @@ export default {
 
     },
     setCourseInfo (row) {
-      this.tempSelectRow = row
+      // this.tempSelectRow = row
       getTeacherSalary({ courseScheduleId: this.courseScheduleId }).then(res => {
         if (res.code == 200) {
-          this.dialogTableVisible = true;
+          this.innerVisible = true;
+          for (const item of res.data) {
+            if (row.teacherId == item.teacherId) {
+              this.activeTeacher = item
+              break
+            }
+          }
           // this.courseScheduleId = row.courseScheduleId;
           // row.teachingTeachers
-          this.activeTeacherList = res.data;
+          // this.activeTeacherList = res.data;
         }
       })
 
@@ -263,4 +272,4 @@ export default {
     }
   },
 }
-</script>
+</script>

+ 9 - 0
src/views/teamDetail/components/studentList.vue

@@ -206,6 +206,14 @@
             <div>{{ scope.row.isActive?'是':'否'}}</div>
           </template>
         </el-table-column>
+        <el-table-column label="退团原因"
+                         align="center">
+          <template slot-scope="scope">
+            <div>
+              <Tooltip :content="scope.row.quitReason" />
+            </div>
+          </template>
+        </el-table-column>
         <el-table-column align="center"
                          fixed="right"
                          width="300px;"
@@ -752,6 +760,7 @@ import { addVisit } from "@/views/returnVisitManager/api.js"
 import cleanDeep from 'clean-deep'
 import createUserPay from './modals/create-user-pay.vue'
 import paymentCycle from '../../resetTeaming/modals/payment-cycle'
+import Tooltip from '@/components/Tooltip/index'
 export default {
   name: "tstudentList",
   data () {

+ 2 - 2
src/views/teamDetail/index.vue

@@ -53,12 +53,12 @@
                      name="6">
           <salaryList v-if="activeIndex == 6" />
         </el-tab-pane> -->
-        <el-tab-pane label="课酬调整"
+        <!-- <el-tab-pane label="课酬调整"
                      v-if="permission('/teamDetails/salaryList')"
                      name="7">
           <salaryList v-if="activeIndex == '7'"
                       :teamid='teamid' />
-        </el-tab-pane>
+        </el-tab-pane> -->
       </el-tabs>
 
     </div>

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

@@ -349,15 +349,15 @@
                          :teachMode='maskForm.teachMode'></teacherList>
           </div>
         </el-tab-pane>
+        <!--      v-if="maskForm.teachMode != 'OFFLINE'" -->
         <el-tab-pane label="作业"
-                     v-if="maskForm.teachMode != 'OFFLINE'"
                      name="third">
           <div v-if="activeName == 'third'">
             <studentWork :courseScheduleId="maskForm.id"></studentWork>
           </div>
         </el-tab-pane>
+        <!--    v-if="maskForm.type == 'VIP' || maskForm.type == 'PRACTICE'" -->
         <el-tab-pane label="评论"
-                     v-if="maskForm.type == 'VIP' || maskForm.type == 'PRACTICE'"
                      name="four">
           <div v-if="activeName == 'four'">
             <courseEvaluate :courseScheduleId="maskForm.id"></courseEvaluate>
@@ -628,14 +628,14 @@ export default {
       this.maskForm = row;
       this.activeName = "first";
       this.classVisible = true;
-      // getTeacherPersonalAttendanceDetail({ courseScheduleId: row.id }).then(res => {
-      //   if (res.code == 200) {
-      //     this.maskForm = res.data;
-      //     this.maskForm.id = row.id;
-      //     this.activeName = "first";
-      //     this.classVisible = true;
-      //   }
-      // })
+      getTeacherPersonalAttendanceDetail({ courseScheduleId: row.id }).then(res => {
+        if (res.code == 200) {
+          this.maskForm = { ...this.maskForm, ...res.data };
+          this.maskForm.id = row.id;
+          this.activeName = "first";
+          this.classVisible = true;
+        }
+      })
 
     },
     handleClick (tab, event) {