瀏覽代碼

修改bug

lex-xin 5 年之前
父節點
當前提交
9cb852e405

+ 18 - 0
src/api/buildTeam.js

@@ -453,4 +453,22 @@ export function resetTeamBaseInfo (data) {
     method: 'POST',
     data
   })
+}
+
+// 开启乐团缴费功能
+export function musicGroupOpenPay (data) {
+  return request({
+    url: `/web-server/musicGroup/openPay`,
+    method: 'POST',
+    data
+  })
+}
+
+// 开启缴费(单独学生)
+export function openPayment (data) {
+  return request({
+    url: `/web-server/studentRegistration/openPayment`,
+    method: 'POST',
+    data
+  })
 }

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

@@ -152,7 +152,7 @@
           </div>
           <div class="planCore">
             <div class="row"
-                 v-for="(item,index) in this.lookList">
+                 v-for="(item,index) in this.lookList" :key="index">
               <div class="name">{{ item.type }}</div>
               <div class="week">{{ item.week }}</div>
               <div class="time">{{ item.time }}</div>
@@ -261,7 +261,7 @@
         </div>
         <div class="planCore">
           <div class="row"
-               v-for="(item,index) in this.lookList">
+               v-for="(item,index) in this.lookList" :key="index">
             <div class="name">{{ item.type }}</div>
             <div class="week">{{ item.week }}</div>
             <div class="time">{{ item.time }}</div>

+ 1 - 1
src/views/categroyManager/generalSettings/errorManager.vue

@@ -5,7 +5,7 @@
       <div class='newBand' @click="openTypes('create')">添加</div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="id"
                            label="编号">
           </el-table-column>

+ 7 - 7
src/views/categroyManager/generalSettings/vipParameterManager.vue

@@ -30,12 +30,12 @@
                              @click="resetGroupCategory(scope.row)">修改</el-button>
                   <el-popover placement="top"
                               width="160"
-                              :ref="scope.$index">
+                              :ref="scope.row.id">
                     <p>您确定删除该课程形态吗?</p>
                     <div style="text-align: right; margin: 0">
                       <el-button size="mini"
                                  type="text"
-                                 @click="scope._self.$refs[scope.$index].doClose()">取消</el-button>
+                                 @click="scope._self.$refs[scope.row.id].doClose()">取消</el-button>
                       <el-button type="primary"
                                  size="mini"
                                  @click="removeGroupCategory(scope)">确定</el-button>
@@ -70,12 +70,12 @@
                              @click="resetTimerList(scope.row)">修改</el-button>
                   <el-popover placement="top"
                               width="160"
-                              :ref="scope.$index">
+                              :ref="scope.row.id">
                     <p>您确定删除该周期循环吗?</p>
                     <div style="text-align: right; margin: 0">
                       <el-button size="mini"
                                  type="text"
-                                 @click="scope._self.$refs[scope.$index].doClose()">取消</el-button>
+                                 @click="scope._self.$refs[scope.row.id].doClose()">取消</el-button>
                       <el-button type="primary"
                                  size="mini"
                                  @click="removeDefaultClassesCycle(scope)">确定</el-button>
@@ -93,11 +93,11 @@
     </div>
 
     <!-- 课程类型新增弹窗 -->
-    <el-dialog title="vip课程形式"
+    <el-dialog title="vip课程形式"  width="500px"
                :visible.sync="vipStatus">
       <el-form :model="vipStatusFrom"
                ref='vipStatus'>
-        <el-form-item label="活动名称"
+        <el-form-item label="课程形式"
                       prop='name'
                       :label-width="formLabelWidth">
           <el-input v-model="vipStatusFrom.name"
@@ -125,7 +125,7 @@
     </el-dialog>
 
     <!-- 周期循环新增弹窗 -->
-    <el-dialog title="vip时间段"
+    <el-dialog title="vip时间段"  width="500px"
                :visible.sync="timerStatus">
       <el-form :model="vipTimerFrom"
                ref='timerStatus'>

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

@@ -32,7 +32,7 @@
       </div> -->
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center'
                            width="55"
                            prop="id"

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

