mo 4 年之前
父节点
当前提交
fd6518d056
共有 3 个文件被更改,包括 155 次插入4 次删除
  1. 8 0
      src/api/buildTeam.js
  2. 126 3
      src/views/teamBuild/signupList.vue
  3. 21 1
      src/views/teamDetail/teamList.vue

+ 8 - 0
src/api/buildTeam.js

@@ -633,6 +633,14 @@ export function cancelMusicGroup (data) {
   })
 }
 
+// 删除乐团
+export function deleteMusicGroup (data) {
+  return request({
+    url: api + `/musicGroup/deleteMusicGroup`,
+    method: 'POST',
+    data: qs.stringify(data)
+  })
+}
 
 // 修改乐团招生计划
 export function resetPlanNum (data) {

+ 126 - 3
src/views/teamBuild/signupList.vue

@@ -208,6 +208,10 @@
                            v-permission="'studentRegistration/queryFeeDetail'"
                            v-if='scope.row.paymentStatus==2'
                            @click='lookdetail(scope.row)'>查看</el-button>
+                <el-button type='text'
+                           v-permission="'studentRegistration/queryFeeDetail'"
+                           v-if='scope.row.paymentStatus==2'
+                           @click='quitTeam(scope.row)'>退团</el-button>
               </div>
             </template>
           </el-table-column>
@@ -388,11 +392,53 @@
            v-if="codeUrl2">{{ codeUrl2 }}</p>
       </div>
     </el-dialog>
+
+    <!-- 退团弹窗 -->
+    <el-dialog title="退团信息确认"
+               :destroy-on-close="true"
+               width="640px"
+               :visible.sync="quitVisible">
+      <el-form :model="quitForm"
+               ref="quitForm"
+               :rules="quitRules">
+        <el-form-item label="退还课程费用"
+                      prop="isRefundCourseFee">
+          <el-radio v-model.trim="quitForm.isRefundCourseFee"
+                    :label="true">是</el-radio>
+          <el-radio v-model.trim="quitForm.isRefundCourseFee"
+                    :label="false">否</el-radio>
+        </el-form-item>
+        <el-form-item label="退还乐器费用"
+                      prop="isRefundInstrumentFee">
+          <el-radio v-model.trim="quitForm.isRefundInstrumentFee"
+                    :label="true">是</el-radio>
+          <el-radio v-model.trim="quitForm.isRefundInstrumentFee"
+                    :label="false">否</el-radio>
+        </el-form-item>
+        <el-form-item label="退还教辅费用"
+                      prop="isRefundTeachingAssistantsFee">
+          <el-radio v-model.trim="quitForm.isRefundTeachingAssistantsFee"
+                    :label="true">是</el-radio>
+          <el-radio v-model.trim="quitForm.isRefundTeachingAssistantsFee"
+                    :label="false">否</el-radio>
+        </el-form-item>
+        <el-form-item label="退团原因">
+          <el-input type="textarea"
+                    v-model.trim="quitForm.reason"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button @click="quitVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="chioseType">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
-import { getintoClass, getStudentList, findSound, musicGroupOpenPay, openPayment, musicGroupFound, extensionPayment, resetPlanNum, cancelMusicGroup, getTeamBaseInfo, studentApplyDetailExport } from '@/api/buildTeam'
+import { getintoClass, getStudentList, findSound, musicGroupOpenPay, openPayment, musicGroupFound, extensionPayment, resetPlanNum, cancelMusicGroup, getTeamBaseInfo, studentApplyDetailExport, StudentQuit } from '@/api/buildTeam'
 import { resetStudentSubject, getStudentFeeDetail } from '@/api/studentManager'
 import { vaildStudentUrl, vaildTeacherUrl } from '@/utils/validate'
 import QRCode from 'qrcodejs2'
@@ -411,6 +457,7 @@ export default {
       isEdit: false,
       subjectVisible: false,
       orderVisible: false,
+      quitVisible: false,
       leftList: [],
       rightList: [],
       searchFrom: {
@@ -418,6 +465,13 @@ export default {
         subject: '', // 专业
         isAllowAdjust: '' // 是否允许调剂
       },
+      quitForm: {
+        // 退团信息确认
+        isRefundCourseFee: null,
+        isRefundInstrumentFee: null,
+        isRefundTeachingAssistantsFee: null,
+        reason: ""
+      },
       stepImgs: {
         APPLY: require('@/assets/images/base/clock.png'),
         PAY: require('@/assets/images/base/pay.png')
@@ -471,9 +525,21 @@ export default {
       extendRule: {
         expireDate: [{ required: true, message: '请选择延长时间', trigger: 'change' }]
       },
+      quitRules: {
+        isRefundCourseFee: [
+          { required: true, message: "请选择是否退还课程费用" }
+        ],
+        isRefundInstrumentFee: [
+          { required: true, message: "选择是否退还乐器费用" }
+        ],
+        isRefundTeachingAssistantsFee: [
+          { required: true, message: "选择是否退还教辅费用" }
+        ]
+      },
       Fsearch: null,
       Frules: null,
-      applyExpireDate: ''
+      applyExpireDate: '',
+      activeRow: null
     }
   },
   created () {
@@ -867,7 +933,52 @@ export default {
 
       })
 
-    }
+    },
+    quitTeam (row) {
+      this.activeRow = row;
+      this.quitVisible = true;
+    },
+    chioseType () {
+      this.$refs["quitForm"].validate(res => {
+        if (res) {
+          this.$confirm("确定退团?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+            .then(() => {
+              let row = this.activeRow;
+              // 发请求 退团
+              StudentQuit({
+                musicGroupId: this.id,
+                userId: row.studentId,
+                reason: this.quitForm.reason,
+                isRefundCourseFee: this.quitForm.isRefundCourseFee,
+                isRefundInstrumentFee: this.quitForm.isRefundInstrumentFee,
+                isRefundTeachingAssistantsFee: this.quitForm
+                  .isRefundTeachingAssistantsFee
+              }).then(res => {
+                this.quitForm = {
+                  // 退团信息确认
+                  isRefundCourseFee: null,
+                  isRefundInstrumentFee: null,
+                  isRefundTeachingAssistantsFee: null,
+                  reason: ""
+                };
+                if (res.code == 200) {
+                  this.$message.success("退团成功");
+                  this.getList();
+                  this.quitVisible = false;
+                }
+              });
+            })
+            .catch(() => { });
+        } else {
+        }
+      });
+
+      // row.typeVisible = false;
+    },
   },
   watch: {
     orderVisible (val) {
@@ -901,6 +1012,18 @@ export default {
           // feeType: null
         }
       }
+    },
+    quitVisible (val) {
+      if (!val) {
+        this.quitForm = {
+          // 退团信息确认
+          isRefundCourseFee: null,
+          isRefundInstrumentFee: null,
+          isRefundTeachingAssistantsFee: null,
+          reason: ""
+        };
+        this.$refs["quitForm"].resetFields();
+      }
     }
   }
 }

+ 21 - 1
src/views/teamDetail/teamList.vue

@@ -214,6 +214,9 @@
                 <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>
@@ -232,7 +235,7 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { getTeamList, getPayType } from '@/api/teamServer'
-import { getCooperation, cancelMusicGroup, startTeam, getEmployeeOrgan, pauseMusicGroup, resumeMusicGroup } from '@/api/buildTeam'
+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'
@@ -555,6 +558,23 @@ export default {
         })
       }).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(() => {
+      })
     }
   }