Browse Source

2020/01/03 15:56

提交测试
mo 5 years ago
parent
commit
4ca973995b
3 changed files with 152 additions and 9 deletions
  1. 18 0
      src/api/buildTeam.js
  2. 132 7
      src/views/teamDetail/components/studentList.vue
  3. 2 2
      vue.config.js

+ 18 - 0
src/api/buildTeam.js

@@ -799,4 +799,22 @@ export function coursePostpone (data) {
     method: 'post',
     data: qs.stringify(data)
   })
+}
+
+// 锁定学生
+export function StudentFeeIsLock (data) {
+  return request({
+    url: api + '/studentManage/updateStudentFeeIsLock',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
+
+// 修改学生缴费周期
+export function updateStudentFee (data) {
+  return request({
+    url: api + '/studentManage/updateStudentFee',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }

+ 132 - 7
src/views/teamDetail/components/studentList.vue

@@ -166,6 +166,14 @@
             </div>
           </template>
         </el-table-column>
+        <el-table-column align='center'
+                         label="批量修改缴费">
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.isLock?'可修改':'已锁定'}}
+            </div>
+          </template>
+        </el-table-column>
         <el-table-column align="center"
                          label="缴费金额"
                          prop="courseFee">
@@ -194,6 +202,8 @@
           </template>
         </el-table-column>
         <el-table-column align='center'
+                         fixed="right"
+                         width="250px;"
                          label="操作">
           <template slot-scope="scope">
             <div v-if="scope.row.studentStatus != 'QUIT'">
@@ -216,14 +226,19 @@
                              @click="chioseType(scope.row)">确定</el-button>
                 </div>
               </el-popover> -->
-              <el-button type='text'
-                         @click="quieTeamMask(scope.row)">退团</el-button>
+
               <el-button type="text"
                          @click="lookClass(scope.row)">查看班级</el-button>
-              <!-- <el-button type="text"
-                         @click="lookClass(scope.row)">锁定</el-button>
               <el-button type="text"
-                         @click="lookClass(scope.row)">解锁</el-button> -->
+                         v-if="!scope.row.isLock"
+                         @click="lockStudent(scope.row)">锁定</el-button>
+              <el-button v-else
+                         type="text"
+                         @click="lockStudent(scope.row)">解锁</el-button>
+              <el-button type="text"
+                         @click="resetPay(scope.row)">修改缴费</el-button>
+              <el-button type='text'
+                         @click="quieTeamMask(scope.row)">退团</el-button>
 
             </div>
           </template>
@@ -523,10 +538,61 @@
            v-if="codeUrl">{{ codeUrl }}</p>
       </div>
     </el-dialog>
+    <el-dialog title="修改缴费周期"
+               :before-close='closePayVisible'
+               width='600px'
+               :visible.sync="payVisible">
+      <el-form :model="payForm"
+               ref="payForm"
+               :inline="true">
+        <el-form-item label="学生姓名"
+                      prop="studentName">
+          <el-input v-model="payForm.studentName"
+                    disabled></el-input>
+        </el-form-item>
+        <br>
+        <el-form-item label="缴费金额"
+                      prop="payMoney">
+          <el-input type="number"
+                    v-model="payForm.payMoney"
+                    @mousewheel.native.prevent></el-input>
+        </el-form-item>
+        <el-form-item label="缴费月份"
+                      prop="payMonth">
+          <el-checkbox-group v-model="payForm.payMonth"
+                             fill="#14928A"
+                             text-color='#474747'>
+
+            <el-checkbox label="1">一月</el-checkbox>
+            <el-checkbox label="2">二月</el-checkbox>
+            <el-checkbox label="3">三月</el-checkbox>
+            <el-checkbox label="4">四月</el-checkbox>
+            <el-checkbox label="5">五月</el-checkbox>
+            <el-checkbox label="6">六月</el-checkbox>
+            <el-checkbox label="7">七月</el-checkbox>
+            <el-checkbox label="8">八月</el-checkbox>
+            <el-checkbox label="9">九月</el-checkbox>
+            <el-checkbox label="10">十月</el-checkbox>
+            <el-checkbox label="11">十一月</el-checkbox>
+            <el-checkbox label="12">十二月</el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+
+        <!--  studentName: '',
+        payMoney: '',
+        payMonth -->
+      </el-form>
+      <div slot="footer"
+           class="dialog-footer">
+        <el-button @click="quitVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="submitPay">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
-import { getTeamStudentList, getTeamStudentInfo, getSingleClass, findSound, StudentQuit, findSubjectPlan, getGoods, getSubject, getMusicGroupAllClass } from '@/api/buildTeam'
+import { getTeamStudentList, getTeamStudentInfo, getSingleClass, findSound, StudentQuit, findSubjectPlan, getGoods, getSubject, getMusicGroupAllClass, StudentFeeIsLock, updateStudentFee } from '@/api/buildTeam'
 import { addStudent, getStudentClass, getStudentInfoByPhone } from '@/api/studentManager'
 import pagination from '@/components/Pagination/index'
 import { vaildStudentUrl } from '@/utils/validate'
@@ -542,6 +608,7 @@ export default {
   },
   data () {
     return {
+      payVisible: false,
       quitVisible: false, // 退团信息确认的弹窗
       studentClassVisible: false, // 学员所在班级弹窗
       addStudentVisible: false, //新增学员弹窗
@@ -641,7 +708,12 @@ export default {
       ACCESSORIESLIST: [], // 辅件列表
       activeRow: null,
       Fsearch: null,
-      Frules: null
+      Frules: null,
+      payForm: {
+        studentName: '',
+        payMoney: '',
+        payMonth: []
+      }
     }
   },
   components: {
@@ -1034,6 +1106,59 @@ export default {
           }
         })
       }
+    },
+    lockStudent (row) {
+      this.$confirm('是否锁定/解锁学生缴费周期?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let musicGroupId = this.teamid;
+        let studentId = row.userId;
+        let isLock;
+        row.isLock == 0 ? isLock = 1 : isLock = 0;
+
+        StudentFeeIsLock({ musicGroupId, studentId, isLock }).then(res => {
+          if (res.code == 200) {
+            this.$message.success('修改成功')
+            this.getList()
+          }
+        })
+      }).catch(() => {
+      });
+    },
+    resetPay (row) {
+      this.activeRow = row;
+      this.payVisible = true;
+      this.payForm.studentName = row.realName;
+      this.payForm.payMoney = row.courseFee;
+      this.payForm.payMonth = row.paymentPeriodList.split(',')
+      if (this.payForm.payMonth[0] == "") {
+        this.payForm.payMonth = []
+      }
+    },
+    submitPay () {
+      let studentId = this.activeRow.userId;
+      let musicGroupId = this.teamid;
+      let month = this.payForm.payMonth.join(',') || null;
+      let amount = this.payForm.payMoney;
+      let obj = {
+        studentId,
+        musicGroupId,
+        month,
+        amount
+      }
+      updateStudentFee(obj).then(res => {
+        if (res.code == 200) {
+          this.$message.success('修改成功')
+          this.payVisible = false;
+          this.getList();
+        }
+      })
+    },
+    closePayVisible () {
+      this.$refs['payForm'].resetFields();
+      this.payVisible = false;
     }
   }
 }

+ 2 - 2
vue.config.js

@@ -19,10 +19,10 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://testadm.dayaedu.com/' //test环境
 // let target = 'http://192.168.3.27:8000' // 箭河
-// let target = 'http://192.168.3.28:8000' //邹璇
+let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:18000' //勇哥
 // let target = 'http://admin.dayaedu.com/' // 测试服
-let target = 'http://192.168.3.48:8080' // 乔
+// let target = 'http://192.168.3.48:8080' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**