@@ -7,7 +7,7 @@
       
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop='name'
                            label="分部活动名">
           </el-table-column>

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

@@ -30,7 +30,7 @@
       </div> -->
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop='id'
                            label="单位编号">
           </el-table-column>

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

@@ -6,7 +6,7 @@
       
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="realName"
                            label="姓名">
           </el-table-column>

+ 1 - 1
src/views/categroyManager/specialSetup/bannerManager.vue

@@ -5,7 +5,7 @@
       <div class='newBand'>添加</div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center'
                            label="轮播图">
           </el-table-column>

+ 1 - 1
src/views/categroyManager/specialSetup/branchSetting.vue

@@ -5,7 +5,7 @@
       <div @click="onBranchOperation('create')" class='newBand'>添加</div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="name"
                            label="分部名称">
           </el-table-column>

+ 1 - 1
src/views/categroyManager/specialSetup/jobTemplateSetting.vue

@@ -5,7 +5,7 @@
       <div class='newBand' @click="openJob('create')">添加</div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="name"
                            label="作业模板名称">
           </el-table-column>

+ 1 - 1
src/views/categroyManager/specialSetup/tryClass.vue

@@ -5,7 +5,7 @@
       <!-- <div class='newBand'>新建</div> -->
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center'
                            label="试听课可选专业">
           </el-table-column>

+ 1 - 1
src/views/categroyManager/specialSetup/typesManager.vue

@@ -5,7 +5,7 @@
       <div class='newBand' @click="openTypes('create')">添加</div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="name"
                            label="收费类型">
           </el-table-column>

+ 1 - 1
src/views/studentManager/studentList.vue

@@ -20,7 +20,7 @@
       </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="userId"
                            label="学员编号">
           </el-table-column>

+ 1 - 1
src/views/teacherManager/teacherList.vue

@@ -53,7 +53,7 @@
       </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'>
+        <el-table :data='tableList' :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center' prop="id"
                            label="老师编号">
           </el-table-column>

+ 163 - 17
src/views/teamBuild/signupList.vue

@@ -8,10 +8,10 @@
         </h2>
         <div class="btnList">
           <div class='newBand close'>停止乐团</div>
-          <div class='newBand'
+          <div class='newBand' @click="paymentStatus = true"
                v-if="status=='APPLY'">开始缴费</div>
-          <div class='newBand'
-               v-if="status=='APPLY'">允许缴费</div>
+          <div class='newBand' @click="onCreateQRCode"
+               v-if="status=='APPLY'">生成二维码</div>
           <div class='newBand'
                v-if="status=='PAY'">确认开团</div>
           <div class='newBand'
@@ -72,8 +72,13 @@
         </el-table>
       </div>
       <div class="right">
-        <el-table :data='rightList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+        <el-table :data='rightList' ref="multipleTable"
+                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
+                  @selection-change="handleSelectionChange">
+           <el-table-column
+            type="selection"
+            width="55">
+          </el-table-column>
           <el-table-column label="学员姓名"
                            prop="studentName"
                            align='center'>
@@ -120,7 +125,7 @@
                            prop="parentsPhone"
                            align='center'>
           </el-table-column>
-          <el-table-column label="学员状态"
+          <el-table-column label="学员状态" v-if='status == "PAY"'
                            prop="paymentStatus"
                            align='center'>
             <template slot-scope="scope">
@@ -129,18 +134,21 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column label="备注"
-                           v-if='status == "APPLY"'
-                           prop="remark"
-                           align='center'>
-          </el-table-column>
-          <!-- remark -->
           <el-table-column label="操作"
                            align='center'>
             <template slot-scope="scope">
               <div>
                 <el-button type='text'
                            @click='resetSubject(scope.row)'>修改专业</el-button>
+                <!-- APPLY -->
+                <el-popover v-if='status == "APPLY" || scope.row.remark'
+                  placement="top-start"
+                  title="备注"
+                  width="200"
+                  trigger="hover"
+                  :content="scope.row.remark">
+                  <el-button type="text" slot="reference">备注</el-button>
+                </el-popover>
                 <!-- PAY -->
                 <el-button type='text'
                            v-if='status == "PAY"&&scope.row.paymentStatus==1'
