quit.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <template>
  2. <div>
  3. <el-form
  4. :model="quitForm"
  5. ref="quitForm"
  6. :rules="quitRules"
  7. label-width="130px"
  8. >
  9. <el-form-item label="审核状态" prop="status">
  10. <el-radio v-model.trim="quitForm.status" label="APPROVED"
  11. >通过</el-radio
  12. >
  13. <el-radio v-model.trim="quitForm.status" label="DENIED">拒绝</el-radio>
  14. </el-form-item>
  15. <el-form-item
  16. label="退还学练宝费用"
  17. prop="isRefundMemberFee"
  18. v-if="quitForm.status == 'APPROVED' && courseViewType == 2"
  19. >
  20. <el-radio v-model.trim="quitForm.isRefundMemberFee" label="true"
  21. >是</el-radio
  22. >
  23. <el-radio v-model.trim="quitForm.isRefundMemberFee" label="false"
  24. >否</el-radio
  25. >
  26. </el-form-item>
  27. <el-form-item
  28. label="退还学练宝金额"
  29. prop="cloudTeacherAmount"
  30. v-if="
  31. quitForm.isRefundMemberFee &&
  32. quitForm.isRefundMemberFee != 'false' &&
  33. quitForm.status == 'APPROVED'
  34. "
  35. >
  36. <el-input
  37. type="number"
  38. v-model.trim="quitForm.cloudTeacherAmount"
  39. style="width: 180px"
  40. >
  41. <template slot="append"
  42. >元</template
  43. >
  44. </el-input>
  45. </el-form-item>
  46. <el-form-item
  47. label="退还课程费用"
  48. prop="isRefundCourseFee"
  49. v-if="quitForm.status == 'APPROVED'"
  50. >
  51. <el-radio v-model.trim="quitForm.isRefundCourseFee" :label="true"
  52. >是</el-radio
  53. >
  54. <el-radio v-model.trim="quitForm.isRefundCourseFee" :label="false"
  55. >否</el-radio
  56. >
  57. </el-form-item>
  58. <el-form-item
  59. label="退还乐器费用"
  60. prop="isRefundInstrumentFee"
  61. v-if="quitForm.status == 'APPROVED'"
  62. >
  63. <el-radio v-model.trim="quitForm.isRefundInstrumentFee" label="true"
  64. >是</el-radio
  65. >
  66. <el-radio v-model.trim="quitForm.isRefundInstrumentFee" label="false"
  67. >否</el-radio
  68. >
  69. </el-form-item>
  70. <el-form-item
  71. label="退还教辅费用"
  72. prop="isRefundTeachingAssistantsFee"
  73. v-if="quitForm.status == 'APPROVED'"
  74. >
  75. <el-radio
  76. v-model.trim="quitForm.isRefundTeachingAssistantsFee"
  77. :label="true"
  78. >是</el-radio
  79. >
  80. <el-radio
  81. v-model.trim="quitForm.isRefundTeachingAssistantsFee"
  82. :label="false"
  83. >否</el-radio
  84. >
  85. </el-form-item>
  86. <el-form-item
  87. label="退还乐保费用"
  88. prop="isMaintenanceFee"
  89. v-if="
  90. detail.hasMaintenance &&
  91. quitForm.status == 'APPROVED' &&
  92. $helpers.tenantId == 1
  93. "
  94. >
  95. <el-radio v-model.trim="quitForm.isMaintenanceFee" :label="true"
  96. >是</el-radio
  97. >
  98. <el-radio v-model.trim="quitForm.isMaintenanceFee" :label="false"
  99. >否</el-radio
  100. >
  101. </el-form-item>
  102. <el-form-item
  103. label="退还乐保金额"
  104. prop="maintenanceFee"
  105. v-if="quitForm.isMaintenanceFee"
  106. >
  107. <el-input
  108. type="number"
  109. v-model.trim="quitForm.maintenanceFee"
  110. style="width: 180px"
  111. >
  112. <template slot="append"
  113. >元</template
  114. >
  115. </el-input>
  116. </el-form-item>
  117. <el-form-item label="退团原因" prop="reason">
  118. <el-input
  119. type="textarea"
  120. v-model.trim="quitForm.reason"
  121. placeholder="请填写退团原因"
  122. ></el-input>
  123. </el-form-item>
  124. </el-form>
  125. <div slot="footer" class="dialog-footer" style="text-align: right">
  126. <el-button @click="$emit('close')">取 消</el-button>
  127. <el-button type="primary" @click="submit">确 定</el-button>
  128. </div>
  129. </div>
  130. </template>
  131. <script>
  132. import { quitMusicGroup } from "@/api/journal";
  133. import cleanDeep from "clean-deep";
  134. export default {
  135. props: ["detail"],
  136. data() {
  137. return {
  138. quitForm: {
  139. status: "",
  140. isRefundCourseFee: null,
  141. isRefundInstrumentFee: null,
  142. isRefundTeachingAssistantsFee: null,
  143. isMaintenanceFee: null,
  144. maintenanceFee: 0,
  145. cloudTeacherAmount: null,
  146. isCloudTeacherAmount: null,
  147. isRefundMemberFee: null,
  148. reason: null
  149. },
  150. courseViewType: null
  151. };
  152. },
  153. mounted() {
  154. this.quitForm.cloudTeacherAmount = this.detail.cloudTeacherAmount;
  155. this.courseViewType = this.detail.musicGroup.courseViewType;
  156. console.log(this.courseViewType);
  157. },
  158. watch: {
  159. "quitForm.isMaintenanceFee"(val) {
  160. if (val) {
  161. this.quitForm.maintenanceFee = 300;
  162. } else {
  163. this.quitForm.maintenanceFee = 0;
  164. }
  165. }
  166. },
  167. computed: {
  168. quitRules() {
  169. const required = this.quitForm.status === "APPROVED";
  170. return {
  171. isCloudTeacherAmount: [{ required: true, message: "请输入学练宝费用" }],
  172. cloudTeacherAmount: [
  173. { required: true, message: "请输入学练宝金额", trigger: "blur" }
  174. ],
  175. status: [{ required: true, message: "请选择审核状态" }],
  176. isRefundCourseFee: [{ required, message: "请选择是否退还课程费用" }],
  177. isRefundInstrumentFee: [{ required, message: "选择是否退还乐器费用" }],
  178. isRefundTeachingAssistantsFee: [
  179. { required, message: "选择是否退还教辅费用" }
  180. ],
  181. isMaintenanceFee: [{ required: true, message: "选择是否退还乐保费用" }],
  182. maintenanceFee: [{ required: true, message: "请输入退还乐保金额" }],
  183. isRefundMemberFee: [
  184. { required: true, message: "请选择是否退还会员费用" }
  185. ],
  186. reason: [{ required: true, message: "请填写退团原因" }]
  187. };
  188. }
  189. },
  190. methods: {
  191. submit() {
  192. this.$refs.quitForm.validate(async valid => {
  193. if (valid) {
  194. try {
  195. await this.$confirm("是否确定提交?", "提示", {
  196. type: "warning"
  197. });
  198. await quitMusicGroup(
  199. cleanDeep({
  200. id: this.detail.id,
  201. ...this.quitForm
  202. })
  203. );
  204. this.$emit("close");
  205. this.$emit("submited");
  206. this.$message.success("提交成功");
  207. } catch (error) {}
  208. }
  209. });
  210. }
  211. }
  212. };
  213. </script>