@@ -149,6 +157,11 @@
             </template>
           </el-table-column>
         </el-table>
+        <div style="margin-top: 10px; margin-bottom: 10px;" v-if="status=='APPLY'">
+          <el-button @click="onSelectAll">全选/取消</el-button>
+          <el-button style="background-color: #14928a;border: 1px solid #14928a;" @click="onPartPayment" type="primary">提前缴费</el-button>
+          <!-- <div class='newBand' v-if="status=='APPLY'">允许缴费</div> -->
+        </div>
         <pagination :total="rules.total"
                     :page.sync="rules.page"
                     :limit.sync="rules.limit"
@@ -173,8 +186,7 @@
       <div slot="footer"
            class="dialog-footer">
         <el-button @click="subjectVisible = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="okReset">确 定</el-button>
+        <el-button type="primary" @click="okReset">确 定</el-button>
       </div>
     </el-dialog>
 
@@ -231,18 +243,47 @@
                    @click="orderVisible = false">确 定</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="开始缴费"
+               :visible.sync="paymentStatus"
+               width="400px">
+      <el-form ref="paymentForm" :model="paymentForm" label-position="top" :rules="paymentRules">
+        <el-form-item label="请设置缴费截止日期" prop="paymentExpireDate">
+          <el-date-picker
+            v-model="paymentForm.paymentExpireDate"
+            type="date"
+            style="width: 100%"
+            placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="paymentStatus = false">取 消</el-button>
+        <el-button type="primary" @click="onStartPayment('paymentForm')">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="报名二维码"
+               :visible.sync="qrcodeStatus"
+               width="400px">
+      <div id="qrcode" class="qrcode code"
+           ref="qrCodeUrl"></div>
+      <p class="code-url" v-if="codeUrl">{{ codeUrl }}</p>
+    </el-dialog>
   </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
-import { getTeamRecruit, getintoClass, getStudentList, findSound } from '@/api/buildTeam'
+import { getTeamRecruit, getintoClass, getStudentList, findSound, musicGroupOpenPay, openPayment } from '@/api/buildTeam'
 import { resetStudentSubject, getStudentFeeDetail } from '@/api/studentManager'
+import QRCode from 'qrcodejs2'
 export default {
   components: {
     pagination
   },
   data () {
     return {
+      multipleSelection: [], // 
+      
       subjectVisible: false,
       orderVisible: false,
       leftList: [],
@@ -276,7 +317,18 @@ export default {
         axePrice: '',
         others: '',
         othersPrice: ''
-      }
+      },
+      paymentStatus: false,
+      paymentForm: {
+        paymentExpireDate: null,
+      },
+      paymentRules: {
+        paymentExpireDate: [{ required: true, message: '请设置缴费截止日期', trigger: 'blur' }]
+      },
+      qrcodeStatus: false, // 生成二维码
+      qrcodes: true,
+      qrcode: null,
+      codeUrl: null
     }
   },
   created () {
@@ -302,7 +354,7 @@ export default {
       }
     })
     // 通过乐团id获取乐团学生列表
-    this.getList();
+    this.getList()
   },
   methods: {
     getList () {
@@ -319,6 +371,88 @@ export default {
         }
       })
     },
+    onStartPayment(formName) { // 开启缴费
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          musicGroupOpenPay({
+            musicGroupId: this.id,
+            expireDate: this.paymentForm.paymentExpireDate
+          }).then(res => {
+            let result = res.data
+            console.log(result)
+            if(result.code == 200) {
+              this.$message({
+                type: 'success',
+                message: '开启成功'
+              })
+              this.$router.push({
+                path: '/business/signupList',
+                query: {
+                  status: 'PAY',
+                  name: this.$route.query.name
+                }
+              })
+            }
+          })
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      })
+      // this.id
+      
+    },
+    onSelectAll() { // 选中全部
+      this.$refs.multipleTable.toggleAllSelection()
+    },
+    onPartPayment() { // 部分缴费
+      let selection = this.multipleSelection
+      if(selection.length <= 0) {
+        this.$message({
+          message: '您还没有选择学生',
+          type: 'warning'
+        })
+        return false
+      }
+      let studentIds = []
+      selection.forEach(item => {
+        studentIds.push(item.studentId)
+      })
+
+      openPayment({
+        id: studentIds.join(',')
+      }).then(res => {
+        if(res.code == 200) {
+          this.$message({
+            message: '开启成功',
+            type: 'success'
+          })
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    onCreateQRCode() { // 生成报名二维码
+      this.qrcodeStatus = true
+      if(this.qrcodes) {
+        this.qrcodes = false
+        setTimeout(() => {
+          this.qrcode = new QRCode('qrcode', {
+            // text: 'http://www.baidu.com',
+            width: 300,
+            height: 300,
+            colorDark: '#000000',
+            colorLight: '#ffffff',
+            correctLevel: QRCode.CorrectLevel.H
+          })
+          this.qrcode.makeCode('http://www.baidu.com')
+          this.codeUrl = 'http://www.baidu.com'
+        }, 500)
+      }
+    },
+    handleSelectionChange(val) {
+        this.multipleSelection = val;
+    },
     // 修改专业
     resetSubject (row) {
       this.activeId = row.studentId
@@ -466,4 +600,16 @@ export default {
     }
   }
 }
+.qrcode {
+  img {
+    width: 300px;
+    height: 300px;
+    margin: 0 auto;
+  }
+}
+.code-url {
+  font-size: 18px;
+  text-align: center;
+  padding-top: 15px;
+}
 </style>

+ 2 - 2
src/views/teamDetail/components/baseInfo.vue

@@ -29,8 +29,8 @@
                       disabled></el-input>
             <!-- <el-select v-model="topForm.boss">
               <el-option label="啦啦啦"
-                         value="1"></el-option> -->
-            </el-select>
+                         value="1"></el-option> 
+            </el-select> -->
           </el-form-item>
           <el-form-item label="合作单位">
             <el-input v-model="topForm.cooperate"

+ 3 - 19
src/views/teamDetail/teamList.vue

@@ -49,30 +49,14 @@
                        value="4"></el-option>
           </el-select>
         </el-form-item>
-        <!-- <el-form-item prop='word'>
-          <el-input type="text"
-                    placeholder="请输入搜索关键字"
-                    suffix-icon="el-icon-search"
-                    @focus="gotoSearch"
-                    v-model="topForm.word" />
-        </el-form-item> -->
         <el-form-item>
           <div class='searchBtn'>搜索</div>
         </el-form-item>
       </el-form>
-      <!-- <div class="searchWrap">
-        <p>查询条件:</p>
-        <div class="searchItem"
-             @click="closeSearch(item)"
-             v-for="(item,index) in searchLsit">
-          {{ item.key }}
-          <i class="el-icon-close"></i>
-        </div>
-      </div> -->
       <div class="tableWrap">
-        <el-table style="width: 100%"
+        <el-table style="width: 100%" :header-cell-style="{background:'#EDEEF0',color:'#444'}"
                   :data='tableData'>
-          <el-table-column prop="id"
+          <el-table-column prop="id" width="160px"
                            align='center'
                            label="乐团编号">
           </el-table-column>
@@ -80,7 +64,7 @@
                            align='center'
                            label="乐团名称">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' width="200px"
                            prop="schoolName"
                            max-width='274'
                            label="学校名称">

+ 1 - 1
src/views/vipClass/resetClasss.vue

@@ -28,7 +28,7 @@
       <p>查询条件:</p>
       <div class="searchItem"
            @click="closeSearch(item)"
-           v-for="(item,index) in searchLsit">
+           v-for="(item,index) in searchLsit" :key="index">
         {{ item.key }}
         <i class="el-icon-close"></i>
       </div>

+ 1 - 1
src/views/vipClass/vipList.vue

@@ -39,7 +39,7 @@
       <!-- 查询列表 -->
       <!-- tab -->
       <div class="tableWrap">
-        <el-table style="width: 100%"
+        <el-table style="width: 100%" :header-cell-style="{background:'#EDEEF0',color:'#444'}"
                   :data='tableData'>
           <el-table-column align='center'
                            prop="id"